PDA

View Full Version : i HATE Java and anything related



GSF1200S
October 1st, 2007, 09:03 AM
Java is a piece of crap. Every install no matter what the distro, if I just so happen to even THINK about using frostwire, my CPU usage skyrockets to 100%.

Yup- wanna download a video? 100%cpu until its downloaded (ive tried EVERYTHING here). Besides that, I hate the look of it. I hate how much RAM it uses, and how slow it is.

I just, well, HATE it! Im sorry, but after spending hours trying to resolve my cpu usage issues, I have to vent somewhere. I cant get qtella to install as I get make file errors, apollon wont connect to anything (does anyone even care about giFT anymore), and frostwire/limewire/any other java based program uses ungodly cpu. The sad part.. im going to have to install limewire or frostwire on XP in Virtualbox just so I can download a song. Sad- I love linux, and im here to stay, but this kind of crap needs to get resolved. I certainly dont want to LEARN java to try and fix this issue that noone seems to care about or have a clue how to fix...

Ahhh, thanks for listening... I get wound up over crap like this :)

GSF1200S
October 1st, 2007, 09:05 AM
**Duplicate**

metroplex
October 1st, 2007, 09:09 AM
Hehe, you didn't consider not showing what you're downloading did you? :)

Sir Nose
October 1st, 2007, 09:10 AM
I don't like it either. It's bloated and the license issues make it somewhat difficult to integrate into the OS. Luckily there are alternatives.

GSF1200S
October 1st, 2007, 09:11 AM
Hehe, you didn't consider not showing what you're downloading did you? :)
What are you talking about?

Circus-Killer
October 1st, 2007, 09:14 AM
seems to me the problem is frostwire, not java.

yes it is a bit bloated and what not, but nothing in java should cause 100% cpu usage, which shows a fault in frostwire. any programming language can cause 100% cpu usage, if the developer makes an error.

my point is dont blame the tools for the workman's shoddy job.

metroplex
October 1st, 2007, 09:16 AM
What are you talking about?

In your second post you attached a screenshot of your system showing your downloads and CPU-usage.. your downloads looked a bit "suspicious" :)

Now i saw that you edited your second post marking it as a duplicate.

GSF1200S
October 1st, 2007, 09:26 AM
well, heres what im talking about... rediculous- now im not d/ling anything!

GSF1200S
October 1st, 2007, 09:27 AM
seems to me the problem is frostwire, not java.

yes it is a bit bloated and what not, but nothing in java should cause 100% cpu usage, which shows a fault in frostwire. any programming language can cause 100% cpu usage, if the developer makes an error.

my point is dont blame the tools for the workman's shoddy job.

I hear you.. how long has frostwire been around? You'd think they would have fixed something like this by now...

nowshining
October 1st, 2007, 09:47 AM
I agree Java sucks and is bloated - I like it to a degree but in the end it's just a bloated piece of junk.

slimdog360
October 1st, 2007, 10:01 AM
java is pretty cool. Cross platform without any real issues.

tehet
October 1st, 2007, 10:15 AM
Are you sure its not Korqueror that opens the frostwire?

my CPU usage skyrockets to 100%
Then use the CLI.

Java is brilliant.

GSF1200S
October 1st, 2007, 10:20 AM
Are you sure its not Korqueror that opens the frostwire?

Then use the CLI.

Java is brilliant.

huh? CLI? Konqueror- im missing your point it seems; what does konqueror have to do with anything?

glotz
October 1st, 2007, 10:23 AM
I cant get qtella to install as I get make file errors, apollon wont connect to anything (does anyone even care about giFT anymore), and frostwire/limewire/any other java based program uses ungodly cpu.
There are plenty of other fish in the sea.


java is pretty cool. Cross platform without any real issues.
Cross platform is cool. Really slow is not.

regomodo
October 1st, 2007, 10:43 AM
Azureus and Lightzone are 2 java apps i like but are both feel slow and are a pain.

bash
October 1st, 2007, 12:35 PM
Java is slow. Even really slow at times. And yes Java is easily crosscompatible. But for me performance is more important. Thats why Im not a big fan of it. And maybe because Java apps such as Lotus Notes or Smyphany always come acros as real slow and bloated.

