viagra samples free
viagra perscription
buy generic cialis online
comments on generic cialis
geniune cialis no prescription
buying viagra online
cheap viagra for sale
uk viagra sales
canada generic viagra safe
where can i buy viagra
cialis generic versus brand name
buy brand cialis
prescription drugs cialis
purchase viagra online without prescription
generic viagra sale

Long Pointers

Matt Long’s Blog About Programming and Stuff

online discount medstore
advair diskus for sale
buy advair diskus without prescription
allegra for sale
buy allegra without prescription
aristocort for sale
buy aristocort without prescription
astelin for sale
buy astelin without prescription
atarax for sale
buy atarax without prescription
benadryl for sale
buy benadryl without prescription
buy clarinex without prescription
clarinex for sale
buy claritin without prescription
claritin for sale
buy flonase without prescription
flonase for sale
buy ventolin without prescription
ventolin for sale
amoxil for sale
buy amoxil without prescription
augmentin for sale
buy augmentin without prescription
bactrim for sale
buy bactrim without prescription
biaxin for sale
buy biaxin without prescription
buy cipro without prescription
cipro for sale
buy cleocin without prescription
cleocin for sale
buy dexone without prescription
dexone for sale
buy flagyl without prescription
flagyl for sale
buy levaquin without prescription
levaquin for sale
buy omnicef without prescription
omnicef for sale
amaryl for sale
buy amaryl without prescription
buy cozaar without prescription
cozaar for sale
buy diabecon without prescription
diabecon for sale
buy glucophage without prescription
glucophage for sale
buy glucotrol without prescription
glucotrol for sale
buy glucovance without prescription
glucovance for sale
buy micronase without prescription
micronase for sale
buy prandin without prescription
prandin for sale
buy precose without prescription
precose for sale
buy cialis professional without prescription
cialis professional for sale
buy cialis soft without prescription
cialis soft for sale
buy cialis super active without prescription
cialis super active for sale
buy cialis without prescription
cialis for sale
buy levitra without prescription
levitra for sale
buy viagra professional without prescription
viagra professional for sale
buy viagra soft without prescription
viagra soft for sale
buy viagra super active without prescription
viagra super active for sale
buy viagra super force without prescription
viagra super force for sale
buy viagra without prescription
viagra for sale
buy celebrex without prescription
celebrex for sale
buy colcrys without prescription
colcrys for sale
buy feldene without prescription
feldene for sale
buy imitrex without prescription
imitrex for sale
buy inderal without prescription
inderal for sale
buy indocin without prescription
indocin for sale
buy naprosyn without prescription
naprosyn for sale
buy pletal without prescription
pletal for sale
buy robaxin without prescription
robaxin for sale
buy voltaren without prescription
voltaren for sale

That Sucking Sound Is Java Killing Your Soul

Filed under: Java,Opinion,Programming — perlmunger at 10:00 pm on Thursday, May 15, 2008

There is nothing fun about Java. Every possible good facet’s goodness is completely predicated on the requirement that you know how to set up and or get around some soul sucking gotcha. Where it’s been said that even a language such as Perl can make “easy things easy and hard things possible”, Java seems to try to make “easy thing hard and hard things infuriatingly impossible”.

Ok, I know. This will get some people steaming. You may not want to continue reading if that’s you. I’m sure that your assumptions are that I’ve never given Java a chance. I’ve never worked with Java long enough to make any sort of real assessment. I’m not a real programmer… blah blah blah. Ok. Sure yeah. I’m not going to try to convince you of anything. I’m sure you’ve found Java just wonderful for your research paper or whatever pet project you’re working on. That’s great. You know so much. Like I said. You may not want to continue reading.

For those of you who can hear it, here’s the point. Why use a language that tries to be everything to everyone when all it does is suck the joy out of being a software engineer. Remember when programming was fun? If you don’t, then you’ve never used anything but Java.

Why do I need to invoke a Factory every time I want just a simple object? Why are there no good GUI design tools–and please, don’t tell me about your favorite GUI design tool. Frankly, they all suck in comparison to pretty much everything else out there. And that’s another thing, why does a GUI based Java application window, when restored from being minimized for several hours, respond so sluggishly?

Java is not fun. It is not exciting. It is not enjoyable. It just makes you grumpy. If you find it fun, I dare you to to tell me how. Go ahead. Put it in the comments now. Let it be known how Java is so fun. Seriously!

I admit that there is no perfect dev environment. They all have their quirks, even my new favorite–xcode on the Macintosh/iPhone, but I just can’t understand the madness. Why do people insist on defending Java–this lousy programming language that is the basis of more once-hot-now-abandoned frameworks than anyone can keep track of. If you don’t believe me, take a quick survey of the latest posts about Java over at Reddit’s Programming Section. Here’s a smattering:

