3 ms·
On a diffrent topic, I wrote a bit on depth vs. breadth (but it was more of a book topic than language): https://news.ycombinator.com/item?id=17128854 https://n
by oneplane 8y ago
On a diffrent topic, I wrote a bit on depth vs. breadth (but it was more of a book topic than language): https://news.ycombinator.com/item?id=17128854 https://news.ycombinator.com/item?id=17128854
For programming languages it boils down to: know the abstract stuff across most/many languages, but drill down on a small amount of languages/frameworks to be more productive.
I'd say: get to know Java and Python in-depth, select a few frameworks to know well (as languages by itself aren't the most useful thing when you are developing complete applications without reinventing the wheel). Java and Python have the advantage of a rich legacy, long term development, good cross-platform availability and broad support.
If you are specialising in the direction of high-efficiency or platform-specificity, I'd suggest Java + Elixir or Java + Swift.
I'd regard Scala and Kotlin as "Java-alternatives" for when you want to do Java without doing Java. Same goes for Groovy (and Grails framework). It's not a bad thing but doesn't automatically yield better results or gets you better understanding.
Keep in mind that languages by themselves are only useful if you have a supporting framework and knowledge of abstract programming concepts (which are language-agnostic).
- vorg 8y agoWhen you want to "do Java without doing Java", it's good to use alternatives that have some present or like future adoption, such as Scala and Kotlin. You won't get that with Apache Groovy and Grails -- virtually no-one's upgraded to Grails 3 or started new projects in it, and the Grails 2 plugin ecosystem has almost died.