And why don't you use gtk-gnutella instead of Frostwire? Its native GTK+ client.


sudo apt-get install gtk-gnutella

GSF1200S
October 1st, 2007, 12:47 PM
Java is slow. Even really slow at times. And yes Java is easily crosscompatible. But for me performance is more important. Thats why Im not a big fan of it. And maybe because Java apps such as Lotus Notes or Smyphany always come acros as real slow and bloated.

And why don't you use gtk-gnutella instead of Frostwire? Its native GTK+ client.


sudo apt-get install gtk-gnutella

correct me if im wrong, but GTK-gnutella wont turn the same results as Frostwire will it? I know they are both on the same network, but it seemed back in my gnome days that frostwire always returned more...

I hadnt used GTK-gnutella because I figured it needed a bunch of gnome libraries (i use kde)- I was wrong..

Java still sucks.

bash
October 1st, 2007, 12:58 PM
well Im currently using it. Used Frostwire before. But as you said: Java ...

So far gtk-gnutella returned pretty good results for me. Quite happy with it.

the_darkside_986
October 1st, 2007, 02:03 PM
It is good to hear that gtk-gnutella worked for you. In my experience though, I have to wait a few minutes to be connected to peers.

Frostwire, AFAIK, is based on Limewire so it shares the same security hazards as Limewire. Both should be avoided, even if the exploits are primarily for Windows machines.

I have noticed that some Java applications do become a resource hog. Azureus used to give me that trouble but it seems that the current version I use in Ubuntu behaves quietly and I am able to play Sauerbraten at over 100 fps while Azureus runs in the background. I believe it is probably a matter of not "sleeping" long enough in the application thread. I haven't looked at Java source code in a while but I remember a java game tutorial saying I must sleep in the thread for so many milliseconds to give the OS time for other stuff. Not sure that this applies to GUI programs though.

GSF1200S
October 1st, 2007, 02:09 PM
It is good to hear that gtk-gnutella worked for you. In my experience though, I have to wait a few minutes to be connected to peers.

Frostwire, AFAIK, is based on Limewire so it shares the same security hazards as Limewire. Both should be avoided, even if the exploits are primarily for Windows machines.

I have noticed that some Java applications do become a resource hog. Azureus used to give me that trouble but it seems that the current version I use in Ubuntu behaves quietly and I am able to play Sauerbraten at over 100 fps while Azureus runs in the background. I believe it is probably a matter of not "sleeping" long enough in the application thread. I haven't looked at Java source code in a while but I remember a java game tutorial saying I must sleep in the thread for so many milliseconds to give the OS time for other stuff. Not sure that this applies to GUI programs though.

What game is Sauerbraten?

argie
October 1st, 2007, 02:17 PM
Sauerbraten is Cube 2, sort of. It's an FPS.

OP: Perhaps you should try installing Sun's Java implementation? I've heard that it runs much faster. I don't think it's as free though.

GMU_DodgyHodgy
October 1st, 2007, 02:17 PM
Java can be a problem if the programmer does a shoddy job of design and implementation. However, it is no worse than .net and in many cases is faster. You also have to look at the JVM your using. I use IBM's HotSpot JVM and find its much faster than the native Sun JVM.

But hey - programming languages/environments abound and developers can pick what they like best.

Vive la difference! :)

jrmink
October 1st, 2007, 02:46 PM
Yea I run limewire and it uses all of my cpu

zugu
October 1st, 2007, 03:05 PM
I am not a developer, I have no knowledge of programming whatsoever. I prefer to consider myself a power user and try to stay informed with everything in the IT industry.

All major tech sites treat Java like it's something awesome. Geeks everywhere praise it. Programmers love it.

Yet I still have to see any meaningful instances of Java-having-an-impact-on-my-moderate-computer-needs.

No, seriously. I carefully customize and tailor my operating systems, Windowses and Linuxes alike. Yet Java is that messy bloated pig I have to install in order to have Yahoo! Games work in Yahoo! Messenger (and I rarely play those games). Or that hideous thing I need in order to get access to a weird type of chat on some God-forgotten site.

