Python's great if performance is irrelevant and you can force everyone you code with to use the same editor so your significant white space isn't fucked up in a way that's invisible to you. But other than that, yeah, Python is great.
You listed some pain points with Java - most of which I actually agree with. But saying that these are serious issues in creating commercial quality application is laughable. I'd rate Python's white space issue as a much bigger issue than any of those Java foibles you raised.
you do know that no Java programmer actually writes accessor/mutators, right? You just write out your member fields and get the IDE to generate the rest.
If you cant successfully make commercial quality applications in Java, I'd suggest there's a problem with you rather than Java. One or two other people have managed to do alright with Java so far.
It's amazing that Scala manages to be blazingly fast, then, given that it's primitives are all classes. Maybe you should tell them that they;re obviously doing it wrong.
Jesus wept. You're seriously just saying that Java would be better if it was C++?
I've programmed professionally for both of those languages for a number of years. Java became wildly successful mainly because it was an alternative to steaming piles of shite like C++. I have no doubt that Java will be superseded eventually - perhaps by Scala - but definitely not by going back to C++.
The LAST people in the world I would ask for advice on programming language design would be people who think that C++ is a good language. That's like asking the blind for help with the colour scheme for your house.
Consistency is good which is why everything being an object is good. You can treat 'primitives' as being classes in terms of the language design while still implementing them as primitives in VM/byte code for optimisation purposes. Special cases / Corner cases are bad.
Multiple inheritance is the devil's spawn. The diamond pattern deserves it's own special level in hell. Interfaces are better - may I point out that Smalltalk used single inheritance with interfaces - so Java is much MORE traditionally OO in that regard than C++... but I digress. Mixins/traits are a much better solution still and are, I believe, the only solution a sane OO language designer should use these days.
JRuby is one of the fastest Ruby implementations. Scala is very very fast. Closure is a very fast and increasingly popular Lisp. It seems like plenty of people are getting other languages implemented efficiently on the JVM.
It's called escape analysis and it's been around in JVMs for a while now. It's better than what you've suggested because it doesn't need extra keywords and it applies anywhere that it can be employed - if one usage needs a defensive copy and another does not it can optimise the latter while still allowing the former.
If you think that real-world success implies good design, you're extremely naive and inexperienced.
I've been coding for three decades. I've used every major language in existence from low level hacking to high performance telephony servers to 3D graphics to web development. I've done assembler, functional, procedural, OO and prototypical coding. I may be maybe things, inexperienced isn't one of them. Nor naive.
And if Java was so poorly designed, why would M$ have copied it, almost verbatim, to create their first version of C#?
I did not say that "Java was poorly designed", I said that Gosling did a piss poor job as a language designer.
Riiiiiiiiight. So let me get this straight: In regard to Java, Gosling did a bad job as a language designer, but Java isn't badly designed?
Is it too fucking hard for you to understand that if the language was poorly designed, it wouldn't have succeeded despite all those other entities' input.
All of Microsoft's considerable resources and corporate lock in failed to make Visual Basic a success outside of their own walled garden. Despite Sun's huge LACK of influence compared to M$, Java was a huge success.
And if Java was so poorly designed, why would M$ have copied it, almost verbatim, to create their first version of C#? They had a clean slate - they could have done anything for c#'s starting point but they chose to copy Java.
So, all those Banks using Java, Google, IBM, US military, NASA, the Apache Foundation, Android, all those open source developers on Sourceforge - all morons huh?
I like Gosling too. Posters hating on him because they like C# or hate Java is pretty fucking lame. Gosling has achieved way more than most geeks ever will. Even if you don't like the particular languages flavour (I mean - where would C# have been without Java?) have some bloody respect. I don't agree with everything Linus says, nor Stallman, but these people are worthy of our respect even if we might sometimes disagree.
I find it amazing that people come out with stuff like this - Coffeescript as a replacement for Javascript is another good example. They parade the exclusion of a couple of braces or semicolons as if they've solved Fermat's Last Theorem. It's a very prevalent attitude in the scripting crowd - script X is better than general purpose language Y cause it has one or two less characters in it - as if that is in ANY way relevant.
Python's great if performance is irrelevant and you can force everyone you code with to use the same editor so your significant white space isn't fucked up in a way that's invisible to you. But other than that, yeah, Python is great.
You listed some pain points with Java - most of which I actually agree with. But saying that these are serious issues in creating commercial quality application is laughable. I'd rate Python's white space issue as a much bigger issue than any of those Java foibles you raised.
you do know that no Java programmer actually writes accessor/mutators, right? You just write out your member fields and get the IDE to generate the rest.
Sure, but humans shouldn't have to be perfect. If something is trivially caught by the compiler, it's best left to the compiler
If you cant successfully make commercial quality applications in Java, I'd suggest there's a problem with you rather than Java. One or two other people have managed to do alright with Java so far.
In what way is Scala not a super set of Java?
meh. the compiler can catch if (a=b). Java does. GCC can.
Operator overloading, like many C++ features, is great until you have to code with other people.
Yeah, right. x.myProperty is a MILLION times better than x.getMyProperty
Do you seriously think this is that big an issue?
Besides which, get/set are just idioms. If you want to define accessor/mutators in Java without the get/set prefix, you can:
int myProperty(){ return mp; }
void myProperty(int i){ mp = i; }
But seriously - this seems like the most trivial thing to worry about.
It's amazing that Scala manages to be blazingly fast, then, given that it's primitives are all classes. Maybe you should tell them that they;re obviously doing it wrong.
TL;DR : It ain't you who is being stupid
Jesus wept. You're seriously just saying that Java would be better if it was C++?
I've programmed professionally for both of those languages for a number of years. Java became wildly successful mainly because it was an alternative to steaming piles of shite like C++. I have no doubt that Java will be superseded eventually - perhaps by Scala - but definitely not by going back to C++.
The LAST people in the world I would ask for advice on programming language design would be people who think that C++ is a good language. That's like asking the blind for help with the colour scheme for your house.
Consistency is good which is why everything being an object is good. You can treat 'primitives' as being classes in terms of the language design while still implementing them as primitives in VM/byte code for optimisation purposes. Special cases / Corner cases are bad.
Multiple inheritance is the devil's spawn. The diamond pattern deserves it's own special level in hell. Interfaces are better - may I point out that Smalltalk used single inheritance with interfaces - so Java is much MORE traditionally OO in that regard than C++... but I digress. Mixins/traits are a much better solution still and are, I believe, the only solution a sane OO language designer should use these days.
JRuby is one of the fastest Ruby implementations. Scala is very very fast. Closure is a very fast and increasingly popular Lisp. It seems like plenty of people are getting other languages implemented efficiently on the JVM.
Ummmm... WHY?
If I want a 'better' Java, I'll use Scala. Problem solved.
It's called escape analysis and it's been around in JVMs for a while now. It's better than what you've suggested because it doesn't need extra keywords and it applies anywhere that it can be employed - if one usage needs a defensive copy and another does not it can optimise the latter while still allowing the former.
You are a retard.
I'm done wasting my time - bye!
I've been coding for three decades. I've used every major language in existence from low level hacking to high performance telephony servers to 3D graphics to web development. I've done assembler, functional, procedural, OO and prototypical coding. I may be maybe things, inexperienced isn't one of them. Nor naive.
Riiiiiiiiight. So let me get this straight: In regard to Java, Gosling did a bad job as a language designer, but Java isn't badly designed?
Yeah, that makes sense.
Moron. And a n00b, I see.
Is it too fucking hard for you to understand that if the language was poorly designed, it wouldn't have succeeded despite all those other entities' input.
All of Microsoft's considerable resources and corporate lock in failed to make Visual Basic a success outside of their own walled garden. Despite Sun's huge LACK of influence compared to M$, Java was a huge success.
And if Java was so poorly designed, why would M$ have copied it, almost verbatim, to create their first version of C#? They had a clean slate - they could have done anything for c#'s starting point but they chose to copy Java.
So, all those Banks using Java, Google, IBM, US military, NASA, the Apache Foundation, Android, all those open source developers on Sourceforge - all morons huh?
You utter fucking moron.
Yeah, if he hadn't done such a shit job with Java the language might have even caught on a little bit.
Moron.
Nice.
No it isn't. It's because the coward's comment was relevant a decade ago. Java hasn't been slow to start up for about that long.
I like Gosling too. Posters hating on him because they like C# or hate Java is pretty fucking lame. Gosling has achieved way more than most geeks ever will. Even if you don't like the particular languages flavour (I mean - where would C# have been without Java?) have some bloody respect. I don't agree with everything Linus says, nor Stallman, but these people are worthy of our respect even if we might sometimes disagree.
I don't see anything wrong with what he said at all.
Heh. Amen, brother!
I find it amazing that people come out with stuff like this - Coffeescript as a replacement for Javascript is another good example. They parade the exclusion of a couple of braces or semicolons as if they've solved Fermat's Last Theorem. It's a very prevalent attitude in the scripting crowd - script X is better than general purpose language Y cause it has one or two less characters in it - as if that is in ANY way relevant.