Father of Java Leaves Oracle

Rofl-Mic-Lofl

For Whom The Bell Trolls
Joined
Dec 29, 2005
Messages
23,377
The Co-Creator of Java is leaving Oracle just after a few months of their acquisition of his longtime employer Sun Microsystems. This is also not too long after the former CEO's resignition.

Gosling didn't give any reason for his departure. Instead, he wrote, "Just about anything I could say that would be accurate and honest would do more harm than good."
 
Sounds like a sore loser to me. Cry more, bitch.

I take it you've never worked for a company that got acquired? Its a tough situation, especially when the buying company tends to go back on a lot of its promises. I imagine this guy was getting slapped left and right (emotionally). No one really knows the details except the inside parties, though.
 
Sounds like a good thing to me. Maybe now someone that actually has half a brain can take over managing the Java language and it'll turn into something that doesn't completely suck ass.
 
Sounds like a good thing to me. Maybe now someone that actually has half a brain can take over managing the Java language and it'll turn into something that doesn't completely suck ass.

Spoken like a true amateur! :)
 
Spoken like a true amateur! :)

I've been using Java for 3 years now and I've been paid to write Java for 1 year. I'm not an amateur. Java really does suck. Java is designed to force everyone to write mediocre code (and the lack of unsigned types is completely and utterly retarded)

Other languages I know (and have been paid to code in): C, C++, C#, Python, Lua, and PHP
 
I've been using Java for 3 years now and I've been paid to write Java for 1 year. I'm not an amateur. Java really does suck. Java is designed to force everyone to write mediocre code (and the lack of unsigned types is completely and utterly retarded)

Other languages I know (and have been paid to code in): C, C++, C#, Python, Lua, and PHP

I take you love C# then?
 
Gosling hasn't been involved in Java development for quite a while. Frankly, I'm not sure what exactly he does at Sun anymore. Or was he one of those fellow types that gets to do whatever they want?
 
I've been using Java for 3 years now and I've been paid to write Java for 1 year. I'm not an amateur. Java really does suck. Java is designed to force everyone to write mediocre code (and the lack of unsigned types is completely and utterly retarded)

Other languages I know (and have been paid to code in): C, C++, C#, Python, Lua, and PHP

lol. As I said, amateur.
 
Each to his own tool. They all can solve problems and have their relative strengths and weaknesses.
 
I've been using Java for 3 years now and I've been paid to write Java for 1 year. I'm not an amateur. Java really does suck. Java is designed to force everyone to write mediocre code (and the lack of unsigned types is completely and utterly retarded)

Other languages I know (and have been paid to code in): C, C++, C#, Python, Lua, and PHP
I dunno, man, C and C++ is why Windows is so full of security holes. If by 'mediocre' you mean 'unobfuscated' then maybe you have a point... but not pointers--those are bad, m'kay?

I have run into those situations where subtracting signed from unsigned resulted in extremely large unsigned numbers. Would never get that with Java.
 
I dunno, man, C and C++ is why Windows is so full of security holes. If by 'mediocre' you mean 'unobfuscated' then maybe you have a point... but not pointers--those are bad, m'kay?

I have run into those situations where subtracting signed from unsigned resulted in extremely large unsigned numbers. Would never get that with Java.

The language has nothing to do with why Windows is full of security holes. Linux is written in C, for example, and it lacks all of the security holes that Windows has.

And by "mediocre" I mean "mediocre". I shouldn't have to fight with a language to get it to do what I want. A language should make things as easy as possible. Java does as much as it can to make things as verbose and unwieldy as it can. No unsigned types, no function pointers/delegates, no operator overloading, no help *at all* from the language. I want to like Java, but every time I try and code in it I find myself hating the language more and more.

And doing math operations between signed and unsigned types could very easily be made a compiler warning and/or error, eliminating the problem you are describing without making the language a joke.

lol. As I said, amateur.

And you'd be wrong. But then again, you do seem to like Java, so you should be used to being wrong :p
 
I don't see why having both signed and unsigned types in a language is helpful. People will argue the following...

Problem: I only want an unsigned type because my value will never be negative, since it's a counter, etc.

Response: Do the same error checking for negative values, as you would regularly for underflow of an unsigned type. There really is no difference, and having an extra unsigned vs. signed only serves to make types less compatible with each other, and not only that, but you add another class of bugs: sign mismatch bugs.
 
I take it you've never worked for a company that got acquired?
I'll go one further: I take it Madman0 never worked for a company that got acquired by Oracle?

