In the industry, people are moving en-masse to Kotlin, Swift, TypeScript and Go. Like if you look around at product companies, 75~80% new things are written in these.

Yet we are still teaching Python/JS/C/Java to beginners. This is creating a bit of a problem here. Read on.
When I use `?:` or `?.let { } ` type of syntaxes in Kotlin it comes so naturally to me, because of my years spent in Java, understanding the null-safety problems, and the long chunks of code to work around them, that these 'feel' idiomatic.

For beginners, it is very different.
As someone who as been teaching programming and onboarding developers at bigger teams I see -

Those who have made websites in JS being put into large TS projects
Those who are still grasping Java being put into Kotlin projects (android or backend)
Php/Django folks starting Go
In all these cases, for experience developers, it is the most sensible transition. I started using TS after 4-5 years of JS. Kotlin after 6 years of Java. I could literally see how these modern languages fill in the gaps of the older ones.
But those who are still grasping those older languages and have spent 1-2 years only with them, it seems very un-idiomatic and un-natural the patterns available in these new languages.
The worse thing is TS, Kotlin, largely Swift too, are taught using 'analogies' with those lang
And that's where things become even more complicated. I think we can teach people TS, or Swift or Dart or Kotlin very easily as their first language. But most courses, and documentation are written by people who have come here from an older world.
You can follow @championswimmer.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.