Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yeah, languages are "easy" to learn when you already know a few from different paradigms. I can skim through the docs of an unknown language and know enough to start writing in it quite quickly. What takes time is to also learn all the tooling, not just the syntax. How do you build it, debug it, deploy it, what frameworks and libraries should you use, and spend time to learn them.

Take javascript, for instance. If you're used to a C style based language with some functional patterns, jumping into a codebase and understand it is quite easy. But around the language itself you also need to know stuff like npm, webpack or similar, how the browser works, http concepts etc etc.

Or python, need to deal with pip, virtualenvs, perhaps poetry, need to understand the limitations to concurrency because of the GIL and how it affects deployments, perhaps django or some other framework, etc.



Right. The languages themselves are usually pretty straightforward; 80% of them have a "common DNA" as most other languages, which an experienced programmer can pick up quickly. The ecosystems, on the other hand, have a lot less commonality, though more recent languages like Rust and Go are bundling more of that stuff so it's less chaotic than C and JavaScript.


Even that is not a problem. Tooling and deployment are the most boring parts of any language.

What's more interesting and what's more difficult to find shortcuts for is understanding the spirit of the language, knowing its weaknesses, bottlenecks and inner workings. The threading model, what's done at compile time and what's done at run time, etc etc. There are so many things you need to learn before you can judge any given language relative to others that you know.


They’re also easy to learn when all you want to know is syntax. What about:

* dependency management and releases

* deploying and running in prod

* footguns that affect performance or security

* libraries for helping development

* language-specific features

etc




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: