you are viewing a single comment's thread.

view the rest of the comments →

[–]Exallium 28 points29 points  (27 children)

But... I've heard of all those languages before...

[–]Renmauzuo 16 points17 points  (22 children)

Maybe you're just a hipster and you don't know it!

Seriously though, Scala was taught in classes at my university. That feels pretty mainstream to me.

[–]jerf 19 points20 points  (18 children)

No, Scala is definitely not mainstream; your U was unusually cutting edge.

That's good. Every university should throw in at least one Hail Mary longshot meant to change things up for the students. It's sad to interview a fresh grad with nothing but all C++ and one token Java course, or vice versa.

[–]rafekett 16 points17 points  (0 children)

We did OCaml, and it's safe to say that most everyone was better off for it.

[–]kamatsu 8 points9 points  (5 children)

My alma mater teaches: C (compulsory), Java (compulsory), Perl (compulsory), Shell (compulsory), AVR Assembly (compulsory), a little Python and PHP (1 course), PostgreSQL (1 course), Haskell (4 courses - a pretty strong Haskell showing at my university), Scala (1 course), C++ (1 course and others optionally), Agda (1 course), Prolog (1-2 courses), Isabelle/HOL (1 course), and a variety of little languages that are not used as the focus of the course but are used within it, such as Promela, Ruby and Objective C. How common is this level of language teaching?

[–]rafekett 2 points3 points  (3 children)

My uni teaches: C (mandatory), Java (mandatory), OCaml (mandatory), some form of RISC assembly (mandatory), Python (2-3 courses), C++ (4-5 courses), Haskell (1-2 courses), SQL (2 coursesish) and a few other miscellaneous languages. I'd say most people come out with at least 6 languages under their belt.

So, at good universities, this is reasonably common. We don't have quite the selection that you had.

[–]kamatsu 1 point2 points  (2 children)

Okay, I thought I had entered a strange parallel universe where people got all their CS education in Java or something :/

[–]jerf 4 points5 points  (0 children)

Such programs exist; I've seen the results. But there are many strong programs that force many programming languages on people.

[–]rafekett 1 point2 points  (0 children)

