Hacker News new | past | comments | ask | show | jobs | submit login

No, there are serious deficiencies in the language, and I've had to work around them in fairly lamentable ways. The only disadvantage of amending it (from my point of view) is that it will obsolete my work-arounds.



What sort of deficiencies? I think all in all java (the original spec) was a pretty well thought out design.

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.


The C# version would actually be:

  new Thread(() => Console.WriteLine("I'm in a Thread")).Start();


Silly example though, as threads are silly.


Is it really silly? Almost all the code I write day to day is either multi-threaded or event-driven, so the above difference means a very real improvement in my quality of life. The code is simpler, more compact, and easier to understand at a glance months later.

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: