My thoughts exactly - even if he could code Hello World in 60 languages he couldn't know them in any meaningful sense. And in a spectrum that includes Python, COBOL, Lisp and Brainfuck, I would say that Java is like C#. It's quite a good language, but "nothing like it" is a bit over the top.
The C# syntax is a lot better than java. Java's verbosity is too much. And Microsoft had done a good job at making things easier in each new version of C#.
That does seem a little hyperbolic. Shame, because the original statement is very valid- C#/.NET is looked down upon in Silicon Valley, but rarely for valid reasons. It's just not "cool".
1 - Most people want to run OSS...specifically Linux so they can leverage all the tools that run better on (or only run on) Linux. Like memcached, varnish, redis...Running .NET on Linux is silly.
2 - Want a dynamic language because it's more productive.
It isn't because it's "not cool". It's because general purpose languages are a dime a dozen, and there's no reason not to pick the best one possible. The only advantage .NET has is if you are doing work that integrates with other MS products.
It essentially comes down to less code. Some of that is simply less language clutter:
public virtual void Add(int a, int b)
{
}
vs
def add(a, b)
end
Some of it is just what's possible due to dynamic languages, whether that's because of the type system, or, more likely, meta programming.
The benefit of meta programming compounds itself through libraries too. So not only is my code able to leverage it, but I can use libaries that leverage it and end up with User.find_by_name("leto") (as a classic, but certainly not singular, example)
I'm sorry I don't understand. Your example does nothing and has very opaque variable names. As soon as you have some code and variable names that are helpful the language clutter seems pretty irrelevant. I agree that libraries are useful but they exist in non dynamic languages. You can Meta program in C#. I'm not denying that dynamic languages are neat but I still don't see how you can simply define them as fundamentally better rather than your preferred choice.
What's silly about running .NET on Linux? If C# is a decent language on its own, and Mono is a decent way to run it (neither of which I'm completely sure of, but I think that's the case) then it seems like it could be a fine choice.
Honestly, it's a pill I simply haven't swallowed. I'll admit I'm a ton less apprehensive now that they've been forced to split from Novel. The risk of them being shut down (and then what?) always bothered me..now we know, and it doesn't look so bad.
If I have compelling need for a static language (performance?), I'm not sure if I'd pick C#, Java/Scala. But I maintain that all three are less productive than Ruby/Python, so unless you are building Cassandra/Lucene/Redis/Nginx/... I won't be too compelled about performance arguments.
I had consistently better performance running the same (CPU-bound, little IO) program on Windows Server than running it on Mono/Linux. I did that in 2005, so, YMMV.
Why would you pick C# over, say, Objective-C, Go or Java if you intend to run your software on Linux?
I imagine things have changed in seven years, although I won't say that Linux would win.
C# is definitely better than Java as a language. It's arguably better than Objective-C (whose main advantage is ease of talking to C APIs), and I have no idea about Go but I imagine there are probably decent reasons to prefer C# over it at least in some cases.
There is another point to be made: with the enormously rich language ecosystem that runs so well on the Linux platform, why limit oneself to the subset that runs well on Windows?
Sure. I'm just saying that if C# is actually a better language than the alternatives (and it does seem pretty good, but I'm not that familiar with it) and if C# integrates with Linux as well as the rest, then it would be a decent, not-silly choice. I'm sure there are plenty of reasons why you'd choose something else instead though. But I don't think it's necessarily silly to choose C# on Linux purely on the merits of the language, nothing to do with Windows.
I don't think Linux integration is that good - Ubuntu just released a Mono-free OS release (you can install it, if you want, but it doesn't come installed by default) - and I wouldn't bet on it getting better.
I'm kind of curious about languages such as Vala and Go and how they compare to C# and Java.
It depends on the context. Again, if you are doing tight integration with other MS/Windows apps, .NET has a distinct advantage. And, in that case, I would probably say that C# is the best possible solution.
Java, which I'm not a fan of, has obvious advantages because of the size of tooling and community. It's also cross platform (which, again, may or may not be a big deal) while having good performance. More broadly, the JVM has those same advantages, plus distinct languages.
I'm a fan of dynamic languages. I think Python and Ruby are the best choice for what a lot of people are doing, especially on the web. Python obviously has a lot going for it in the scientific and research community.
I'm a former ASP.NET MVP, for what very little that's worth. For building websites, ASP.NET (WebForms, or MVC), is not a productive choice. I'd rather build something in PHP.
What a completely misunderstood view. Microsoft has earned the distrust of many many a coder through their cut-throat business tactics and complete disregard/disdain for other operating systems and platforms.
Wake me up when I can run a MS stack for near-free in perpetuity... because that's what Microsoft is competing against in the startup world. Do you think Instagram or Twitter's architecture would have been possible without OSS?
Um, really? I can just barely name 35 languages, even including esoteric ones like Brainf*ck and Shakespeare.