4 ms·
This is quite an unfair comparison. First of, Microsoft does support the development of .NET and associated components. It is definitely not an active support
by DCKing 12y ago
This is quite an unfair comparison.
First of, Microsoft does support the development of .NET and associated components. It is definitely not an active support relationship, but MS answers the questions Mono developers have and has provided some help for the Moonlight project. Furthermore, it seems Microsoft is making an effort to make ASP.NET on Linux more attractive.
Having said that, it doesn't even matter what Microsoft does with .NET. If Swift stays 'closed' as it is, you can use it to develop Mac and iOS applications. If .NET stays 'closed' as it is, you can use your .NET experience to develop Windows desktop applications, 'Windows Store' applications, web applications and services, client side web programming, Windows Phone apps, apps for iOS and Android with Xamarin, Linux desktop applications, and even operating system development or protocol verification if you're an adventurous academic. All of these things are being done right now by people, and good tools exist for those things. I realize that people on HN don't like Microsoft's lock-in or tools, but experience with .NET does give you access to a very diverse set of areas to program in.
Now I'm quite convinced that Apple will open source Swift (they appear to have informally confirmed they'll be doing exactly that [1]). And then its basis on LLVM will make sure that it can be used in other places as well. But I doubt Swift's uptake outside of Apple apps will be bigger than Objective-C's simply because, unlike Microsoft, Apple won't use or promote Swift anywhere for anything else than Apple apps.
The point is that 'openness' of a language itself does not matter much for the value to learn it. It depends on how much you can do with the language. Even if you assume "You can never use Swift outside of Apple's context" and "You can never use .NET outside of Microsoft's context" are both true (which they are not), Microsoft's context for .NET is much broader than Apple's is for Swift.
[1]: https://twitter.com/mxweas/status/474581160454942721 https://twitter.com/mxweas/status/474581160454942721
[2]: Of course one can argue that developing Mac+iOS applications itself presents more value than all of the .NET things I mentioned combined. But that was not the point of this discussion.
- valarauca1 12y agoWhen you say "closed" I thought the .NET compiler was accepting pull requests from anyone as of recently, I remember that being a fairly large announcements. I don't mean to be argumentative, but the Roslyn compiler is open source right? I'm genuinely curious.
- DCKing 12y agoThere's a reason that I put 'closed' in quotation marks. Many important parts of .NET are indeed open source. It is also unfair to discount Mono, which is a very functional implementation of the platform. But even if you assume this 'closedness' for the sake of the argument, his/her comparison was still unfair.
- 72deluxe 12y agoPerhaps the comparison was a bit off. I am not intending to be argumentative in the slightest. Microsoft's context for .NET is only broader due to community effort and NOT due to Microsoft's active help. When .NET first came out, was it as widely usable on all those platforms and for different types of applications? No, and that's exactly the position that Swift is in right now. In a few years time, there might be a community effort for Swift on different platforms, but look at the success of GNUstep and the libraries surrounding it; there is not wide adoption by any means yet Obj-C remains popular. A large portion of the list of applications that you mention are typically Windows platforms - Windows desktop applications, Windows Store applications, web applications on Windows servers, Windows phone apps. Replace the word "Windows" with Apple or iOS and you get the complaint that the parent mentioned. It's entirely a point of view problem, ie you don't get iOS/Mac OSX developers complaining about new language features in T-SQL when SQL Server is not available for iOS/Mac. I suppose the same complaints were made against .NET all those years ago - "why bother learning it? I can use the libraries and languages I already know!". It is a poor complaint to make really, as the effectiveness of a language or library does not depend on it being open source, eg. Java (years ago), the Win32 API, MFC, Carbon, Cocoa, C++ (does the committee steer itself based on our suggestions we just throw at them?). Their success and use has happened on closed-source platforms and with closed-source devices, but it's entirely irrelevant in the same way that adoption of an open-source language is, surely? It would be interesting if Apple does open source Swift, but as you say they won't promote Swift outside Apple apps (in the same way that I can't see that much marketing material from Microsoft encouraging us to use Mono on Linux; ie, Microsoft doesn't promote .NET use outside Windows platforms either). But that doesn't stop an army of C# developers existing. It would be interesting to know how many of the C# developers use that language because it is available on multiple platforms (perhaps we could have a poll?). I would think that very very few developers are using because they know it is cross-platform to some extent ("I'm going to use C# and .NET for my Active Directory MMC snap-in page because I can attempt to compile it on another platform!"); in fact, C# and .NET jobs mention Windows development 98.9% of the time don't they? I just thought that refusing to even take a look at a language due to it not being open-soured was a bit of a foolish thing to do or complain about, and to be upset that a language (designed by a company for its own operating systems and own devices) was not available on other platforms and OSes was a bit of an odd complaint to make too! EDIT: I have reread this and it sounds quite harsh! I don't mean it to sound harsh. I did not know that Microsoft has opened up the .NET system a bit; I was more attempting to highlight that the original parent's comments was a bit whiney for no reason, and I wasn't meaning to pick a quarrel with you btw. Apologies!