News for hackers. Stuff that matters.
Re:I Smell Smoke - Rob Conery on Microsoft by pragmatic on Monday June 21, 2010 @04:12PM (#1449915)
This is a religious war. However, innovation in the C# language places it as the most advanced production level language on the market (IMHO).

Form validation (client and server side with the same code) is still a killer feature. Easy deployment as there is only IIS, no decisions about fcgi, mogrel, keeping your processes running, etc.

I don't really see his point. You've got one of (if not THE ) best IDE's with easy debugging, intellisense, etc. You've got a super stable platform (IIS 7), some of the best documented API's and code in existence and you want what?

I guess I don't get what he wants? Is there some missing feature or just sad that he can't be one of the cool kids?

Re:I Smell Smoke - Rob Conery on Microsoft by bad_user on Monday June 21, 2010 @05:33PM (#1450146)
> innovation in the C# language places it as the most advanced production level language on the market (IMHO).

On a scale of 1 to 10 of vagueness/subjectiveness, this would be a 30.

I like the new additions, like Linq or the properly done closures or generics.

But throwing words like "innovative" or "advanced" for techniques used from the late '70-ties brought together in a language with the same corporate-stinch of Java or Cobol?

Yeah, right.

> Form validation (client and server side with the same code) is still a killer feature.

Form validation is a hard feature to get right. I do not agree that the validation done in ASP.NET MVC is a "killer", especially since I've hit hard limitations in the first hours of me trying it.

In case you're wondering about what limitations I'm talking about ... try building a dynamic forms system that gets stored in the DB (fields, references to validation rules) allowing a user to build some forms and for another user to supply values for those forms.

The only validation system I've seen that's reasonably productive and that works in most cases is the one in Django, but even that is lacking considering you have to add your own code to have client-side validation and keep it DRY (although that happens due to Django's policies, not due to bad design, and really it's not that big of a deal to add something that works well in most cases ... bringing server-side validation to client-side is an easy to solve problem, unless your framework is fucked-up).

> Easy deployment as there is only IIS

You are probably kidding, although I'm happy they finally discovered the virtues of text configuration files.

> no decisions about fcgi, mogrel, keeping your processes running, etc

Not every platform is as fucked-up as Rails ... mod_wsgi for Django (or any wsgi compliant Python framework) just works with no headaches.

It takes me 20 minutes flat to manually get an EC2 instance up and running with everything needed. And I can quickly automate that in a way Windows devs cannot begin to dream of.

> You've got one of (if not THE ) best IDE's with easy debugging, intellisense

Sometimes I miss that, but not that much, mostly because I need the flexibility to use the best tool for a certain job, not to mention that sometimes I don't have a choice in the tools I use.

That's why I'm using Emacs ... the flexibility I gained made me several times more productive than a clicky-clicky IDE.

If you don't believe me, try working with Python from VS.NET, while using pychecker/pylint to automatically check your code (let's say it's a company policy) and to also use ReviewBoard in combination with a Git repository.

Or better yet, try debugging with VS a production environment.

> some of the best documented API's and code in existence

In comparison with Django it pales.

Not only does it have good documentation, but when it's lacking the clarity of the actual code is breathtaking ... yes, devs using Django are actually looking at its source-code and I have quite a few friends developing on top of ASP.NET ... none are doing that.

Maybe it's a cultural thing, maybe it's because ASP.NET is proprietary, the end-result is the same though ... the Django devs I know have intimate knowledge of Django's internal mechanisms, while ASP.NET devs do not.

> Is there some missing feature or just sad that he can't be one of the cool kids?

HN has degraded a lot recently. I see many comments containing ad hominems that are getting upvoted.

Pity.

Re:I Smell Smoke - Rob Conery on Microsoft by pragmatic on Monday June 21, 2010 @10:26PM (#1450713)
I think there is room to acknowledge the strengths of one product and another. You don't have to tear down ASP.NET for Django to "win." I like Python, I don't have to see MSFT headquarters burn to the ground so that I can also use Python.

I'm an advocate for technology I like. I like postgres, python, and nginx, but that doesn't mean ASP.NET is crap.

Re:I Smell Smoke - Rob Conery on Microsoft by rbranson on Monday June 21, 2010 @11:15PM (#1450808)
> Not every platform is as fucked-up as Rails ... mod_wsgi for Django (or any wsgi compliant Python framework) just works with no headaches.

erm... Phusion Passenger is the deployment platform of choice for Rails (Rack) applications. It's even easier than mod_wsgi.

Re:I Smell Smoke - Rob Conery on Microsoft by bad_user on Tuesday June 22, 2010 @08:38AM (#1451653)
Nice ... had no idea about Passenger. While working on a Rails project 2 years ago, had to wrestle with a Mongrel cluster and it wasn't nice.

Thanks for the tip,

Re:I Smell Smoke - Rob Conery on Microsoft by rbranson on Tuesday June 22, 2010 @11:44AM (#1452188)
Yes, it was admittedly a nightmare back then. Passenger is amazing.
Re:I Smell Smoke - Rob Conery on Microsoft by pbz on Monday June 21, 2010 @10:54PM (#1450775)
>> Is there some missing feature or just sad that he can't be one of the cool kids? > HN has degraded a lot recently. I see many comments containing ad hominems that are getting upvoted.

The cool kids part was a reference back to the title of the talk. On a different note I've found way more ad hominems in your post than the parent post.

Re:I Smell Smoke - Rob Conery on Microsoft by terrble on Monday June 21, 2010 @11:13PM (#1450802)
> try building a dynamic forms system that gets stored in the DB (fields, references to validation rules) allowing a user to build some forms and for another user to supply values for those forms

this is fairly trivial. one area where the static typing really helps. the type system is the dsl.

Re:I Smell Smoke - Rob Conery on Microsoft by javery on Monday June 21, 2010 @04:17PM (#1449934)
Deployment is easy? Ok, what do you do to deploy a C# application that makes it so easy? I run two project right now, one is Rails which we have setup with Capistrano for one command deployment. The other is a C# app and I haven't found anything that can do what Capistrano can do for me, and don't say MSDeploy because that is a total mess.

Also, testing. Try testing in C# vs. Ruby or any other dynamic language.

I don't know anyone who uses the built in Form Validation, you would only use that if you don't care about your client-side code.. for people who care we still end up doing both by hand.

Re:I Smell Smoke - Rob Conery on Microsoft by ronnier on Monday June 21, 2010 @04:21PM (#1449945)
> what do you do to deploy a C# application that makes it so easy?

Build --> Publish. Done.

Validation: http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mv...

These features are designed so that the validation logic is always enforced on the server, and can optionally also be enforced on the client via JavaScript. The validation infrastructure and features in ASP.NET MVC 2 are designed so that: 1) Developers can easily take advantage of the DataAnnotation validation support built-into the .NET Framework. DataAnnotations provide a really easy way to declaratively add validation rules to objects and properties with minimal code.

2) Developers can optionally integrate either their own validation engine, or take advantage of existing validation frameworks like Castle Validator or the EntLib Validation Library. ASP.NET MVC 2’s validation features are designed to make it easy to plug-in any type of validation architecture – while still taking advantage of the new ASP.NET MVC 2 validation infrastructure (including client-side validation, model binding validation, etc).

Re:I Smell Smoke - Rob Conery on Microsoft by javery on Monday June 21, 2010 @04:40PM (#1450013)
1) Build -> Publish might work for the simplest of scenarios but not if you have any sort of real infrastructure.

2) To use it you have to use strongly-typed views, and HTML helpers I believe.. which again I don't care for since it is taking the markup out of your hands.

Re:I Smell Smoke - Rob Conery on Microsoft by smhinsey on Monday June 21, 2010 @04:46PM (#1450034)
I totally agree with #1. Deployment is a real weak point. It can be done, even using Capistrano if you're willing to put up with it, but it's nothing like what it could be.

With respect to #2, I strongly suggest you reevaluate. Strongly-typed views will save you a lot of boilerplate code in your controllers and HTML helpers only interfere with your markup to the extent you want them to. Most of them are super minimal and easily styled or manipulated. I expected that the helpers would just be different ways of getting into the same mess you encounter using things like server controls in webforms but I was quickly shown otherwise.

Re:I Smell Smoke - Rob Conery on Microsoft by pragmatic on Monday June 21, 2010 @09:52PM (#1450656)
Beyond Compare. Done.
Re:I Smell Smoke - Rob Conery on Microsoft by pragmatic on Monday June 21, 2010 @10:19PM (#1450699)
Correction, check into Hg then beyond compare, done.
Re:I Smell Smoke - Rob Conery on Microsoft by epochwolf on Monday June 21, 2010 @05:57PM (#1450206)
To reply to the rails deployment thing, you can just go with passenger and then you only need to pick between nginx and apache which really comes down to plugin support. (Provided you don't mind compiling nginx to change plugins. You can hot-swap the binary so downtime isn't an issue.)