views:

1168

answers:

18

Which of the following technology is easy to learn and fun for developing a website? If you could only pick one which would it be and why

  • Clojure/Compojure+Ring/Moustache+Ring
  • Groovy/Grails
  • Python/Django
  • Ruby/Rails
  • Turbogear
  • Cappuccino or Sproutcore
  • Javascript/jQuery
+10  A: 

I would probably learn Ruby on Rails. It has a lot of different methodologies compared to ASP.NET, and it might open your eyes to some different and very powerful approaches to web apps.

Andy White
+29  A: 

Have you considered turning off the computer and going outside instead?

Remember to wear pants!

Steven A. Lowe
Or go to the GYM (if you have one) and run a few KM on the treadmill, it really helps to get your head away from work.
Chris
+1 funny/-1 off topic. Eh, it balances.
rampion
Must second running, I've had some of my better ideas while running.
ccook
Why the hell is this answer getting up-voted? This is rididulous. The guy wants an alternative to ASP.NET, not a health recommendation. God, this community is so whack at times.
Josh Stodola
@[Josh Stodola]: I am surprised as you are that there are 14 people on SO with a sense of humor. There used to only be 4.
Steven A. Lowe
It was sort of funny, but I have to agree with Josh, questions/answers like this usually get voted down with extreme prejudice :)
Andy White
@[Andy White]: I can risk the rep points for a good joke ;-). Though I seriously expected this question to get closed as a duplicate - how many "which language should I learn" questions are there already? (An SO search yields 67 PAGES of related questions)
Steven A. Lowe
@Josh : "Why the hell is this answer getting up-voted?" because they have sense of humor and work could be fun sometimes.
this. __curious_geek
+4  A: 

I would suggest jQuery or python, both are fun to work with and useful for either web work or just common tasks.

cobbal
+7  A: 

I recommend Clojure and Compojure because Clojure is awesome. Clojure is a new and modern LISP implemented on the JVM and can interact seamlessly with any Java library. It already has 3 IDE plugins in development, a book written about it, a very smart and open-minded person running the whole operation and a great newbie friendly community. The language is simple, easy to learn and yet really powerful. A good way to open your mind to new ideas without going as far as pure functional programming. Coding websites with Clojure is a breeze and really fun. It has a lot going for it and a lot of momentum. All the kool kids are doin' it so I recommend giving it a try!

Rayne
+5  A: 

If you main goal is to broaden yourself, I'd suggest looking at things like Seaside or HAppS.

MarkusQ
HAppS rocks, but Clojure and Compojure is supported everywhere that Java is supported. :D I <3 Haskell and Clojure.
Rayne
@Rayne I've tried to fall in love with clojure, but it just hasn't clicked for me. I get kind of a "you look an awful lot like a woman who once stole my heart, but I know you're really java in drag" discord.
MarkusQ
That is farther from the truth than I can stress.
Rayne
I mean, I understand the feeling you get, but it's really far from the truth. I didn't mean for that to sound offensive if it did :\
Rayne
@Rayne I suspect you're right (that's why I keep trying), but clojure just makes me want to fire up scheme. Part of it is that you can call out to java; most people see it as a feature, I see it as a leak. Yet I've embedded assembly in ruby, so this perhaps says more about me than about clojure.
MarkusQ
+4  A: 

You should wait until you get an answer from someone who's used more than one of those. That said (I've only used rails, python, and javascript), one way to frame it would be as a balance between sheer intellectual joy and practicality. My thoughts on Rails and Python from that perspective:

  • Rails is going to be different and interesting, and it was hip in 2005-2007. There may be something more hip now. (Hip counts when you want to get future colleagues excited about what you've done, when they haven't done it.) I'd venture that it's at least as eye-opening as something based on LISP or Smalltalk or Haskell, but probably more practical because you may actually end up using it at a job or for contract work. Clojure, Seaside, and HAppS sound really cool, but until one of them really catches on, you're unlikely to ever use any of that stuff again in your career unless you're a computer science PhD working with other PhD's. (Edit in response to comments: please don't read this as a disparagement of those frameworks. As Rayne and MarkusQ have noted, depending on your motivations, they may be just what you're looking for. I'm just trying to communicate one method for weighing the alternatives based on your goals.)

  • Python is a great language to know all around. I haven't used Django, but it has some industry traction (not as much as rails). Python as a language though will serve you well no matter what you do -- it's great for banging out utility scripts and rapidly prototyping ideas. There's a huge community and tons of libraries.

You can gauge a technology's potential usefulness for moneymaking by searching for it on craigslist, dice.com, monster.com, etc.

mikeh
I wish people wouldn't classify languages by how many jobs are available for them and how many people use them...
Rayne
It doesn't classify their inherent value, just a certain measure of practical value. (Thus my explanation at the top about what I was about to compare by.) There are many things of value that go vastly unappreciated in the universe.
mikeh
By practical value, I'm sure you mean in the Job market if that's all he cares about is a Job. Clojure is practical for sure. Haskell is practical if you /know/ it.
Rayne
Yeah, by "a certain measure" I meant in the sense of "one way to measure". Practicality is definitely with relation to a goal, and I didn't mean to imply that making money is the only imaginable goal. I thought I had prefaced with enough disclaimers, sorry if not!
mikeh
+6  A: 

Javascript, because the skills you learn will complement your current Asp.net skills.

