Skip to content

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

19 pointsMicoloth18 comments
On 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?

Comments

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?)

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

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.

Jane Street has a compilers team who do OCaml: https://signalsandthreads.com/future-of-programming/

- 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.

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.

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

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.

Of course, for example, if you're in need of an automated theorem prover, your only options are Coq, Agda, Isabelle/HOL etc for now all of which come with very serious trade-offs which leads to the development of newer languages such as Lean etc.

It can be very insightful to understand the limitations of the language(s) one uses and the guarantees they can give

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.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.