4 ms·
I used Haskell for a significant portion of my CS education, it's possible you aren't far from the mark.
by beefsack 10y ago
I used Haskell for a significant portion of my CS education, it's possible you aren't far from the mark.
- zzzzzzzza 10y agoI went to ut austin and after a long time using haskell for intro classes the administrators succumbed to temptation (and possibly pressure from dell/ibm for wage slaves) maybe ~10 years ago and started using java. It was kind of horrible because the professor for (at least one of the) intro classes reproduced cons, car and cdr from lisp and had us construct a bunch of data structures out of this monstrous java lisp hybrid. point being probably only top tier cs depts use haskell.
- rifung 10y agoI don't think it has anything to do with the "tier" as I believe UT Austin used Haskell because of Dijkstra: http://chrisdone.com/posts/dijkstra-haskell-java http://chrisdone.com/posts/dijkstra-haskell-java MIT has also switched to Python from Scheme
- wyager 10y agoIt was around when Dijkstra died that UT switched away from Haskell to Java. And yes, from what I've heard from several faculty members around in that period, a lot of it was from external pressure from large regional employers (some of which you have mentioned).
- sulam 10y agoHonestly, would you rather hire an intern that has to learn Java from scratch, or one that actually had a class in it? I'm a fan of Haskell, but I think it being the intro CS class language is an educational fail.
- inimino 10y agoUniversities are not supposed to be trade schools though, right?
- flukus 10y agoAround here they always advertise themselves with slogans like "an education for the real world". I think they became trade schools but still haven't realized it.
- noir_lord 10y agoIn the absence of proper trade schools they end up adapting (or been forced into) offering something that looks a lot like a trade school. I've maintained for years (since I was at college in the 2000's (UK meaning of college not US)) that programming education should be two tier, the theoretical tier at university and the practical tier using the traditional trade school model. Taking another domain there is a lot of difference between the person doing the load bearing calculations on the bricks and structures and the person laying the actual bricks. I've always fallen more into the latter camp naturally, I like to build things and I learn the applicable theory as and when I need to and you can get a long way with experience and a little theory when you can leverage the underpinning work of other people. It's interesting to note that in the UK the apprentice/master model sorta exists already if you squint in the difference between junior/senior developer when done 'correctly' anyway though at the moment due to developer demand the meaning of 'senior' has degraded down to a couple of years commercial experience apparently.
- wyager 10y agoOn a philosophical note, the goal of CS education is not to score Java internships. On a practical note, learning a language like Java is not the hard part if you were taught properly. With a solid theory foundation (for which Haskell knowledge covers a great span of content), learning any production language to a practically useful degree should take a couple weeks at most.
- thinkpad20 10y agoLearning Haskell can teach students a lot of very important concepts that can shape their view of programming and problem solving for the better. It's not impossible to learn these things with other languages, and of course there are many things you might not learn using Haskell, but that's why you typically learn several programming languages in the course of a university education. In any case, it's not that hard to learn Java, and I would certainly look more closely at a resume that listed Haskell proficiency. Almost every resume I see lists Java. Also I second another poster's point that universities are not trade schools. I think it's a little sad if a department stopped teaching Haskell because of industry pressure, because the goal of a CS program is to teach CS, not to teach whatever programming language is on top of TIOBE.
- kriro 10y agoI'd much rather hire an intern that has a solid Haskell background and never used Java before than the other way around. Even as a pure Java shop. Especially as a Java shop that is using Java 8.
- sulam 10y agoThe predictable comment that learning Java is not necessarily an education is being repeatedly responded to here. I clearly should have included a response to this sort of argument in the original. Since I didn't, and since I can't edit now, I'll do it here. 1) Does learning Java keep you from learning CS concepts like pure functions and category theory? Obviously not. It may not be completely natural, but people do unnatural things in the name of an education all the time. 2) When you hire an intern these days, it's pretty expensive. The internship ends up being a trial employee, especially if they're a rising senior. The employer wants to get as much valuable information about the intern as they can. They may contribute actual production code, but probably not if it's Haskell. More importantly, you learn more about their ability to work with your environment (and they learn whether or not they want to work there) the closer you get to the internship being as close as possible to being a newgrad employee. Haskell is cool, but it will probably get in the way of many of the valuable things an internship can provide both parties. And I want to reiterate that these aren't cheap. You often end up paying the intern new grad wages normalized for the length of their internship, and it's not atypical to pay for housing on top of that, plus various events, time taken from to bring them up to speed on a team, etc. 3) MIT is teaching Python in its intro course. If having Haskell or any other academically "interesting" language is so important then they are doing a great disservice to their CS students. What are the chances this is true? I think it's much more likely that the MIT intro course language is either an uninteresting choice or very specifically chosen to be of interest to non-academics. Now, I don't think MIT is necessarily the be-all end-all in CS education, but is anyone prepared to argue they are worse than UPenn, which uses OCaml in a similar course? (I'm a fan of OCaml too, fwiw!)
- wyager 10y ago> Does learning Java keep you from learning CS concepts like pure functions and category theory? Dijkstra certainly thought so. http://www.cs.utexas.edu/users/EWD/OtherDocs/To%20the%20Budget%20Council%20concerning%20Haskell.pdf http://www.cs.utexas.edu/users/EWD/OtherDocs/To%20the%20Budg... > They may contribute actual production code, but probably not if it's Haskell. Not only can interns learn new languages on the job, but any student worth hiring probably knows multiple languages already. The argument here is that theory courses should be in a theoretically sound language; that doesn't preclude students from learning corporate-approved languages as well. For what it's worth, I picked up new languages in two of the internships I did in college. It never took me more than a week or two, and happened contemporaneously with me figuring out the codebase and dev environment. In at least one of those, which was a JavaScript codebase with many functional elements, having a strong functional background as well as a strong imperative background was what allowed me to comprehend it without too much effort. > then they are doing a great disservice to their CS students. I'm inclined to agree. This is, of course, a matter of opinion.
- dagw 10y agoI'm a fan of Haskell, but I think it being the intro CS class language is an educational fail. My Haskell classes helped me more with regards to becoming a better Java programmer than my Java classes.
- na85 10y agoIs that a statement about Haskell or an indictment of Java, I wonder?
- dagw 10y agoHonestly, a statement about Haskell. Haskell just makes certain core concepts about programming and computer science really obvious and clear. Also the discipline Haskell's purity and type system forces on you leads some pretty good habits that I try to keep in mind no matter what language I'm programming in (which these days is 90+% python or JavaScript).
- greydius 10y agoI would absolutely take an intern with Haskell experience and teach them Java.
- jimbokun 10y ago"Over my dead body" indeed.
- taway_1212 10y ago> It was kind of horrible because the professor for (at least one of the) intro classes reproduced cons, car and cdr from lisp and had us construct a bunch of data structures out of this monstrous java lisp hybrid. What a creative (if hardcore) way to circumvent a bureucratic requirement :)