3 ms·
This article’s introduction includes: > Diving deeper into program language theory is a great way to grow as a developer. But does anything in this article re
by pansa2 7y ago
This article’s introduction includes:
> Diving deeper into program language theory is a great way to grow as a developer.
But does anything in this article really count as programming language theory? I’ve always considered PLT to mean things like type theory and formal semantics, which are quite separate from the practical implementation of compilers.
I’ve been put off designing a programming language, even a dynamically-typed scripting language, because I’m just not that interested in PLT. I’m much more interested in the subject of this article (the implementation of compilers and interpreters) than in the math behind type systems.
Do you think it’s possible to design a successful language without knowledge of PLT? Or should I stick to working on compilers for existing languages?
- dgb23 7y agoAs someone who also just wrote toy compilers/interpreters: I think it is a valuable thing to just dive into a subject that quite obviously interests you so much as long as you are humble about it. At some point you change/tweak/break something. Then your humble instinct will say: "I bet this is a common problem, let me research it". And so you get deeper understanding of what you do in a fun and tangible way. If that at some point means you get to read PLT about type theory and formal semantics, then so be it. But at this point you'll know much more about the 'why' and can assess/relativize the purpose, importance and relevance of a particular subject.
- tomstuart 7y agoI think PLT is generally broad enough to include anything related to making (vs using) programming languages — the more practical topics like compiler/interpreter construction, VM implementation etc seem to obviously qualify despite not necessarily being very formal. Concretely, you can definitely design and implement your own dynamically-typed scripting language without knowing anything about type systems or formal semantics.
- zzzcpan 7y agoProgramming language design for humans is a completely different thing from PLT. It's more about usability, HCI, psychology. And if by success you mean popularity or any metric that includes productivity of the language, understanding of usability will definitely help you there, but knowledge of PLT will almost certainly hurt it, since it makes you think that a lot of PLT ideas are acceptable and usable.
- noelwelsh 7y agoIf you look at the trajectory of most popular languages they are incorporating more "PLT ideas". Lexical scope, type systems, etc.
- dropit_sphere 7y agoOh, goodness, yes. Remember: BASIC was successful! It depends on your criteria for "success," of course, but creating languages has been one of the most rewarding aspects of my interaction with computers over my life, don't miss out!
- bpyne 7y agoYes, it's possible. You'll reach diminishing returns in the language value much quicker without some background in types and semantics. But that point might come long after you achieved your goal. So, have at it and enjoy exploring.
- chrisseaton 7y ago> But does anything in this article really count as programming language theory? It's a casual magazine - give it a break. > I’ve been put off designing a programming language, even a dynamically-typed scripting language, because I’m just not that interested in PLT. Many (most) successful languages were designed by people who either don't know anything about theory, or who do but don't chose to employ it. It doesn't seem to be a showstopper in practice.