Live data from Hacker News

Dijkstra on Haskell and Java (2001)

chrisdone.com

241–250 of 253 posts

Re: Dijkstra on Haskell and Java (2001)

#241
post #235
post #208

I can't help but notice that the vast majority of commenters are missing the fundamental reason for all this handwringing. The reason isn't language schism (that too, but I'd attach a much smaller weight to it) so much as the schism between corporatism & academia. Corporate America wants languages that are dumb, easy for corporate drones to assimilate, hard to mess up with, verbose ( verbosity is misinterpreted as do…

You didn't mention that all the "cool R&D shit" didn't work very well, and were considered inferior to competitors at that time.

And so are Swing, EJB, JavaBeans, ...

Re: Dijkstra on Haskell and Java (2001)

#242
post #10

Earlier quoted context omitted.

> the most complex compile time error you can get of Java tends to be nothing more than "mismatched bracket" or "incorrect function call" … following with the NullPointerException in runtime

You generally don't get these if you use @Nullable etc

That requires support external to the language, right? I haven't seen it widely used in the codebases I've worked on, and it adds additional verbosity to an already verbose language. It's yet another argument against Java as a first language.

I've seen plenty of NullPointerExceptions in enterprisey Java to know you generally do get them.

The horror... the horror...

Re: Dijkstra on Haskell and Java (2001)

#243
post #193

Earlier quoted context omitted.

>I have written quite a bit of Haskell That is a very common claim from people posting misconceptions that could only arise from second-hand info and a lack of direct experience. I have a very hard time believing it given that you claim haskell is large and complex. >Also, I like C++ :) I won't hold that against you. >what you think is wrong with my belief Well, everything you just mentioned except the horrible compi…

> That is a very common claim from people posting misconceptions that could only arise from second-hand info and a lack of direct experience. Do you think that I, and an apparently large number of other people on the internet, spend our time insulting Haskell without having used it? That some great anti-Haskell conspiracy is being waged by evil groups unknown? I haven't written large enough Haskell programs to have p…

> People who have to keep an empty monad around because removing it doubles the run-time of the program

I'm genuinely interested in this. Can you link to an article or blog post explaining the problem? Thanks! :)

Re: Dijkstra on Haskell and Java (2001)

#244
I was a freshman at UT in 2002 in their CS program. I wish they had heeded Djikstra's advice. Java with BlueJ was what we were taught from day 1.

To the departments credit, we did end up taking a couple of courses in Haskell (the best one I remember was the course of compilers - we had to write a C lexer in Haskell). It was one of the more fun classes I took (thanks, in a great part, to the professor teaching us).

Re: Dijkstra on Haskell and Java (2001)

#245
post #229
post #208

I can't help but notice that the vast majority of commenters are missing the fundamental reason for all this handwringing. The reason isn't language schism (that too, but I'd attach a much smaller weight to it) so much as the schism between corporatism & academia. Corporate America wants languages that are dumb, easy for corporate drones to assimilate, hard to mess up with, verbose ( verbosity is misinterpreted as do…

Perfectly put. I'm having to take a VB.net course to advance to the next level of my high school's CS curriculum, if you could even call it that. It's painful as hell, and like you said, makes me feel like a corporate monkey who's writing some ugly code for use in some specific pants-on-head retarded enterprise "app."

Don't get too discouraged by its corporate cooties. It's true that the language doesn't have a lot of sex appeal (no dialect of BASIC ever does), but it actually has a lot of cool stuff that's worth exploring. All told, you're actually pretty fortunate to be getting taught in one of the few languages a you might see in a high school curriculum that has decent support for interesting things like functional and asynchronous programming. All in all, VB.NET can take you a lot further than you might expect from its reputation among people who don't know it very well or are still sore about losing VB6.

Re: Dijkstra on Haskell and Java (2001)

#246
post #217

I love Haskell and Java. From a high level they are my favorite languages for their respective paradigms, so I think most programmers should at least try to write a simple program in both. That said, I think people are overreacting to Java as a CS 100-level language because of enterprise experiences. I have written enterprise Java and I hate it, but I still love Java. Java EE is all beans and POJOs and XML and Swing…

It's just my experience, but the people I know for whom Java was a genuinely first language seem to have a harder time than anyone else grokking pointers.

That's definitely true, but no functional language is going to help with that. Those are only farther from the metal.

The only thing I think Java handicapped me with was understanding pass-by-reference or pass-by-value, but I figured it out when someone told me that Java is "pass by reference by value" meaning that in the method meth(Object obj) { ... } if you do obj.something() you are editing the original object, but obj = newObject won't change the original reference.

Re: Dijkstra on Haskell and Java (2001)

#247
Why not teach assembly language programming so that the student can really understand how a computer works, and teach Scheme so that they can really understand the power of abstraction, recursion, functional programming etc. A later course can be to write a Scheme compiler generating the same asm lang.

Re: Dijkstra on Haskell and Java (2001)

#249
I think judging programming languages by their features is the same as judging people by their talent and not by their deeds.

Take Java for example. Most people (Dijkstra included) hate it. But look how much Java has accomplished. It's not a coincidence that Hadoop is written in Java. It's not a coincidence that Java is the primary language on Android.

To quote a great man: "Java works. Java captures the essence of the evolutionary spirit" Same thing applies to PHP, Javascript, and whatever everyone hates.

Couple of years ago I thought that Java was the Devil's invention and the most awful programming language ever. Then I started using Java with Hadoop. And for the first week Java was the most awful programming language ever. Two/three weeks in I was absolutely okay with Java. It worked. And for me that's the only thing that counts.

Re: Dijkstra on Haskell and Java (2001)

#250
post #246

Earlier quoted context omitted.

It's just my experience, but the people I know for whom Java was a genuinely first language seem to have a harder time than anyone else grokking pointers.

That's definitely true, but no functional language is going to help with that. Those are only farther from the metal. The only thing I think Java handicapped me with was understanding pass-by-reference or pass-by-value, but I figured it out when someone told me that Java is "pass by reference by value" meaning that in the method meth(Object obj) { ... } if you do obj.something() you are editing the original object, b…

I kind of think it's a problem (pedagogically) with Java's model specifically, not purely distance from the metal. I wouldn't be surprised if there were other high-level languages that caused similar trouble, but I also wouldn't be surprised if some did not.
Post reply on HN