this post was submitted on 19 Sep 2023
3 points (100.0% liked)

Hacker News

2171 readers
50 users here now

A mirror of Hacker News' best submissions.

founded 1 year ago
MODERATORS
top 1 comments
sorted by: hot top controversial new old
[–] TootSweet@lemmy.world 1 points 1 year ago

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.