Azureus is just bad. So bad I feel the urge to boot into Windows and stare at the elegance and awesomeness of uTorrent.

What other uses for Java? Oh, right, Freenet. But I visit it once a year.

Now someone tell me why is Java so important for the masses, why should we care about it and why isn't everyone developing applications in it if it's so cool? And how come almost everything that's written in Java is criticized for being bloated? Is the "bloatness" of Java itself affecting the developers' coding habits and making them create bloated applications?

Is this similar to those stupid webdesigners who love Flash/AJAX and are overusing these technologies just o show their skills to the world and not actually for creating something useful? If Java is so cool to code in, I can understand that; but is anyone taking into consideration the users' feedback?

Heck, even Flash is more useful to me than Java (and I hate Flash, it's something I feel we could all live without).

bastiegast
October 1st, 2007, 03:14 PM
I am not a developer, I have no knowledge of programming whatsoever. I prefer to consider myself a power user and try to stay informed with everything in the IT industry.

All major tech sites treat Java like it's something awesome. Geeks everywhere praise it. Programmers love it.

Yet I still have to see any meaningful instances of Java-having-an-impact-on-my-moderate-computer-needs.

No, seriously. I carefully customize and tailor my operating systems, Windowses and Linuxes alike. Yet Java is that messy bloated pig I have to install in order to have Yahoo! Games work in Yahoo! Messenger (and I rarely play those games). Or that hideous thing I need in order to get access to a weird type of chat on some God-forgotten site.

Azureus is just bad. So bad I feel the urge to boot into Windows and stare at the elegance and awesomeness of uTorrent.

What other uses for Java? Oh, right, Freenet. But I visit it once a year.

Now someone tell me why is Java so important for the masses, why should we care about it and why isn't everyone developing applications in it if it's so cool? And how come almost everything that's written in Java is criticized for being bloated? Is the "bloatness" of Java itself affecting the developers' coding habits and making them create bloated applications?

Is this similar to those stupid webdesigners who love Flash/AJAX and are overusing these technologies just o show their skills to the world and not actually for creating something useful? If Java is so cool to code in, I can understand that; but is anyone taking into consideration the users' feedback?

Heck, even Flash is more useful to me than Java (and I hate Flash, it's something I feel we could all live without).

Azureus is is/has been one of the most popular bittorrent clients in the world. Limewire IS the most popular gnutella client at least where I live. I'd say those programs are pretty usefull. And hey! They have native linux clients too. You know why? Because they where written in Java.

I use Azureus and I don't have any memory problems. I did have problems with frostwire using too much CPU but I assume it's just badly coded. Java is getting better all the time and has recently been open sourced.

Then there are the benefits for programmers: Multi platform, neat syntax and lots more. This means Increased productivity per programmer which means Java programs are cheaper to develop or get developed faster and this is again a direct benefit for consumers like you.

Java has it's uses as you can see.

GMU_DodgyHodgy
October 1st, 2007, 03:36 PM
In addition, Java is used widely on server based applications. When you use a web-based app or service - you are most likely using something written in Java.

I have used Java to write applications to analyze financial data. its neat syntax and broad library makes it relatively easy to set up useful applications.

One of my favorite open source financial software programs is written in Java and runs exceptionally well with a great user interface. I love GnuCash as well - but it is actually a much larger program (more bloat) and runs slower than JGnash.

So I would imagine the design of an application and its implementations has as much to do with the bloat and slowness issue as does the technology used.

zugu
October 1st, 2007, 03:38 PM
Java has it's uses as you can see.I still feel the buzz around Java doesn't translate into some obvious advantages for the user.

Installing Java just to be able to use Azureus on platform A is a PITA for the plain user who can't understand Azureus being written in Java makes it available for platform B, also. That's why people are running from Azureus on most platforms. Just grab $random torrent on any major tracker and check out the numbers of peers using Azureus vs peers who use anything else. Azureus usage is visibly declining. Both Azureus and Limewire are not critical applications and one can easily find replacements for them.

In the end you just pointed out that there ARE programs written in Java, not that there are enough programs written in Java in order to make installing the runtime environment worthwhile.

I don't really care if the developers are enjoying themselves in Java, the consumer is the one who should enjoy their creations (yeah, I know, but sometimes is good to be egocentric).

So I ask again, tell me where the major consumer software written in Java is. Otherwise, it's just hype.

Xanatos Craven
October 1st, 2007, 06:27 PM
Azureus is just bad. So bad I feel the urge to boot into Windows and stare at the elegance and awesomeness of uTorrent.
Actually, you can run uTorrent in WINE... though I don't know why so many people do that just to get away from Azureus when Deluge, KTorrent and other good native clients exist.

I'm also becoming frustrated with Frostwire. More so because in Gutsy it won't even run for me, but even before then its sluggishness and use of Swing was irritating. May have to consider Gtk-gnutella.

Lord Illidan
October 1st, 2007, 06:33 PM
Azureus works well for me, too. Plenty of RAM, but not too much cpu usage.

However, the gnu java really does suck. Sun Java beats it in every respect I think.

Erunno
October 1st, 2007, 07:08 PM
I don't really care if the developers are enjoying themselves in Java, the consumer is the one who should enjoy their creations (yeah, I know, but sometimes is good to be egocentric).

So I ask again, tell me where the major consumer software written in Java is. Otherwise, it's just hype.

You have no idea what you are talking about. Most of todays server and middleware software is being written in Java. And we're talking here about applications which cost millions to develop and are used by huge companies. Having a fully object-oriented (yes, with exceptions) in sandboxed execution environment with built-in security, a garbage collection and a VERY large standard library (J2EE alone warrants using Java) is a boon when developing highly complex applications (think WebSphere, Tivoli, etc). Only few performance bottlenecks get written in C++ nowadays and are usually embedded in larger Java applications, the gain is just not worth the pain you have to go to deal with when having to care about memory management and security yourself. Few end-user stuff is written in Java because a lot of applications are simply not complex enough and do not have the tight requirements of a company has to uptime and security.

And Java is *mostly* platform-independent. You can still encounter some annoying implementation bugs in the JVMs which sometimes differ on different platforms which is a nightmare for QA.

tenmillionmilesaway
October 1st, 2007, 09:49 PM
Oh a Java bashing thread, haven't seen one of these before.....

visionaire
October 1st, 2007, 09:53 PM
I also hate java at heart the GUI software made with this is so bloated, slow, and a pain in the a..

Hope this dissapear!

Billy_McBong
October 1st, 2007, 11:50 PM
i prefer torrents to frostwire, they have a much bigger selection.
but i occasionally use frostwire and it is very bloated

GSF1200S
October 2nd, 2007, 01:46 AM
Not really bashing so much as realistic criticism. I mean come on- whether its Java itself or the programmers who made limewire/frostwire itself, its simply not warranted to have such issues with bloat and cpu load.

I understand its appeal as a cross-platform language that only needs a java runtime environment to work, but couldnt steps be made to correct its problems?

I mean, Ive had this problem a while, and NOTHING fixes it- surely someone could have noticed the issue and took steps to correct it.

phrostbyte
October 2nd, 2007, 02:07 AM
well, heres what im talking about... rediculous- now im not d/ling anything!

I like your desktop.

3rdalbum
October 2nd, 2007, 02:21 AM
No matter what the machine, Java always seems to be problematic (slow, makes the computer crash, sometimes the programs don't work properly with even small changes to the JRE version). So much so, that I refuse to install it on any of my computers anymore.

zugu
October 2nd, 2007, 03:45 PM
You have no idea what you are talking about. Most of todays server and middleware software is being written in Java. And we're talking here about applications which cost millions to develop and are used by huge companies. Having a fully object-oriented (yes, with exceptions) in sandboxed execution environment with built-in security, a garbage collection and a VERY large standard library (J2EE alone warrants using Java) is a boon when developing highly complex applications (think WebSphere, Tivoli, etc). Only few performance bottlenecks get written in C++ nowadays and are usually embedded in larger Java applications, the gain is just not worth the pain you have to go to deal with when having to care about memory management and security yourself. Few end-user stuff is written in Java because a lot of applications are simply not complex enough and do not have the tight requirements of a company has to uptime and security.

And Java is *mostly* platform-independent. You can still encounter some annoying implementation bugs in the JVMs which sometimes differ on different platforms which is a nightmare for QA.

Could you please stop acting like you're right? I clearly asked for examples of CONSUMER software written in Java, not about enterprise stuff.

And please, don't lecture me about Java QA, I work as a Java QA engineer for a mobile phone game company. The cross-platform thing is worthless when you have these huge differences in capacity and performance, as it's the case with mobile devices.

Tell me where the popular consumer software written in Java is, or shut up.

FuturePilot
October 2nd, 2007, 03:51 PM
I've never had a problem with Java. It's always worked great.

conehead77
October 2nd, 2007, 04:26 PM
I've never had a problem with Java. It's always worked great.

Same here. Also i like Azureus, i dont think it is much slower than other applications like OO.

GSF1200S
October 2nd, 2007, 08:56 PM
I like your desktop.

Thanks :)

Erunno
October 2nd, 2007, 09:07 PM
Could you please stop acting like you're right? I clearly asked for examples of CONSUMER software written in Java, not about enterprise stuff.

You claimed that Java is useless and all hype and I clearly objected to that by pointing out that Java is an established force in the enterprise application sector. I never denied that it never really pentrated the desktop market although Java is comfortable to work with but I guess Python established itself as (additionally) dynamically typed and memory management free language in the niche where people don't want to deal with C/C++.


And please, don't lecture me about Java QA, I work as a Java QA engineer for a mobile phone game company. The cross-platform thing is worthless when you have these huge differences in capacity and performance, as it's the case with mobile devices.


I am not a developer, I have no knowledge of programming whatsoever.

Does not compute. Where I'm working all of the QA people have at least some programming knowledge in order to be able to write some scripts if necessary (but more often than not they are capable programmers).

GSF1200S
October 3rd, 2007, 05:25 AM
You claimed that Java is useless and all hype and I clearly objected to that by pointing out that Java is an established force in the enterprise application sector. I never denied that it never really pentrated the desktop market although Java is comfortable to work with but I guess Python established itself as (additionally) dynamically typed and memory management free language in the niche where people don't want to deal with C/C++.



Does not compute. Where I'm working all of the QA people have at least some programming knowledge in order to be able to write some scripts if necessary (but more often than not they are capable programmers).


Maybe I dont understand because im not a programmer, but I dont even see why Java took off..

C++ is cross platform and as many variants, and it doesnt require its own environment (well it does, but its generally native) to run. Qt is what KDE is based on, and thats a variant of C++. GTK+ may not be cross platform but at least its more lean than java. Aside from some philosophies of programming and cross-platform, I havent really heard any reason why Java is any better than C++.

Granted, I havent picked up programming yet (well, a little Qbasic back in the day:) ), but java seems like a waste of time. Rather than write something like Limewire in Java where it requires a seperate runtime environment to use, why not just write it in another format?

igknighted
October 3rd, 2007, 05:44 AM
Maybe I dont understand because im not a programmer, but I dont even see why Java took off..

C++ is cross platform and as many variants, and it doesnt require its own environment (well it does, but its generally native) to run. Qt is what KDE is based on, and thats a variant of C++. GTK+ may not be cross platform but at least its more lean than java. Aside from some philosophies of programming and cross-platform, I havent really heard any reason why Java is any better than C++.

Granted, I havent picked up programming yet (well, a little Qbasic back in the day:) ), but java seems like a waste of time. Rather than write something like Limewire in Java where it requires a seperate runtime environment to use, why not just write it in another format?

