- cross-posted to:
- golang@lemmy.ml
- golang@programming.dev
- hackernews@derp.foo
- cross-posted to:
- golang@lemmy.ml
- golang@programming.dev
- hackernews@derp.foo
There are two kinds of languages. Those that fix their mistakes and those that don’t.
Python designers made mistakes early on in its development. This is no indictment of Python. Mistakes and lack of foresight is inevitable. What’s important is that Python fixed a ton of those mistakes in a significant backwards-incompatible version bump from version 2.x to 3.x. It got a lot of flack for it. There was a period of time when you had to tell people “yeah, Python 3 isn’t quite ready yet; use Python 2 for now.” But Python’s a better language for having had the courage to fix problems even if it meant backwards-incompatible changes.
Meanwhile, most of java.util.Date were deprecated in 1997 and it’s all still in the standard library. A disturbing number of Java apps out there are a still a mix of java.util.Date, java.util.Calendar, JodaTime, and java.time.*. (And don’t forget java.sql.Date.)
It’s gratifying to see that Go is taking the path of fixing their mistakes even when backwards-incompatible changes are involved. And they have change previews to ease the transition. Too bad we get Go back in 1995 rather than Java.