I work with several Oracle ex-pats. I can't say my own experience after Oracle acquired PeopleSoft was entirely horrible--and several co-workers preferred the situation as compared to PSFT's acquistion of JD Edwards--but I only stuck it out for a couple of years before jumping ship.
 
The language has nothing to do with why Windows is full of security holes. Linux is written in C, for example, and it lacks all of the security holes that Windows has.
Here's the propaganda from Oracle/Sun: http://java.sun.com/security/seccodeguide.html
The choice of language and system impacts the robustness of a software program. The Java language [2] and virtual machine [3] provide many features to mitigate common programming mistakes. The language is type-safe, and the runtime provides automatic memory management and bounds-checking on arrays. These features also make Java programs immune to the stack-smashing [4] and buffer overflow attacks possible in the C and to a lesser extent C++ programming languages, and that have been described as the single most pernicious problem in computer security today [5].

And by "mediocre" I mean "mediocre". I shouldn't have to fight with a language to get it to do what I want. A language should make things as easy as possible. Java does as much as it can to make things as verbose and unwieldy as it can. No unsigned types, no function pointers/delegates, no operator overloading, no help *at all* from the language. I want to like Java, but every time I try and code in it I find myself hating the language more and more.
All of those things you mention were explicitly left out of Java because of the complications they introduce. Clearly the difficulties you are experiencing are in trying to do things as you are used to doing them in other languages. I have heard the same complaints from PHP experts trying to master Ruby. If you are unwilling to drink the Implementation kool aid, you will always miss your operator overloading, for example.

@Cyrillic: That's right on the money. Unfortunately, the prevalence of unsigned numbers means that interoperability (with, say, .NET web services) will always be tricky.
 

Yes, but the problems with C and C++ being unsafe is because developers were lazy and didn't do things like check the size of the allocated buffer before copying into it. The languages themselves aren't the problem.

All of those things you mention were explicitly left out of Java because of the complications they introduce. Clearly the difficulties you are experiencing are in trying to do things as you are used to doing them in other languages. I have heard the same complaints from PHP experts trying to master Ruby. If you are unwilling to drink the Implementation kool aid, you will always miss your operator overloading, for example.

And they were wrong in leaving them out. I know the "Java way". I know what Sun recommends. Hell, I even follow Sun's coding style. It still completely sucks compared to most languages. Java is simply a bad language - just like Perl is simply a bad language.

And leaving out operator overloading *INTRODUCED* complications. I can't tell you the number of times I've seen developers use == to compare strings (which works on basically every other language ever). And I don't mean idiot developers who are just learning, I mean otherwise good developers who are reasonably bright. There is nothing less complicated about requiring people to call .equals verses using the operator that checks for equality. Its idiotic to leave that out.

And don't get me started on the whole int vs. Integer auto-boxing disaster. Whoever came up with that needs to be shot, seriously.

I don't see why having both signed and unsigned types in a language is helpful. People will argue the following...

Problem: I only want an unsigned type because my value will never be negative, since it's a counter, etc.

Response: Do the same error checking for negative values, as you would regularly for underflow of an unsigned type. There really is no difference, and having an extra unsigned vs. signed only serves to make types less compatible with each other, and not only that, but you add another class of bugs: sign mismatch bugs.

Problem: Using numbers as bit fields results in Java fucking everything up.
Problem: Calculating things such as CRCs results in Java fucking everything up.
Problem: JavaCard is limited to 16-bit numbers. You can't do shit with a signed short.
Problem: An unsigned number originates from outside Java (such as a TCP pipe). You now have to fight with Java to do something incredibly simply like an unsigned compare.
 
If Java is such a pain for you why don't you try Groovy which runs on top of the JVM and allows for meta classes due to it's implementation of meta object protocol at runtime. Modifying classes for third party software is a useful tool!

It is also much less verbose and object oriented like Python so I reckon you would appreciate it more than Java. Also you are right as far as the case that Java sucks ass for multithreading!

Give it a try!
 
Wow this thread really got everyone all riled up eh? Every language has its pros/cons, lets just leave it at that.
 
If the applications I see are any indication, Java encourages slow, buggy apps that are prone to memory leaks and lockups. Kill it with fire.
 
If the applications I see are any indication, Java encourages slow, buggy apps that are prone to memory leaks and lockups. Kill it with fire.

That stereotype stopped being true about 8 years ago. And, I think you're thinking of GUI apps (particularly on windows) and relatively little of the java software out there even uses the windowing toolkit.

Java's Big Things are in embedded software (& mobile) and enterprise software.
 
Back
Top