Because if everyone has the runtime environment installed, then you don't need to compile the code separately for each platform. Sure, C++ can compile on many platforms. But you need to do the compilation for each one and release a binary for each platform. With java, a windows binary is the same as a PPC binary, which is the same as a linux binary, etc. Plus while the C++ would compile, chances are there are more changes that need to be made to the C++ code to make it run on the other platform.

Also, C++ was an almost expirimental foray into object-oriented programming. Java is a much more refined object-oriented language. If you ever try coding in them both, you would most likely love java due to its much more developer friendly syntax.

Also, it is faster than a truly interpreted language like python. It might not seem like it at times, but in larger, more complex coding tasks java should outperform python.

Java is a tool. It was seen by many programmers (especially web programmers) as a very good tool and it became popular. While it is very good for some tasks, many others it is not as good for. Just like the nicest hammer in the world wont really help you level that table, Java has its strong points and its weak points. Luckily for us installing java wont be an issue any more, as starting with Ubuntu 8.04 it should come standard as the Iced Tea project (AKA OpenJDK). Most distro's starting with Fedora 8 should include it standard, thus eliminating the hassle of using java on linux.

FranMichaels
October 3rd, 2007, 05:47 AM
Maybe I dont understand because im not a programmer, but I dont even see why Java took off..

