4 ms·
I'm happy you did something different, even though your reasons are of course all wrong. I do wish it had been Node and not Ruby - JavaScript fits most of your
by jongalloway2 14y ago
I'm happy you did something different, even though your reasons are of course all wrong. I do wish it had been Node and not Ruby - JavaScript fits most of your reasons for going with an open source stack a lot better than Ruby does. Why not Node was the post I was hoping to read.
But back to why you're wrong on the internet:
1. .NET licensing isn't complicated, SQL Server is. There's an easy fix for that.
2. I don't think StackOverflow really participates in the best that the .NET open source world has to offer. From the information I can read, you (and team) published a lot of the code you wrote under open source licenses, but as far as I know the StackOverflow stack didn't really interact with many (any?) open source .NET projects that weren't run by StackOverflow - e.g. writing MiniProfiler instead of working with Glimpse, working with Mono, etc.
3. There's a lot that's changed in the .NET web space in the past year as they've moved from just releasing the code (see 2 above) to accepting pull requests. This has resulted in a good amount of accepted pull requests - community contributed features which ship "in the box" and are officially supported by Microsoft. Sometimes that's lines of code, but more often it's integration of popular community libraries. If anything, that trend is accelerating.
(also posted on blog comments, but nobody reads those)
Coding Horror Fan,
Jon
- phillmv 14y agoDid you read the post at all? >Ruby isn't cool any more. Yeah, you heard me. It's not cool to write Ruby code any more. All the cool people moved on to slinging Scala and Node.js years ago. Our project isn't cool, it's just a bunch of boring old Ruby code. Personally, I'm thrilled that Ruby is now mature enough that the community no longer needs to bother with the pretense of being the coolest kid on the block.
- jongalloway2 14y agoOf course. Did you read my comment at all? Two can play this game.
- phillmv 14y agoActually, I think I did suffer from some reading miscomprehension. I apologize for the inconvenience, tho I do disagree with your base premise. Regards,
- davesims 14y agoAre you trying to say that both node and C# are better open source options than Ruby? Or rather that node is better and C# is not as bad as Jeff says? Either way -- to say that C# would be a better platform for developing an open source project is far-fetched at least (the developments of the last year notwithstanding, although agreed that MS has come light years in that direction from where it was just a short while ago), and to say node would be better is, well, not uncontroversial. I understand, given your position, this is a point of view you must advocate (although...node? really?), but neither point makes Jeff's rationale anywhere near "all wrong." Agreed re: SQL Server vs., say, postgres. I'm actually not sure why we don't see that option (ASP MVC + postgres/mysql) a lot more often than we do.
- jongalloway2 14y agoLet's start with the "must advocate" part. I work for Microsoft because I really like their web products. They don't tell me to comment on Hacker News, I don't get a HN comment bonus. The only possible impact commenting on HN could have on my job is negative. I'm just saying what I think. I said that given a move away from .NET, Node would have been a better choice. I think Node is more open source friendly for a lot of reasons. For one thing, if cross platform friendliness is a primary driver, the Rails stack doesn't run easily on some of the most popular operating systems. The dev setup instructions are getting better, but they all began with "step 1. buy a mac". Is that really more enabling to the 2nd and 3rd world developers Jeff mentions? It's admittedly gotten better as they've added some Linux docs. I also listed some reasons that C# is not really a non-starter for open source. Jeff's first two points don't really sell Ruby over .NET + Mono to me, and I explained that I don't think Jeff or StackOverflow really participated fully in the .NET open source ecosystem in a way that gave them a lot of value. There are a lot of self fulfilling prophecies in the .NET open source world.
- davesims 14y ago> I work for Microsoft because I really like their web products. Cool! Good to have gigs we like. > "step 1. buy a mac". Is that really more enabling to the 2nd and 3rd world developers Jeff mentions? Eh. Linux is just fine for Rails dev. The Mac thing is mostly a hold-over from earlier days when TextMate was the default editor, and because most Rails shops expect it. In fact one of the most "enabling" scenarios here is to take a cheap, lightweight Ubuntu dev laptop and ssh into a dedicated development server, do all your editing on vim or emacs. > I also listed some reasons that C# is not really a non-starter for open source. Yeah, but it's a hard sell is it not? When considering tech stacks to risk your entire project's future on, what's the practical difference between "Not Really A Non-Starter" and "Really, Really a Non-Starter"? Not much.
- weixiyen 14y agoAs a long-time user of Node, I'm curious - Why Node? Why over Python or Ruby?
- gnufied 14y agomdasen replied to that pretty well in second half of his post.
- mdasen 14y ago.NET licensing is complicated from my perspective. It's not about .NET itself, but I have to deal with Windows licenses and choose an edition (foundation, essentials, standard, datacenter), I have to use per CPU or per server licensing depending, I have to buy client access licenses, do I want to buy the software or pay for a yearly subscription, etc. None of these are insurmountable problems, but it's a different style of doing things than a lot of us like. Specifically, it seems like they're trying to get you to talk to a sales person. In fact, they have a nice section on how-to-buy Windows Server, I'm supposed to get price quotes, etc. There are many in the industry that like sales people. They like thinking, "wow, I just talked to that sales person and I can just ferry the information from the sales person to my organization and my job is done! I'm the people person!" For many of us who just want that nonsense to get out of our way, it's just terrible. Now if a box breaks, I have to order something with the same processor equivalents. If I want to move to the cloud, I can't take my licenses with me unless I'm on a Software Assurance subscription. It limits my options, it takes organizational overhead. If I bought licenses on the processor model for two servers that I want to combine into one larger (more-core'd) server, can I do that? Can I set up VMs running it within the box (even just for testing)? What happens when the next version has a different structure? VMWare made a large licensing change that switched from CPU to RAM (or the other way around) and it hit people that had gamed their old licensing model hard. Again, I'm not saying that the licensing is impossible, but it is a problem. With Ruby, I can launch on a $20 Linode or any number of hosting providers. Heck, with Windows, my cloud providers are limited to Amazon and Rackspace. Microsoft's stack has awesome value. Visual Studio is awesome. I prefer C# to Java and I prefer SQL Server to MySQL (and to an extent PostgreSQL since it supports things like clustered indexing and with 2012 they finally implemented a good LIMIT/OFFSET). But those goodies come with a price that's more than just dollars. There's overhead in purchasing, overhead in pre-planning, and limitations. "Why not Node.js" would be a great post. Without taking anything away from Node, it is different. If you use Django, Pylons, Rails, .NET MVC, Play (at least the Java side), etc. Rails should feel familiar. Some people don't like evented programming. I think a lot of people don't like JavaScript as well. It's ok in my book, but I doubt it would be so popular if it weren't the only language that browsers spoke. Similarly, it wouldn't be faster if companies like Google weren't pouring energy into it. Node.js offers some wonderful benefits. Event-driven programming with non-blocking IO can be wonderful for many things. The V8 JavaScript engine is fast. But "why not Node.js" would really be "why not evented?" The answer might be something lame like, "well, people are comfortable with MVC and process-based concurrency is easy and we're not planning on doing something that an evented model would give us a huge boost." Again, evented programming is very useful, but it's also different. While I think all CS programs should teach concurrency, some don't and even people who went through such a program don't always like it. Processes are simple (even if they waste cycles context switching, even if they flush the TLB). Node.js has done our broader community a great service by bringing up evented programming and creating a good environment for those who want it. But the answer to "Why not node?" could simply be "I didn't feel like evented programming". No matter what their differences, MVC frameworks are more alike to each other.
- mapgrep 14y agoJeff Atwood comes on your podcast and this is the thanks he gets?? :-)
- jongalloway2 14y agoWe've been arguing for years, mostly because he's always wrong on the internet. ;-)
- jshen 14y agoWhy not node? Async is a pain in the ass performance optimization for a certain class of problems. Another plus for Ruby is JRuby. It's very nice to have access to JVM libraries from time to time.