too much php
Good answer, especially with all the HTML5 technologies on their way, I can see potentially huge demand for dedicated JavaScript developers, not just server-side (ASP.NET, Ruby on Rails) developers who are also called on to write JavaScript.
Sunday Ironfoot
+12  A: 

OK, first, apparently we all need a pants check. Done?

I'm of two minds:

  1. if you are looking for a practical language / platform to pick up that you hope to use to help you in your day-to-day then I'd go with Python/Django. Python has developed into a really sweat and powerful language and Django is as nice a web development MVC as any other and pretty easy to pick up and get going with. You can run it locally, its easy to deploy on Apache w/ mod_python. Did I mention that Python is a really nice language? Also good support in the tools world, google app engine etc....

  2. if you are looking to expand your thinking/though processes about the way you program and think about programming then I'm with Joel Spolsky - choose HAppS (Joel would go Haslkell) or Clojure which I've not used but I've done a lot of lisp and it makes you think different and the language constructs like the macro capability will change the way you think of solving problems

jottos
+30  A: 

Have you tried ASP.NET MVC? It is actually very different to ASP.NET (vanilla), but retains your knowledge of the .NET framework. Most people wouldn't look back...

With the view based on your html (rather than whatever the controls decide to emit), it is also ideally placed to work alongside jQuery (it is even installed in the default project template) for all your dhtml/ajax needs.

Resources:

Marc Gravell
ASP.Net MVC rocks. It's soooo much better than Web Forms.
Chuck Conway
+1  A: 

Ruby on Rails, because that's what I use.

August Lilleaas
Greatest reason evar.
Rayne
+4  A: 

Definitely clojure. It is the most different of all languages mentioned in the list, so it would be probably most fun to learn / use.

Dev er dev
+1  A: 

I have worked with several technologies... not touched ASP. NET. Heard about it from other people who are under its influence.
I have started working with Ruby on Rails and it is fun. Since you want to learn and develop web sites, you should go for Ruby on Rails. There are lot of things you can do with RoR on web. I like things that you can do with RMagick. (cropping images, thumbnails,slideshow etc) Talk about multi-lingual sites... and there you have "gettext". I vote for RoR.

Srividya Sharma
+7  A: 

Let's start by clarifying your question. Why are you "tired of ASP.NET?" Is it because of the tedious webforms model that tries so hard to protect you from the browser/server conversation that it ends up getting in the way?

Or is it because you have been trying to work with one of the tiresome 3rd party enhancement controls that build on the tedium of the webforms model?

Or do are you simply tired of working with five different languages at once: ASP.NET, HTML, CSS, Javascript, and C#/VB?

If you answered yes to the first two of these questions here's some advice:

  1. Get some rest.
  2. Try ASP.NET MVC. It gets out of your way and lets you work with the browser and IIS
  3. Realize that changing web development models will be difficult no matter which one you choose to move to. The path is smoother the fewer things you change (see number 2).

If you answered yes only to the 3rd question (five different languages) then all I can tell you is, welcome to web development. It will be this way for awhile.

CLaRGe
+1 Nice answer. For me I'm tried of angle brackets in Web Forms. It's a leaky abstraction. It's cumbersome and slows productivity.
Chuck Conway
A: 

I've used Ruby on Rails but also have done quite a bit of Groovy and Grails work. If you don't have any previous experience I would go with either of those. They're both fun to learn, pretty easy, and are very powerful.

They're both backed up by frameworks: Ruby had Rails/Merb Groovy has Grails

They can both use jQuery.

I don't know much about Python/Django combination.

A: 

I've started to learn Ruby on Rails along with MVC (since conceptually there similar) and found it a great relief from the same routine with .Net.

+3  A: 

Nobody seems to be voting for groovy. I'd go for that. I don't know anything about grails, but groovy the language is pretty cool. In the past nine months at my job I've been required to learn python and ruby. In the process I also took some time to understand groovy. groovy is the language that had me hooked before I finished reading the first chapter of Groovy in Action.

Ruby is the one I'm actively using now, and while I did nothing but python for six months that's my least favorite of the bunch. Python is not a bad language per se, I just didn't enjoy using it. I find ruby to be a very pleasant language and am glad I had the opportunity to learn it.

Fully learning javascript might be the more practical choice, but I'd still vote for Groovy. I'm anxious to find an opportunity to use it at work.

Bryan Oakley
+1  A: 

I'll add in my vote for Groovy, as well as another one for Ruby. Both Grails and Rails are excellent frameworks, although Rails will get you a job a lot sooner than Grails. Both are truly a pleasure to work with, and have actually made me enjoy coding again.

Groovy is nice because you can use any Java library. So, lightning-fast database access, XML parsing, PDF generation, and so on. In a nutshell, Groovy is Java, if Java had been written by a bunch of Ruby guys.

Grails is also great, although it's a lot buggier than Rails, and if you want to do anything complicated you're going to need to learn a bit about Spring, Hibernate, and Java. Grails does have better internationalization support and more deployment options, as well as a really good integrated scheduler (Quartz) for long-running and scheduled tasks.

Rails is Ruby all the way down, so you can very easily read the framework code and figure out how things worked -- I did this in order to figure out how to implement a graph (data structure), and was really pleased with how easy it was to figure out how to change things.

Don Werve
+1  A: 

Learn Ruby on Rails. It'll change the way you see web development. It did for me!

A valid alternative is Django and Python. I don't use it, but I consider it to be just as good as Rails.

marcgg