Lasagna Code



  • @blakeyrat said:

    @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.

    The counterexample that pops to mind is <A HREF="http://en.wikipedia.org/wiki/Ignaz_Semmelweis>Ignaz Semmelweis. Quoth Wikipedia:

    "Despite various publications of results where hand-washing reduced mortality to below 1%, Semmelweis's observations conflicted with the established scientific and medical opinions of the time and his ideas were rejected by the medical community. Some doctors were offended at the suggestion that they should wash their hands and Semmelweis could offer no acceptable scientific explanation for his findings. Semmelweis's practice earned widespread acceptance only years after his death, when Louis Pasteur confirmed the germ theory. In 1865, Semmelweis was committed to an asylum, where he died of septicemia, at age 47."



    The septicemia part of the story is pretty ironic. It's analogous to Paul Graham being accidentally decapitated due to a race condition in some stupid Java program (which, not incidentally, is a risk we all increasingly face).



    @blakeyrat said:

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




    I think you're quite right about that in theory. It's pretty easy to show that the description "OO" is meaningless, whereas FP is very well-defined. Practically, though, the people who denigrate FP are typically proponents of the status quo, which is basically (though it brings me near tears to say this) OOP.



    @blakeyrat said:
    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.




    That's fine for people who know about, understand, and use these structures. They do little to facilitate what rank and file programmers actually want (or would want, if they could admit their own limitations): the ability to develop single-threaded code without being embarrassed by the OS or mocked by their colleagues. And .NET has like a half-dozen concurrency paradigms and fourteen timer classes. This is what I meant when I called this "flavor of the month schlock."
    @blakeyrat said:
    You can do Functional Programming in JavaScript, for example. Or F#.

    Amen. I've done it in assembly language.



  • @bridget99 said:

    Semmelweis could offer no acceptable scientific explanation for his findings

    Quoting the relevant bit there.

    @bridget99 said:

    That's fine for people who know about, understand, and use these structures.

    i.e. every .net programmer everywhere ever.

    @bridget99 said:

    They do little to facilitate what rank and file programmers actually want (or would want, if they could admit their own limitations): the ability to develop single-threaded code without being embarrassed by the OS or mocked by their colleagues.

    You gripe about event-based programming, then present a scenario "programmers actually want" that requires event-based programming. (You tell me: how do I wrote a single-threaded program to manage a TCP/IP socket without using events or threads?)

    Of course, those rank and file programmers could just use WinForms which:
    1) probably meets their needs, and
    2) uses events quietly enough that you don't really have to think about it, your callbacks just happen "by magic" on your main thread, and
    3) is a fully-supported, first-class environment to be writing code in for Microsoft OSes.

    EDIT: wait a second, I just realized: Bridget99 *is* the rank-and-file programmer who wants to write apps that don't use an event model and also don't use threading, and thus are almost certainly incredibly broken. I would hope most rank-and-file programmers are more interested in writing good programs than programs that freeze their UI right when the user wants to interact with it, or that corrupt their database because Windows killed them for delaying shutdown too long. You know, BridgetApps.

    @bridget99 said:

    And .NET has like a half-dozen concurrency paradigms and fourteen timer classes.

    I'm not going to offer an opinion on "concurrency paradigms" because, seriously, buzzword more there buddy? I frankly have no fucking clue what you're even referring to. (I could guess, but I won't.)

    As far as Timers, AFAIK there's two: one that can runs as a WinForms control and is event-based, and one that's threaded for, say, console applications or Services.

    @bridget99 said:

    Amen. I've done it in assembly language.

    And your fellow programmers didn't murder you with the dull side of the fire axe? You're one lucky SOB.

    Also: once again, a thread that demonstrates Bridget99 is the Worst Programmer On This Board. Congratulations!



  • @blakeyrat said:

    @bridget99 said:
    Semmelweis could offer no acceptable scientific explanation for his findings

    Quoting the relevant bit there.





    Plenty of medical treatments and techniques aren't fully understood. The Nobel Prize for Medicine went to the person who finally figured out how Aspirin works in 1982. This is not even an extreme example. Treatments are released for public consumption based on statistical proof of their efficacy. Mechanism of action is a curiosity in comparison. And I am sure you already knew this... are you trying to troll me or are you so used to how stupid everyone else is that you assume you can win arguments with spurious reasoning?



    @blakeyrat said:
    You gripe about event-based programming, then present a scenario "programmers actually want" that requires event-based programming.




    I don't gripe about event-based programming. Windows 3.1 was an event-based system and it certainly did not have threads or race conditions. All of its concurrency (not much) was based on events and callbacks, and I found this environment very useful and intuitive. In fact, my original complaint about 'message pumping' (in that other thread where you called me the 'worst programmer on the board') was that Windows XP broke some of my Win3.1 applications with its insulting 'Not Responding' GUI verbiage. Event-driven code is exactly what I wanted to write (not multithreaded code).

    What I have a problem with is multithreading. There are better ways to expose concurrent hardware (which is purely interrupt-based at the lowest level, but is amenable to a wide variety of different abstractions) to the applications developer. At the most basic level, multiprocessing (as distinguished by the lack of a shared memory space) is much easier to manage than multithreading. Message passing between processes is a much more deterministic model of concurrent hardware (which, again, doesn't have any of these capabilities natively) than is the scenario where multiple threads.



    Microsoft knows this, I think; Windows has a very good system of message passing (even, in COM, transparent message passing). Unfortunately, though, they've just got too many people drawing paychecks and spouting gibberish to stick to the game plan. That's what I meant by "flavor-of-the-month" and concurrency paradigms. Check out this page. This is basically the Official Microsoft .NET Parallelism Page (oooooh! most of you think that's like Mecca!), and when I viewed it the following links were all evident at once without the need to even scroll down... and there are pages and pages of this foolishness:


    • PLINQ Queries That Run in Parallel in .NET 4.5
    • Exception Handling in TPL Dataflow Networks
    • Updated Async CTP


    PLINQ? The "Async" CTP?? TPL Dataflow Networks??? I think TPL Dataflow Networks must be something like Petri Nets, but they use Lumberg's Algorithm for mutual exclusion.

    I'm not the one with a buzzword problem here. Microsoft has a "concurrency nerd" problem. I seriously cannot wait for some other corner of Computer Science to become "cool" again, so we can start repairing the damage. Finally, this one is my favorite link from that page:

    Don't Forget to Complete Your Tasks.

    This just exemplifies everything that is wrong with these people. I don't know which of their concurrency models it refers to because they have so damn many (PLINQ? TPL Networks? The Async CTP? Plain old message pumping? The original .NET Thread class? BackgroundWorkerThread?) . And even if I did understand what they were talking about, why would I want to use a 'new' parallelism model that makes me remember to do something I didn't even know about before? If I just spawn two processes in parallel, I don't have to "complete" anything that I'm aware of. Even threads just exit when they're done. And yet, a majority of the programmers here probably read article titles like that and think "Oooh! That sounds complicated! I'd better learn how to complete my tasks so I don't look like an idiot!" This nauseates me... Functional Programming renders all of this childish nonsense irrelevant.

    @blakeyrat said:
    As far as Timers, AFAIK there's two: one that can runs as a WinForms control and is event-based, and one that's threaded for, say, console applications or Services.
    Before I gave up on actually knowing .NET in depth, I was aware of at least four: WinForms timer, WPF DispatcherTimer (somewhat similar), System.Timers.Timer (very different), and System.Threading.Timer (different again). And this was 2007 at the very latest.

    @blakeyrat said:
    Also: once again, a thread that demonstrates Bridget99 is the Worst Programmer On This Board. Congratulations!
    Thanks, thanks. But you do know who SpectateSwamp is, right? I think it's self-evident that I'm at least second worst.


  • @bridget99 said:

    @blakeyrat said:
    [quote user="bridget99"]Semmelweis could offer no acceptable scientific explanation for his findings

    Quoting the relevant bit there.





    Plenty of medical treatments and techniques aren't fully understood. The
    Nobel Prize for Medicine went to the person who finally figured out how
    Aspirin works in 1982. This is not even an extreme example.
    Treatments are released for public consumption based on statistical
    proof of their efficacy. Mechanism of action is a curiosity in
    comparison. And I am sure you already knew this... are you trying
    to troll me or are you so used to how stupid everyone else is that you
    assume you can win arguments with spurious reasoning?[/quote]

    I have to partly agree here.  It's important to understand the mechanism of action as much as possible, but that doesn't mean it's wise to disregard empirical evidence.

    @blakeyrat said:

    @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.

     

    Which would that be?  I'm guessing you're referring to something from the earlier Mac era.

     


  • ♿ (Parody)

    @Justice said:

    @bridget99 said:

    @blakeyrat said:
    [quote
    user="bridget99"]Semmelweis could offer no acceptable scientific
    explanation for his findings

    Quoting the relevant bit there.

    Plenty of medical treatments and techniques aren't fully understood. The
    Nobel Prize for Medicine went to the person who finally figured out how
    Aspirin works in 1982. This is not even an extreme example.
    Treatments are released for public consumption based on statistical
    proof of their efficacy. Mechanism of action is a curiosity in
    comparison. And I am sure you already knew this... are you trying
    to troll me or are you so used to how stupid everyone else is that you
    assume you can win arguments with spurious reasoning?

    I have to partly agree here.  It's important to understand the mechanism of action as much as possible, but that doesn't mean it's wise to disregard empirical evidence.
    [/quote]

    Yes, and I think blakey was showing too much faith in the rationality and empiricism of scientists.
    @Max Planck said:

    A new scientific truth does not triumph by convincing its opponents and making them see the light, but rather because its opponents eventually die, and a new generation grows up that is familiar with it.



  • @boomzilla said:

    I think blakey was showing too much faith in the rationality and empiricism of scientists.

    I think you people pick apart my examples because you can't pick apart my points, and you also can't bring yourself to admit "hey maybe Blakeyrat's speaking some capital-T Truth here".

    Hell, it wasn't even my example, it was Bridget's. Not that that matters... we're not talking about surgeons, we're debating whether LISP is the Next Big Thing that just hasn't hit yet, or some pathetic has-been.


  • ♿ (Parody)

    @blakeyrat said:

    @boomzilla said:
    I think blakey was showing too much faith in the rationality and empiricism of scientists.

    I think you people pick apart my examples because you can't pick apart my points, and you also can't bring yourself to admit "hey maybe Blakeyrat's speaking some capital-T Truth here".

    Hell, it wasn't even my example, it was Bridget's. Not that that matters... we're not talking about surgeons, we're debating whether LISP is the Next Big Thing that just hasn't hit yet, or some pathetic has-been.

    No, the Lisp stuff and bridget99's capabilities or lack thereof just weren't very interesting to me. And you were wrong on a tangential point that was more interesting. Plus I like that quote.



  • @boomzilla said:

    No, the Lisp stuff and bridget99's capabilities or lack thereof just weren't very interesting to me. And you were wrong on a tangential point that was more interesting. Plus I like that quote.

    Ok, well, just FYI, every time you someone does that from now on, I'm just going to assume they're typing, "Blakeyrat: you are a genius! Here is $3 million dollars."


  • ♿ (Parody)

    @blakeyrat said:

    Ok, well, just FYI, every time you someone does that from now on, I'm just going to assume they're typing, "Blakeyrat: you are a genius! Here is $3 million dollars."

    That's cool. No one really thinks you actually read other people's posts.



  • bridget99: "It's not my fault I can't program! All these languages,technologies, and methodologies suck!"

    A poor craftsman always blames his tools...

     

    As for OOP versus Functional, Software development and the industry surrounding it is too young to declare anything a winner or any methodology "better" than any other- to draw on the medical analogy, in comparison Software development is equivalent to when "doctors" would release the demons from a person by drilling a hole in their head. Functional Programming, OOP, Structured programming, etc- are just different kinds of drills. Computer Science has yet to finish building itself a proper scientific foundation.

     



  • @BC_Programmer said:

    Computer Science has yet to finish building itself a proper scientific foundation.
     

    Lol.

    You mean the art/craft  of programming has yet to finish building itself a proper scientific foundation.



  • @DaveK said:

    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.
    @TL;DR said:
    A single programmer (who could easily be one of the top ten Lisp programmers in the world) wrote GOAL. While he called his Lisp techniques and programming practices "revolutionary," others referred to them as "code encryption," since only he could understand them.

    Clearly, it's always possible to create crap in any language, or with any tool. I always have difficulty understanding why this fails to be obvious.



  • It's not possible to create crap in any language if you don't have a computer.  Therefore I reject your argument.

    Also, in some languages it's EASIER to create crap.  I always usually have lots of full difficulty completely understanding why this normally fails to obviously be obvious.



  • @Sutherlands said:

     I always usually have lots of full difficulty completely understanding why this normally fails to obviously be obvious.

    I see....


Log in to reply