Ask HN: How do you work in Programming language research?

19 points by Micoloth ↗ HN
I've always been interested in the theoretical side of Programming Languages. I've learned a dozen of them and built my own demo one.

I've always done this as a side project, but I'm often wondering if it's possible to start doing it full time. That would be great.

(For context: I have studied Maths, and worked as a SW engineer for the past few years, especially ML and now Data engineering. But, I'd love to get back to a more theoretical project at this point..)

The problem is, as far as I understand, the only people who work on PL research are: - At universities. But, the universities in my city/country don't offer many opportunities in this area... - At the R&D section in some corporation (eg Microsoft)

My question is, what are my options? How are all the maintainers/developers of the many programming languages around getting paid? Do you really do all this work in your free time, after having another full time job?

It appears there are not many opportunities around to get paid to do PL research... Am I missing some of them?

19 comments

[ 3.0 ms ] story [ 48.9 ms ] thread
> How are all the maintainers/developers of the many programming languages around getting paid? Do you really do all this work in your free time, after having another full time job?

I want to correct the assumption that may have led to this question little; programming language _research_ and programming language _implementation_ are generally two separate jobs requiring separate skillsets (that sometimes may overlap). Which one are you interested in doing? (both?)

Back when I was in search of a PhD placement, I wondered this as well. I've sadly never found a place where I could research programming languages.
If it's an existing language, companies may be employing people to work on it. E.g. if you want to work on Swift, go talk to Apple. Lots of people contribute to LLVM and GCC while being paid to do so. Search "company name" + "compiler".

If it's a language which doesn't exist yet that you want someone else to pay for, it's on you to make the case. In academia there's some funding game to play. In industry you probably have to build the thing first, at least to prototype level, then persuade people it's a good idea.

You'll probably also find cases where people do their day job for the first 40 hours of the week and their passion project for the next 40 hours, but ymmv maintaining that workload.

Remote / office tradeoffs as usual.

What is the goal of programming language research?
To make better languages
Are programming languages really a limiting factor for anyone?
Sure, writing bug-free code is not possible for most programmers. The language can reduce the occurrence of bugs.
I agree with the first sentence. I don't think in 2023 a new programming language will help humans in a significant way.
It doesn’t have to be a totally new language. Javascript is an example where there are multiple front-end languages. You can go as far as formally prove the implementation is correct, too. Language theory is an abstraction for mathematical logic and proofs, so it touches anything logical at all.
They're the limiting factor for everyone. At least, every programmer. It's the medium you think in.
I don't think in a language. I think about what I want to do and then write code to do it.
The language is supposed to tell you if your thinking is broken. If a program is a logical statement, and your logic is impossible, the program should not compile. Reading dead memory or having race conditions should not be possible, yet look at security vulnerabilities today.
It can be very insightful to understand the limitations of the language(s) one uses and the guarantees they can give
- A company that comes to mind is Strumenta.

https://strumenta.com/

They provide Language Engineering services, which include creating domain-specific languages, transpilers, editors, programming languages, compilers, interpreters.

- Companies that "incubate" languages, like Rust at Mozilla, Go at Google, TypeScript and C# at Microsoft..

- Zig and Bun could be considered projects with people who work on language research full-time.

As sibling says, Jane Street has employed people who have worked on implementing unboxed types[1] and stack allocation[2] in the OCaml compiler.

For Haskell, Well-Typed,[3] Tweag,[4] and Serokell[5] have employed people who have worked on GHC. For example, when Richard Eisenberg was at Tweag, he was working on implementing dependent types in Haskell which has led to new published research.[6] The work on dependent types is continued by other paid contributors.

[1] https://www.janestreet.com/tech-talks/unboxed-types-for-ocam...

[2] https://blog.janestreet.com/oxidizing-ocaml-locality/

[3] https://well-typed.com/blog/tags/ghc-activities-report/

[4] https://www.tweag.io/blog/tags/ghc

[5] https://serokell.io/blog/ghc

[6] https://www.youtube.com/watch?v=TXDivoj1v6w

(comment deleted)
Look up the blockchain Space there, both the layer one and layer two space.

Most specifically smart contracts. There are several open problems in the space especially research around having safe smart contracts.

Check out Move Language, Sway, Vyper, Bamboo(Ethereum), Motoko on ICP