All of these posts are actually not bashing Java. The writers like the language. What they are doing, however, is defending it. Why? Because it needs defending. It’s horrible.

What’s fun about programming is problem solving. Sure enough, you’ll spend a lot of time solving problems when you use Java, but they are not programming problems–they are environment problems. Sure, you can write that web app once you’ve decided which lame web framework is the least bad of them all. But then you’ll find that setting up the least bad framework will take you a full day or longer and then it might not work properly once you deploy it. Oh yeah, and where are you going to deploy it? Not on a shared hosting web server. You’ll have to go co-lo and administer the box yourself if you want it to run Tomcat or some other web app server.

… and I could go on, but why?

If you want to have fun writing code… If you want to get your soul back, start writing for the Mac or get the new iPhone SDK and start writing code for it. For that matter, start writing for 8-bit embedded systems. That’s more fun than Java and probably easier. And for those of you who just at that moment thought about suggesting embedded Java for 8-bit micro-controller programming, you need to put your laptop down right now and seek help. Seriously. Call somebody. You are not well.

If you are wondering what’s fun that I am doing these days, take a look at my other blog Cocoa Is My Girlfriend. Here are a few of my latest posts:

10 Comments »

Comment by GdA

May 16, 2008 @ 6:09 am

On one hand, Java is not the funniest language. But on the other hand, you have the best tools to develop in Java and far ahead from other IDEs.
I used to develop on several other languages too, and I regularly test new languages with new environement. But when I lack code completion, formatting, navigation, refactoring (not just renaming) I really miss my Java IDE. Finding all implementations of an interface, all usages of a class, or the call stack of a method key shortcut is as easy as a key shortcut. And all this makes me happy.
So, what do you prefer, fun or happiness ?

Comment by perlmunger

May 16, 2008 @ 6:18 am

@GDA

Both!

Comment by PhantomMenace

June 23, 2008 @ 9:13 pm

I agree with you Matt, Java has tangled itself up into a big ball of crap. I think this stems not so much from the language as it does from the crappy, counter-intuitive API and framework patterns that are so pervasive in the language. I couldn’t agree with you more about the over-use of the Factory pattern (and the Builder and all the other ridiculously over engineered patterns). The Calendar and related Classes are a good example of bad design.

I also find it interesting how many Classes start out with a somewhat intuitive API that gets deprecated to make room for a more counter-intuitive API that makes no practical sense at all. It almost seems deliberate.

So I would contend that the crappiness of Java comes not from the language but from the idiots who steeped the Java culture in over-theoretical and counter-intuitive API’s.

Comment by baruch

June 28, 2008 @ 7:31 am

Hi:

This is more of a question than a comment. You all are light years ahead of me in all this.

I just downloaded your Audio Scrub beta but I don’t know where to put the components in order to build the application. Would you be willing please to explain to a neophyte?

Thanks!

baruch@mcn.org

Comment by jag

July 17, 2008 @ 7:09 pm

I agree completely that Java can be quite tedious, but it does the things I need on the server side without much setup hassle, like creating zip files and accessing (Oracle) databases. Working with Java on UNIX sure beats the heck out of .Not on Windows (for me, anyway).

