tag:blogger.com,1999:blog-6655746112052720933.post8935184144491312540..comments2022-03-30T18:43:33.525-05:00Comments on Notes on Haskell: Fight the next battleAdam Turoffhttp://www.blogger.com/profile/11941071792943377879noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-6655746112052720933.post-18131184022424316742007-04-13T16:51:00.000-05:002007-04-13T16:51:00.000-05:00"[The next big thing is] probably going to have Ha..."[The next big thing is] probably going to have Haskelly fingerprints all over it."<BR/><BR/>I hate to "<A HREF="http://www.paulgraham.com/hundred.html" REL="nofollow">Paul-Graham-ify</A>" this quote (because it's so beautiful), but think about language progression: we went from the <I>(Lisp . Fortran)</I> pair of <I>(super-high-level . just-above-assembly)</I> to languages like Java, Perl, Python, and Haskell.<BR/><BR/>If the next big thing's going to have "<I>Haskelly</I> fingerprints all over it," what about the big thing after that?Anonymoushttps://www.blogger.com/profile/03755383778171419021noreply@blogger.comtag:blogger.com,1999:blog-6655746112052720933.post-17731282993337584332007-04-12T14:21:00.000-05:002007-04-12T14:21:00.000-05:00As Ruby and Python make dynamic languages respecta...<I>As Ruby and Python make dynamic languages respectable, the whole "static vs. dynamic" language debate sounds like fighting last battle to me. It's tired. It's boring. It's a solved problem, they both work, and it's time to move onto something new.</I><BR/><BR/>This statement is both too bold and too meek.<BR/><BR/>Static typing <B>is</B> superior to dynamic typing not because it makes a language respectable, but because it allows programmers to program more respectably. Some apocryphal story has it that a reporter once asked Carl Sagan if he feared for our planet if humans keep destroying it. His surprising answer was: "Of course not. The planet will always be here. It is humans I fear for if we destroy our only home." Because we are all bad programmers, we need (ironically) less powerful tools so we don't hurt ourselves. Static typing is one (admittedly powerful) such self-imposed limitation. Of course static and dynamic typing "both work" if they are used correctly. Experience shows that they aren't.<BR/><BR/>There is no "next" battle. The fight to realize in software ever more complex algorithms while fending off the (potentially factorial) explosion of potentially buggy interrelationships in unrestricted coding practices is <B>the</B> battle that has been fought since the invention of the computer.<BR/><BR/>The use of static typing and monads in Haskell, invariant proofs in Eiffel, encapsulation in the module system of ML, limited interfaces and data encapsulation in OO languages, automatic memory management (garbage collection, reference counting), built-in testing, UML diagrams, documentation, and on and on have proved to be useful precisely because they provide the discipline we need to save ourselves from the instinct to make greater progress today even at the cost of forever slowing progress in the future with "maintenance" difficulties.<BR/><BR/>It <B>is</B> tired. It <B>is</B> boring. It <B>is</B> time to move onto something new if that will help.<BR/><BR/>But it is <B>not</B> a solved problem, so long as programming is a human activity. It is a war of attrition that can never be fully won, but can be catastrophically lost.<BR/><BR/>Disdaining the benefits of static typing is the hallmark of a very self-confident programmer. I am, for better or worse, not so assured of my own programming skills to reject any help that comes my way.Zo Kwe Zohttps://www.blogger.com/profile/11009268051282300971noreply@blogger.comtag:blogger.com,1999:blog-6655746112052720933.post-75962004045369194622007-04-12T06:08:00.000-05:002007-04-12T06:08:00.000-05:00Um ... you can have the OOP ideas (which I kinda c...Um ... you can have the OOP ideas (which I kinda can't live without) in a Haskell-ish mood. Like Ocaml. Of course, OOP as we know it, now, involves gross impurity (so Haskell can't do it).<BR/><BR/>I really wish I could figure out how to have the best of both worlds. I'm supposed to learn Ocaml one of these months. I do ML, so it shouldn't hurt. I hope.<BR/><BR/>I like these posts, even though we may not completely agree on some things. Me, I am just sick of the other languages. I hate regexes - I don't even understand my own! I love Haskell, and I don't know what can push me back to ... what was that torture I endured? Java?The 27th Comradehttps://www.blogger.com/profile/08490992094734826485noreply@blogger.com