Earlier quoted context omitted.
I've been a fan of Mono for a long time; unfortunately, we've had a lot of trouble trying to scale it in production. Our application was originally built for .NET (on Windows). It was successfully ported to Mono, but we continue to have strange problems (machine load average going to 50+ and becoming unresponsive, etc.) which we believe are related to the Mono GC. After spending a good amount of effort trying to fix…
I'm a huge fan of Miguel and the rest of the Xamarin crew, and I'd love to see a universal implementation of the CLR take dominance. I think maybe 5 years ago the CLR had a real chance to win in the battle of multi-language runtimes, but at this point I think the war is going to the JVM. (Chalk that up to yet another short-sighted decision by Microsoft.) The problem is that Java (the language) completely dominates th…
6 Months with C#
41–50 of 84 posts
Re: 6 Months with C#
#42Earlier quoted context omitted.
Although the core libraries in .NET are huge, many are also very shoddy. There are also a few great API's, but the overall quality and usability is pretty uneven. This is mostly a problem with API's back from version 1.0 - however, unfortunately, those API's often haven't been updated. Documentation is also not always equally good; MSDN has lots of pages that describe a method Bar.Foo() as "Fooing a Bar", which is ne…
Yeah, the worst ones are the stream ones, some what ironic given that he singles one out over Java. The IO one may have `ReadToEnd`, but it's still nowhere near as simple as Python or Ruby, it just shouldn't have to take that many lines of code to read a file. And these days I include RestSharp pretty much straight away if I'm going to be doing any HTTP calls, the native HTTPClient API is horrible. But even that's no…
Likewise, Python has ways for interacting directly with streams.
Re: 6 Months with C#
#43Earlier quoted context omitted.
There's definitely a lot of C# code out there. I do think that open source C# code is more limited than some of the other popular languages. However, the .Net standard library does so much that you often don't need much more other than perhaps a custom protocol implementation or some UI code. I think Windows is the major drawback to C#. No one with half a brain is going to write server software that only works on Win…
"No one with half a brain" This does not contribute to the discussion.
Re: 6 Months with C#
#44Earlier quoted context omitted.
Because it's too easy! Nerds would rather spend countless hours at the command line figuring things out than having a nice interface to get stuff configured and running. As a developer, I don't want to spend my life also configuring servers - sometimes it's just nice to get things working without a ton of hassle. Of course nowadays we use Azure or AppHarbor for everything but we still have some services running on II…
No one wants to spend their life configuring servers. That's why tools like Chef and Puppet exist -- so you can write code that will do it for you. They just don't work as well for Windows as they do for Linux. After a significant amount of experience in the .NET ecosystem, I believe the majority of the anti-Microsoft sentiment is well-deserved. At one point, there was a lot of innovation in .NET OSS, but it seems to…
I think the biggest problem for me isn't some attachment to Windows Server (I much prefer working on a Linux server), or some misplaced love for WebForms (ick!), but the C# language in general.
There are a lot of great dynamic language setups on Linux (Rails, various Python stacks, etc) which aren't bad or anything... but I always find working in a dynamic language to be a bit of a hindrance. I've been writing a multiplayer game server in Go, and I can't even begin to list the hours of work compile-time type tests have saved me during early development as I constantly refactor. But on the other hand, I wouldn't want to write a large "business" style web-app in Go (my day job), which really doesn't have a standards library tailored for it.
I also get the feeling that the dynamic language web-stacks suffer from relatively poor performance compared to the CLR, and for some of the clients I work with who need to do some fairly complex non-database processing, this wouldn't be a great thing. Maybe this concern is unfounded though.
Perhaps Java is the closest match to .NET, both in style and in spirit. But having done a fair amount of Java development for Android, Java just feels so clumsy and clunky... The language isn't as nice, the tools aren't as nice, and the standard library just doesn't compare in terms of letting my express myself quickly and easily.
When one of my clients needs a web-app, I always go .NET. These projects won't ever be scaling to millions of users, so server licensing really isn't an issue. On the other hand, there will be lots of direction changes no matter the amount of planning, so static typing can be a God-send with the safety blanket it provides. And C# really lets me write clean code more quickly than in anything else I've worked with.
If I we're creating a product for a start-up, I probably wouldn't go with it... licensing costs would be an issue. But then again, if I was running a start-up, hopefully it wouldn't be a relatively boring business-app that was best suited to something like .NET. And if I were creating a product for a huge number of users, it'd be worth pouring in the development time to have a super high performance back-end in a language separate from the quick-to-add-features-to Ruby front-end.
But for my use case, I just haven't found a better option yet. I'd love some suggestions though, because I'm not a big fan of Microsoft these days and wouldn't mind being less at-mercy of their platform. Maybe my concerns are unfounded though, and I'm just stuck in what I know, but I do branch out a lot for personal projects.
Re: 6 Months with C#
#45I don't understand why everyone on HN hates Windows server so much. From an administration standpoint they are much easier to setup and use thanks to their GUIs. Windows is very standardized and has very good management tools and interfaces. C#, ASP MVC, and Visual Studio are extremely good tools. I've programmed in C# for 10 years and never had a project I could not do quickly with it. It has very good support of 3r…
Because it's too easy! Nerds would rather spend countless hours at the command line figuring things out than having a nice interface to get stuff configured and running. As a developer, I don't want to spend my life also configuring servers - sometimes it's just nice to get things working without a ton of hassle. Of course nowadays we use Azure or AppHarbor for everything but we still have some services running on II…
Re: 6 Months with C#
#46However, for me is still boring. It's not easy to explain and I am pretty sure is very subjective but I feel C# lacks of soul. In the sense that programming in C# isn't as fun as programming in Scheme or Python. Maybe is just me, but I don't use C# outside of my work.
Re: 6 Months with C#
#47Earlier quoted context omitted.
No one wants to spend their life configuring servers. That's why tools like Chef and Puppet exist -- so you can write code that will do it for you. They just don't work as well for Windows as they do for Linux. After a significant amount of experience in the .NET ecosystem, I believe the majority of the anti-Microsoft sentiment is well-deserved. At one point, there was a lot of innovation in .NET OSS, but it seems to…
> After a significant amount of experience in the .NET ecosystem, I believe the majority of the anti-Microsoft sentiment is well-deserved. At one point, there was a lot of innovation in .NET OSS, but it seems to have ground to a halt within the last few years. It's possible I'm just projecting because of my own experience, but it seems like many of the more influential members of the .NET ecosystem have gone on to do…
Why isn't something like Cassandra or Hadoop written using .NET? It's the Windows requirement that makes ideas like that die on the vine.
Shit, there are more interesting systems built using Erlang/OTP than there are for .NET.
Edit: RavenDB is probably the closest thing to new tech that's currently happening on .NET, and it's because Oren Eini is one of the few innovators left in the ecosystem.
Re: 6 Months with C#
#48I don't understand why everyone on HN hates Windows server so much. From an administration standpoint they are much easier to setup and use thanks to their GUIs. Windows is very standardized and has very good management tools and interfaces. C#, ASP MVC, and Visual Studio are extremely good tools. I've programmed in C# for 10 years and never had a project I could not do quickly with it. It has very good support of 3r…
Why are all people assuming Windows is gui only? You can script practically anything using powershell and multi server management using powershell remoting. System center + ad group policy is light years ahead anything else.
Re: 6 Months with C#
#49Earlier quoted context omitted.
It means that hosting your code suddenly goes from a simple equation about what hardware will cost you, in terms of actual servers, virtual servers or other solutions to a matter of involving licensing software just to have your code run. It means that if you ever need to scale up, you'll have to buy more licenses. It prohibits unlimited, automatic scaling. It's also the once a month embarassing ordeal with sites bei…
Everytime I see someone talking about "unlimited" something my spider sense ticks off. Except for Google, Amazon and some other big guys, most of companies will worry about lots of things before what you mentioned become a problem. Also, AWS, Azure and AppHarbor have takem the license problem out of the way.
Sure. For some values of unlimited it's purely an academic question. But if you can scale automatically to handle double load (which is a more real concern) chances are you can scale further without any other changes.
And yes, AWS, Azure and AppHarbour all have some of the licensing issues handled for you, but that can also be clearly seen when faced with the costs.
Again, I' not saying that nobody should ever use a Windows server for anything. I use it myself. I just say that I can see several reasons why people would chose to avoid it.
Re: 6 Months with C#
#50 (new Func(() =>
{
return "foo";
}))();
That's pretty awful and as a result you rarely see anyone doing stuff like that, whereas with JavaScript it's used regularly. But for C# it's another checkbox that they can say they support.C# should stick with trying to be the best statically typed compiled object oriented language.