I can add my 2 cents about Java. When I first started coding in Java, I really wanted to like it. Some of these I discovered by my own projects, others I observed in commercial enterprise apps. I moved away from Java quite a few years ago for these reasons. My apologies if Java has "caught up" with some of these. If that's the case, my canned reply is: "Well it's about time! Other languages took care of that problem in version 1.0 of their product."
1. I hate the UI of Java apps, always have. They never refresh correctly. They are slow. They don't look as good as other UIs. Sliders don't scroll correctly. (e.g.- I've seen well-known commercial apps where the slider is at the bottom when there's still more "page" below) Sun obviously never should have gotten into this arena. This is the day and age when UIs should "just work."
2. I hate "Write once; debug everywhere." I've lived this nightmare in the corporate IT world. Why can't it "just work" like it is supposed to?
3. Slow- dog slow. Too many apps are dog slow- even on fully loaded machines. This is less of an issue now, but at least historically it's been absolutely true.
4. Applets are a failure- Flash "just works," almost every time. With applets you need to constantly worry about which users have what version of Java. With Flash, it just knows what version of the player you need if you coded your web page correctly. Applets are slow and don't refresh right. Don't scroll that window- or else the applet will not know how to refresh itself! Flash is much more compact, looks better, smoother, sharper, and is lightning fast. You know in your gut that Flash apps will "just work" wherever you deploy it- allowing you to sleep soundly at night. Java will give you nightmares. I once deployed an applet- one of my users said it made his machine crash and reboot when the applet was running, he left the machine idle for a few minutes and then his screensaver kicked in! Get it right, Sun!
5. I'm tired of talking about the problems with Java, and then a Java guru gets upset, and says something like, "If only you would have used Java.. (insert perverse new Java technology of your choice, which I don't have time to take 2 months to learn, and wouldn't add squat to the value of my resume)!"