C++ is cross platform and as many variants, and it doesnt require its own environment (well it does, but its generally native) to run. Qt is what KDE is based on, and thats a variant of C++. GTK+ may not be cross platform but at least its more lean than java. Aside from some philosophies of programming and cross-platform, I havent really heard any reason why Java is any better than C++.

Granted, I havent picked up programming yet (well, a little Qbasic back in the day:) ), but java seems like a waste of time. Rather than write something like Limewire in Java where it requires a seperate runtime environment to use, why not just write it in another format?

System.out.println "LOL";

I think that's right...

Anyway, the "advantage" of java is basically a "write once" "run anywhere thing". It has overhead as it's compiled into a byte code that can be run by java runtime environments. As for C and C++ being portable, it's no-brainer with Free and Open source stuff. You just port it, and compile. With proprietary apps, which may release for one platform and one architecture, java might be appealing, or for web applets etc.

If it does take off since java has been re-licensed gplv2, it may be something out of the box with many distros, and as such might be something to use instead of mono. That's honestly the only tangible benefit, tack on the cross platform aspect, and it seems it'd be good for both proprietary and commercial and/or Free/Open source software.

I'm not sure about performance, as I haven't played with java much since I had a Pentium II... Which wasn't fantastic with java...:(

GSF1200S
October 3rd, 2007, 06:15 AM
Ok, I see what youre saying now.

