Lasagna Code





  • Damn you, now I want lasagna.



  • The funny thing is I agree with him up until about the last 2 paragraphs, where he espouses C as the solution to all our problems.

    BTW, Joel Spolsky wrote an article with a similar viewpoint. He calls the people who write that style of code "architecture astronauts".



  • @blakeyrat said:

    The funny thing is I agree with him up until about the last 2 paragraphs, where he espouses C as the solution to all our problems.

    BTW, Joel Spolsky wrote an article with a similar viewpoint. He calls the people who write that style of code "architecture astronauts".

    Yeah, I hate that. You find a problem in someone's code, and 5 levels deep into the muck, you forget what you were doing. I think that a lot of the art part of building software is finding the right balance between abstractions and special, or at least specific, cases.



  • @blakeyrat said:

    The funny thing is I agree with him up until about the last 2 paragraphs, where he espouses C as the solution to all our problems.

     

    @lispian said:

    Most people can’t even compile “Hello World” in less than a few megabytes courtesy of our object-oriented obsessed programming styles which seem to demand “lines of code” over clarity and “abstractions and objects” over simplicity and elegance.

    Do you agree with that?  A few megabytes!  Maybe if you have static c-bitmaps in the source code that are blt'd one-by-one to spell out "Hello World" in full screen mode.  Maybe.



  • @frits said:

    @blakeyrat said:

    The funny thing is I agree with him up until about the last 2 paragraphs, where he espouses C as the solution to all our problems.

     

    @lispian said:

    Most people can’t even compile “Hello World” in less than a few megabytes courtesy of our object-oriented obsessed programming styles which seem to demand “lines of code” over clarity and “abstractions and objects” over simplicity and elegance.

    Do you agree with that?  A few megabytes!  Maybe if you have static c-bitmaps in the source code that are blt'd one-by-one to spell out "Hello World" in full screen mode.  Maybe.

    I'll bet $10 that this old fart wrote this post *immediately* after he spent four days trying to understand a WSSF app that was implemented by some "youngen rockstar" developer...


  • @frits said:

    @lispian said:

    Most people can’t even compile “Hello World” in less than a few megabytes courtesy of our object-oriented obsessed programming styles which seem to demand “lines of code” over clarity and “abstractions and objects” over simplicity and elegance.

    Do you agree with that?  A few megabytes!  Maybe if you have static c-bitmaps in the source code that are blt'd one-by-one to spell out "Hello World" in full screen mode.  Maybe.

    Jesus you pedantic dickweeds. I meant I agreed with the sentiment. Not that I independently verified all of his facts.



  • @blakeyrat said:

    @frits said:

    @lispian said:

    Most people can’t even compile “Hello World” in less than a few megabytes courtesy of our object-oriented obsessed programming styles which seem to demand “lines of code” over clarity and “abstractions and objects” over simplicity and elegance.

    Do you agree with that?  A few megabytes!  Maybe if you have static c-bitmaps in the source code that are blt'd one-by-one to spell out "Hello World" in full screen mode.  Maybe.

    Jesus you pedantic dickweeds. I meant I agreed with the sentiment. Not that I independently verified all of his facts.
    So, what's it like to always be angry?


  • @blakeyrat said:

    @frits said:

    @lispian said:

    Most people can’t even compile “Hello World” in less than a few megabytes courtesy of our object-oriented obsessed programming styles which seem to demand “lines of code” over clarity and “abstractions and objects” over simplicity and elegance.

    Do you agree with that?  A few megabytes!  Maybe if you have static c-bitmaps in the source code that are blt'd one-by-one to spell out "Hello World" in full screen mode.  Maybe.

    Jesus you pedantic dickweeds. I meant I agreed with the sentiment. Not that I independently verified all of his facts.
    His sentiment boils down to "OO Bad.  Old ways good."


  • @C-Octothorpe said:

    So, what's it like to always be angry?

    Invigorating.



  • @C-Octothorpe said:

    So, what's it like to always be angry?

    Try it. You'll hate it.

    @frits said:

    His sentiment boils down to "OO Bad. Old ways good."

    You're being unfair. He said:

    Lasagna Code is layer upon layer of abstractions, objects and other meaningless misdirections that result in bloated, hard to maintain code all in the name of “clarity”.

    That has nothing to do with OO or not. Except that it's easier to add layers in OO code.



  • @blakeyrat said:

    @frits said:
    His sentiment boils down to "OO Bad. Old ways good."
    You're being unfair. He said:
    Lasagna Code is layer upon layer of abstractions, objects and other meaningless misdirections that result in bloated, hard to maintain code all in the name of “clarity”.
    That has nothing to do with OO or not. Except that it's easier to add layers in OO code.

    He never actually addresses layered architecture at all.  He just attacks all mainstream languages. Further proof of his OO-phobia:

    @lispian said:

    Something like Python may have been great if they’d not embedded an object model into its guts.



  • @blakeyrat said:

    @frits said:
    His sentiment boils down to "OO Bad. Old ways good."

    You're being unfair. He said:

    Lasagna Code is layer upon layer of abstractions, objects and other meaningless misdirections that result in bloated, hard to maintain code all in the name of “clarity”.

    That has nothing to do with OO or not. Except that it's easier to add layers in OO code.

    True, but he also said that he liked python except for the part where they "embedded an object model into its guts." Personally, I think OO is good, but overrated.



  • @blakeyrat said:

    @frits said:
    His sentiment boils down to "OO Bad. Old ways good."

    You're being unfair. He said:

    Lasagna Code is layer upon layer of abstractions, objects and other meaningless misdirections that result in bloated, hard to maintain code all in the name of “clarity”.

    That has nothing to do with OO or not. Except that it's easier to add layers in OO code.

    This.

    I'd prefer crap programmers to just write crap code. It's when crap programmers write crap code in 6 zillion layers that it gets truly painful.



  • @frits said:

    A few megabytes!  Maybe if you have static c-bitmaps in the source code that are blt'd one-by-one to spell out "Hello World" in full screen mode.  Maybe

    Indeed. I figured a .NET executable could get that big (don't criticize; I don't pay attention to the size of my executables), but couldn't get one bigger than 4 KB.




  • He talks about the "elegance of LISP". I'd just like to mock the fact that this iconic language for "elegance" has its two most iconic primitives named after the flippin' contents of address register and the contents of decrement register on the flippin' IBM 704, a system that was obsolete before my parents were born. Then I'll be back off to work on my perfectly cromulent Ruby code (which eats cpus and memory, but nobody cares).

    (Lisp is okay when you get down to it though. :)



  • @frits said:

    @lispian said:

    Most people can’t even compile “Hello World” in less than a few megabytes courtesy of our object-oriented obsessed programming styles which seem to demand “lines of code” over clarity and “abstractions and objects” over simplicity and elegance.

    Do you agree with that?  A few megabytes!  Maybe if you have static c-bitmaps in the source code that are blt'd one-by-one to spell out "Hello World" in full screen mode. 

    Of course, that's perfectly normal on a small embedded device with no filesystem.

     

    Meanwhile, back on the topic: anyone ever looked at the source code for Eclipse?  *shudder*




  • @DaveK said:

    Meanwhile, back on the topic: anyone ever looked at the source code for Eclipse? shudder

    I tried to, but after I fetched the files from source control the only text in them was: "HERE BE DRAGONS"


  • Discourse touched me in a no-no place

    @blakeyrat said:

    @DaveK said:
    Meanwhile, back on the topic: anyone ever looked at the source code for Eclipse? shudder

    I tried to, but after I fetched the files from source control the only text in them was: "HERE BE DRAGONS"

    Yesterday morning I was in a "I'm quitting and I'm the only person in this place that understands how this arcane piece of shit works" meeting.

    The guy's only commentary on one legacy part of the system was "Here be dragons. I tried to understand this once and failed. Fortunately it seems to work quite well - if it fails here, retry the job. If that fails, resign or go mad. Your choice.



  • The C language was the apex of computer language development. The travesty called C++ proves my point.



  • @fennec said:

    He talks about the "elegance of LISP". I'd just like to mock the fact that this iconic language for "elegance" has its two most iconic primitives named after the flippin' contents of address register and the contents of decrement register on the flippin' IBM 704, a system that was obsolete before my parents were born. Then I'll be back off to work on my perfectly cromulent Ruby code (which eats cpus and memory, but nobody cares).

    (Lisp is okay when you get down to it though. :)

     

    And all the lovely helpers you define to get where your really want to be... Really elegant those. :P

    (defun cadr (x) (car (cdr x))) ;Element 2 of a list

    (defun caddr (x) (car (cdr (cdr x)))) ;Element 3 of a list

    (defun cdadr (x) (cdr (car (cdr x))))  ;All of element 2 except element 2.1 Only useful for lists of lists, but that happens frequently

    etc.



  • @fennec said:

    (Lisp is okay when you get down to it though. :)

    FTFY: (when (get-down you lisp) (is okay lisp))

    @blakeyrat said:

    @DaveK said:
    Meanwhile, back on the topic: anyone ever looked at the source code for Eclipse? shudder
    I tried to, but after I fetched the files from source control the only text in them was: "HERE BE DRAGONS"
    I never got that far. When I tried to retrieve the files, I was attacked by dragons!



  • @Anonymouse said:

    FTFY: (when (get-down you lisp) (is okay lisp))

    "When lisp gets you down, lisp is ok"? Or is it "When you get down lisp, okay is lisp"?

    Edit: wait, I get it. It's a sort-of-ergative language where phrases with a transitive verb are handled differently to phrases with a copula.



  • " ... but it pains me to write code for many systems. It’s just so ugly, so poorly thought out."


    Well, he should know, it's his code.


  • Discourse touched me in a no-no place

    @pjt33 said:

    @Anonymouse said:
    FTFY: (when (get-down you lisp) (is okay lisp))

    "When lisp gets you down, lisp is ok"? Or is it "When you get down lisp, okay is lisp"?

    Edit: wait, I get it. It's a sort-of-ergative language where phrases with a transitive verb are handled differently to phrases with a copula.

    Actually, you still don't get it. It's the ubiquitous parentheses joke that gets trotted out whenever Lisp is mentioned.


  • @pjt33 said:

    @Anonymouse said:
    FTFY: (when (get-down you lisp) (is okay lisp))

    "When lisp gets you down, lisp is ok"? Or is it "When you get down lisp, okay is lisp"?

    Edit: wait, I get it. It's a sort-of-ergative language where phrases with a transitive verb are handled differently to phrases with a copula.

    I would like to know more about what you just said.

    Like, the words and stuff.

    What do they mean?



  • Deep stratification is for parentheses, not abstractions!  That's the LISP way!



  • Can I ask a stupid question? Is there a single actual piece of software written in LISP? Like something that shipped to customers who paid money for it?



  • @blakeyrat said:

    Can I ask a stupid question? Is there a single actual piece of software written in LISP? Like something that shipped to customers who paid money for it?

    Does a company which got bought by another company for its software written in Lisp count? If so, see http://www.paulgraham.com/avg.html



  • @pjt33 said:

    @blakeyrat said:
    Can I ask a stupid question? Is there a single actual piece of software written in LISP? Like something that shipped to customers who paid money for it?

    Does a company which got bought by another company for its software written in Lisp count? If so, see http://www.paulgraham.com/avg.html

    One webapp in 2001. That's... that's the best thing we got?



  • Apparently at one point, (not sure if it still does,) AutoCAD used Lisp to run a script engine.  I don't think the whole program was in Lisp though.


  • Discourse touched me in a no-no place

    @blakeyrat said:

    Can I ask a stupid question? Is there a single actual piece of software written in LISP? Like something that shipped to customers who paid money for it?
    The short answer is yes, but comp.lang.lisp would be a better place to ask and/or search. The question comes up there about once a year on average.



  • @PedanticCurmudgeon said:

    The question comes up there about once a year on average.

    And every year they answer, "that one web app from 2001". It's a CHRISTMAS TRADITION!



  • @blakeyrat said:

    @PedanticCurmudgeon said:
    The question comes up there about once a year on average.

    And every year they answer, "that one web app from 2001". It's a CHRISTMAS TRADITION!

    So you're saying that you agree with the lasagna guy and his nostalgia for better days.


  • Discourse touched me in a no-no place

    @blakeyrat said:

    @PedanticCurmudgeon said:
    The question comes up there about once a year on average.

    And every year they answer, "that one web app from 2001". It's a CHRISTMAS TRADITION!

    Other answers include an airline reservation system whose name I can't be bothered to look up, and "we could tell you but we'd have to kill you." There are companies, Franz and LispWorks for example, who sell Lisp implementations. Both examples been in business for a long time, selling Lisp development environments for thousands of dollars each. My guess would be that their customers are writing apps for internal use.



  • @boomzilla said:

    So you're saying that you agree with the lasagna guy and his nostalgia for better days.

    No, I just have to point out (during any discussion of LISP) that it's an utterly useless failure. So people don't waste their time discussing it.



  • @blakeyrat said:

    @boomzilla said:
    So you're saying that you agree with the lasagna guy and his nostalgia for better days.

    No, I just have to point out (during any discussion of LISP) that it's an utterly useless failure. So people don't waste their time discussing it.

    You have a fascinating definition of "utterly useless failure." And by fascinating, I mostly mean wrong, of course.



  • @PedanticCurmudgeon said:

    @blakeyrat said:
    @PedanticCurmudgeon said:
    The question comes up there about once a year on average.

    And every year they answer, "that one web app from 2001". It's a CHRISTMAS TRADITION!

    Other answers include an airline reservation system whose name I can't be bothered to look up.
     

    ITA. They run the search software for Orbitz, and theoretically have it implemented in Lisp, but when you look at what they actually say about it, a different picture emerges:

    • They wrote their fun, computer-science-y algorithms in Lisp, but...
    • All the heavy lifting is done with C structs and C++ code because Lisp is too inefficient.
    • They do things in the name of efficiency that "may make many Lisp programmers cringe" because they can't afford the overhead of garbage collection on a large, complex data set
    • "10. <font face="verdana" size="2">A lot of our Lisp is designed to compile into very efficient
      assembly. We make a lot of use of Lisp's macro capabilities, but shy
      away from many other Lisp features like closures, generic functions,
      complex sequence functions and garbage collection. We're doing an
      incredible amount of computation - getting 10 seconds on a modern
      machine is an incredible gift - but if we're sloppy at all 10 seconds
      can turn into ten minutes, not adequate for a travel agent or web
      site. We disassemble most every Lisp function looking for
      inefficiencies and have had both CMUCL and Franz enhanced to compile
      our code better."  Quoted in its entirety.  So much for Paul Graham's claims about how advances in modern hardware makes optimization less important than clear code and "expressiveness."</font>
    • <font face="verdana" size="2">They frequently have to rewrite important parts of their Lisp code in C++ because Lisp (and again, the garbage collector is mentioned) simply can't handle large amounts of data.</font>
    • <font face="verdana" size="2">Lisp is cool because it makes it easy to teach non-programmers to program.  "</font><font face="verdana" size="2">The only real problem is
      that the training most programmers have in Lisp has taught them to
      code very inefficiently, without paying any attention to the compiler."  Which Paul Graham claims is a good thing, but the people writing this repeat over and over that this philosophy fails hard when you actually try to solve complex problems. </font>

    I'm sure a psychologist could find all sorts of interesting things to say about the fact that Paul Graham printed this on his website as a Lisp "success story" when it is clearly anything but.


  • Discourse touched me in a no-no place

    @Mason Wheeler said:

    I'm sure a psychologist could find all sorts of interesting things to say about the fact that Paul Graham printed this on his website as a Lisp "success story" when it is clearly anything but.

    A psychologist would find even more interesting things to say about the fact that Mr. Graham went on to design his own Lisp dialect, implying that Common Lisp wasn't good enough after all, then ended up using PLT Scheme to implement it.



  • @Weng said:

    Yesterday morning I was in a "I'm quitting and I'm the only person in this place that [b]pretends to[/b] understands how this arcane piece of shit works" meeting.

    The guy's only commentary on one legacy part of the system was "Here be dragons. I tried to understand this once and failed. Fortunately it seems to work quite well - if it fails here, retry the job. If that fails, resign or go mad. Your choice.

    FTFY

    A while back, one of my coworkers announced he was retiring in approximately six months.  Three months later, I was handed one of the pieces of software he was supporting; something that was used a few times per month, all clustered together.  He would finish making the software do its thing for that month, so I had a month to learn it before the next time.  I looked over the docs and code in the stolen moments between other tasks for the next month, and so had an uneasy feeling of not quite competency.  I ran the scripts.  It bombed.  I spent about half an hour trying to troubleshoot before my retiring coworker came online.

    "How's it going?" he IMed me, knowing that I should've started the program by that point.

    "It's not working.  I'm getting <error>, and I'm not sure why."

    "Damn.  I don't know what to tell you about that one."

    "Have you seen it before?"

    "Yeah.  It started about five months ago.  It happens in some really messy code I can't understand."

    "So what have you been doing since then?"

    He then explained how he was manually kludging things, so that he was performing a task that should've taken about 4-5 hours with the script in about a week's time.  "But it wasn't too bad.  It was only for four months - and if you hadn't picked up the project, it'd have only been for seven."

    Fortunately, I was able to figure it out - it was simply a matter of refactoring one thing from that indecipherable mess at a time, being very careful to not make any changes that actually modified behavior - until, suddenly, I encountered something very obviously wrong (I mean, apart from that block's very existence, of course).

    This wasn't actually lasagna code.  It was bad code, but not lasagna code.

    (Yes, I did find out from my supervisor that the guy'd given his intent to retire paperwork exactly four months before I took the project...)



  • @Mason Wheeler said:

    ITA. They run the search software for Orbitz, and theoretically have it implemented in Lisp, but when you look at what they actually say about it, a different picture emerges:

    I think it's worth noting that Dr. de Marcken is no longer with the company.



  • @pjt33 said:

    phrases with a copula.
     

    Heh heh heh.  He said "copula."



  • @blakeyrat said:

    @pjt33 said:
    @blakeyrat said:
    Can I ask a stupid question? Is there a single actual piece of software written in LISP? Like something that shipped to customers who paid money for it?

    Does a company which got bought by another company for its software written in Lisp count? If so, see http://www.paulgraham.com/avg.html

    One webapp in 2001. That's... that's the best thing we got?

    Crash Bandicoot, apparently.

    There's a list of major projects at that second site linked above that also includes all of these:

    [quote user="http://www.franz.com/success/all_customer_apps.lhtml"]

    [/quote]

    So it's mostly one-off large specialist/custom jobs, and Crash Bandicoot is probably the most mainstream mass-market success ever written in Lisp.



  • @DaveK said:

    @blakeyrat said:

    @pjt33 said:
    @blakeyrat said:
    Can I ask a stupid question? Is there a single actual piece of software written in LISP? Like something that shipped to customers who paid money for it?

    Does a company which got bought by another company for its software written in Lisp count? If so, see http://www.paulgraham.com/avg.html

    One webapp in 2001. That's... that's the best thing we got?

    Crash Bandicoot, apparently.

    There's a list of major projects at that second site linked above that also includes all of these:


    Here we see the difference between someone who can be bothered doing research to answer a troll and someone who can't.



  • @DaveK said:

    @blakeyrat said:

    @pjt33 said:
    @blakeyrat said:
    Can I ask a stupid question? Is there a single actual piece of software written in LISP? Like something that shipped to customers who paid money for it?

    Does a company which got bought by another company for its software written in Lisp count? If so, see http://www.paulgraham.com/avg.html

    One webapp in 2001. That's... that's the best thing we got?

    Crash Bandicoot, apparently.
     

    Looks a whole lot like the Orbitz story.  Crash Bandicoot was written in GOAL, a highly-customized Lisp designed for imperative, object-oriented
    programming with little support for functional style or garbage
    collection. They basically re-implemented C++ in Lisp. (What would
    Greenspun say?!?)

     



  • Is it too late to make a joke about the quality of code developed by fresh out of college programmers named La'Zonya? Or would that be racist and/or sexist? :)



  • @Mason Wheeler said:

    @DaveK said:

    @blakeyrat said:

    @pjt33 said:
    @blakeyrat said:
    Can I ask a stupid question? Is there a single actual piece of software written in LISP? Like something that shipped to customers who paid money for it?

    Does a company which got bought by another company for its software written in Lisp count? If so, see http://www.paulgraham.com/avg.html

    One webapp in 2001. That's... that's the best thing we got?

    Crash Bandicoot, apparently.
     

    Looks a whole lot like the Orbitz story.  Crash Bandicoot was written in GOAL,

    From your link:

    [quote user="http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp"]GOAL's first use was for the original Jak and Daxter PS2 game; the predecessor language, GOOL, was also developed by Andy Gavin for Crash Bandicoot.

    [/quote] Just a little Pedantic Dickweedery™ for you there! 

    @Mason Wheeler said:

    a highly-customized Lisp designed for imperative, object-oriented
    programming with little support for functional style or garbage
    collection. They basically re-implemented C++ in Lisp. (What would
    Greenspun say?!?)

    Anyone who's curious about the whole thing might like to read Gamasutra's article "Postmortem: Naughty Dog's Jak and Daxter: the Precursor Legacy", by Naughty Dog's programming director Stephen White.



  • @C-Octothorpe said:

    @blakeyrat said:

    @frits said:

    @lispian said:

    Most people can’t even compile “Hello World” in less than a few megabytes courtesy of our object-oriented obsessed programming styles which seem to demand “lines of code” over clarity and “abstractions and objects” over simplicity and elegance.

    Do you agree with that?  A few megabytes!  Maybe if you have static c-bitmaps in the source code that are blt'd one-by-one to spell out "Hello World" in full screen mode.  Maybe.

    Jesus you pedantic dickweeds. I meant I agreed with the sentiment. Not that I independently verified all of his facts.
    So, what's it like to always be angry?

    I'm better equipped to answer that question. The answer is "exhausting".



  • @blakeyrat said:

    @boomzilla said:
    So you're saying that you agree with the lasagna guy and his nostalgia for better days.
    No, I just have to point out (during any discussion of LISP) that it's an utterly useless failure. So people don't waste their time discussing it.

    Calling LISP a failure in 2011 is analogous to sitting around in the 1700s and calling chemotherapy a failure. Just because we have not gone beyond the point in time where a certain good idea appeals only to lunatics does not mean that the idea is not good, or that we will never reach that point.

    Personally, I consider C++, Java, Javascript, and C# to be huge failures. You can use a typical PC, and 90% or better of the software you use will be written in one of these languages. Does that imply success? NO! Computers run like crap. They don't respond to user input, configuration is a nightmare, and their "security" features are basically legitimized viruses.

    In fact, existing software is so bad that 90% or so of it was stolen, and the perpetrator of this theft feels absolutely no remorse. Why does he not feel remorse? Because he stole garbage. People don't feel bad about stealing garbage. That's why they don't feel bad about stealing software. It's like stealing a Renault Alliance from behind someone's house trailer. They're probably glad to be rid of it.

    The Computer Science reasons why Functional Programming (FP) is superior to the alternatives (OOP, procedural programming, etcetera) are well-documented and indisputable. A functional program does not have to worry about side effects other than those that are inherent to a device's peripherals (I/O is an inherently static resource, for example). Under FP, there are no "race conditions" or aliasing. If I'm looking at a variable or parameter in a functional program, I know that it pertains to only one function instance, and I don't have to worry about some other thread altering it.

    Compare this to the flavor-of-the-month / you-must-pump-messages schlock being forced onto unready developers by .NET, for example, or to the way in which OOP encourages its practitioners to identify little bundles of state (which in a multithreaded environment is really the last thing you want people doing). If you're still not convinced, read up on http://en.wikipedia.org/wiki/Referential_transparency_(computer_science) and read Paul Graham. To draw an analogy, he is like a real physician trying to practice in the barber/surgeon era of medicine.

    The barber/surgeons downplayed the need for hand washing, knew nothing of antibiotics, relied on blood-letting and gnome-chasing. And they called the people who advocated real science lunatics. That is what you are doing here, to the real practitioners of Computer Science.

     



  • @bridget99 said:

    Calling LISP a failure in 2011 is analogous to sitting around in the 1700s and calling chemotherapy a failure. Just because we have not gone beyond the point in time where a certain good idea appeals only to lunatics does not mean that the idea is not good, or that we will never reach that point.

    How long do we have to give it? I'm only going to live for so long...

    Bonus alternate snarky response: somewhere, right now, there's a skinhead giving that exact same argument about the Third Reich.

    @bridget99 said:

    Computers run like crap. They don't respond to user input, configuration is a nightmare, and their "security" features are basically legitimized viruses.

    I agree, but I don't think the language is the problem, I think the programmers are. The best GUI ever built (to date) was built in PASCAL, with sprinklings of assembly.

    @bridget99 said:

    It's like stealing a Renault Alliance from behind someone's house trailer. They're probably glad to be rid of it.

    Somewhere, right now, there's a hipster in Seattle drooling over that car.

    @bridget99 said:

    The Computer Science reasons why Functional Programming (FP) is superior to the alternatives (OOP, procedural programming, etcetera) are well-documented and indisputable.

    Possibly; but that doesn't say anything about LISP in particular. You can do Functional Programming in JavaScript, for example. Or F#.

    In addition, I'm not sure OOP and Functional Programming are mutually-exclusive...

    @bridget99 said:

    Compare this to the flavor-of-the-month / you-must-pump-messages schlock being forced onto unready developers by .NET,

    Actually, the message pumping is a legacy from the Windows API and only really required if your .net program uses WinForms. Otherwise, .net has callbacks and proper async for everything.

    @bridget99 said:

    To draw an analogy, he is like a real physician trying to practice in the barber/surgeon era of medicine.

    That analogy doesn't work, because that surgeon would be considered a great man due to his high survival rate. Meanwhile, we're all sitting here talking about how LISP is a total failure.

    @bridget99 said:

    And they called the people who advocated real science lunatics.

    No they didn't. In fact, they were probably some of the more scientific thinkers of their age (on average, of course). A surgeon developed and popularized germ theory, you realize? And the rest of the profession embraced it in a remarkably short time, considering the speed of communication available.


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.