3 ms·
> In hindsight I think Python needed to stand on its own right, not just as a better Perl, but yet here we are. It has. That just wasn't where the foothold was
by zahlman 11mo ago
> In hindsight I think Python needed to stand on its own right, not just as a better Perl, but yet here we are.
It has. That just wasn't where the foothold was. Python has had several moments propelling it to its current position. "The early days" absolutely did not set an inexorable machine in motion. It took further boosts from fields like data science, machine learning etc. that would likely never have touched Perl even if the Perl 6 story had turned out much better.
> I think hindsight will show we should have considered the defects of Python more deeply.
There are many. I personally find that many of the commonly proposed ones are not that important, while everyone else is ignoring much more serious things. But so it goes. You can say these sorts of things about all the popular languages. "Although practicality beats purity."
> I know the lispers saw them but no one listens to them.
Lisp has had enormous hidden influence on how people write code in other languages, honestly. SICP is a revolutionary work. It just turns out that homoiconicity is not hugely useful the large percentage of the time that you don't need metaprogramming, and that the structure of the code is harder for humans to grok when it isn't explicitly marked with a variety of punctuation (rather than just parentheses).
> If you survey the language landscape now, a language can be much better than Python but never get the chance Python did just because it happened to look a bit better than Perl. Which is absurd to me.
This falls in the category of life not being fair. If you have your own ideas about how to make a Python-killer, I'd encourage you to pursue them anyway.
- zephen 11mo agoAll true. But also: > It just turns out that homoiconicity is not hugely useful the large percentage of the time that you don't need metaprogramming, It turns out that metaprogramming, like anything else, has many possible levels, and that for the shallower levels, Python's reflection, magic methods, and metaclasses suffice without too much heartburn.
- zahlman 11mo agoHonestly I feel like even metaclasses are overused, where class decorators would often suffice.
- zephen 11mo agoThat's probably true, but there are a few reasons for it: - Face it, decorator syntax is kinda ugly - History. Decorator syntax is new - For things which will be repeatedly subclassed, the metaclass automagically tags along But it's almost certainly easier for a maintainer to look at a decorated class and figure out what's going on.