So, basically, I write a program in Java, and thats it. As the end users of my app have the runtime environment installed, I only write that one variation. If I were to use C++, I would need to modify the contents of an application specifically for the platform (Linux, Windows, etc)

Well, I guess I understand the appeal, I just wish some applications didnt come with the overhead. For instance, GTK Gnutella is a decent p2p client, and it runs much lighter than Limewire (Frostwire). While I understand the point that they prolly used Java so the 'wire app would be cross platform, it sucks that the whole runtime environment needs to be loaded just for the app. And dang, youd think theyd jump on a problem that could cause such extreme CPU usage :\

On the bright side, while frostwire wouldnt work at all with Beryl running, it works perfectly with compiz fusion (which I use like once a week, lol). I dont know.. I think my fortay into programming will be C++. Watch, 5 years from now some BA program will come out and ill have written it... in java :lolflag:

joelbryan
December 12th, 2008, 06:21 AM
Back in college when we have a subject that teaches Java, I never really got enthusiastic about it, with all the hype involved with it, I can't stand it, I hated it.

So I want to be honest to myself and I don't want to be a hypocrite and all and be unproductive, so I sneak my laptop to run ipython instead to figure out how to solve the programming problems, and finalized the code solution in Java. Call me stubborn, but I don't want to be preoccupied with the junk, cruft and nonsense in Java when solving a programming problem, but I nailed everything with straight A's.

My next subject teaches Objective-C, and I also hated it, but I got straight A's there too using Python.

I can say I have more fun using Python during my Java & Objective-C class. LOL.

Eisenwinter
December 12th, 2008, 08:13 AM
Don't use limewire to download a song, use SoulSeek.

Get the native Linux client for it, called Nicotine. you can get it with apt-get.

mihai.ile
December 12th, 2008, 11:21 AM
Well I use java, and as said it has a great syntax and is easy to develop applications with it. In enterprise large applications is widely used, as for desktop applications I think the main problem is about virtual machine optimizations and desktop integration.

