3 ms·
It's not necessarily preferred in the sense that those who think a lot about programming language think of language preference (i.e. like the preference of a co
by pron 2y ago
It's not necessarily preferred in the sense that those who think a lot about programming language think of language preference (i.e. like the preference of a connoisseur), but it is, nevertheless preferred because most programmers don't think of programming languages like programming language fans do (or, indeed, as much). A language can be preferred because it happens to be what you know and you're interested in writing programs rather than learning more languages, and it is the language you know because it's the language you've been taught, and it's the language you've been taught because it appeals to those who choose what languages to teach.
Evolving the design of very successful languages requires a different kind of thinking about programming languages than that of programming language fans, who don't usually think of maximising economic utility in a certain market environment when they think about what they like in a language.
- airstrike 2y agoI don't think one needs to be a "connoisseur" to prefer something other than Java. I also don't think Java appeals to those who choose what languages to teach. IMHO it's just a self fulfilling prophecy. A combination of it being widespread in the past, there being jobs for Java because of that, employers expecting students to learn it, students expecting to be taught it, and professors sticking to what they know. Again, in my opinion, viewing any of those as a valid reason for choosing to use/learn/teach Java implies favoring convenience over value. I prefer not to do that, but I understand people have different views of the world and belief systems...
- woooooo 2y agoBeing a moderate, lowest common denominator language does have its own value, though. It's easy to reason about, easy to hire for and easy to pick up if you know other mainstream languages. It's not just the chicken-egg market dominance thing you're describing.
- airstrike 2y ago> Being a moderate, lowest common denominator language does have its own value, though. I'd argue that's Python, not Java
- woooooo 2y agoIt can be both, but I'd say having types for the arguments in your method signature is more "moderate and safe".
- airstrike 2y agoAs someone who is knee deep in Rust daily, I couldn't agree more...
- ab5tract 2y agoCan there really be only one LCD language? I guess theoretically based on the metaphor, yes, but for all of Java’s faults, it never asked me to swallow the poison pill that is significant white space. Which is to give immediate lie to the idea that there can be only one, Highlander style. Also, maybe things have changed but I find it hard to believe that Python’s performance profile is strictly competitive (though I don’t love Java’s memory outlay either). And I’ve never heard or seen a Java development setup guide start with “first install a Java version manager” either. It should go without saying that YMMV, but this site seems to get more cantankerous by the day.
- pron 2y ago> IMHO it's just a self fulfilling prophecy. Except C++ was once more popular than Java, as was Visual Basic. PHP was almost as popular and Ruby was on its way. Java is quite exceptional in how long it remained as popular as it has, so clearly popularity can't explain its own longevity. > viewing any of those as a valid reason for choosing to use/learn/teach Java implies favoring convenience over value. Well, the software market is under heavy selective economic pressure, so you'd expect things that actually provide value to spread rather quickly. Indeed, things like unit tests and GCs -- once they met a certain level of "production quality" --spread very quickly, and now it seems like various AI assistants could end up another such example. So if something doesn't spread quickly, it's fairly safe to assume that it doesn't really offer the value the market cares about. It's like the story of VHS and Betamax, where, at least according to the popular story, Betamax fans thought it was of superior technical quality because of its better picture, but VHS's technical superiority was in recording time, and ultimately the market saw more value in the latter than in the former. Java's evolution is being designed very carefully, and we at least try to select features that we think could offer real business value -- which also includes not just theoretical power, but the actual ability of most programmers to put a feature to good use -- and not to introduce features that we think are cool (or those that we feel like we're trying to rationalise their value). Of course, we don't always stick to that, but we try (popular languages are generally stingy with features because there's a pretty clear negative correlation between language "richness" and its success). You may think this is obvious, but designers of less popular languages often very much don't think like that at all.