Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Amusingly, I think his dig at the programming language community actually underscores something that I really love about academia and that I think is virtually unique: you can focus on things that are not immediately practical just because they're elegant or beautiful. It's awesome. I couldn't imagine much room for it in industry (although it's not entirely impossible).

Unfortunately, it also seems surprisingly rare even in academic CS. Certainly nobody I know at Berkeley operates this way :(. Maybe it's better in the mathematics department. For me, that would be the main draw to academia: being able to not worry about short-term usefulness and not needing to worry about marketing my work to the average programmer.

Besides, those "esoteric abstractions"? They solve real problems. In surprisingly simple ways. Better than existing solutions. The only reason that "real software developers" don't benefit is that they aren't willing to learn them. And it is not--and should not be--the responsibility of the PL theory community to get the average programmer up to date. And, even so, some people are really trying. It brings to mind the usual saying about horses and water.

Also, if I may make an observation: it seems his thoughts on PL design broadly reflect the philosophy of Google in general. This is just reinforced by the designs of Golang and Dart, as well as the promotional material surrounding the languages (presentations and the like). I personally think that this almost borders on anti-intellectualism: they seem to imply that something created by ivory-tower academics with an understanding of math cannot possibly be useful in the real world; only real software engineers™ make practical tools.

And that is probably the main reason that I would choose a company like Jane Street over Google any day :P.

Yeah, I'm probably more annoyed by this than it's worth. It really helps to lay my thoughts down on paper, and I still haven't started that blog I keep on considering. So HN will have to be my confidant for now.




As an academic/industrial researcher* in the programming languages community, I agree with Matt. And who do you think makes up a vast majority of Google's PhDs anyways? That's right, PL researchers who want to do do real work and solve real problems (e.g. Jeff Dean).

> The only reason that "real software developers" don't benefit is that they aren't willing to learn them.

This is a stupid response: its like saying, "users are just stupid, fix the users, not the device!" We are simply not willing to listen to what their real problems are. We aren't solving their problems, so why should real developers care about us?

> And it is not--and should not be--the responsibility of the PL theory community to get the average programmer up to date.

Does the PL theory community actually cared about programmers? There isn't much empathy on both sides.

> Also, if I may make an observation: it seems his thoughts on PL design broadly reflect the philosophy of Google in general.

If you are going to attack something on hackernews, please give at least a few details.

> I personally think that this almost borders on anti-intellectualism: they seem to imply that something created by ivory-tower academics with an understanding of math cannot possibly be useful in the real world; only real software engineers™ make practical tools.

Why is this so weird? You know, the ivory tower's output is super cutting edge research + people. They aren't supposed to be making practical tools.

* disclaimer: I don't work for Google, but I do work for Microsoft.


> The only reason that "real software developers" don't benefit is that they aren't willing to learn them.

Willingness is probably not the problem. Can you provide an example of such an "esoteric abstraction"? I am pretty sure, you will get an extensive list of downsides in the comments.


Monads are a pretty general encapsulation/sequencing abstraction being useful for more than just IO handling in pure languages. Although to be fair, they are starting to show up in more mainstream languages (ie Clojure)


A Monad is just a theoretic abstraction, not a useable one. Only specific Monad instances (IO,Maybe,List,etc) can be "useable", hence "useful". There is no generic "bind" for example, it has to be implemented specifically for every Monad.

While Monads are pretty useful in pure languages, they are often over-engineering in imperative languages.

What I consider the actual point that the OO world is currently learning from the FP world is abstracting over computation. OO can abstract data and state, but computation is rarely modeled as an object. Monads are simply a pattern you can observe often, when computation is abstracted.


Scala has monads aplenty.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: