Live data from Hacker News

Ask HN: How to study programming language theory as a non CS student?

news.ycombinator.com

21–28 of 28 posts

Re: Ask HN: How to study programming language theory as a non CS student?

#22
I personally started with The Seasoned Schemer, but I would recommend starting with SICP instead.

The best way to get into programming languages is learning different languages, play with them and write relatively complex applications in them. LISP and C are the most fundamental languages that will give the aha moments. In addition to those, I would learn Haskell and perhaps some object oriented language.

Re: Ask HN: How to study programming language theory as a non CS student?

#23

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 so…

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.

Re: Ask HN: How to study programming language theory as a non CS student?

#25
post #16

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 so…

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)

Re: Ask HN: How to study programming language theory as a non CS student?

#26
post #13

> How to study programming language theory I think the information you're looking for would probably come under the umbrella of "Programming Language Design", not "Programming Language Theory" (PLT). Discussions on language design would include topics such as object-oriented vs functional programming, static vs dynamic typing and, importantly, language usability. However in my experience, PLT is almost entirely conce…

> However in my experience, PLT is almost entirely concerned with academic research into the properties of highly-advanced type systems.

The Brown PLT group [1], responsible for the Racket programming language in particular, is a notable counterexample. But it's still a shame that I can't give any other counterexamples. (I used to joke that everything PLT but not type theory comes from the Brown PLT. It sounds no longer funny.)

[1] https://cs.brown.edu/research/plt/

Post reply on HN