Hacker News new | ask | show | jobs
by reuven 10 days ago
Interesting -- I still think that Python is an easier onramp than TypeScript for new developers. But given the popularity and depth of JavaScript, and the clear advantages (and popularity) of TypeScript in serious development, that's not a bad prediction.
3 comments

One thing that Python has that virtually no (well okay groovy and nim do too) other programming language has is whitespace for blocks rather than visible braces (or even BEGIN/END ala Wirthian languages). That's something much like line numbers in classic BASIC that introduces a roadblock when learners move on from it.
I don't know if it's that hard for people to go from Python (where whitespace is significant) to languages that use {} and the like. But hey, people only hire me when they want people to learn Python, not when they're moving away from it. :-)
js is a web scripting language that can be strong-armed into running scripts through a runtime.

Python is a general development language that can be used to build servers and web pages, but does a lot more besides.

They're not really comparable.

Having said that - I wouldn't be surprised if Python drifts towards stronger typing, although it will probably remain optional.

To what extent do you see Python drifting toward stronger typing? I ask because after 10 years without touching a single line of Python, I recently worked on a Python code base and I was very positively surprised by the static typing that's available in the language now. Not even necessary to to reach for additional tooling like JS and TS.
Drifting? I think it's there. basedpyright is awesome and super fast. Our latest services are all CI gated by type checking. Early in my career you'd hit so many dumb errors running your code - NoneType, attribute, value, and type errors. I'd say that's been cut over 95%.
How are you getting static typing without additional tooling?
I mean, of course there is tooling involved. But it's part of the language. Unlike TypeScript which is a superset of JS and requires transpilation.
What tooling are you thinking of that’s part of the language? I don’t think CPython ships with a type checker, does it? People typically use mypy or pyright and neither or these are part of the language.
Nowadays a lot of web servers are written in js, for better or worse
Both of these started as scripting languages
Frankly, I prefer Python because I find it more elegant. However, in my industry bubble, I see a clear drift toward TypeScript.