(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-03-24 12:59 PM
0 users currently in Programming.
Acmlm's Board - I3 Archive - Programming - What exactly is it about java that makes it so hated? New poll | |
Pages: 1 2Add to favorites | Next older thread
User Post
Simon Belmont
Except I'm totally fucking hyped about Dracula X: Chronicles.








Since: 11-18-05
From: Pittsburgh

Last post: 6283 days
Last view: 6283 days
Posted on 02-14-07 05:15 AM Link | Quote
I'm curious because I like the language myself, but anytime I mention it almost anywhere, the replies are filled with hate and "I don't like it"

Thing is most people just say "because it sucks" without giving a reason, I really like the multiplatform and applet part about it, specifically the applets. Usually Java is dumped in favor for flash, but flash is slow and has no right click. I'm not exactly an expert on programming languages, but I know my way around a few, I'm just curious what is is you (don't) like about Java.
MathOnNapkins

1100

In SPC700 HELL


 





Since: 11-18-05

Last post: 6283 days
Last view: 6283 days
Posted on 02-14-07 05:32 AM Link | Quote
Generally speaking, it seems like no matter what they do, it's FUCKING SLOW. For whatever reason, it's just slow. Even the latest versions do not seem to be suitable for general development, imo.

There's also the lack of pointers, which can make data manipulation a bitch. It lacks function pointers too, which made some applications a living hell to write. I had to... uh... write an abstract class and subclass about 80 different classes to accomplish what would be simple in C. This brings us to the next point...

Why does it HAVE to be object oriented? I think java would probably be at least 4x faster without the object overhead. It's already an emulator for a computer that doesn't exist - why add object oriented stuff to make it even slower?

Strong typing constraints. In C and C++ sometimes you'll have to recast this or that, but you can change the compiler settings to ignore some things - it just assumes you know what you're doing. In Java you MUST recast anything remotely different to make sure the machinery works.

The basic Java classes that are built into the SDK often are very similar, with no apparent reason for using one over the other. Even the documentation doesn't help much in this regard. Just look at how many different inputbuffer-like classes there are.

Java applets are often more of a burden than a boon. Loading is too slow, and often java applets fail to load altogether. Flash apps tend to look better and perform better, in my experience. So what's the POINT of a Java applet?

So in my mind the one redeeming factor of Java is its crossplatform capabilities. Even this can be problematic when you are doing calculations that would depend upon the system environment. e.g. once I was trying to design a minesweeper game in Java. I had to resize the window but also take into consideration the size of the menu bar. The size of the menu bar varies between Windows XP and windows 2000/98/etc... This caused some funky miscalculations. I didn't even want to try and see what a Mac would produce. So even while trying to be crossplatform it still can cause a programmer huge headaches in ensuring it works across all the "supported" platforms.
FreeDOS +

Giant Red Koopa
Legion: freedos = fritos








Since: 11-17-05
From: Seattle

Last post: 6283 days
Last view: 6283 days
Posted on 02-14-07 06:45 AM Link | Quote
Java's not slow. Hell, if it can run a 3D desktop that's prettier and more featureful than Windows Vista and runs on a Pentium 2, I hardly call that slow.
MathOnNapkins

1100

In SPC700 HELL


 





Since: 11-18-05

Last post: 6283 days
Last view: 6283 days
Posted on 02-14-07 07:01 AM Link | Quote
okay... so is it written in straight bytecode or wtf? I quite simply don't believe that.

Oh... another issue with java is memory management. While unused memory is automatically cleaned up for you, getting more memory is a bitch and a half. Last I checked I couldn't go over 10 megabytes of allocated memory without throwing an exception. The only solution I could find on the net was to run it with an extra command line option when you run the virtual machine. Seriously, what the hell is that shit. It should adapt to the machine it is running on and ask the operating system for more memory instead.

GUI controls also tend to be unresponsive as hell, especially if you have a lot of them on the screen at once. They might have fixed this in the more recent versions, but last I checked it was still shitty.
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6284 days
Last view: 6284 days
Posted on 02-14-07 08:28 AM Link | Quote
Any Java app I run will use up at least 100MB of RAM and take at least 20 seconds to load. The Java runtime is 46.4MB without non-European fonts. It worms its way into every nook and cranny, running in the background at all times within other processes such as Windows Explorer and lololol, so it can't be killed. No Java program I've yet used has a decent GUI; Azureus' is nice, but every time I use it it has to update 4 different things and each one requires restarting the program. Tile Molester's menus are a joke, and its file browser is a poor imitation of Windows' standard browser. Every other GUI I've seen in Java is just ugly and lacking basic functionality.

Maybe it's just the Windows port that sucks, but still, it sucks. With Windows being on 90% of computers, that's really not excuseable.
FreeDOS +

Giant Red Koopa
Legion: freedos = fritos








Since: 11-17-05
From: Seattle

Last post: 6283 days
Last view: 6283 days
Posted on 02-14-07 08:44 AM Link | Quote
Maybe, the Java VM only uses up like half a meg on my machine. The only downside is that it took like six hours to compile (stupid legal restrictions making it impossible for a binary package to exist for my OS)
neotransotaku

Sledge Brother
Liberated from school...until MLK day








Since: 11-17-05
From: In Hearst Field Annex...

Last post: 6286 days
Last view: 6283 days
Posted on 02-14-07 08:55 AM Link | Quote
HH, Azureus uses non-Sun GUI elements--this is why you have to update a bazillion things when you update Azureus

I feel Java is better suited for the business environment than the home environment. In industry, the object oriented nature of Java helps mitigate problems that arise in a multi-programmer environment of a company. This helps reduce the number of bugs that could potentially crop up, which is tremendous savings for companies as paying software developers is not cheap.

A lot of what you have programmed MathOnNapkins seems you've done so yourself. As a result, you feel very restricted in what you can do and well, I do agree with you. C/C++ is a much more powerful language because you can do so much; but at the same time it does has it drawbacks which I believe are equally as bad as Java's. Closing up memory leaks in C/C++ is a pain and I have the backing of 200+ students who just experienced that this past weekend.

Also, don't forget that Sun designed Java to make it more productive for the business environment, not the individual user. Many application-level programming is developed using OOD--find me a large company that develops application-level programs without OOD. Enforcing types allows better security (what was the last Java virus that made headlines?). Computers nowadays are so fast that the "performance hit" caused by using Java is made up for the security and productivity it brings.

I do agree with MathOnNapkins that Java applets are horrible invention.
MathOnNapkins

1100

In SPC700 HELL


 





Since: 11-18-05

Last post: 6283 days
Last view: 6283 days
Posted on 02-14-07 12:47 PM Link | Quote
I'll give you that - memory errors in C/C++ are such a common and hard to debug problem that you almost have to create wrapper classes or structs to deal with it. I mean... so much can go wrong it's not funny.
Guy Perfect









Since: 11-18-05

Last post: 6285 days
Last view: 6284 days
Posted on 02-14-07 09:49 PM Link | Quote
To me, OS's are made with their own executable specifications and it's somewhat of an insult to download a virtual machine to run software. The pinnacle of hypocrisy here is Microsoft, who makes an OS and makes you download a virtual machine to run software on it. Either way, Java and .NET get my thumbs down for that reason.

Also mentioned is the processing overhead. When I write software, I want the most control over it as I can, without tearing out my hair. This is a personal preference, but a strong reason that I have chosen C as my language of choice. Not C++, as that is not C but is in fact a different language. (Pet peeve. Sorry. To me, "C/C++" is means for a chemical shower)

I could use assembly, but that's restricted to a specific architecture any way you look at it. I could use Java or .NET, but they require oodles of overhead. I could use any variant of BASIC, but unless Full BASIC gets mainstream attention, all BASIC will ever amount to is proprietarianism. (Is that a word?) C, on the other hand, is standardized, time-tested, reliable, and generally the first language to be implemented on new architectures.

Compilers are written for nearly every OS, it goes to the native executable format, etc. The same cannot be said for Java.
FreeDOS +

Giant Red Koopa
Legion: freedos = fritos








Since: 11-17-05
From: Seattle

Last post: 6283 days
Last view: 6283 days
Posted on 02-15-07 12:02 AM Link | Quote
Originally posted by Guy Perfect
Compilers are written for nearly every OS, it goes to the native executable format, etc. The same cannot be said for Java.

Yes it can
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6284 days
Last view: 6284 days
Posted on 02-15-07 02:47 AM Link | Quote
Originally posted by MathOnNapkins
I'll give you that - memory errors in C/C++ are such a common and hard to debug problem that you almost have to create wrapper classes or structs to deal with it. I mean... so much can go wrong it's not funny.

With great power comes great responsibility. A language with pointers versus one without them is like a motorcycle versus a bike - you can do things much faster with pointers, and some things you can't do without them (comparing to a bike: chasing a car, towing a big load), but it's more difficult to use properly, and screwing up causes much bigger problems.

Now, an interpreted language like Java is like riding a bike, except it's really a stationary bike being dragged along by some guy.
Guy Perfect









Since: 11-18-05

Last post: 6285 days
Last view: 6284 days
Posted on 02-15-07 10:43 PM Link | Quote
You forgot about the "etc." FreeDOS. Show me a JAVA program that can access the BIOS firmware or read raw CD data.
FreeDOS +

Giant Red Koopa
Legion: freedos = fritos








Since: 11-17-05
From: Seattle

Last post: 6283 days
Last view: 6283 days
Posted on 02-15-07 10:47 PM Link | Quote
Read /dev/bios or /dev/cdrom. btw, you never said that you were restricted to a certain operating system, so this counts.
Drag

80








Since: 01-18-07
From: USA

Last post: 6284 days
Last view: 6283 days
Posted on 02-16-07 04:36 AM Link | Quote
I don't like how everything *NEEDS* to be a class. I also don't like how it tends to be slow. I also dislike the lack of pointers. The garbage collection is useful, but still, it's something you don't have complete control over. That, and my first high-level language was C++, so I guess I have a bias towards it.
Guy Perfect









Since: 11-18-05

Last post: 6285 days
Last view: 6284 days
Posted on 02-16-07 06:48 PM Link | Quote
Originally posted by FreeDOS +
Read /dev/bios or /dev/cdrom. btw, you never said that you were restricted to a certain operating system, so this counts.
Very funny. You could make the argument that any programming language could call an arbitrary shell command, but that certainly does not count as a capability of the language itself.
Ailure

Mr. Shine
I just want peace...








Since: 11-17-05
From: Sweden

Last post: 6283 days
Last view: 6283 days
Posted on 02-16-07 07:14 PM Link | Quote
Originally posted by Guy Perfect
You forgot about the "etc." FreeDOS. Show me a JAVA program that can access the BIOS firmware or read raw CD data.
Java can use C code, so anything you can do with C... but of course, portability can't be guaranteed. I hadn't really looked into native classes much to be honest.

Also, This might be a informant read. There seems to be allot of misunderstandings here about Java in general, even if some people do make good points.

Most people complain about Java being slow because of the boot time of the Java VM. It's like saying Word is slow when you include the booting time, and as soon the Java VM is started it goes pretty smooth. :/

Oh yeah, Java does have pointers. It's just not easily controlled by the user just.

My biggest complaints about Java isn't performance related, but rather things like... why isn't there any unsigned types? :/ And then we have the lack of some basic things, such as lack of proper enums... and the enums class doesn't count as it's done in a awkward way, though there's a way to simulate enums by typing something like...
public static final int ONE = 1;

public static final int TWO= 2;

And so on...

And Java is generally bad at stuff that is generally better done at low-level, such as emulation.

Also neotransotaku have a point. Java is very popular amongst businesses, mostly because of it's portability and level of abstraction.

Hyperhacker: Time to get a new computer. Even on my laptop or old computer, it still only takes a few seconds for a typical hello world application to start (which would be a good way to measure the time it takes for a VM to satrt). And thoose are equilant to computers for five years ago...


(edited by Ailure the f on 02-16-07 05:14 PM)
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6285 days
Last view: 6285 days
Posted on 02-16-07 10:40 PM Link | Quote
Originally posted by Ailure the f

why isn't there any unsigned types?



it complicates things and is error prone so they chose to leave it out. in C:


signed int var1 = -1;

if(var1 < 10)
// do something #1
else
// do something #2


var1 gets converted to an unsigned int when compared with 10 (another unsigned int)
and thus #2 would get executed. not #1 as expected.

edit: I confused myself with all this sign nonsense


(edited by never-obsolete on 02-16-07 04:52 PM)
(edited by never-obsolete on 02-16-07 04:52 PM)
(edited by never-obsolete on 02-16-07 05:30 PM)
Kasumi-Astra

Flurry


 





Since: 11-18-05
From: Sheffield England

Last post: 6283 days
Last view: 6283 days
Posted on 02-17-07 02:19 AM Link | Quote
What makes people hate Java (and I swear this is true) is the people that love Java. My Java lecturer two years ago used to watch over our shoulders, pointing flaws in logic, syntax and I shit you not, spelling. I've never met a more anal teacher in my life
Some of my friends who like Java are turning out just like him as well.

We've just finished with C#, Visual Studio and .NET in our Applications, Architectures and Frameworks module. We're switching to Java Enterprise Edition, Tomcat and Netbeans for the rest of the semester. It feels so good to just be able to boot up and download the whole thing from Sun for free, run it on our own machines, and know that there's a ton of support out there as well. Personally, I feel safer in that respect with Java.

Then again, I prefer to do web applications the simple, old fasioned way with PHP more than anything else
Jagori

150


 





Since: 11-17-05

Last post: 6284 days
Last view: 6284 days
Posted on 02-17-07 07:57 PM Link | Quote
Originally posted by never-obsolete
In C:


signed int var1 = -1;

if(var1 < 10)
// do something #1
else
// do something #2


var1 gets converted to an unsigned int when compared with 10 (another unsigned int)
and thus #2 would get executed. not #1 as expected.


You've got your example backwards. The problem comes when the second number being compared is out of range of the first. If the second number falls in the range of the first, you're fine, even if the ranges aren't the same - something #1 will be executed in your example. This, on the other hand, will cause problems:


unsigned int var1 = 10;

if(var1 > -1)
// do something #1
else
// do something #2




(edited by Jagori on 02-17-07 02:00 PM)
Simon Belmont
Except I'm totally fucking hyped about Dracula X: Chronicles.








Since: 11-18-05
From: Pittsburgh

Last post: 6283 days
Last view: 6283 days
Posted on 02-17-07 08:56 PM Link | Quote
Originally posted by Kasumi-Astra
What makes people hate Java (and I swear this is true) is the people that love Java. My Java lecturer two years ago used to watch over our shoulders, pointing flaws in logic, syntax and I shit you not, spelling. I've never met a more anal teacher in my life


That sounds more like elitism than teaching: most people learn best from their mistakes, syntax and spelling errors would be caught by the compiler anyways, you should've made every variable and class giberrish names just to piss him off :p
Pages: 1 2Add to favorites | Next older thread
Acmlm's Board - I3 Archive - Programming - What exactly is it about java that makes it so hated? |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.062 seconds; used 461.54 kB (max 591.18 kB)