TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Hate Java? You’re fighting the wrong battle.

121 点作者 trucious将近 14 年前

37 条评论

rb2k_将近 14 年前
I always had the impression that people that say they 'hate Java', usually don't hate "Java: the language". Most people that dislike programming in Java have a negative sentiment because of:<p>- the usage of XML (or now: annotations) to configure all of the tiny parameters that nobody really cares about<p>- a class hierarchy in which you have to jump to 20 levels of inheritance to get to where you want to go<p>- that a lot of Java developers aren't able to compile their application outside of Eclipse<p>- that people build in "flexibility" in form of factory methods but at the same time only have the factory only build the same thing over and over again<p>- that setting up java projects is usually an unpleasant experience with way to much work if you only want the basic functionality because there are no sane defaults<p>- that there is no proper package management for libraries (similar to something like 'gems' in Ruby)<p>- that all of the concepts that the language is missing was 'patched' in using reflection, injection and annotations<p>- that the language just seems stuck (for how long did the Java community talk about Lambdas by now?)<p>- that most Java libraries don't seem to be able to provide a simple example (compare to ruby, examples on the front page: nokogiri.org, sinatrarb.com)
评论 #2619966 未加载
评论 #2620517 未加载
knowtheory将近 14 年前
Oddly missing the point for an article about missing the point.<p>Either you care about the future and prestige of your platform, or you don't (COBOL).<p>If you do care about the prestige of the JVM, the future is still definitely awesome. Scala, Clojure, JRuby and all of the other wonderful languages provide a common base for interoperability. That's pretty sweet.<p>Java the language, as a secure place to get a job is entirely separate from that. Making bank (ha) off of other people's past poor technology choices isn't a future for your tools. It may be an economic opportunity, but it's not a future.<p>And if all you care about is having a job and writing lines of code, sure, legacy code base work is fine. But some of us care about more.
评论 #2619589 未加载
kragen将近 14 年前
Maybe it's not surprising that a mainframe programmer completely fails to understand the debate.<p>His list of four reasons people hate Java completely misses the point. The real reasons people hate Java are something like this:<p>1. It's verbose, providing lots of unnecessary opportunities to add bugs, and because it's verbose, reading code written in it is slow, so modifying it is slow. These are constant-factor problems, though, not order-of-growth problems.<p>2. It's early-bound in some important ways, so you're faced with a constant dilemma between adding even more verbosity, making the code harder to modify, and losing flexibility, making the code harder to modify.<p>3. Although it's quite CPU-efficient, it's very wasteful of memory. (You'd think a COBOL programmer would appreciate this.)<p>4. The tooling around the language imposes enormous overhead. The JVM takes a second-plus to <i>start</i>; Eclipse uses hundreds of megabytes of memory, if you can get it to work at all; you usually want to run your servlet container behind a reverse proxy; building and deploying a .war file is just orders of magnitude more pain than hitting "reload" after you update your PHP script.<p>There's another missing-the-point viewpoint shift here, too. This guy seems to think that the point of programming is to enable big businesses to continue to function, like bookkeeping, factory machinery maintenance, and executive team retreats at fancy hotels. Well, programming does do that. But it's also a medium of expression, and a competitive advantage for companies doing <i>new</i> things.<p>Bookkeeping relies on arithmetic, and factory machinery maintenance relies on paint, but that doesn't mean that Erdos and Picasso were "fighting the wrong battle" because they failed to apply their talents to helping out poor GM.
sqrt17将近 14 年前
So, which battle are Java haters fighting?<p>Java is mostly-ubiquitous and is "good enough" for a number of common tasks, and has good enough structure for mediocre programmers working on important-but-uninteresting problems. As a result (and the blog author says this), there is enough hate-worthy Java code there, just as there used to be enough hate-worthy C and C++ code around, and there probably is enough hate-worthy COBOL and Ada code around, if you know where to look.<p>It's worth noting that the relationship between C++ and Java switched around in the last 12 years or so - before, C++ was the method of choice to write segfaulting bug-ridden Windows applications (MFC anyone?), whereas Java was a rather slow (as in, non-JIT-ted) language that was up and coming and was interesting because it combined familiar C-like syntax with garbage collection.<p>Fast forward, and we have not only smart pointers (which ease many headaches of non-garbage-collected C++) but also template metaprogramming which really took off and makes C++ much more palatable to the one-man-army approach (i.e., one smart guy who does work that would take several mediocre programmers otherwise). Java has also evolved - Java 1.2's List/Map/Set are much nicer than the old collections, and Java 1.5's generics help avoid much of the old ugliness - but it carefully avoids any constructs that would make it more useful for one-man-army stuff - where Rubyists and Pythonistas are monkey-patching metaclass decorators, the Java world has one or two libraries that do bytecode generation to do something useful, but nothing more magic.<p>People who hate Java are really out against the programmer-as-a-fungible-resource way of living where programming is treated like shoveling dirt instead of a creative activity. Programming is both - perspiration and inspiration - and some people will be allowed to chose their tools (Java or not) whereas other people are not or have to fight for it.
评论 #2619942 未加载
评论 #2619664 未加载
评论 #2620912 未加载
grimlck将近 14 年前
I like to compare hating java to hating SUVs - they may be used inappropriately most of the time, but there are scenarios where they are the best tool.<p>In the enterprise, you need a language that can support - multi-million line code bases - a development team of dozens or even hundreds of programmers - a software project that lasts years - a team that changes over time - a team that isn't just rockstar programmers (try hiring dozens of rockstar programmers at once if you are not google, facebook, and you aren't doing something perceived to be 'sexy')<p>I think java and C# are the best languages that meet those criteria today (and if you don't want to be married to MS, then you are left with Java).<p>I think dynamically typed languages are not appropriateness for such a scenario.<p>However, HN is a startup-oriented site, and those certainly are not the criteria you need to meet in a startup.
badmash69将近 14 年前
I never thought I would defend Cobol but I have found that Greenscreen terminal based programs written in Cobol and Powerhouse are amazingly fast compared to equivalent web based applications. (I speak from my experience in Financial industry. your experience may vary). Scalability is a mater of throwing more IBM hardware at it and its not very expensive to operate. The IBM Iseries is something unlike anything I had ever seen in terms of scalability. Just saying that your new fancy language of choice is not necessarily better than Cobol.
评论 #2619943 未加载
评论 #2619656 未加载
equalarrow将近 14 年前
I don't hate Java, per se. I did a lot of Java coding from '96-'06. I went with it as it became the king of the 'enterprise'. What I realized later though is that you can't use Java very efficiently in a small shop (one or two guys).<p>Nowadays there are other languages and toolkits out there that bring me better joy on a daily basis. C-based languages are not the issue here (I love Objective-C), it's the frameworks and patterns that soured my interest in Java. IoC, dependency injection, xml config this, facade that - for today's speed of 'innovation' and time to market, the Java universe for development can be too big and slow.<p>Most of the people I've run into post-'06 don't use Java anymore. These are usually small startups (as I don't do enterprise anymore) and the names that always come out are Python, Php, Ruby/Rails, Obj-C, JS, and even Scala. In my mind this is telling of where things are going, just like the early days of Java when people still used Perl and C++ for web. I think Java's continual evolution (or at least usage of the JVM) into things like Scala and Clojure are good things. But it's glory days being at the forefront of web development are behind it.<p>Ultimately I think this as fine as every dog has its day. Someone will come up with the next greatest thing that everyone will flock to. But like all the other names I've mentioned, Java will be around in many shapes and forms because, like Cobol, some businesses and users will still need it.
zdw将近 14 年前
TL;DR (as I see it): Complaining about Java as a language is pointless, as all of the "new hotness" languages out there don't slay the old dragons of ancient business system languages like COBOL, which is where the author thinks people should be spending their time.
lordlarm将近 14 年前
So if I understand this article correctly I should not hate Java, because there are languages out there which are worse?<p>I'm sorry that just don't cut it for me, and I'm capable to dislike both COBOL and Java.
aerique将近 14 年前
I don't specifically hate Java the language, although I'm not enamoured with it either. I do hate the whole culture / attitude and baggage that comes with the language if you have to use it in an enterprise environment. That same culture that warped XML from something moderately useful into a horrible joke. Same goes for SOAP, UML and basically all things 'enterprise'.<p><i>edit:</i> I gave up on the whole thing when I had to use comments to configure part of a build process. (xdoclet &#38; jboss? ... I can't quite remember)
评论 #2619619 未加载
Jeema3000将近 14 年前
I wonder... how many programmers have been exposed to enough different problem domains and languages to really make an accurate judgement on what is "the best programming language", if any such thing even exists (which I doubt).<p>Maybe the reason you hate some feature of a language because you've never been exposed to a problem domain where that feature would be required.<p>I mean how many of us can honestly say that we are experts in more than one or maybe two domains: i.e. web development, desktop/native apps, embedded systems, systems programming, 3d programming, mainframe programming, massive enterprise team projects, small one-person projects, in-between projects, etc...?<p>I say he who is versed in all of these cast the first stone... :)
评论 #2620159 未加载
评论 #2620095 未加载
wallflower将近 14 年前
Some of us do Java for a day job and feeling a lack of creative expression at work - explore our creative side with other frameworks. Or even pottery classes.<p>The world doesn't have to be black and white. Why do we geeks try to make everything 0 and 1? The world is not binary. You can "sell out" yourself - work doesn't necessarily make you happy but it may give you means to do something that makes you happy.<p>I've been working with Java since 1999 and I'm amazed - it won. From applets to EJB hype to Struts and to now Spring and Scala and Android. Game over - they've become a Lingua Franca. There is always room for other players but Java is so firmly entrenched in Fortune 500 code bases it will never ever go away..
wickedchicken将近 14 年前
Since there are many languages that now target the JVM, I guess my main distrust should be targeted towards that instead of the language itself. Can someone explain to me what the advantage of running on the JVM is compared to something else (including native code generation)? From what I understand it provides: native tuned GC, stable and tuned JIT, and a class/module mechanism revolving around reusable code libraries (e.g., you could drop in a library written 6 years ago and have it 'just work,' when with C everything needs constantly shifting header files). I haven't used the JVM seriously in years, but I always got the feeling that around these core strengths were layers and layers of bureaucracy -- XML 'makefiles,' a stack-based VM that must inefficiently be translated to a register machine, and the feeling that everything is overengineered to the point that a simple "hello world" takes up gargantuan amounts of time and resources compares to things like Chicken Scheme or Go which have roughly the same features. Would anyone who uses JVM-based languages care to address these fears, I'm honestly curious if my hesitation is well-founded.
评论 #2620141 未加载
wvh将近 14 年前
Large corporations have the money to run huge applications on serious systems, and might get a slight performance benefit from running Java. Try running it on virtual servers for small web applications though... It's painful. Compared to Python, Ruby, Perl and PHP it eats resources like crazy. Developing and deploying Java apps feels slow and like being stuck in the stone age, unless of course one starts building a large automated infrastructure with continuous integration servers and repository managers... leading back to my first point: complex, heavy and hence expensive infrastructure. Debugging large web applications is worse than any other common programming language for the web. In all honesty, I've never written any serious software in that language – I know more about administration of systems running Java – so I'm not getting into a discussion about the language in se, but it seems very hard to get a clean transparent architecture in larger applications without drowning in hundreds of small little classes littered throughout. While there is a lot of badly written software out there in any language, it's always the Java programmers around me that complain most about trying to decipher how a complex Java application actually works and which code and classes hook into others.<p>Then, there's the Sun/Oracle thing... While Sun was still pretty respected, being associated with Oracle feels like a wolf trying to befriend a chicken. Especially coming from the open-source perspective, I'd rather not deal with them. If design-by-committee wasn't bad enough, the control of a company like Oracle should set off some alarms...
przemelek将近 14 年前
I don't get this whole "Java sucks movement". You don't like Java? Cool, use something else. Your boss not let you do it? Convince him or her. Create prototype of what they want from you using your language and use it as a proof that your language of choice is a proper tool. If you cannot, and your bosses decided to use Java it isn't problem with Java, but with you, or your company, so you need to work on you, or change a job.<p>I like Java and JavaScript, I don't like too much C# and Delphi (maybe because of this that I used those in my worst job ever? ;-)). But I don't think that C# and Delphi are bad programming languages used by idiots.... I don't think so, because I know some super programmers using those languages, and I know also some very bad programmers using for example Ruby. In short good programmer will use any language and will create cool software, bad programmer may use the best language ever and will create something what sucks ;-)<p>And this that companies decide to stay with Java or even COBOL have sense, to rewrite code from one language to other you need people who knows both languages, and are in those two languages really good.
anand21将近 14 年前
#Using Java for serious jobs is like trying to take the skin off a rice pudding wearing boxing gloves. -- Tel Hudson<p>#Of all the great programmers I can think of, I know of only one who would voluntarily program in Java. And of all the great programmers I can think of who don't work for Sun, on Java, I know of zero. -- Paul Graham<p>#Java is the most distressing thing to happen to computing since MS-DOS. -- Alan Kay<p>#Java is, in many ways, C++--. -- Michael Feldman<p>#C++ is history repeated as tragedy. Java is history repeated as farce. -- Scott McKay<p>#Arguing that Java is better than C++ is like arguing that grasshoppers taste better than tree bark. -- Thant Tessman<p>#Like the creators of sitcoms or junk food or package tours, Java's designers were consciously designing a product for people not as smart as them. -- Paul Graham<p>#There are undoubtedly a lot of very intelligent people writing Java, better programmers than I will ever be. I just wish I knew why. -- Steve Holden<p>#The more of an IT flavor the job descriptions had, the less dangerous was the company. The safest kind were the ones that wanted Oracle experience. You never had to worry about those. You were also safe if they said they wanted C++ or Java developers. If they wanted Perl or Python programmers, that would be a bit frightening. If I had ever seen a job posting looking for Lisp hackers, I would have been really worried. -- Paul Graham<p>#In the best possible scenario Java will end up mostly like Eiffel but with extra warts because of insufficiently thoughtful early design. -- Matthew B Kennel<p>#The only thing going for java is that it's consuming trademark namespace. -- Boyd Roberts<p>#Java is the SUV of programming tools. A project done in Java will cost 5 times as much, take twice as long, and be harder to maintain than a project done in a scripting language such as PHP or Perl. ... But the programmers and managers using Java will feel good about themselves because they are using a tool that, in theory, has a lot of power for handling problems of tremendous complexity. Just like the suburbanite who drives his SUV to the 7-11 on a paved road but feels good because in theory he could climb a 45-degree dirt slope. -- Greenspun, Philip<p>#JAVA truly is the great equalizing software. It has reduced all computers to mediocrity and buggyness. - NASA's J-Track web site<p>#C and Java are different in the non-excitability department, though. With C, you don't get excited about it like you don't get excited about a good vintage wine, but with Java, you don't get excited about it like you don't get excited about taking out the garbage. -- Lamont Cranston (aka Jorden Mauro)<p>#Java is about as fun as an evening with 300 hornets in a 5m^2 room -- andguent<p>#If Java had true garbage collection, most programs would delete themselves upon execution. -- Robert Sewell<p>Java: write once, run away! -- Cinap Lenrek<p>Java is a DSL to transform big XML documents into long exception stack traces. -- Scott Bellware<p>#The definition of Hell is working with dates in Java, JDBC, and Oracle. Every single one of them screw it up. – Dick Wall CommunityOne 2007: Lunch with the Java Posse<p>#Java is like a variant of the game of Tetris in which none of the pieces can fill gaps created by the other pieces, so all you can do is pile them up endlessly. -- Steve Yegge (2007, Codes Worst Enemy)<p>#Whenever I write code in Java I feel like I'm filling out endless forms in triplicate. -- Joe Marshall (aka jrm)<p>Source <a href="http://harmful.cat-v.org/software/java" rel="nofollow">http://harmful.cat-v.org/software/java</a>
评论 #2620590 未加载
评论 #2620022 未加载
BruceForth将近 14 年前
Blub programmer telling why you should program in Blub.
评论 #2619659 未加载
jrockway将近 14 年前
Spoken like a true code monkey.<p>Programming is about the joy of creating: thinking, expressing and sharing of ideas. If your argument in favor of something is, "it's bad, but banks use it", you've missed the point of programming.
评论 #2620288 未加载
onelson将近 14 年前
The interesting point in this for me was the idea that Java, or any other development platform with an "enterprise" sticker slapped on it, will be the <i>obvious</i> choice for a given problem space simply because it has the sticker.<p>I've been in the situation several times where technology decisions are made based on brand. The Java solution is the only one evaluated "just because".
评论 #2619773 未加载
stcredzero将近 14 年前
<i>Tell me, what do the following have in common?<p><pre><code> - Paying with a credit card. - Going to the emergency room. - Adjusting your 401k. - Using your insurance card at the dentist. - Shopping around for the best car insurance. - A BNSF train pulling a Union Pacific coal car. - Transferring money between banks. - Filling a prescription. </code></pre> All the above industries are billion dollar players in our economy. All of the above industries write new COBOL and mainframe assembler programs. I’m not making this up, I work in the last industry, and I’ve interviewed and interned in the others.</i><p>The question to ask is: What are the economic and social forces keeping the COBOL code base alive? Seeking to supplant a long-surviving language in a particular niche without first asking this question is a fool's errand.
评论 #2620577 未加载
jschrf将近 14 年前
I'm working towards an MVP that uses Java (on Android), C#, and JavaScript. It's interesting comparing and contrasting the languages while using them all at once.<p>Java is a workhorse of a language. It's stable, gets the job done, and is reasonably sane. It's also readable, which in my opinion is one of the most (if not THE most) important traits of a software product. Readability. Simplicity.<p>The problem I have with Java is that I feel like it never evolved to meet its potential. It feels like C# 1.1 to me.<p>These days however I think the most interesting programming topic is not Java vs C++ or Java vs C# or any of these tired old debates.<p>What's most interesting to me is the notion that dynamic languages are somehow more productive or superior to strongly typed ones. It seems to be a commonly held view in the startup scene especially. It just doesn't make sense to me.
perlgeek将近 14 年前
I don't hate Java as long as I don't have to use it. I don't hate COBOL as long as I don't have to use it. The same is true for a number of languages that simply aren't fun to use.<p>The difference is just that it's more likely that I have to use Java at some point, compared to COBOL.
agentultra将近 14 年前
I like the COBOL red-herring. Java can't be that bad because there's still COBOL! We must fight COBOL...<p>wait.. that's actually kind of a good idea. Raise your hand if you're a COBOL developer. Any young COBOL developers trying to break into the field?
评论 #2620559 未加载
评论 #2620972 未加载
MatthewPhillips将近 14 年前
Java is the default language in the best selling phone platform, Android. For that reason alone it will remain relevant for a long time. I know Android can run other JVM languages, but until the platform becomes stabilized (meaning most big security holes are filled, new non-trivial features are rare) there won't be a push to make non-Java languages a first class citizen.
评论 #2619865 未加载
评论 #2620168 未加载
评论 #2620054 未加载
escanda将近 14 年前
A lot of transactional systems are being written in Java already. So it's a matter of not being worth rewriting the working systems on production why Cobol is still alive.<p>Also a point concerning most language wars is that quite a few are initiated by people with interests on the contender; that is, the language authors, software vendors, etc.
nerd_in_rage将近 14 年前
I don't hate the Java language or the JVM.<p>However, I hate many of the Java APIs, specifically most "JEE" crap, such as EJB, JMS, most third party ORMs (Hibernate), most Java "web frameworks" (too numerous to list).<p>Java IDEs are bloated, slow, and often unstable with extra plugins (Eclipse)
评论 #2620653 未加载
czDev将近 14 年前
There a lot of powerful frameworks in Java that make application development fun and easy (e.g. Camel, Spring, Hibernate). Java can replicate many of the popular features of other languages - anonymous functions are duplicated by single-method interfaces and anonymous inner classes. I say use the best tools available, and Java has still got to be one of those.
norswap将近 14 年前
My sentiments : Good : Java has lot of well-documented libraries. Yay. Bad : Lots of boilerplate code, you can't add flexibility to the langage (not even with "simple" C macros or closures).
northstar将近 14 年前
The irony here is that right now the Cobol model is Java's last hope
rch将近 14 年前
Did anyone see the link to the originally published article? <a href="http://thecodemechanic.wordpress.com/" rel="nofollow">http://thecodemechanic.wordpress.com/</a>
tybris将近 14 年前
The best language for me is the one I know best.
michaelochurch将近 14 年前
I'm going to cite Steve Pavlina here: <a href="http://www.stevepavlina.com/blog/2005/07/how-to-get-from-a-7-to-a-10/" rel="nofollow">http://www.stevepavlina.com/blog/2005/07/how-to-get-from-a-7...</a><p>Some snippets:<p><i>A 7 seems very close to a 9 or 10, but often a 7 is a local maximum — you can’t get any higher by continuing to follow the same path that got you to that 7 in the first place.</i><p><i>A 7 is pretty good. At this level you feel generally content. It’s OK, fine, acceptable, satisfactory.</i><p><i>What you’ll find when you leave the comfort of your 7 and go chasing after that 10 is that your 7 was never a 7. It was only a 3.</i><p>Java is the epitome of "7"-ness. It's a decently powerful language that you can do cool things in if you find a good rock and smash the right things in the right places. As a language, it's mediocre but so much work has been poured into it that nothing is <i>too</i> hard to accomplish in it... then again, very little is easy or fun in the way that Ocaml (once you get it) is easy and fun.<p>Java appeals to business types because it seems like the low-risk choice. The libraries are going to be there, and even if it's hard to be better than a 7.0 programmer in it, mediocrities can easily get up to 3-4, which is seen as "good enough".<p><i>You might be able to go from a 6 to a 7 in a week or a month, perhaps even a day with conscious effort. A few tweaks here and there, and you’ve got it. But to go from a 7 to an 8 might take a year or two. 7 doesn’t always connect with 8. You might have to take a path like 7-6-4-2-3-4-5-6-5-4-6-7-8 to get there.</i><p>This is what switching out of the Java paradigm, into Ocaml or Haskell, is like. You have to work hard and learn new things before you get to a level of skill where you can be even a 5, much less an 8 or 9... but it's actually possible in those languages.
评论 #2620002 未加载
评论 #2619791 未加载
评论 #2619809 未加载
评论 #2619742 未加载
评论 #2619741 未加载
recoiledsnake将近 14 年前
&#62; Java, with its faults, has completely conquered web application programming. On the sidelines, charging hard, new languages are being invented at a rate that is mind-blowing, to also conquer web application programming. The two are pitted together, and we’re left with what looks a bunch of preppy mall-kids battling for street territory by break dancing. And while everyone is bickering around whether PHP or Rails 3.1 runs faster and can serve more simultaneous requests, there lurks a silent elephant in the room, which is laughing quietly as we duke it out in childish arguments over syntax and runtimes.<p>Nice job writing a 1000 word article about Java and web application programming without mentioning the elephant in the room C# with ASP.NET<p>I've seen small and medium shops move over to or adopt C# at a very high rate(for internal web apps) in the past 5 years. .NET is big in the government too and C# is adding nice feaures that Java has either no equivalent or a poor implementation not to mentions technologies like ASP.NET MVC.<p>THAT is what is eating Java's lunch more than anything else. It boggles the mind how someone could write a whole essay on this topic without mentioning C#/ASP.NET. I think that's a symptom of reading popular blogs around the internet which talk only about things like PHP/Ruby/Python etc. but comes across as incredibly shortsighted.
评论 #2620035 未加载
评论 #2619603 未加载
benihana将近 14 年前
&#62;So what is the real problem in the this industry? Java, with its faults, has completely conquered web application programming<p>What? No. Not at all. Maybe, <i>maybe</i> I'll concede that the JVM, when configured properly, is well suited for the middle layer of a webstack, but to say that Java has completely conquered web application programming is just silly.
bxr将近 14 年前
I'm currently writing some cobol for shits and giggles. Its terrible.<p>I don't really get this article though. The "friendly fire" is what fuels the drive to make new hotness to be as good as it can be. I don't think its damaging outside of the handful of people daft enough to take it too personally.<p>The argument presented in the article is appealing enough, but ends before it gets to the part where it explains how to make inroads towards the cobol folks. Its been criticized up and down, left and right. The people still using it have taken themselves outside realm of constructive criticism. Any time spent there fighting a losing battle could also be spent improving on what we, who are willing to use new tools, have.
bonch将近 14 年前
Most of the Java hate I see comes from C# fans (which is ironic given C#'s origins).
评论 #2620363 未加载
16s将近 14 年前
Java the language is OK. The only downside to it (in my opinion) is forcing OOP on everyone. Other than that, it's fine.<p>Java the virtual machine (JVM) is what I dislike more. It's a platform (like Windows) and within its virtual world, things are just not real. It's all pretend and I guess I should expect that from a "virtual machine".<p>Both the language and the JVM are mainstream and used heavily now... mostly in big, corporate environments. Devs can make a good, safe living writing Java, and there's nothing wrong with that.<p>If you hate Java or the JVM, do your hobby projects in a language you enjoy more. If you have no hobby projects or strong feelings (one way or the other), I'd argue that you're in the wrong business.