← Back to context

Comment by joaomacp

1 day ago

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.

  • Why not C++ though? Learning C++ before Python helped me retain a bias for good programming practices.

    • ...C++ teaches good programming practices? I thought it mainly teaches you how to be paranoid, and how to keep track of the bizarre interactions of 20 bespoke historical features.

      2 replies →

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.

    • > there is a complete specification for the language freely available.

      and who has the ability to make changes to this specification?

      Not to mention that there's really no second implementation of go for the specification, which means that google is realistically free to make updates to it that they feel necessary, and there would be no 2nd party that could object to it.

      1 reply →

    • Yes but it is still controlled by Google and has not been moved to a foundation? Like for example the Rust Foundation.

      6 replies →

    • I like Go and you're right but I agree with the poster above, there's something to be said about De Jure and De Facto distinctions in Google "owning" Go.

      Why not split the difference and teach Luau in the Roblox environment instead? /s

  • 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?