17 ms·
An analysis of the C#/.NET platform
- topbanana 13y agoThis article makes no mention of Bizspark, free licenses for startups. http://www.microsoft.com/bizspark/ http://www.microsoft.com/bizspark/
- 300bps 13y agoBizSpark is great for technology startups - free software and $150 per month worth of Azure hosting for 3 years. That's enough to get a medium-sized VM or a ton of SQL Server databases or a whole host of other hosting resources.
- pauloortins 13y agoBizSpark is awesome but not all companies are startups, for those with more than 3 years, the cost is still a problem.
- _random_ 13y agoMaybe they can start generating some profit / attract investors?
- pauloortins 13y agoAnd spending money that could be used to attract more developers or be invested in another way that not buying licenses.
- 300bps 13y agoGood write-up but the conclusion is completely wrong: Costs Involved...This is the point where C# really sucks. Almost every tool, OS, IDEs and plugins, are paid. Anyone can download Visual Studio 2013 Express edition. The Express edition has been free since Visual Studio 2005. Here's a download link: http://www.microsoft.com/visualstudio/eng/downloads http://www.microsoft.com/visualstudio/eng/downloads Click on Visual Studio Express. Of course, there are limitations but there are fantastic projects out there that have been made with all free Microsoft development tools. Visual Studio 2013 Express is really an amazing, free development environment. Combine it with SQL Server 2012 Express which is the free version of SQL Server that works on databases up to 10 GB and you can see you can do a lot with free Microsoft software. See more info on Visual Studio Express here: http://en.wikipedia.org/wiki/Microsoft_Visual_Studio_Express http://en.wikipedia.org/wiki/Microsoft_Visual_Studio_Express
- RyanZAG 13y agoDon't think you're being unbiased here. Using C# inevitably means you will be shelling out for various tools along the way that you would never have paid for if you went with something like Python. Granted, if your business is making any money these costs are not going to have any real impact, but passing it off as 'no costs' is silly.
- 300bps 13y agoDon't think you're being unbiased here How am I biased? I don't work for Microsoft. If using a technology stack makes one biased and thereby (as you imply) invalidates their opinion, then let's just shut down Hacker News right now because nobody is capable of expressing an unbiased opinion in your opinion. The reality is that Microsoft has free development tools that millions of people use - for free.
- tericho 13y agoJust to throw in another point here - while the development tools may be free, licencing SQL Server(s) for production use can be very expensive & convoluted.
- patja 13y ago"Unlike Visual Studio, MonoDevelop is free and open source." Probably many are aware, but there is a free Express version of Visual Studio. I stopped paying for Visual Studio a couple releases ago and have been getting by quite nicely with the free version.
- HarshaThota 13y agoThere is also SharpDevelop too. http://www.icsharpcode.net/opensource/sd/ http://www.icsharpcode.net/opensource/sd/
- pauloortins 13y agoIn my opinion a developer should always pursuit the better setup to be able to use all the features that a platform offers. Visual Studio Express lacks important things that the Ultimate Version has. For example, plugins support.
- de90 13y agoYou only need the pro version for plugins.. Although I haven't used express so I cannot speak on if it supports plugins too..
- pauloortins 13y agoWith the professional you lose test coverage =/ but yes, you have plugin support.
- __--__ 13y agoMonoDevelop is free, but if you have a large code base, it's very slow. As in "wait 30 minutes for MonoDevelop to start and analyze the entire project" slow. And then the crashes... Xamarin fixes all of these problems. But then, the free version is limited and the paid version is very expensive. When it comes to IDEs, you really do get what you pay for.
- deleted 13y ago[deleted]
- wrongc0ntinent 13y agoMaybe the lack of a strong community is because of Microsoft trying to build it around itself, while always trying to push the new thing. WPF as an example.
- 300bps 13y agolack of a strong community Ever hear of StackOverflow? There are thousands of tight-knit .NET and C# based communities.
- wrongc0ntinent 13y agoI use it all the time, but it's not exclusive. Love msdn too. But like all communities built around large entities, there will be some product pushing that's not very organic, and gets adopted regardless of merits.
- camus2 13y ago.net based communities =/= .net communities just because a blog run on Wordpress , it doesnt have to talk about PHP...
- 300bps 13y agoYou realize that there are millions of questions about .NET on StackOverflow, right?
- HillRat 13y agoThat's the risk of the .NET ecosystem -- depending on any particular technology within the stack is fraught with peril, simply because MSFT has proven it's willing to kill support for any product, service or technology at any time. I personally love C#, and I'm faster and more fluent with it than Java or Scala, but the technical risk plus the much higher TCO relative to a *nix+JVM stack makes it hard for me to justify it for solutions that don't already have MSFT enterprise licensing in place.
- 13y ago
- hershel 13y agoPaulo ,good article. BTW, there's also lightswitch , which offers really simple development for database apps. And there's .netmf , which lets you use modern ,memory managed language to develop some types of microcontroller systems.
- rocky1138 13y agoSlightly OT but while the article was well-written I found the red text with the outline hard to read.
- pauloortins 13y agoReally ? I found it cool. Are more people with the same feeling ?
- platz 13y agoC# and Java are similar enough, I wonder if it would be good to show a few comparisons between syntax of those two languages, if most of his peers in fact knew Java well.
- clubhi 13y agoIf you are proficient in C# and have to switch to Java for a while you will be pretty frustrated.
- camus2 13y agothe JVM is not lacking of alternative languages, the JVM is not just Java.
- pauloortins 13y agoTotally agree. Show some C# code to a Java dev and he will be fascinated.
- _random_ 13y agoAnd a Scala dev will find it strangely familiar :).
- pauloortins 13y agoAgree. When I tried to learn Scala I found it very similar to C#, only changes the name map -> select, filter -> where and so on.
- cognivore 13y agoWow, that was strangely lacking in hyperbole for Hacker News. I've used C#/.NET for years now, and it's been quite good - no real complaints and a lot of enjoyment. Also, you don't have to worry about expense when you're company buys the tools, and I believe there are some good discounts if you have Microsoft Certified type people on your staff.
- keithwarren 13y agoThere was no discussion of async/await in here which is one of the best things C# has going for it. When I meet other devs and tell them I work in lots of languages and platforms but prefer c# they usually look at me like I have 3 heads. I like to show them LINQ and Async as some things I really like about C#, then I get into how rich the BCL itself is. Devs are also pretty shocked when I tell them I can write truly 100% native iOS and Android apps in C# (thank you Xamarin) and that one of the most popular mobile game engines (Unity) uses C# and a version of the .NET Framework under the hood.
- manojlds 13y agoThere is also the "dynamic" part of C# and the DLR. Here is a library I worked on to mainly showcase the dynamic features - https://github.com/manojlds/cmd https://github.com/manojlds/cmd
- profquail 13y agoXamarin now also supports writing iOS and Android apps in F#; it's only a "preview" at the moment, but some of the Mono developers have been getting more involved in the F# open-source community and Xamarin recently hired a well-known, very skilled F# contractor to help improve their support for the language. Xamarin's website has a bit more information: http://docs.xamarin.com/guides/cross-platform/fsharp/fsharp_support_overview/ http://docs.xamarin.com/guides/cross-platform/fsharp/fsharp_...
- nbevans 13y agoIt's funny when you tell hipsters about .NET. They get really shocked at just how good it is. A lot of people dismiss .NET because it's backed by Microsoft. It really sucks that these people can't just look at the technology for what it is rather than dismiss it based upon who created it. As an aside... whilst C# takes a lot of the public .NET praise, F# is the real hero in the making. When I show F# to some hipsters they get very unsettled very quickly as suddenly they realise all that shitty Ruby and JavaScript they've been writing for years is probably not going to be anywhere near as employable in another 10 years, maybe, hopefully. Interesting times indeed. And yes, Xamarin is awesome and Microsoft seriously needs to bring that great firm under their wing. Writing your mobile apps per platform is a major violation of DRY principles and is utterly ridiculous.
- wavesounds 13y agoI've worked with the C#/.NET platform for a number of years. As OP points out it has a lot of cool features. But this can also be part of the problem. When you have a big team working on an Enterprise project (which is probably this stacks main audience) you always seem to end up with people who love certain parts of the language and hate others and as a result it makes it difficult for people to work on each others code because theres so many features and not everyone wants to take the time to learn everything when they already have their core set of features that work for them. It is great that it improved upon what Java was lacking, but I think the C# team is starting to go too far adding too much.
- MichaelGG 13y agoWhat exactly seems too much? C#'s feature set doesn't seem that expansive. I'd be upset to be forced to deal with a least-common-denominator subset because someone doesn't understand, say, closures. But I've not worked on an "Enterprise" project, and I assume the main goal there is making sure you can hire anyone and make sure they can understand how to add a new rule for e.g. Alaska sales tax.
- rjbwork 13y agoSounds like an issue with process. Is there no code review or coding standards document or collaboration in planning "what is the best way to do this"?
- sker 13y agoWhat would it take for MS to make C# fully open source with no threat whatsoever of patent or copyright litigation? Is it really a strong selling point keeping companies using Windows? Now that MS is the underdog in the mobile wars, wouldn't it benefit them if developers of other platforms adopted C#? They already gave F# away to the community. I don't see why they can't do the same thing with C# and hopefully all of .NET. Maybe the post-Ballmer MS will do it.
- githulhu 13y agoAny promise they make not to sue would be worthless - since they can always just create a shell company (to which such promises would "not apply"[1]) and sue anyway. [1] http://arstechnica.com/tech-policy/2013/10/patent-war-goes-nuclear-microsoft-apple-owned-rockstar-sues-google/ http://arstechnica.com/tech-policy/2013/10/patent-war-goes-n...
- jeswin 13y agoBallmer and Microsoft has always threatened Linux with patents; and worse, they have refused to name which ones. There really is no reason to risk such contamination. So even if they made a patent grant, you wouldn't really see a lot of adoption. Actually, they have already given a patent grant for C# and .Net. Nobody cared, except the Ximian guys (now Xamarin, which has always been an awesome team).
- deleted 13y ago[deleted]
- jroseattle 13y agoThis will be interesting to watch. The guy to keep tabs on is Scott Guthrie -- if C# (dotnet, rather) is going to go anywhere off the Win platform, it will be because Scott pushed it there. It's a tough sell, though -- even with the underdog situation. Java took the approach of running everywhere, and Sun really didn't manage it well. I'm not sure MS is ready or able to participate in a world where the platform isn't the central ideology.
- keithwarren 13y agoNot sure what you are looking for or mean by 'fully open source'. The .NET Framework libraries are open source, ASP.NET is open source, the C# compiler itself is closed is closed but it is an ECMA standard and there are open source implementations of it.
- jeswin 13y agoThe biggest problem with C# and .Net is the Windows platform; very little on Windows can be automated. There is no sane shell. Everything assumes that there's a user clicking the mouse. And since that's the direction MS took, 3rd party devs followed suit. For anyone who has worked with another OS, Windows is fundamentally broken. Think about it. Setup, Administration or Programming can't use any of the thousands of programs already written for the OS. Most Microsoft-only developers don't get it. They usually say, "Oh, you should try Powershell". Powershell is, to put it mildly, 'utter crap'. They might have as well asked people to use a C# REPL with the .Net BCL. Edit: I should explain a bit. How do you zip a folder? via http://stackoverflow.com/questions/1153126/how-to-create-a-zip-archive-with-powershell http://stackoverflow.com/questions/1153126/how-to-create-a-z... function ZipFiles( $zipfilename, $sourcedir ) { [Reflection.Assembly]::LoadWithPartialName( "System.IO.Compression.FileSystem" ) $compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal [System.IO.Compression.ZipFile]::CreateFromDirectory( $sourcedir, $zipfilename, $compressionLevel, $false ) } -- or download an extension from CodePlex. You see the problem?
- icedog 13y agoI disagree about powershell. It has given my company the ability to automate tons of things, including controlling our Azure instances.
- manojlds 13y agoMS are concentrating on the right things, with introduction of Powershell Desired State Configuration ( read configuration management like Puppet, Chef) - http://technet.microsoft.com/en-us/library/dn249912.aspx http://technet.microsoft.com/en-us/library/dn249912.aspx
- nbevans 13y agoYou can do scripting with F#. It's called F# Interactive. This is a much more appropriate language for such a task than C# and even PowerShell.
- jeswin 13y agoRight, that's the problem I was referring to. Windows can't do basic stuff. On Linux, zip file dir
- wavesounds 13y ago"some people are already betting that,in the next years, Windows Phone will beat iOS as the second biggest player in the market." I hope nobody is seriously putting money on the windows phone passing ios by 2015. The odds have got to be at least 500 to 1 it doesn't happen.
- profquail 13y agoWP may not pass iOS's market share in the US market by 2015, but it is growing by leaps and bounds in many of the other major markets (e.g., Europe, Russia). A large part of this success is thanks to the lower-end Nokia Lumia models like the 521, which are competitive with lower-end Android phones on price while being generally higher in quality.
- pauloortins 13y agoIn Latin America, Windows Phone's sales are already bigger than iOS's sales. In Europe, WP is also advancing more than iOS.
- rjd 13y agoI have a running bet with a friend that it will be. I made the bet several years ago before its actually starting to do in other markets already. When I made the bet my friend (who works in the cell phone division for an large multinational) was adamant that Android would take over. In the past year the company has decided to removed all Android devices due to support cost/issues and moved to iOS. (I don't know the specifics as to what the android problems where, so don't bother asking, but he said management was very unhappy with them). I don't see iOS being more useful to a business in the long than windows phone. I'd say in two years time when they review purchasing again that iOS isn't the favored choice, and my bet finally come to fruition.
- moron4hire 13y ago<sarcasm>what's with all the Microsoft shills on HN lately?</sarcasm> I love C#. I have a project right now built in it. Everybody talks async/await--which is certainly great--but there is a lot to love in C# and .NET that have been there for a long time. Real generics. The reflection libraries are outstanding and extent easy to use. Dynamic assembly loading is just downright awesome and also easy to implement. I could go on, but there is a beer in front ooh me getting warm.
- sz4kerto 13y agoReal generics are almost as addictive as C# templates - i.e. after going back to Java, you feel the pain _every single day_.
- jbrechtel 13y agoIn what way, specifically, do you feel this pain?
- alkonaut 13y agoReflection showing erased types. Slow collections because internal arrays are object[]. Various caveats with bridge methods/ClassCastExceptions. The list goes on and on. Erasure isn't a pragmatic design decision, it's an utterly and fundamentally broken design. Reified generics are both simpler to implement AND more performant AND more powerful in terms of metaprogramming. I fail to see the argument for erasure apart from backwards compatibility (which isn't really an argument).
- deleted 13y ago[deleted]
- bad_user 13y agoI liked C#, but everything changed after I picked up Scala.
- gngeal 13y agobut there is a lot to love in C# and .NET that have been there for a long time. Real generics. Real generics, as in generic programming? As in, this: http://www.haskell.org/haskellwiki/Research_papers/Generics http://www.haskell.org/haskellwiki/Research_papers/Generics ? The last time I saw C# (2.0?), it only had simple parametric polymorphism.
- jroseattle 13y agoAn analysis of C#/dotnet should be much deeper than this to provide an accurate picture. And, because of that fact, one can draw inferences about the platform -- namely, that it's a rather sizable one. Whether you love it, hate it, or simply have to live with it, the dotnet platform is pretty robust -- you can create a LOT of different things with it. Web, desktop, service, mobile -- it may not be the best in any or all of those scenarios, but it's all very do-able with their toolset. As with any technical platform, it's really best evaluated for depth in specific scenarios.
- cpfohl 13y agoJust a quick comment about the C# community. I've actually found it to be incredibly strong, but they've centralized around StackOverflow rather than Microsoft's forums. There's not a ton of activity on Github, but it's by no means a small community; and as far as I've seen most of the projects are quite collegial.
- gesman 13y agoAgree with all. In fact features of C# are very close to what Scala offers. .NET performance improvement in last couple years is impressive enough for me to stop recommending any interpreted language based frameworks to my clients. .NET/C# + cloud all the way.
- pauloortins 13y agoFor me, C# still lacks a bootstrap project like Rails to boost the team productivity. I always have the feeling that the ruby/python teams are more productive cause they have Rails/Django.
- _random_ 13y agoWhich code would you rather refactor in 5 years? Make no assumptions about willingness to unit test.
- pauloortins 13y agoC# no doubt. But sometimes you just want to put some idea online, fast, a MVP for example. In this case, C# is more burocratic than Ruby/Python.
- RSDnuyIsk9jMSWb 13y agoIsn't those called ASP.NET MVC or WebApi or Nancy or ServiceStack or ...? I think you have a lot of options - in fact you might have 1 or two too many in the .NET world.
- eliben 13y agoWasn't there a notice a while ago that MS is dropping .NET in favor of HTML5 for its new OSes? Or has this decision been reversed at some point?
- profquail 13y agoNo, that was just a big scare. Microsoft dropped Silverlight (browser plugin to run sandboxed .NET apps in the browser) in favor of HTML5+JS, but I think that was an eventuality anyway as Silverlight never really seemed to gain enough momentum to stand on it's own merits.
- eliben 13y agoSo as far as MS is concerned, .NET/C# is still the officially sanctioned way to develop apps for their new "tablet-age" Windows 8+? [not desktop apps]
- _random_ 13y agoYes, but they are trying to make JS/HTML developers feel welcome as well.
- profquail 13y agoI think the point is that there are now multiple officially sanctioned ways to develop apps for Windows Phone and Win8 tablets: .NET (C#/F#/VB.NET/etc.), WinRT (C++/CX, which is an offshoot of C++/CLI), and HTML5+JS. Each way has it's own strengths and weaknesses, but the idea is that you can use whatever's best for your specific application.
- shanselman 13y agoIn fact, MOST apps in the store are C# and XAML. It's the best way to make an app that runs anywhere, using xamarin for other platforms.
- nbevans 13y agoThere was no substance behind that. It was just a poorly managed PR disaster. One of many during that year that Windows 8 was launched. Silverlight deserved to die. But somewhere along the line the Windows division got the wrong end of the stick and thought that meant all of .NET too. They've stopped the rot now between the DevDiv and Windows divisions. Heads were banged together over that one. Sinofsky was blatantly behind it, that's why he got sacked. It wasn't about Windows 8 not being a good product (it was). It was because he was running the show like Steve Jobs did in the 80s; actively fostering mistrust between teams and undermining intra-division communication and respect. I don't think the Windows division will ever fully respect .NET for what it is until some of the old guard have moved on. Which is a real shame. It is a first class programming stack that is practically unrivalled.
- malkia 13y agoI find .NET confusing when comes to packaging - Assemblies, netmodules, gacs, etc. Something written in the same way might be a package, or object. Also tons of methods, for which you have to rely on IDE that guides you all the time. I consider this a bit of bad thing - all it means is that I can really only think of what could be done in front of the IDE - by discovering functions by their names that sound like the task I want to accomplish. Then moving from 2.0 or other version to newer, comes with surpires - the guy that previously coded something left his assemblies that he downloaded from whoknows where, and these are no longer supported, or there is no x64 version, and they were somehow 32 bit only.
- gecko 13y agoI'm not sure what language you're used to, but the .NET package system isn't that hard to work with. Assemblies: think JAR files, Python eggs, Ruby gems. They're collection of classes, which can be grouped into modules. Modules: a collection of classes. 99% of the time, there is one module in an assembly. Modules are effectively invisible for developers in all contexts; they really come up when you combine a pile of existing assemblies into one big master assembly for distribution, in which case that master assembly will have multiple modules, but as a developer, the main way that this would show up is that the things that were previously their own assemblies still act as if they're all in separate assemblies. The GAC: This is what it sounds like: the global assembly cache. It allows multiple programs to safely use the same DLL, so that you only need to have one copy on your machine. I've not actually heard of people getting totally lost in the .NET 2 to 4 transition, but I'm sure it's happened. That said, that's also happened in the Go world (especially due to their lack of versioning), in the Python world (especially as 2 to 3 starts actually happening), in the Java world (where someone didn't specify full versions for what JARs they were using, and the new ones conflict), and a bunch of other environments. I don't consider that .NET-specific.
- _random_ 13y agoIt's funny how you managed to make a powerful feature sound like a flaw. Just forget "tons of methods" exist and code your implementations then. In a Notepad.
- _random_ 13y agoOf course C# supports dynamic programming. It has a keyword "dynamic". It's good for integration.
- senthil_rajasek 13y agoI skimmed through the article... While referring to a xamarin app there is a screenshot of a sample app with a caption "The same application with native controls and sharing almost 75% of the code base." Is this xamarin code base shared somewhere? Also, if there is a significant growth in the share of Windows phone ? Would you use still use Xamarin to develop for Windows phone or would you use Visual Studio?
- profquail 13y agoAFAIK Xamarin doesn't support Windows Phone right now, but I'd imagine they'll do so in the future as WP's market share grows; given that Windows Phone already supports .NET, that's a huge chunk of work they'll be able to skip if/when they do decide to add WP support to their products.
- nbevans 13y agoThey don't need to support Windows Phone because it already runs .NET CLR code. MvvmCross enables you to target iOS, Android, Windows Phone, Windows 8 Metro/Modern, WPF, OSX Mac from a single code base. Xamarin only needs to fill in the gaps, which are iOS, Mac and Android.
- alkonaut 13y agoI think the analysis leaves out the most important aspects for non-C#/.NET developers. My analysis: C#, the language: Pros: * The most elegant of this family of languages (statically typed curly bracket imperative). * If you are coming from C++: C# is Feature rich but still not too large to make it "choose your own sublanguage" like C++ (yet). You can actually learn this language from the inside out. There are few undefined implementation details and quite few quirks. * The tooling is fantastic if you can agree to using windows and shell out some money. Cons: * It was designed to rival C++ and Java with a nice learning curve for C++/Java devs. If it was designed today, I think it would have a lot more modern/functional features built in such as tuple deconstruction, algebraic data types/pattern matching (instead of Null) and so on. Now when you use F#, C# feels old with its only half-decent type inference, null keyword and so on. * Performance (This is actually more .NET than C#): While it can be quite performant, idiomatic C# is still often quite slow. Especially in the hands of non experienced developers. There are often hidden allocations and boxing calls that are hidden behind syntax sugar, that end up taxing the garbage collector (example: A simple foreach call often allocates an object which later gets eligible for GC). So writing high performance code is possible in C# but still very hard. You'll find yourself either making the code look like C (for example: arrays of structs rather than lists of objects which was the idiomatic solution), or simply calling to C/C++ for performance sensitive bits. In comparison to C++ for high performance code, I'd say C# offers free reliability/conciseness etc., and you have to struggle with perf. With C++ you'd get a lot of perf for free because idiomatic C++ is fast (array of structs may well be an idiomatic solution!), but instead you may struggle with leaks, overruns, token salad... Bottom line: C# can often be as fast as C++ but when it is, it's no easier than just using C++ because you have to make allocation free code basically (which is HARD, especially as an afterthougt). .NET, the platform: Pros: * It feels like they looked at java and just corrected a lot of the problems. Sane dependency/versioning is just one example. * The community is very much alive. Stackoverflow has become the center of it in later years. * Frameworks evolve at a stunning pace. If you blink you missed two versions of ASP.NET MVC. Cons: * Same as above. Hard to keep up with things if you aren't working full time on it. The webpage you did last week is now two frameworks away from the latest version. You spend a lot of time upgrading code to newer frameworks. * The GAC is a horrible implementation of a good idea. The fact that you can't really use signing in a useful way without it also feels like a mistake. * The free versions of everything (compiler, IDE, servers..) feel like second class citizens. You can't code up a prototype webpage in the latest framework and expect it to run on an OSS server under linux. It's hard to know what subset of language/tools/frameworks actually work under e.g. Apache+Mono. A clear disadvantage compared to Node/Python etc. * It feels like Microsoft has a bit of a weird relationship with .NET, or rather, it feels like the OS division of microsoft never really accepted .NET while it has stayed the pet of DevDiv. The worse examples has been the slow death of Silverlight (I can see how it should die, but the silence from microsoft has been remarkable). Now it also seems that MS don't really have a plan for how .NET should be a first class citizen for both desktop and "modern" application development under Win8, instead pushing C++. That to me is extremely worrying.
- MichaelGG 13y ago" // use .Not(), for me, is more elegant than use the '!' operator " That's like doing "#define BEGIN {" in C. I'd also make a note that if you're considering .NET, F# is a better language than C# in nearly every aspect. C#'s development is practically stagnated, at least from an outsider's point of view. As a comparison, the F# code of his example is just: type Student = { Age: int; Name: string } let student = { Age = 17; Name = "Paulo Ortins" } let PrintAdultStudent student = if student.Age > 18 then printfn "%s" student.Name That's 176 significant chars versus 267, and as normally formatted, 3 lines versus ~9. Once you start using F#, going back to C# is just painful due to the incredible verbosity and lack of critical things like pattern matching (active patterns are amazing) and good type inference.
- pauloortins 13y agoIs possible to use F# for web applications ?
- _random_ 13y agoYes, but you have to make an effort. Quick google: http://tomasp.net/blog/fsharp-mvc-web.aspx/ http://tomasp.net/blog/fsharp-mvc-web.aspx/
- MichaelGG 13y agoSince then, F# has a full LINQ-to-SQL generator (via the Type Providers mechanism), so you don't need that part of the interop. Also, this is more of a Visual Studio/web framework issue. The VS people chose to ignore F# with their project type specifications. And the MVC people are very C# oriented, depending on C#-compiler implementation details for many of their methods. Frameworks like WebSharper, for example, allow you to use full F# across the stack. On the other hand, using MVC with F# controllers is very smooth, and you can use C# on the rendering engine, as there's rarely much code at all going into the actual view part.
- profquail 13y agoThat article is 3.5 years old -- much has changed since then. The F# Foundation site has up-to-date information: http://fsharp.org/webstacks/ http://fsharp.org/webstacks/ About the only thing I know of that you can't do with F# right now (in terms of web development) is write inline code in ASP.NET MVC Razor views. That's not too big a deal though, since you can still write the guts of the application (e.g., your controllers) in F#.
- joshuaellinger 13y agoThere seems to be a lot of attention on cost of the tools and almost nothing on developer productivity. Assume I have to buy the expensive $10K Visual Studio license then pay $3K/year after that. Put developer cost at $100K per year. You need only a 10% productivity gain to break even in year one. My thoughts are that I'd get 10% just from the awesome Intellisense code completion and navigation support or from the Entity framework. ... My only reservation about C#/.Net is that all of my peers are in the Unix side of the world. I feel like Microsoft has been losing mindshare among the top tier of engineers. Oh, and it is really nice to be able to spin up 1000 VMs without having to pay an OS tariff.
- nightski 13y agoWhat widely used platform does have a large mindshare among top tier engineers? Those pushing the edges usually enjoy more esoteric platforms. Either way I'll take my high paying stable multi year .NET contracts in F#/C# by day and code in Haskell by night. As a full time .NET consultant I have never needed more than the $500 VS Pro + Sql Server Dev Edition ($50) + Resharper ($80).
- pauloortins 13y agoJoshua, a developer costs $100k per year in United States. Now consider India, Latin America and other countries. For example: I live in Salvador - Brazil here a developer costs $10k-$20k per year. In this scenario, this tools represent between 50%-100% of the developer cost. I think that in India it's even worst.
- taspeotis 13y agoThe example was for the top tier VS Ultimate with MSDN. Depending on your requirements Express might suit you. Which is 0% of the developer cost.
- pauloortins 13y agoWorking without plugins support is not a option for me. We have to always try use the most productive environment and if we can't do it due licenses cost, it's time to analyze the platform.
- spo81rty 13y agoYeah and the costs are more like $1000 a year vs 10, 000 so it only takes a 1 percent improvement. I don't know the exact numbers. But I know your example is an order of magnitude off.
- deleted 13y ago[deleted]
- dottrap 13y agoI was completely distracted by the use of Gartner's 2015 marketshare predictions. They have a terrible track record. http://www.zdnet.com/why-does-the-it-industry-continue-to-listen-to-gartner-7000001394/ http://www.zdnet.com/why-does-the-it-industry-continue-to-li... http://www.gsmdome.com/blackberry/gartner-predictions-not-so-accurate-especially-concerning-android-and-rim-market-share-evolution_23172 http://www.gsmdome.com/blackberry/gartner-predictions-not-so... http://www.roughlydrafted.com/2012/10/21/three-years-ago-gartner-predicted-apple-would-go-nowhere-in-smartphones/ http://www.roughlydrafted.com/2012/10/21/three-years-ago-gar... http://betanews.com/2010/09/13/are-idc-and-gartner-mobile-os-forecasts-trustworthy/ http://betanews.com/2010/09/13/are-idc-and-gartner-mobile-os...
- foohbarbaz 13y agoThere's one fatal problem with .NET platform: it only (usefully) available for Windows. Who can afford to ignore other platforms these days? Windows, especially on the server side is on the decline. In mobile it never took off. The rest is not really relevant.
- itsboring 13y agoI agree with you about windows, but I've been doing C# development on mac and linux for the past year. I don't even call myself a .NET developer anymore, I just say Mono or C#.
- pauloortins 13y agoUpdated to cover async/await and function programming support.
- emadb 13y agoI wrote few days ago about .net and web development. Here is my opinion: http://ema.codiceplastico.com/blog/2013/10/24/web-developers-should-stay-away-from-windows/ http://ema.codiceplastico.com/blog/2013/10/24/web-developers...