3 ms·
Interestingly, for all his insight, Steve Yegge doesn't understand why Java is popular and lisp is not.
by hyperpallium 11y ago
Interestingly, for all his insight, Steve Yegge doesn't understand why Java is popular and lisp is not.
- zeveb 11y ago> Interestingly, for all his insight, Steve Yegge doesn't understand why Java is popular and lisp is not. What do you think are the reasons? Some folks might claim that Java enables mediocre teams of mediocre programs to turn out mediocre code, while they would turn out utter dreck in Lisp (we know that excellent programmers will turn out excellent code in Lisp, but there are business and operational risks associated with a small team of excellent programmers), but I don't actually know if that's true. Has research been conducted with large teams of mediocre programmers with mediocre management, using Lisp?
- hyperpallium 11y agoI don't know, hence my diplomatic silence. :-) I think it's to do with predictibility: back-compatibility, discoverability. You can get new coders who can get up to speed on a codebase. Business customers - who really really want things to keep working - value that. And business customers ultimately decide what is used. Similar to your point. BTW I'm not even sure expert lisp programmers can easily maintain their own code (or, perhaps more importantly, would want to). Operator overloading: very cool, nice for matrices, complex numbers etc. But easily abused to create impenetrable code (you must first get across all the definitions). C++ had it, Java avoided it. Lisp is so flexible, it's like everything is an overloadable operator. I'm not aware of such research on lisp; but the only successful lisp projects I've heard of are with hot-shot coders. BTW: reddit was originaly written in lisp (inspired by pg, who gave them the idea for reddit); they switched to python.
- bkeroack 11y agoI suspect a lot of it is simply that it's one of the first "real" programming languages taught in universities and trade schools. People who get into software engineering purely pragmatically (their parents told them they could make a lot of money) but have no passion for the art simply default to it. It's why I always ask about favorite programming language in engineer interviews. It's not that there's a right answer, but I do expect to hear some nuanced opinions. If the candidate says "Java" and then looks at me like I'm a little crazy for asking, I know they probably aren't a good fit.
- hyperpallium 11y agoYes, but trade schools and unis choose it because it's popular in industry (it's not particularly popular with academics). It's not an ideal teaching language, because of all the boilerplate of objects and packages when starting with procedures. C is a better teaching language in that respect (python might be the best).
- sbov 11y agoLet's be real: most people who make fun of Java aren't using a Lisp, and would also make a mess of themselves if they had to program in one. We use Java at work. Obviously all of the following depends upon your use case. The main reason we continue to use Java is probably legacy reasons. We have lots of library code. And we're a small shop, so every extra language we program in has a real cost associated with it. The stability and backwards compatibility is great. We have some libraries we haven't had to touch in almost a decade, being used in apps we just wrote last week. Of course some of them we've updated to use newer Java libraries (such as java.time and java.util.stream in Java 8). IMHO Java's biggest problem is the community. It's a bit enterprise-y. As long as you don't get caught up in that I think you're OK. I think the other problem was it went so long between Java 6 and Java 7. With Java 8 there isn't a lot from the likes of Python and Ruby I miss anymore. For imperative languages, I generally like Go and Python better, because I find them "funner". But once I get past myself, meh. I do think Go gets things a bit more right than Java, but not enough that it merits switching the language we use. Maybe if we had zero code and had to start out fresh.
- vorg 11y ago> With Java 8 there isn't a lot from the likes of Python and Ruby I miss anymore. Groovy will be feeling the heat here for its original use case. With the lambdas and terseness in Java 8, there's not a lot of reasons for it to exist.