It’s missing the big one: Stop looking down on people who implement programming languages. The PL community has grown increasingly detached from the compiler community over the last three decades and regards people who actually design and implement programming languages as mucky tradesmen who are getting dirt all over their nice clean formalisms. Impact for PL research should mean one thing: getting the ideas and techniques from research into programming languages and tools that people use to solve real problems. Some PL researcher try very hard at this but often find themselves struggling to get grants or being gently pushed out of academia.
Impact for PL research should mean one thing: getting the ideas and techniques from research into programming languages and tools that people use to solve real problems.
Somewhat agree, feedback from users outside the scope of a single paper or a project is better science. Only having project members evaluate their creation allows for a lot of bias. As a counter example Cyclone beget Rust, but making a language is just a lot of hard work that can’t be circumvented given our current software stacks. There are techniques, like hosting on top of and extending an existing runtime (JVM, BEAM, Js, Python, etc) or making internal DSLs in a host language for even more interop.
What are your thoughts on Jetbrains MPS or Racket for exploring languages in ways that can allow them to tie into existing ecosystems?
You have experience with a well-funded industrial CS lab, it must take more than money to get a language from the lab into something that practitioners use, what is it?
What are your thoughts on WebAssembly? What is preventing more reach for new research languages?
Designing languages is a vanity activity, no research involved (although there lots of claims about power, usability get made, supported by ego and bluster).
You’re right, of course. At least, more than half right in my personal estimation, and I’ve spent some time wandering in the PL research mines. The places where you’re wrong are the really interesting places, but they are small islands in a blustery sea of dubious, overstated, generally uncontested claims. Bad money drives out good, as they say. Or, bathwater drives out babies? Something like that.
But your definition of “research” is so narrow that it’s at odds with standard usage, sorry to say. Science is just very political and ego driven, and “computer science” is barely even science. Industry has good reasons to mostly ignore it.
Ah. Well, I can’t really promise that my own idea of “interesting” PL research is at all equivalent to your idea of “real” PL research, but here’s a wee handful of influential ideas, off the top of my head:
structured and procedural programming (FORTRAN, ALGOL, Pascal… etc)
“objects” (Simula, Smalltalk, a few commercially successful languages you may have heard of)
actor semantics for parallel computation (Act 1, CSP, Pi-calculus, Erlang…)
logic programming
algebraic data types
Hindley-Milner type checking
… I think I’d better stop before I get carried away. All began as academic projects, just like basically all the underlying ideas in our immature little field that didn’t get inherited from our neglectful parents, electrical engineering and mathematical logic. Academia may innovate very little relative to all the hot air it produces, but industry simply does not innovate, as a rule. (It sometimes refines, though, and that’s valuable. Also valuable as a great proving ground, although there are some deep problems with that too; for example, like Kuhn observed, epistemic change happens on generational time scales.)
Much has been gained by the study of PL design, the most impactful one is the notion of Safety and Soundness. There is so much more, but I won’t enumerate them all.
Are you saying that all the languages that need to be, already exist? Would you want to dissuade someone from designing a new language?
There has been very little meaningful study of PL design, just lots of proof by ego and bluster.
Yes, it is possible to prove stuff about suitably restrictive languages. The only impact of this research appears to have been advancing the careers of those involved.
If somebody wants to invent a new language, that is their business. But let’s not pretend it’s anything other than a vanity activity, unless they do experimental research to back up any claims of usability, readability, maintainability, etc.
It’s missing the big one: Stop looking down on people who implement programming languages. The PL community has grown increasingly detached from the compiler community over the last three decades and regards people who actually design and implement programming languages as mucky tradesmen who are getting dirt all over their nice clean formalisms. Impact for PL research should mean one thing: getting the ideas and techniques from research into programming languages and tools that people use to solve real problems. Some PL researcher try very hard at this but often find themselves struggling to get grants or being gently pushed out of academia.
Somewhat agree, feedback from users outside the scope of a single paper or a project is better science. Only having project members evaluate their creation allows for a lot of bias. As a counter example Cyclone beget Rust, but making a language is just a lot of hard work that can’t be circumvented given our current software stacks. There are techniques, like hosting on top of and extending an existing runtime (JVM, BEAM, Js, Python, etc) or making internal DSLs in a host language for even more interop.
What are your thoughts on Jetbrains MPS or Racket for exploring languages in ways that can allow them to tie into existing ecosystems?
You have experience with a well-funded industrial CS lab, it must take more than money to get a language from the lab into something that practitioners use, what is it?
What are your thoughts on WebAssembly? What is preventing more reach for new research languages?
Designing languages is a vanity activity, no research involved (although there lots of claims about power, usability get made, supported by ego and bluster).
You’re right, of course. At least, more than half right in my personal estimation, and I’ve spent some time wandering in the PL research mines. The places where you’re wrong are the really interesting places, but they are small islands in a blustery sea of dubious, overstated, generally uncontested claims. Bad money drives out good, as they say. Or, bathwater drives out babies? Something like that.
But your definition of “research” is so narrow that it’s at odds with standard usage, sorry to say. Science is just very political and ego driven, and “computer science” is barely even science. Industry has good reasons to mostly ignore it.
I think that slightly less than all would be more accurate.
I’m interested to know what you think are the islands. Always on the look out for real research.
Ah. Well, I can’t really promise that my own idea of “interesting” PL research is at all equivalent to your idea of “real” PL research, but here’s a wee handful of influential ideas, off the top of my head:
… I think I’d better stop before I get carried away. All began as academic projects, just like basically all the underlying ideas in our immature little field that didn’t get inherited from our neglectful parents, electrical engineering and mathematical logic. Academia may innovate very little relative to all the hot air it produces, but industry simply does not innovate, as a rule. (It sometimes refines, though, and that’s valuable. Also valuable as a great proving ground, although there are some deep problems with that too; for example, like Kuhn observed, epistemic change happens on generational time scales.)
These are interesting ways to think about programming.
Is interesting their only benefit? If half of them never happened, how much difference would it make in practice?
Much has been gained by the study of PL design, the most impactful one is the notion of Safety and Soundness. There is so much more, but I won’t enumerate them all.
Are you saying that all the languages that need to be, already exist? Would you want to dissuade someone from designing a new language?
There has been very little meaningful study of PL design, just lots of proof by ego and bluster.
Yes, it is possible to prove stuff about suitably restrictive languages. The only impact of this research appears to have been advancing the careers of those involved.
If somebody wants to invent a new language, that is their business. But let’s not pretend it’s anything other than a vanity activity, unless they do experimental research to back up any claims of usability, readability, maintainability, etc.