- cross-posted to:
- technews@radiation.party
- cross-posted to:
- technews@radiation.party
There is a discussion on Hacker News, but feel free to comment here as well.
So … Loved and Brown languages are probably where it’s at.
Not sure I’m right about this, but according to the article there are only two of these … Python and Scala … which tracks.
C# is also a loved and brown language. I’ve personally enjoyed working in it the past 9 years and see quite a few ‘legacy’ projects of 10+ years old. These projects do get the occasional refactoring but overall I still see new employees get up to speed with them relatively well.
It’s nothing amazing but in general pretty pleasant to express yourself in, especially for the more enterprisey projects. I do not really see many people mention it as much in discussion threads though.
Can’t speak to Scala, but I would imagine some of that is to do with the fact that despite being around for a long time, Python is constantly being updated and added to. It feels new every release, and it’s wide package ecosystem means there’s always something new and handy to do what you want.
Other languages of course also evolve but somehow Python threads the needle a little better. No matter how much junk you slap into C++ it still feels old even though you’re using the latest release. I say this as someone who primarily developed with C++ for several years.
Apart from new packages (which seems like a not insignificant part of it, as you say) … has the core python language really evolved that much over time? The type annotation system would count as a heavy piece of evolution, but other than that I’d guess the roll out of new features hasn’t really transformed the core language over the years … ? Is there a chance that the core language has just aged better over time?
Yeah, I’d say barring packages, there’s a couple of other things that go into it:
- Core language updates, which are more rare but do happen, like the walrus operator or match case statements, or like you said with typehints (though typehints are somewhat of a combo of multiple things), f strings…
- Standard library features, like asyncio, and million other random little things
- Language tooling. Python didn’t always have pip and also recently added pyproject as a standard
And a possible 4: runtime changes. I suspect this will become more and more apparent and important to the average user, with all the performance updates that have been coming to CPython interpreter
Yea … all good points … still I’m thinking that the “threading the needle” is in many ways attributable to the core language and design philosophy standing the test of time (so far).
For sure; good decisions early about core design and about how to evolve are the foundations on which all else is built.