(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 01:20 PM
0 users currently in Programming.
Acmlm's Board - I3 Archive - Programming - What exactly is it about java that makes it so hated?
  
User name:
Password:
Reply:
 
Options: - -
Quik-Attach:
Preview for more options

Max size 1.00 MB, types: png, gif, jpg, txt, zip, rar, tar, gz, 7z, ace, mp3, ogg, mid, ips, bz2, lzh, psd

UserPost
Simon Belmont
Posts: 1772/1773
Originally posted by Kasumi-Astra
Oh, he's elitest all right- but I tend to notice people who like Java are like people who like using Perl, C or even Linux- they absolutely swear by it and little else. Maybe that's just programmers in general, but I find certain languages tend to experience fanboyism more than others, and Java and C++ are the worst


fanboyism reaches everywhere, so I'd hardly consider that a reason to hate something; because of fanboys, if there is a brand name, there is someone who swears by it.

This thread was definitely an interesting read, though. I would've partaken more in the discussion but I don't think I really deserve too with my limited knowledge.
HyperHacker
Posts: 5068/5072
Originally posted by never-obsolete
var1 gets converted to an unsigned int when compared with 10 (another unsigned int)
and thus #2 would get executed. not #1 as expected.
What stupid compiler are you using?

Originally posted by Simon Belmont
you should've made every variable and class giberrish names just to piss him off :p

A fun idea, but he'd probably lose points for not making readable/maintainable code or blah blah.
Kasumi-Astra
Posts: 254/258
Oh, he's elitest all right- but I tend to notice people who like Java are like people who like using Perl, C or even Linux- they absolutely swear by it and little else. Maybe that's just programmers in general, but I find certain languages tend to experience fanboyism more than others, and Java and C++ are the worst
Simon Belmont
Posts: 1767/1773
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
Jagori
Posts: 155/155
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

Kasumi-Astra
Posts: 249/258
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
never-obsolete
Posts: 79/79
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
Ailure
Posts: 2582/2602
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...
Guy Perfect
Posts: 451/451
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.
Drag
Posts: 81/85
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.
FreeDOS +
Posts: 1289/1312
Read /dev/bios or /dev/cdrom. btw, you never said that you were restricted to a certain operating system, so this counts.
Guy Perfect
Posts: 450/451
You forgot about the "etc." FreeDOS. Show me a JAVA program that can access the BIOS firmware or read raw CD data.
HyperHacker
Posts: 5039/5072
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.
FreeDOS +
Posts: 1285/1312
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
Guy Perfect
Posts: 449/451
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.
MathOnNapkins
Posts: 1101/1106
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.
neotransotaku
Posts: 1858/1860
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.
FreeDOS +
Posts: 1284/1312
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)
HyperHacker
Posts: 5034/5072
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 Firefox, 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.
MathOnNapkins
Posts: 1099/1106
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.
This is a long thread. Click here to view it.
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.012 seconds; used 375.87 kB (max 437.71 kB)