I use Perl when I can (Python isn’t permitted here :-( ), but installing the modules can be such a supreme hassle.

After 30 years of server-side development, I’m studying hard to try to make the transition over to the Mac with Xcode/Cocoa/ObjC. (Your tutorials are much appreciated! :)

I like Java much better than I like straight C, but the combination of Cocoa and ObjC goes a long way towards alleviating the pain of C.

Comment by guurk

September 24, 2008 @ 8:46 am

Ok… where do I start? Calling me a Java advocate is probably not strong enough a description, as anyone that knows me could verify (ask Matt).

Java is the bomb diggity; strait up, period, and more fun that bulls-eyeing wamp rats in your T-16 back home.

Who doesn’t like annotations? Talk about fun! Who doesn’t like declarative programming? Show me one and I’ll show you someone who doesn’t know what it is.

Show me a language that can express good OO patterns better than Java… there isn’t one. That’s fun? Yes, that’s fun. Good design, better, good forced OO practice enforced by language couldn’t be more fun. You get to focus on ‘business logic’, not rehashing the same ol’ stuff that’s already been done 1000 times by programmers way better than you. (How many lines does it take to parse a text file again?) You don’t ‘need’ a Factory every time, it just makes it easier to use that library that provides all the functionality that you are using for free.

Fun programming is about sharing. Yes, I get lambasted because I never make money with my side projects, because I contribute back to the community. That’s a personal call. But truly, what better language to share concepts, examples, libraries than Java.

GUI design tool? Whoever is focusing on Java as a GUI platform is missing the point of Java. Java has always been and always will be about server frameworks and web applications. That’s what it’s good at.

Not to say that Java can’t be used for GUI (read my-big-fat-greek-client). It can be. But don’t equate Java with Swing. That would be like equating Java with Xerces. Xerces, Swing, SWT, Corba, LDAP, JMX, EJB3, Hibernate, AWT, SQL, etc. can be used with Java via built-in or external libraries. What language doesn’t have all those kind of things available? Heck, that’s part of what makes Java great, and fun. You need to get something done, quickly, well? There’s a library that can help.

On the other Cocoa and .NET are almost impossible to separate from their GUI tool sets. It’s like comparing a watermelon to an Apple and a moldy strawberry.

I find it odd that Matt makes the argument from the stand point of the development environment. It can be fun to learn a new development system… but if by some chance you don’t like it?

What if you don’t like Eclipse? Go to JBuilder. JBuilder not you cup of tea? Netbeans. Netbeans not your bag baby? JCode. Just not into the whole mouse usage? Emacs, VI, Visual Slick Edit… all work great with Java.

Want to do .NET development? Don’t like Visual Studio? … um… um… yeah.

Want to do Cocoa development? Don’t like X-Code? … um… um… yeah.

For me, fun is about making something that I think is cool, and maybe, just maybe, something that others find is cool too. However, it’s more about the journey than the end product. I’ve learned that over years of false starts and cool ideas.

Java allows me to express myself, and then reuse the hard work on one dead-end path with my newest, greatest idea. Not even C/C++ allowed me the freedom and security that I have Java. Not even a scripting language can go as many places or explore as many different worlds.

C/C++… play with cross-platform compliers all day long.

.NET… just feel violated because you know you are being raped with a closed source, closed platform, closed library set that costs way to much ( > 0 )

.PHP/Python… great for what they do, but now you want to do data replication and clustering of applications? Find me the libraries that do that.

Cocoa… but I really want to make something that everyone can use. And to be quite honest, “you’re so busy finding out if you can make your button wiggle, fade in and out, vibrate, flip end-for-end, you don’t stop to think if it should“.

Pingback by My Code Fu is Strong » Java Doesn’t Need a Defence

September 24, 2008 @ 8:52 am

[...] Here’s the link. [...]

Comment by perlmunger

September 24, 2008 @ 8:55 am

@Guurk

Geeze. That was long…

Feel better now? ;-)

p.s. You’re never going to buy that place in Breck back with that attitude. ;-) Just write an iPhone app and make your billions. It’s really that easy!!! :-D

Comment by ipmcc

October 13, 2009 @ 5:30 am

While I sympathize with the labyrinthine bulk of frameworks and in general can agree with most of your criticisms of Java, I’m always nervous when I see people extolling the virtues of Xcode/MacOS/iPhone development. You see, I do Objective-C development full time, and I just can’t see how, assuming you’ve worked with Eclipse, you can possibly find Xcode to be a superior tools experience. I can readily see loving AppKit/UIKit, and Objective-C is a great language from an “interacting with the frameworks” standpoint, but the tools? Really? If there’s one credit I have to give to Java and .NET, it’s that their huge markets have spawned truly first rate tools. Xcode on the other hand, while ordained by Apple as the “one true way,” has a long way to go to compete for development “acceleration” capabilities long brandished by Eclipse and Visual Studio.NET. What’s worse is that by being ordained AND free, Xcode has effectively quashed all hopes for any third party coming along and improving things. It’s hard to compete with ordained and free. I love the platform too, don’t get me wrong, but the tools have a LONG way to go, and when you talk about development being fun, tools have a huge impact on that, at least from where I sit.

Comment by perlmunger

October 13, 2009 @ 6:58 am

@ IPMCC

Good points. Obviously it’s all subjective. I disagree with you as I feel Xcode is a very strong development tool, but in the end it’s Java I have a problem with. I don’t care how good the tools are, Java is still Java. For me, it sucks the life out of programming. You can say, well that’s just because of all of the frameworks, it’s not really Java. That’s just silly as you *have to* navigate the labrynthe, as you called it, to create anything useful. When I have to wrestle with that garbage, I find no joy in it.

What do you feel is missing in Xcode?

-Matt

RSS feed for comments on this post. TrackBack URI

Leave a comment

You must be logged in to post a comment.