Live data from Hacker News

Leaving .Net

whatupdave.com

61–70 of 122 posts

Re: Leaving .Net

#61

Funny timing. I've been a .net developer, mostly web - some desktop, since the first release. I am currently going through the interview process with a company that focuses on rails. Part of me is excited, I've been wanting to get away from MS technologies for a couple of years now. Part of me wonders if I am going to miss the safety net of the compiler and IDE, and if the grass truely is greener. I started out doing…

I've found it to be a really great experience stepping out of a world where I felt like I was constantly re-inventing the wheel into a world where I was constantly seeing the result of a lot of eyeballs and a lot of great decisions. Once I started relying on my tests/specs to ensure my code was working properly I started to appreciate the beauty of the code I was able to write. I also started noticing the volume of c…

I hear often "units test... beautiful code" and well, I agree that code can start off that way but how does this style of development/train of thought work in the long term? Are there any examples of agile software that is over 5 years old? How about 10?

Re: Leaving .Net

#62
post #39

Earlier quoted context omitted.

> The classic example is GCC which has probably 10x > more people working on it than any commercial > compiler, yet the Intel and MS C/C++ compilers > generally kill it. Oh? Interesting; I thought that gcc was one of the better ones. Could you elaborate?

GCC has generally had perf numbers that lag the commercial compilers. Although GCC has narrowed this gap recently as C/C++ has generally fallen out of favor by the major vendors (and commercial vendors aren't working much on raw C/C++ performance anymore).

Even when I run them on my amd cpu?

Re: Leaving .Net

#63

Earlier quoted context omitted.

I guess I don't understand your criteria. There's plenty of help available on F#. Mono was painful, at least for me, but nothing like C++ or .NET internals. When I'm coding I look for community support and ease of solutions. I have that. So why again would I switch? I guess what I'm saying is that I don't understand your criteria. Who cares if famous person X answers your question? I just want to get my work done, no…

> Mono was painful, at least for me I'm interested to hear more about mono, what was painful exactly? How is the performance compared to the MS implementation?

I plan on writing a long blog post once I get it all nailed.

It will probably go something like this: the linux environment is like running an operating system at the same time while you're coding it -- little pieces of code and scripts here and there. That makes linking, compiling, and installing the primary chores. Although there is an awesome package manager, it doesn't have the coverage you'll probably need. So lots of different pieces to plug in, lots of advice on the net, some of it bad or incomplete, and instead of just googling you end up doing quite a bit of thinking as you assemble your development environment and OS. Nothing at all like the VS2010 pnp stuff.

But I'm specifically referring to F#, which is a PITA on mono right now. I understand it's going to become part of the standard distro. Can't wait for that to happen. The default Monodevelop c# environment looks easier, but even then I'm having to do things like figure out where the gac is, find sql drivers and install them, bludgeon my way through mono dll linkage problems (Hey mono -- it's in the gac, it's in the directory, and you can compile it. Why the frack can't you find it when you run the program? I have to statically link my mysql driver, making my 2K executable into 1.5MB. That's hosed.)

Example #2: I have some generic type magic that works fine in Windows. Basically I throw an object at a function and it generates an SQL INSERT for me. Works and tested and being used in Win. Over in mono, however, for the type name all I'm getting is "System.Object" which, of course, is the correct base type, but not the real type name the caller is using. Can Mono handle this type-fu? Or am I stepping into some area the Mono guys just haven't developed yet? Don't know. Could be a while trying to track that down. Just like all these other snags.

It just seems like every little thing is more painful than it should be. Like debugging. Still haven't figured out how to get the interactive debugger to work on F#. I'm sure after an hour or two I'll figure it out -- or not. And there's 20 things like that. Because I'm new to the entire thing, each little step hurts.

I think it's doable, I think it's worthwhile, but if I were taking a team through this I would definitely want somebody onboard who has already been there, done that (and could mentor). Quite frankly doing it on my own gets a bit discouraging at times.

Re: Leaving .Net

#64
post #62

Earlier quoted context omitted.

GCC has generally had perf numbers that lag the commercial compilers. Although GCC has narrowed this gap recently as C/C++ has generally fallen out of favor by the major vendors (and commercial vendors aren't working much on raw C/C++ performance anymore).

Even when I run them on my amd cpu?

To answer your question, probably not. icc has a long history of being less good on AMD processors, and almost certainly not on accident. With that said, they don't have a monopoly on x86 compilers. Microsoft's Visual C++ has been about equally good on both platforms and is far more dominant.

But with that said, I'm sure you know, that's not really relevant to the discussion at hand :-)

Re: Leaving .Net

#65
post #50

Earlier quoted context omitted.

Just things that are cool. Stuff done in F# or in other communities like the Haskell, Clojure, or Rails community. I'm trying to see why the things coming out of the Clojure and F# community are cool, but they aren't coming out of the C#/Visual C++ community. For example, ScottGu showed off a C#/Silverlight app built by a 3rd party that was a 3D model of the human body, where you coudl strip layers and interact in re…

No, absolutely, there are very cool things coming out of Microsoft with regards to C#/VC++. It's just that they nearly always come from Microsoft, there isn't an active community that does these things.

This can be misleading. Often these sorts of things are built by 3rd party companies and simply released by Microsoft or hosted on MSDN/codeplex or etc. A lot of them are just people at companies with pre-existing relationships with MS coming up with good ideas. It's not the same as more OSS-style ecosystems, but it's also not a centrally planned marketing facade, either.

Re: Leaving .Net

#66
post #50

Earlier quoted context omitted.

Just things that are cool. Stuff done in F# or in other communities like the Haskell, Clojure, or Rails community. I'm trying to see why the things coming out of the Clojure and F# community are cool, but they aren't coming out of the C#/Visual C++ community. For example, ScottGu showed off a C#/Silverlight app built by a 3rd party that was a 3D model of the human body, where you coudl strip layers and interact in re…

No, absolutely, there are very cool things coming out of Microsoft with regards to C#/VC++. It's just that they nearly always come from Microsoft, there isn't an active community that does these things.

My point with the 3D body example is that it was not done by MS.

But take a look at a place like CodeProject. People post their projects and write up an article describing the technical aspects of that project. It's actually a surprisingly strong community. In the past month ~500 written or updated. I actually tend to find this place more interesting than GitHub or CodePlex, due to the exposition.

Re: Leaving .Net

#67

I was a .NET dev before Python/Django. All of this is accurate, and he's wise for leaving .NET It's just not the environment or kind of people you'd prefer to work with, given better communities and concentrations of driven programmers you could be working with.

I've just recently ported a python/Django site to c#/.NET. The switch was not done for performance reasons (or community for that matter) but as a consideration the .NET version was an order of magnitude faster on the same hardware without any effort to optimize.

Re: Leaving .Net

#68
post #48
post #34

Earlier quoted context omitted.

Stackoverflow is built in ASP.NET MVC, which is magnitudes better than normal ASP.NET (and ships with Visual Studio 2010).

ASP.NET MVC and ASP.NET WebForms are both built on the same ASP.NET platform. You can even use some of the simple WebForms controls, like the Repeater and Menu, in ASP.NET MVC views.

Just to be clear, I would never use server controls like the Menu in my ASP.NET MVC projects. I just mentioned it to help illustrate how closely related the two really are.

Re: Leaving .Net

#69
post #67

I was a .NET dev before Python/Django. All of this is accurate, and he's wise for leaving .NET It's just not the environment or kind of people you'd prefer to work with, given better communities and concentrations of driven programmers you could be working with.

I've just recently ported a python/Django site to c#/.NET. The switch was not done for performance reasons (or community for that matter) but as a consideration the .NET version was an order of magnitude faster on the same hardware without any effort to optimize.

Did you have some point to make? You didn't even explain the original anecdote you referred to.

Re: Leaving .Net

#70

Earlier quoted context omitted.

I don't enjoy being a lone gunman. Being able to lean on other peoples' libraries and works on Github is an incredible boon and timesaver. Reinventing everything yourself on F# is scarcely an option, especially if you're seeking a valuable community to collaborate with. You might as well tell everyone who doesn't like the government to go buy a farm and live off the land. When I am in the mood for being adventurous,…

I guess I don't understand your criteria. There's plenty of help available on F#. Mono was painful, at least for me, but nothing like C++ or .NET internals. When I'm coding I look for community support and ease of solutions. I have that. So why again would I switch? I guess what I'm saying is that I don't understand your criteria. Who cares if famous person X answers your question? I just want to get my work done, no…

>I guess what I'm saying is that I don't understand your criteria. Who cares if famous person X answers your question? I just want to get my work done, not become a celebrity or hang out with the cool kids.

If something is broken in Clojure, I can either fix it myself or notify Hickey about it personally on IRC.

> instead of making big generalizations about the state of microsoft, .net, and the community

You just got done accusing me of caring about celebrity and hanging out with the cool kids.

The shift in quality of people I worked with when I switched from .NET to Python was stark. It's a fact that several of my friends who still work in .NET moan about.

I'm not "wasting time trying to find the perfect language".

Oh I see what you're doing here.

http://en.wikipedia.org/wiki/Straw_man

Nice try. I'm out of this conversation.

Parting example of what I'm talking about:

http://hackerne.ws/item?id=2006838

Post reply on HN