For example I wanted to develop an application but didn't want to use java so that I could have a great integration with the user's desktop. I found both mono and python hard to find documentation, mature IDE's so that I could concentrate in building my application. I reached a dead end using those languages because of those reasons and I had to return to java so that I could finish my project. The result is here (www.jkiwi.com), not very popular but it gets around 250 downloads a day.
There were many points where I could feel java is slow and managed to solve them using a different approach (still using java)

At my faculty we had a security class that uses java to show particular implementations and you can't even believe how many checks are being made in the virtual machine just to make sure that all policies are met for executing a module.

So to summarize... java is a great tool for developers, really great documentation, many mature smart IDE's for building applications (maybe that's why is so great for programmers, for me is the main reason). In my opinion the only thing that misses here is a better virtual machine and better integration with the user's native desktop. I think the new license will help in this area.

Oh and because is relatively easy to develop a dump inefficient implementation of a application maybe that's also a reason why we find so many slow applications written in java.

howlingmadhowie
December 12th, 2008, 12:09 PM
Ok, I see what youre saying now.

So, basically, I write a program in Java, and thats it. As the end users of my app have the runtime environment installed, I only write that one variation. If I were to use C++, I would need to modify the contents of an application specifically for the platform (Linux, Windows, etc)


not quite. if you're careful, you can write cross-platform applications in C and C++ without too much difficulty. writing them in java just means that you can distribute a binary and so keep your application closed-source.

i think java took off because of the object-orientation craze in the mid 90s. the idea is so simple, that even management can understand it: we write software which through the use of objects resembles the real world, rather than some oblique combination of bits and bytes. java was 'high-level' and had things like 'interfaces' which implement 'programming by contract' (and management really loves that concept) and copious visibility constraints which allow 'encapsulation of data and functionality'. no one really bothered with the fact that java was terribly broken (e.g. String is final?) and horribly slow (but that's got a lot better with hotspot).

nowadays the world is different. java market penetration on desktop pcs is low. the side-dream of the java-applet never happened because of the resource consumption and start-up time. languages such as python and ruby have become just as quick to run while remaining 10 times quicker to program. here an example:



public class MyClass{

private int myInt;

public void setMyInt(int input) {
myInt=input;
}

public int getMyInt() {
return myInt;
}
}


compared with:


class MyClass:
myInt


in the modern world of free-software, there's no need to restrict access to code through usage of access modifiers. sometimes java (i'm looking at you here, ejb) forces usage of getters and setters. this results in terrible code-bloat.

SupaSonic
December 12th, 2008, 12:54 PM
I'd say Java is primarily used for J2EE these days.

And Java is much more strict than, say, Python or Ruby. And while it makes it harder to learn maybe, it does offer huge advantages.

Say I'm coding in Eclipse, Eclipse always knows what types of objects I'm working with, because it is always explicitly declared. I can just ctrl + space and bring up a list of object's methods/properties. When I was doing some stuff in python, I couldn't always use that, which really slowed me down.

It's not just about Eclipse though, the whole structure of the language is strictly defined. With the introduction of generics in java 1.5 it got even better. Not to mention the fact that desktop java apps need no porting at all, whereas porting something written in, say, python from Linux to Windows is a bit of a pain in the a$$.

Java has its flaws. It's slow (bloated?), swing is ugly, etc. But just like any other language, it has its purpose. In the end, it's not about what language you code in, it's about what you code.

jespdj
December 12th, 2008, 01:19 PM
Java is slow. Even really slow at times. And yes Java is easily crosscompatible. But for me performance is more important. Thats why Im not a big fan of it. And maybe because Java apps such as Lotus Notes or Smyphany always come acros as real slow and bloated.

Java has its flaws. It's slow (bloated?), swing is ugly, etc.
Slow: No it isn't. It's not 1998 anymore. The JIT (just-in-time) compiler in the modern Sun JVM is very sophisticated and efficient and translates Java bytecode to native machine code on the fly, which makes Java programs run quite fast. (GNU Java doesn't have this and is still slow, you shouldn't use GNU Java).

Yes, the default look and feel of Swing is ugly, but it's easy (one line fo code) to change to the native look and feel of your operating system.