3 ms·
People look down on it because: 1 - Most people want to run OSS...specifically Linux so they can leverage all the tools that run better on (or only run on) Lin
by latch 15y ago
People look down on it because:
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.
- kitsune_ 15y agoWhat are "generate purpose languages"? If you meant "general purpose languages", which one is "the best one possible" and for what reasons?
- latch 15y agofixed, thanks. 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.
- deleted 15y ago[deleted]
- sequence7 15y agoAlthough I think point 1 is valid point 2 seems somewhat hyperbolic. Could you clarify why dynamic languages are more productive than C#?
- latch 15y agoSomething that I've written about a lot...yesterday I looked at it from the testing angle: http://openmymind.net/2012/4/24/I-Rather-Have-Silly-Tests-Than-Silly-Code/ http://openmymind.net/2012/4/24/I-Rather-Have-Silly-Tests-Th... 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)
- sequence7 15y agoI'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.
- mikeash 15y agoWhat'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.
- latch 15y agoHonestly, 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.
- rbanffy 15y ago> and Mono is a decent way to run it 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?
- mikeash 15y agoI 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.
- rbanffy 15y agoThere 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?