I think there's a lot to be said for picking which features to leave out.
Maybe I'm alone with this viewpoint though.
I think there's a lot to be said for picking which features to leave out.
Maybe I'm alone with this viewpoint though.
Any new features that make it into Java or C# will only make the tutorials longer and the learning curve steeper. Not a good thing.
It's not like several other languages that have to go and add unicode support on later as an afterthought.
new Thread()
{
public void run()
{
System.out.println("I'm in a Thread");
}
}.start();
In C#: new Thread (Go).start();
static void Go()
{
Console.Writeln("I'm in a Thread");
}
...C# isn't especially elegant either, but the general uncleanliness of inner anonymous classes is one example of Java's problems. new Thread(() => Console.WriteLine("I'm in a Thread")).Start();This isn't the only difference, either. C# is never going to be as terse as a scripting language, but with each release they are examining common workflows and streamlining them. Java may be adding in a lot of new features, but the syntactic integration seems awkward at best.
The little things count for a lot.
Did he leave out unsigned types because he thought we weren't smart enough to cope with them? No, I'd say he left them out because it makes everything simpler. If a programmer wants an unsigned type, he can do it himself.
I'm a Java developer - naturally I think Gosling (for the most part) drew the lines in the right places.