

I have been defeated, java sucks - livando

it's not that java itself is terrible, it's what happens to it, when placed inside a corporate env. it gets hacked together, becomes old and outdated, and it makes you hate doing what you love to do. that's what sucks about java. now where do i go?
======
zaraza
I'm over 50. I've been to the zoo to see the animals. Started with Fortran,
seen different technolgies come and go, until recently I liked what I did.

Speaking with about 1 year of java, now I know how 9 women can produce a baby
in one month. Now I know how a herd of turtles (galapagos tortoise variety)
can cross the desert.

The first Fortran compiler was released around 1954. I started 20 years later.
Java is proof positive that we have accomplished very little in the way of
compiler development in 55 years. Sure, lots of clever languages have been
created, but none have made it to the mainstream. Must be the clever
marketing. Java has the least semantic density (lines of code to accomplish a
given task) of any of the mainstream langauges - more time is spent navigating
with some of the incredibly good tools.

If Java is the only language you know, do yourself a favour and learn
something else. Not C#, but Perl, Haskell, J, anything. Have a basis for
comparison.

I'm going back to fixing bicycles.

------
noodle
figure out what you'd rather be doing, and work towards that.

but, you should probably be doing this at all times, anyway. once you saw you
fell out of love with java, figure out what you want to aim for next.

------
huherto
I think I know what you mean. In corporate environments sometimes the
"architects" overdesign their solutions and it is no fun. However, is not
really Java. Java can be fun as I rediscovered recently working with GWT. But
I had the luxury to make an architecture light enough for my taste.

~~~
noss
Me too. I find that a quite cool language is hidden in Java. It is just that
everyone is trying their best to make programs as annoying and soul sucking as
possible with it. Unit testing and a dependency-injection framework like
google guice or similar makes java much more fun.

------
DanielStraight
1\. Java itself _is_ terrible. It doesn't have lambdas. Enough said.

2\. _Everything_ gets hacked together and becomes old and outdated.

~~~
gdp
The presence or absence of anonymous functions is the deciding factor in
terribleness now? I guess that makes PHP non-terrible, right?

(and yes, I'm being sarcastic)

~~~
DanielStraight
The presence is meaningless; the absence is a deciding factor in terribleness.

------
Novash
I studied Java at College. I knew C, Pascal and some C++. I remember VERY
CLEARLY hating it. But it was long ago, and I had long forgotten why, so I
recently (like 2 weeks ago) decided to give Java another try. And I remember
now why.

When you have fscanf, or cin, doing a new BufferedReader(new
InputStreamReader()) just to read a key from console seems pretty stupid. I
know Java has System.In.Read, but why doesn't it have System.In.Readln?
(forgive me if it does, but the course I took specifically said it doesn't)

Also, why the redundante names for enum constants? What was the guy thinking
when he designed swing? A method that returns you a MessageBox object instead
of simply a MessageBox class? I'm sorry about the rant, but Java style feel
ackward after coding for a couple years in C#.

------
thetrumanshow
You must realize that in a corporate env. (where software is not the core
product), you are simply a maintainer of highly convoluted systems. You aren't
a maker anymore, even though you occasionally create code. If you can embrace
this, as I have recently, it will save your life.

~~~
noss
I wonder if there is any language that a corporate environment could not make
to suck.

~~~
thetrumanshow
Java was ruined for me in college. I hated it.

I then decided to conquer my hatred of it when I started my first job. I had
the help of an interesting project wherein I had LOTS of freedom to learn and
make stuff in a lab without the fetters of enterprise requirements... I began
to love it.

Fast forward 2 years and I've changed jobs. I feel like I can hack my way out
of any nasty problem. Java is more unweildy in this enterprise environment
because we are leveraging several enterprisey frameworks, but we can make
bigger strides. The framework is doing a lot for us. I am still making stuff.
This job is a pressure-cooker, but I'm feeling very fulfilled and I'm
advancing.

Fast forward 2 years and I've quit the pressure cooker to be a Rails
contractor (actually, easier), I've even got a startup going. Ruby is
powerful, and I tell everyone they should be using RoR instead of Java. I
laugh at people who don't understand what they're missing.

Fast forward 2 years and I am back in a corporation. Using Java very sparingly
to maintain lots of integrated systems. The problems are nasty, there is no
feeling of 'making' anything. I resign myself to being the best maintainer I
can be. I keep my sanity with side projects. It's easiest to use Python on App
Engine, because I don't have to be a sys admin.

The more interesting problems you are solving the better the language you are
using seems to be. I would even go so far as to say that if you find someone
who loves a particular language, it's because they are using it to solve
interesting problems.

~~~
noss
I think you are on to something. Maybe the ability to code with flow is also a
major factor to liking a language and the task it is used for. To sit in an
uninterrupted "Aha! I fix!"-loop with the feeling that there is progress and
one get kick out of it continuously.

When doing maintenance on patchy code, working with a flub-language, or having
a edit-compile-debug cycle that is annoying, one is more likely to be in a
"Uh! Wtf!"-loop.

Now... how can one turn these theories around to something useful that one can
apply to our day-maintenance-programming-job to make them fun and tolerably?
Because they do pay well, and there is typically much to learn.

------
cmkrnl
Oh man. You're hitting human stupidity. Not easy to escape that. I used to be
an OpenVMS sysadmin. Now I administer enterprise middleware -- ESBs. Just like
getting booted from Eden.

------
milo77
That convolution situation holds about all programming languages in corporate
environments. This situation is even worse in Java though, because it lacks
good tool support (yes sure eclipse rocks...) and it is overwhelmed by
millions of libraries that do the same thing (but none of them does what you
want:D).

------
gdp
So I've only looked in passing at Scala, but I've certainly heard first-hand
from several people who are forced to code Java on a daily basis that they
have managed to use Scala for bits of their system.

They all claim that their lives got better. Might be worth looking into.

------
ramoq
Spring framework still keeps me addicted to java. It's excellent.

------
boskone
SCALA, SCALA and then SCALA.

------
_pius
JRuby. :)

<<dons gasoline boots and flamesuit>>

~~~
icey
Why the flame protection? I hear JRuby is pretty nice.

~~~
_pius
It is. But there are a lot of Ruby haters around, it seems.

------
zv
For desktop try Qt, C# For web try Python, RoR

~~~
Novash
I never heard of Qt. What's good about it?

~~~
ihumanable
Qt is a really nice cross-platform gui lib, some consider it to be one of the
best examples of how to write an API.

Its written in C++, but has bindings for other languages. It is very mature
and robust, has lots of nice tools, and recently was purchased by Nokia, who
actively support development.

It is also the platform on which KDE is built.

I've played around with it, the developers seem like very capable people, and
the capabilities of the library seem top-notch, but I haven't done any non-web
development for a while so I haven't had a chance to really exercise it and
see how I like the workflow.

------
msie
Lisp!

