Hacker News new | ask | show | jobs
by geodel 3504 days ago
Java's value is not some inherent superiority of language for mobile development, it is about throwing (100s of) millions of dollars and 100s of engineers to make it work. And I think it remains true for C# also. Unless someone sinks 100s of millions on C# too it seems non-starter to me. By the way Microsoft has already tried mobile ecosystem with .net/C# that did not work out very well.
2 comments

I wouldn't say that was because of .net/C#. Nor did the iPhone succeed because of ObjectiveC or Android because of Java.
The transition from Java to C# is pretty easy and pleasant as C# is similar but better.
> C# is similar but better

Oh really? Why?

Better operators, properties, lambdas, a standard library that exploits lambdas pervasively, type inference, simple generators and async/await.

Java has anonymous classes and static interface members as the only real advantages over C#.

I work a lot with Java and C# and you just described the reasons I prefer Java (which FYI has lambdas today).

The async/await API's and their rigid nature was torture and the language was overly loose as if users asked for everything and got it... The reason I left C++ for Java 20 years ago is the things it removed and discarded (e.g. operator overloading) C# to me is a step back in the direction of "everything but the kitchen sink".

> The async/await API's and their rigid nature was torture

Way better than callback hell. The only awkwardness surrounds streams of tasks.

Operator overloading is a necessity. Matrices, big integers and so on, all require the familiar operators for clear code. Type inference is here to stay, and every new language has it. The fact that every language is also trying to adopt a streaming API like LINQ should also tell you something.

I'm afraid you're on the losing side of history on all of these points. C# does include a lot, and I would certainly prefer a single uniform abstraction to handle many things, ie. generators and async/await can be unified under coroutines or something similar, but the proliferation of "kitchen sink" features is not nearly as bad as you imply.