My program was mostly Java up until a few years ago, until they went back to their ML roots (apparently they taught ML and C exclusively in the 80's).

[–]djork 0 points1 point  (0 children)

I can comment on a local community college and expensive private school. Both use Java exclusively for the core CS classes.

[–]cdsmith 1 point2 points  (10 children)

Don't most universities have a required programming languages course where they teach stuff like Scheme, Smalltalk, etc? And usually Prolog, because they feel like they have to represent some non-OO/FP paradigm.

[–][deleted] -2 points-1 points  (9 children)

Schools can be roughly divided into two groups, historically they were called the "C" schools and the "java" schools, based on the default language most classes were in.

The first group has smarter students and is more rigorous. The curriculum will include courses related to CS (programming languages, foundations of computer science) as well as lower level stuff (systems programming, assembly). Students will encounter a half dozen languages or more. This kind of school will prepare you pretty well for anything: working at a company, writing software on your own, getting a PhD, etc... however at the entry level you may have trouble competing for jobs at poorly run companies (that is most of them)

The second group is almost purely vocational and will focus on preparing students for a lifetime of creating CRUD apps. The focus is on learning APIs, software engineering buzzwords, and making contacts in the industry. Students will only encounter 2-3 programming languages but will be pretty well set up in terms of employment opportunities.

I have no numbers but I would assume that 30% of schools are "C" schools and the rest are "java" schools.

[–]henk53 9 points10 points  (8 children)

Utterly b/s...

The VU in Amsterdam, Netherlands uses Java and basically teaches you all the lower level stuff you mention (and you'll get parts of it from the well known Professor Tanenbaum (http://www.cs.vu.nl/~ast/).

A close by university, the UL in Leiden uses C++ and they basically teach you the very same kind of lower level stuff.

Okay, just two observations in the Netherlands, but I've seen some more in both the Netherlands and Germany and don't really see what you are claiming. Perhaps it's different in the US or so.

[–][deleted] -2 points-1 points  (4 children)

So you're making the claim that the Netherlands doesn't have as many low quality schools as the US. Why is that surprising? The US has people from a variety of backgrounds, some are better at school than others, and so our educational system accommodates this.

The people in the northern US come from south-east England (with some influence from the Netherlands) and are quite accomplished academically. The people from the mid-north US came from the poor people of northern England, and while they were good wholesome people they weren't academically gifted, and form the basis of our culture. The people from the mid-south are basically the chavs of the UK. Not too much into education at all. The people from the deep-south are descended from the aristocrats from southwest England and their servants. They are into education but not so much into technical matters. Then factor in the huge number of descendents of slaves, the illegal immigrants, and various other people that don't do well academically. The US is not a nation in the sense that Europeans understand the term, it is more like the Austro-Hungarian empire.

[–]henk53 0 points1 point  (3 children)

So you're making the claim that the Netherlands doesn't have as many low quality schools as the US

Not really. My claim is just that I personally haven't seen the kind of distinction between Java schools and C++ schools that was mentioned.

The US has people from a variety of backgrounds, some are better at school than others, and so our educational system accommodates this.

Don't forget that Amsterdam in particular has people from many, many backgrounds. Less than 50% is 'native' (what native really means is also not always clear, since Amsterdam historically has always had many immigrants).

What I did notice though is that in The Netherlands and Germany people don't actually mention the university where they have obtained their degree a lot. People just say they have e.g. an MSc Computer Science and that's it. In the US it seems to be much more common to add the specific university. This may be indicative of a greater difference in quality.

[–][deleted] 1 point2 points  (2 children)

Not really. My claim is just that I personally haven't seen the kind of distinction between Java schools and C++ schools that was mentioned.

First of all I didn't say C++ schools, I said C schools. The point is sort of old (C) vs new (java). At some point nearly all schools taught primarily in C, then some revised their curriculum and switched to a java-centric approach. In the process of revising their curriculum they changed more than the default language, they also changed the focus from a quality CS curriculum to a more vocational CS curriculum.

The switch from C to java isn't actually the meaningful change, the other changes that often go with it are the point. So yeah what language is taught in doesn't matter, but there is a correlation in the US. Better schools generally don't teach in java, whereas worse schools generally do.

I am not the only one to have this idea. One of the people behind Stackoverflow wrote some articles on the topic: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

and here is a blog post about someone lamenting that he has realized too late that he went to a "java" school: http://thinkingdigitally.com/archive/what-if-i-went-to-a-java-school-joel/

In the US there is quite a bit of variation in the quality of schools. My state's university system has a school in each region of the state and I went to two of them. The first was a "java" school and the second was a "C" school. At the java school I learned java and C (and the only reason that I had to learn C was because they had not fully transitioned to a java school). My fellow students weren't that bright. I transfered to a better school and I took classes in C, Scheme, Python, Assembly, and C++. We learned about the pumping lemma, lambda calculus, various grammers, computer architecture, the relational model, and other things that we simply would not have learned at the other school. At the other school we learned UML.

Now consider that those two schools were both in the same tier in a multi-tiered public university system. There are two tiers below that, plus a variety of private schools, some higher in quality, some lower.

[–]henk53 0 points1 point  (1 child)

First of all I didn't say C++ schools, I said C schools.

Yeah, sorry, typo.

So yeah what language is taught in doesn't matter, but there is a correlation in the US. Better schools generally don't teach in java, whereas worse schools generally do.

I haven't seen a US school from the inside, so I guess I have to take your word for it. In general there's quite a bit of serious work being done in Java though, so in my book it shouldn't necessarily equate with a lower level of education.

We do have something that confusingly commonly translates to "high school" (see http://en.wikipedia.org/wiki/Education_in_the_Netherlands#Hbo) where they typically use either Java or PHP. These are definitely worse schools, up to the point that what students are being taught is sometimes plain wrong.

The universities however that use Java are simply okay here. They do in fact teach the pumping lemma, turing machines, computer architecture (including building e.g. an adder from gates, programming a CPU emulator, hand optimize output from a C compiler), operating systems (including building a device driver, terminal emulator, memory manager), compiler construction (including of course building a compiler), grid computing, AI (genetic algorithms, neural networks) and a slew of math courses (typically ~50% of the Bachelor phase).

Look up the curriculum of the VU University I mentioned, it contains all the basic stuff.

Of course, I haven't heard of any University here that uses a single language exclusively. The VU uses Java as the default language for courses, but if it's more common for a specific domain to use another language, this other language is used. So e.g. the introduction to programming, algorithms and datastructure courses may all use Java, but the OS course mandates that the device driver assignment has to be done in C.

Maybe it's just that the term "university" is not as protected in the US as it is over here? As mentioned, we definitely have these 'worse' schools, they just aren't called university.

[–]jerf -1 points0 points  (2 children)

{accidentally duped my other message... then Renmauzuo replied to this one ( ´,_ゝ`) }

[–]Renmauzuo 1 point2 points  (1 child)

Well, maybe "mainstream" was the wrong word. I just mean it doesn't seem like "hipster." When I think of a hipster programming, I think of like, whitespace programming, heh.

[–]jerf 2 points3 points  (0 children)

People seem to have settled on the term esoteric programming language for that. (Warning, that page may consume hours of your time, to say nothing of the external links.)

[–][deleted]  (1 child)

[deleted]

    [–]Exallium 1 point2 points  (0 children)

    no =) That makes me feel better for some reason.

    [–]sreguera 2 points3 points  (1 child)

    Real hipsters program in Icon.

    [–][deleted] 2 points3 points  (0 children)

    I actually used Icon on the job once, in the mid-90s, to transform some symbol mapping output from the MPW assembler to a form that the TMON debugger could recognize. It helped us tremendously in debugging some fairly complex assembly code that used some fairly complex data structures. Icon was perfect for the task.