← Back to context

Comment by neilv

1 day ago

I remember when my university had a relationship with Sun that let us see Java (Oak) early.

And then -- given that Java was smart, OO, in the Web browser, going big, and free -- built an intro CS curriculum around it. Like many universities.

That history of universities promoting the adoption of Java, and training a generation of Fortune 500 corporate coders in it, has not gone unpunished.

Universities should also have adjusted: Java has been commercial for long now, and there are many other popular, less commercially-aggressive programming languages that would fit curriculum nicely: Python, Golang, etc.

  • The top programming languages by popularity or job openings seem to be a toss-up between python, JS (or things that compile to JS), and SQL. Other less used languages might lead to steeper career advances - there's still a market for COBOL programmers for example with more demand than supply - but that's not what I would like a college to start out with as a first language.

    As a teaching language for top-end CS degrees, going python-first would be an experiment. Theory says it'll turn out badly; in practice I'm not sure especially if there is an emphasis on good coding practice. Python for a degree with a bit of programming but not full CS is in my opinion the correct choice, but that doesn't mean we should ban it for CS degrees.

    If I had to choose a language for teaching a module on object-oriented programming, I'd go with golang, not Java or C#. Not because of licences, but because we've learnt things about subclassing and exceptions and design patterns to get around language restrictions that golang mostly fixes so it's easier to pick up the spirit of modern OOP.

  • golang should not be on the list of corriculums. Neither should any language owned by a corporation.

    The only language that can be on the list are open standards language that has multiple implementations, and is "free" (as in libre).

    Not to mention it should be a language that demonstrates an idea - such as python for procedural, haskell for functional, and LISP-likes for well, lisps.

    • They shouldn't be teaching golang because it's a terrible blub language, not because of any concern over the license which is fine.

    • The Google version of Go uses a 3-clause BSD like license. There are other implementations besides the one maintained by Google, and there is a complete specification for the language freely available. The language is not owned by Google.

      10 replies →

    • The idea that go demonstrates is “this is the language to get shit done in”.

      I actually think Go is a great language to teach programmers. It has a good standard library. It has a really easy way of turning your code into a library (this is great to get students to learn how libraries work and the risks associated with them by depending on each others code).

      A ton of new software that’s actually making money or is used as core infrastructure is written in Go. The world’s largest CA is in Go. Kubernetes is in Go.

    • Do you know who controls Python, Haskell, Lisp or C++?

      The Linux kernel is corporate and has one implementation. Is it safe to use?

      3 replies →