I have been doing Java development for three years now, have played around with it for the past ten years, and love it. What first won me over to Java was having to do a custom FTP server ten years ago where the file transfer was controlled by the server instead of being controlled by the client. With Java, it was really easy to
do. The client side, done in Visual Basic, required a third party library.
I have also done some very complicated web applications using Struts, Ibatis, Dojo, and a slew of other libraries and have always been impressed by how well things work.
Recently, I have worked on a complicated project that involves doing a large batch with thousands of calculations, retrieving data from a database, and writing results to the database. Using threading in Java I was able to spawn each calculation on it's own thread and was amazed by how fast the overall job ran.
So I would say what it comes down to for me is that I like the structure and syntax of the language and I have seen all I can do with Java and I'm always impressed by it's ability.

It gives you the "flexibility" of a low-level language such as c and c++, some capabilities emitted no doubt, without having to, most of the time, worry about memory allocation and collection. Portability is a big ++++ too.

Why I like programming (in general)... I've been playing with computers since I was about 13, we got our first computer at home, a Commodore 64, at that time. Soon after we got it I started programming on it in BASIC. I guess I like it because I have talent for technical things, and it's just fun to create something and see it work on the computer.

Professionally, I started as a C++ programmer. I liked it, but C++ is a complicated language, with pitfalls that can cause subtle, hard to trace errors, and manual memory management (no garbage collection, you have to explicitly free memory yourself, which is a major source of memory leaks and other bugs). In 1998 I first started playing with Java and I liked it, because it's simpler than C++ and you don't need to spend so much time tracing bugs with pointers. The company I worked at at that time started getting projects that involved Java, and I started on one of the first Java projects, and have been working with Java ever since.

But now Java is showing its age, it's not developing as fast anymore, and it becomes harder and harder to add new features to the language because Sun (or now Oracle) wants to keep everything backwards compatible. The last few years new programming languages that run on the JVM are becoming more and more popular, such as Groovy, JRuby, Scala and Clojure.

Jesper Young wrote:Why I like programming (in general)... I've been playing with computers since I was about 13, we got our first computer at home, a Commodore 64, at that time. Soon after we got it I started programming on it in BASIC. I guess I like it because I have talent for technical things, and it's just fun to create something and see it work on the computer.

Professionally, I started as a C++ programmer. I liked it, but C++ is a complicated language, with pitfalls that can cause subtle, hard to trace errors, and manual memory management (no garbage collection, you have to explicitly free memory yourself, which is a major source of memory leaks and other bugs). In 1998 I first started playing with Java and I liked it, because it's simpler than C++ and you don't need to spend so much time tracing bugs with pointers. The company I worked at at that time started getting projects that involved Java, and I started on one of the first Java projects, and have been working with Java ever since.

But now Java is showing its age, it's not developing as fast anymore, and it becomes harder and harder to add new features to the language because Sun (or now Oracle) wants to keep everything backwards compatible. The last few years new programming languages that run on the JVM are becoming more and more popular, such as Groovy, JRuby, Scala and Clojure.

I had a mate that had the best job title ever. "Penetration Tester". He was a hacker that used to test banks security systems i.e. big nerd. Used to be funny watching him try to pick up with that line. "I'm a penetration tester", he has been slapped like 5 times cause of it. I'm glad i found a mrs before I started programming, now shes stuck wid me ;P

Its been quite a while since I am using JAVA. But its only recently that i am exposed to the upper levels of JAVA. I like the language very much. Its very portable and the best thing is its everywhere. Tools, downloads, tutorials and everything are quite easy to find.

Can anyone mention the negative aspects of JAVA? I had done some Googling on this, but didn't find much of use.

It's bureaucratic and restrictive. No closures. No properties. Forced repetition on micro and macro levels. Mediocre model of abstraction.

The *real* triumphs of Java have little to do with the language itself:

- Made separation of language and byte-code mainstream (it was hardly the first, I was using p-code in the late 1970's/early 80's)
- Made garbage collection mainstream (I'd actually argue it was mainstream before that, but in that era, the "stream" wasn't the "river" it is today)
- Enabled the generation of *superb* tools, without which the language and environment would be essentially impossible to deal with.

I believe Java-the-language is nearing an evolutionary dead-end (of course, I thought that a few years after it came out, too, because there were already better options). Java 7 will bring a few more language additions (some of which will be quite nice, even though really simple (like multi-catch))--but after this, I'm not sure what else it can really add. I believe most Java innovation will come in tooling, byte-code manipulation, packaging/integration, JVMs, etc.

Somnath Mallick wrote:Can anyone mention the negative aspects of JAVA? I had done some Googling on this, but didn't find much of use.

Java is my first programming language. And it seems everywhere I look on the internet i only see people complaining about it. I thought well it's so popular so there must be some reason why people use it, so i googled the term "Why does everybody love java" but instead i got lots of results for "Why does everyone hate java".

David Newton wrote: It's bureaucratic and restrictive. No closures. No properties. Forced repetition on micro and macro levels. Mediocre model of abstraction.

I understood the restrictive part but what do you mean by bureaucratic??? And what do you mean by Forced repetition on micro and macro levels?? Could you kindly explain with an example? Sorry that I am no hot shot with Java!!!

Stuart wrote:* Java's checked exceptions bloat code, make components harder to use and maintain, and lead to tons of boilerplate code, each line of which is a bug-in-waiting.
* Java's new operator/constructors cannot pick a return type. The amount of code that exists only to work around this is staggering. Two entire cottage industries have sprung up to deal with this single issue: factory patterns and dependency injection.
* Java has no metaprogramming features to automate common tasks such as field accessors, standard constructors, and simple delegation.
* Primitives, functions, and classes are not first-class objects, leading to huge code bloat to deal with these types specially. DLN: the issue with primitives is somewhat mitigated by auto-boxing. * Java's core reflection and interception capabilities are clunky, requiring tons of bolt-on technologies to make them workable, including AOP, annotations, and code generators.