

Ask HN: I'm a C# MVC guy. What web technologies should I learn for freelancing? - deevus

After 5 years doing ASP.NET MVC full time I've started a B Comp Sci degree for several reasons. Since starting, not having that daily programming work has me itching to do some freelancing projects. I might not be ready to commit a lot of time right now, but come semester break I could be in a good position to get some work done.<p>I've got some smaller projects already lined up without any real deadlines (they are for people I know) but the problem (if it is a problem?) is that I haven't developed many web apps outside of my usual domain (C#).<p>I'm very comfortable with the MVC paradigm and would love to find another language/framework that matches (or approaches) the niceness of working in C# and Razor-Engine, but doesn't have the same software costs associated with it.<p>I've toyed around with AngularJS (using mock data in js) and thought that it could be powered by a nodejs backend (or something else). Angular templating is similar to what I've done before, and I like that it's just regular HTML. Even with jQuery-mobile it loads very fast on the smartphones/tablets that I tested.<p>I also played around with nodejs, Express, Jade and Mongodb. Jade is nice for simpler templates, but after a while the indentation just gets messy for hairy ones. Using a bunch of technologies that are just javascript seemed great in theory, but I was quickly getting annoyed at how messy the code was getting, even for a simple application. Mongodb started frustrating me as the schema got more complicated, but perhaps that is just because I don't have much experience with NoSQL.<p>The obvious choice seems to be learn Ruby, and then Rails. I've tried a couple of times to learn it. I don't know why but for some reason I just don't get it. Should I stick it out?<p>What technologies are fellow HN'ers using for freelancing projects?<p>Oh wise HN, please help me :)
======
lukeck
Specifically where were you getting stuck with Ruby/Rails? My background is
C#/ASP.NET MVC too. The structure of a rails app is not all that different to
that of an ASP.NET MVC app. The biggest challenge for me was adjusting to all
the extra syntactic sugar in Ruby compared to C#.

Michael Hartl's Rails Tutorial was what I used when picking up Rails.
<http://ruby.railstutorial.org/>

railsguides.com has some pretty great videos on using different rails
libraries.

If you're really not a fan of the Ruby syntax, maybe something like Python
with Django would suit you better.

If it's missing the Visual Studio IDE that's giving you trouble you might want
to check out the RubyMine IDE (made by the same devs as the Resharper VS add-
on).

~~~
deevus
In line with what you said, the syntactic sugar of Ruby is what put me off.

Having a good IDE like Visual Studio is nice, but I find myself working in ST3
or LightTable often, so its not essential. As long as I can build from my
editor, I'm happy.

------
HarshaThota
What's wrong with C#? It seems like you like the language and are only
concerned about the software costs, so Mono would be an obvious option to look
into. And the compatibility has improved quite a bit, to the point that there
are quite a few projects that support multiple platforms:

<http://www.servicestack.net/>

<http://nancyfx.org/>

<http://monogame.codeplex.com/>

<http://monocross.net/>

<https://github.com/markrendle/Simple.Web>

~~~
deevus
You make a good point. I haven't touched mono for a long time, so maybe it is
worth another look.

------
elclanrs
Have you considered PHP? That would be the cheapest alternative, and there are
more MVC frameworks for PHP than there are for all other platforms (probably
combined). There are many templating solutions as well, but PHP is already a
templating language anyway.

~~~
deevus
Not ever seriously. I've always hated how bloated the core of php is. I've
also read too much Coding Horror.

------
yen223
I am a C# guy who recently picked up Python, and haven't looked back :). Nice
thing about Python is that it plays well with Windows.

~~~
EnderMB
This sounds a lot like me. I am a .NET developer by day, but I like to write
Python when I get home. I don't know if Python is good enough for me to ever
want to make the switch in my full-time career, but it's still fantastic to
use with Django.

