Live data from Hacker News

Dijkstra on Haskell and Java (2001)

chrisdone.com

131–140 of 253 posts

Re: Dijkstra on Haskell and Java (2001)

#131
post #33

To me there seems to be something wrong with using as the first language something that depends on a very, very complicated runtime and execution model to run on the hardware we currently are using. This way people end up viewing programming languages as some God-given black box and not just something another computer program written by another person provides for you. I think CS students should instead start by lear…

> CS students I think CS students should be taught computer science, not software engineering.

They should be taught both. Too often do I see people coming out of college with strong theoretical roots and absolutely zero clue on how to use a debugger, a source control system or the slightest idea of how a software project goes.

Re: Dijkstra on Haskell and Java (2001)

#132
post #91
post #63

Earlier quoted context omitted.

It's trivially easy to write perfectly valid looking Haskell programs that are abysmally slow because of how they are actually executed, and since the reason for this can't be explained at a level of abstraction of such a course, people learn to treat the language as a closed black box, while you can't really competently use any language without understanding its execution model. Abstractions are fine, but you have t…

Changing naive recursion to tail recursion is a very common optimization in functional language compilers.

[deleted]

Re: Dijkstra on Haskell and Java (2001)

#133
post #107

Earlier quoted context omitted.

> CS students I think CS students should be taught computer science, not software engineering.

Well the C does stand for computer.

“Computer science is no more about computers than astronomy is about telescopes.”

- Dijkstra

It was just too relevant in this case...

Re: Dijkstra on Haskell and Java (2001)

#134
post #33

To me there seems to be something wrong with using as the first language something that depends on a very, very complicated runtime and execution model to run on the hardware we currently are using. This way people end up viewing programming languages as some God-given black box and not just something another computer program written by another person provides for you. I think CS students should instead start by lear…

>To me there seems to be something wrong with using as the first language something that depends on a very, very complicated runtime and execution model to run on the hardware we currently are using.

Computer Science is more than just programming. There is a lot of formal theory underpinning this area that has nothing to do with circuits, transistors and microprocessors. CS departments shouldn't just be concerned with training programmers, but also scientists.

Re: Dijkstra on Haskell and Java (2001)

#135
post #93

Earlier quoted context omitted.

> might leave behind students that have not yet been exposed to any programming And good riddance. If you make it to university without exposing yourself to your subject as a matter of passion (and few subjects are more easily approached by hobbyists than programming) you're going to waste your time there. University is a not a "school" you attend for learning a subject. You can't show up for English Literature if yo…

That's an extremely elitist and exclusionary attitude you have there. Your post is also "begging the question". According to you, people interested in said subject should already be experts by the time they reach university. This is of course flat out wrong, as there are many counterexamples of people mastering and contributing new knowledge of a subject, many many years after attending university. I think you need a…

It's hardly elitest to say that one should show just the slightest interest in the field they are entering college for - enough so to just pick up a simple book and work through it. I had the same experience, students who had no prior experience not only held back classes for those with much more, they tended to fail miserably in labs and exams.

Re: Dijkstra on Haskell and Java (2001)

#136
post #33

To me there seems to be something wrong with using as the first language something that depends on a very, very complicated runtime and execution model to run on the hardware we currently are using. This way people end up viewing programming languages as some God-given black box and not just something another computer program written by another person provides for you. I think CS students should instead start by lear…

>To me there seems to be something wrong with using as the first language something that depends on a very, very complicated runtime and execution model to run on the hardware we currently are using. Computer Science is more than just programming. There is a lot of formal theory underpinning this area that has nothing to do with circuits, transistors and microprocessors. CS departments shouldn't just be concerned wit…

The bulk of the formal CS theory is much more related to the imperative model than it is to the functional one, see https://news.ycombinator.com/item?id=7024731

Re: Dijkstra on Haskell and Java (2001)

#137
post #114

Earlier quoted context omitted.

> might leave behind students that have not yet been exposed to any programming And good riddance. If you make it to university without exposing yourself to your subject as a matter of passion (and few subjects are more easily approached by hobbyists than programming) you're going to waste your time there. University is a not a "school" you attend for learning a subject. You can't show up for English Literature if yo…

This strikes me as in principle somewhat wrong and in practice quite wrong. If American universities expelled everyone whose declared major was not a matter of passion, they would in general be pretty empty.

And just imagine then we would not have 1 trillion in student debt with many unemployed college graduates!

Re: Dijkstra on Haskell and Java (2001)

#138

Earlier quoted context omitted.

> CS students I think CS students should be taught computer science, not software engineering.

They should be taught both. Too often do I see people coming out of college with strong theoretical roots and absolutely zero clue on how to use a debugger, a source control system or the slightest idea of how a software project goes.

Then they should have picked Software Engineering instead. There is a reason both exist.

Re: Dijkstra on Haskell and Java (2001)

#139
post #127

Earlier quoted context omitted.

> might leave behind students that have not yet been exposed to any programming And good riddance. If you make it to university without exposing yourself to your subject as a matter of passion (and few subjects are more easily approached by hobbyists than programming) you're going to waste your time there. University is a not a "school" you attend for learning a subject. You can't show up for English Literature if yo…

Many of us went into college without the privilege of having a good idea of what we wanted to do with ourselves. In addition to that, among my circle of friends, it's common to know people who switched majors mid-school because they stumbled upon something they found more interesting - isn't that great? They thought they loved something, but found something they loved even more. Or, I guess they should have just been…

[deleted]
Post reply on HN