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

There's not much theory (unless you want to do research). Common practical topics all base on history/cruft and "current vector"(like C, JavaScript, C++, Java, Python). In the end ability to solve problem wins and it's based on ecosystem size/polish mostly.

If you want fancier designs then look into less mainstream languages (elixir, pony, haskell, swift, rust, kotlin, ocaml, zig, julia, lobster). All of them have some innovations that try to solve common problems faced in (specific) software development or languages.

Generally tradeofs are between speed(runtime, compile), size, correctness and usability.

There are kinda two approaches to programming langs, one from CPU perspective(C) and other from math perspective(Haskell, Lisp, Prolog). There are also pragmatic langs for biulding bigger systems where readability and pragmatism is king (Java, Ada, Go) There's also handling of async/parallel stuff that's not well solved yet AFAIK but most developed is BEAM VM and Haskell/Pony.

To understand CPU perspective I can recommend book "CODE". Other perspecive probably SICP course.

I am average dev so maybe some lang researchers can provide more info.



For an "average dev", you really nailed it. Great post.

> In the end ability to solve problem wins

Absolutely true. Languages are tools. They're not religions, they're not rock bands or sports teams, they're just tools. Pick which one works best to get the job done. Not which one is best for "programming in general", whatever that is, but which one is best for the program you're trying to write. That includes ecosystem (library, IDE support, etc.), your own familiarity and that of your coworkers, existing code base that could be re-used, etc. That doesn't always mean "pick the familiar language", but it means that you need to have fairly compelling reason to not do so.

Which, I guess, is to not answer the original question. If you want to study programming language theory or design, go for it. Enjoy! But if you're a working programmer, don't get lost in the theory. In the end, ability to solve problems wins.


Thanks for the book recommendation. Just bought it.


You are welcome. Just to clarify now for others I meant "Code: The Hidden Language of Computer Hardware and Software" (couldn't find exact title on mobile)




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

Search: