Home » Software Development » Messy Web: Angular.js, Ruby on Rails, Dart, GWT! Almost forgot Closure

Messy Web: Angular.js, Ruby on Rails, Dart, GWT! Almost forgot Closure

Man, with all the various web development libraries, tool kits, languages and technologies it’s a tad overwhelming trying to figure out up from down.

Ruby on Rails: Lot’s of room to Improve

Sure, it’s easy to just go the Ruby on Rails way, and try to figure that beast out. But dealing with Ruby on Rails isn’t trivial, it still requires a lot of effort and the learning curve can be a bit painful. I personally found it a major pain trying to figure out the intricacies of tying in the embedded Ruby, Coffee Script and views (HTML/CSS) side of things. The actual Models and Controllers are pretty straight forward. It’s the V for View in MVC (Model View Controller) that seems to be the reason for so many new happenings in web development.

What’s your Angle?

So I did some reading, and that always leads to more questions than answers at this stage of the game. After reading up on Angular.js (a Google open source project), Google’s new Dart Script language (open source), Google Web Tools (GWT) which is not open source, Closure (another Google project), I came to the conclusion that I was confused.

I can either go back to Ruby on Rails, which is what I started using, or keep trying to figure out if there’s a better way. Am I locking myself into some over hyped framework that I will regret down the road? I don’t mind building a throw away prototype, what I do mind is that there is still a learning curve to Ruby on Rails. So if I’m going to throw away my 1st born, the effort involved in the learning curve may be better spent on a language and framework/libraries that I will also use for the second baby.

Is that too much to ask? I don’t know. However I do know that you have to find a healthy balance between scrapping old technology for the new.

At first I thought Angular.js has no place in the Rails framework, same for Dart, but a few qwuick Google searches showed blogs mentioning using Rails with Angular.js and Dart. When it comes to web development, trying to figure out the best libraries, frameworks, and languages to use is nutty. Developing a native Windows or Mac application or a native iOS or Android app is pretty simple when it comes to picking a language and tools compared to the messy world of web development.

Good-Bye Internet Explorer, you greedy little thing

Larry Page, CEO and co-founder of Google alluded to this in his Developer IO keynote talk, here’s the YouTube video, Mr Larry starts at 2 hours 40 mins in. He’s specifically talking about how Microsoft is not interested in open standards. Thanks to the success of Google’s Chrome browser, Microsoft may not have a choice, and then the Dart Scripting language may quickly become the defacto standard and replacement for JavaScript.

But until then we have to wait and see, at the same time, have some vision and belief… in my case I think Microsoft is still a beast to be reckoned with from the point of view they have a large developer base, and every Windows desktop and laptop ships with IE. But, it’s looking like Chrome has more users based on the stat’s from this Wikipedia page.

Either way you slice it, I’m betting on Chrome and Google. I get the point of developing web apps on Microsoft platforms with .NET and ASP (ease of use, hardened tools used by corporate developers) but I don’t have the cash or desire to be locked into an evil empire. Is Google an evil empire too? Maybe. But they don’t have much, if anything, to do with Rails, and Google’s web dev tools mostly open source, so I trust Microsoft less than I trust Google. In fact I actually like Google, and the last time I liked Microsoft was around 1995.

Don’t Believe the Hype

And for Rails, well, it’s certainly over hyped. There’s the PHP crowd that hates Rails because they’re too invested in their existing skill set, no time for another steep learning curve when you’ve got project to complete. And there seems to be a big part of the Rails friendly crowd that are a little too bliss-ed out, I kind of get it, these guys all seem to have a solid background in PHP and were willing to make the change, so they appreciate the ease of Rails and the time savings.

And in both crowds you’ll find the blow hards that figure they spent years learning to code that hard way with poorly designed tool and languages, so you should too if you expect to get anywhere in life (these types are the enemy of progress, productivity, creativity and innovation).

Not to mention the guy that initially wrote Rails holds the trademark on the Rails logo and the phrase “Ruby on Rails” and apparently won’t let book authors use the logo without his permission. Doesn’t sound too open source to me, what a great way to stop people from wanting to write a book to promote the framework and technology of Rails. Kinda turns me off from wanting to use Rails.

Good Killed Great

I’m not looking for good enough, or better than a bad way of doing things. I’m trying to find the optimal route from A to Z. A few quick Google searches will show that Dart can replace Coffee Script in Rails, and people are using Angular.js with Rails (how and why is still a mystery to me, that’s the more questions than answers part of the equation). But just because you can, doesn’t mean you should. So now I’ve got to read more DOCs, tutorials, blogs and books to figure out what’s the best thing for me, myself and the 7 billion “unique” people that will visit my site each hour. Not to mention the scalability I need when the worlds population grows to 8 billion.

The Present Moment: In the Now

See, this isn’t a small undertaking. But seriously, like I said earlier, who wants to waste time learning a technology if there’s a better, easier way to get things done. If that’s sounds lazy, let me put it this way, do you develop in Assembly Language for the web? Likely not, so why are we developing with the mess we have today? Well that seems to me why Angular.js, Closure, GWT, and a zillion other funny named projects exist.

The mess is chaos and out of chaos comes, more chaos, and hopefully, eventually, focus and simplicity.

It took a while to get here, the C language came onto the scene in 1973, C++ in 1985, Java in 1995, JavaScript and PHP also came out in 1995, and Ruby on Rails in 2004. In the meantime I’ve got to figure out what’s the best way forward, as I have a web app I want to develop and I don’t have the time to write a better MVC framework, especially since I still have a full time job.

I like the simplicity of Rails to create models and controllers, like I said earlier, the views drive me nuts. The question is, should I use Dart with Rails? What about Angular.js, Closure or GWT (I know the rumors are that Dart will replace GWT)! Or is there a better way to do MVC while retaining the simplicity of the M and C in Rails?

Then there’s Django, I mean where does this end, trying to navigate the maze of tools to make your masterpiece. I stumbled across a mention of WebObjects from Apple, seems to of lost the spotlight… what’s NeXT (no pun intended)?



  1. chstrong says:

    So true what you tell. I’ve gone through the same issues. I have abandonded Ruby on Rails and Grails because it looks easy but as soon you have a project with specialities (which is almost always the case), it’ll take ages to figure out how to do it in Rails. The documentation always stopped where I started. I lost about 4 years because of changing from PHP to Rails. Never again. I changed to Java/Spring (Springsource). I’m using Springs MVC framework on the server part that will only return REST/JSON with MongoDB as database. Spring is fantastic once you learned it and Java is just the language used by large enterprises. PHP is actually integrating the concept of Interfaces and other concepts from Java since version 5. I use AngularJS as Web Frontend. It’s also a beast to learn but I believe it’ll stay for a while as they also provide a framework for Dart. I’ve learnt that Java is the most mature of languages and doesn’t change all methods every 3 months such as Rails does. It’s also a good selling point and Java/Spring is accepted by all large firms. Believe me when I say: Nobody needs PHP and nobody needs Ruby on Rails. It’s just a waste of time. Been there, done that, never again. Since then, my bloodpressure is much better (seriously) and I have more private life.

    • flyinghorsedancing says:

      I never considered Java for web dev, since most guys into the Ruby, Java Script stuff on the server claim the extra code overhead hinders productivity and readability. I know there is a trade off VS trying to debug interpreted code ala Ruby, PHP, Java Script. Right now I’m knee deep working with Meteor which uses Java Script and MongoDb, all running on node JS. It’s a huge challenge with the way they do reactive updates in their Publish/ Subscribe system, but fun, and once they get closer to an official release I’m hoping they add some more APIs to make it more intuitive.

  2. Daniel Khan says:

    Really good points in this post.
    Came here as I googled for ‘Angular Mess’ to cool down my frustration 🙂

    I really don’t want to throw another buzzword in but I have to say that for me Scala Play is currently the best web framework right now.
    (Started with perl and php in 1999, tried Ruby and did some C, C++, .net, Java along the way)

    They simply do it right. Sure Scala has also a steep learning curve but I think learning new (functional) paradigms serves a programmer better than learning another (imperative) syntax.

    Angular is a beast and I still don’t understand why it has to be THAT complicated but I also think it’s here to stay.

    node.js is also a real game changer and I’m using it currently for the server side of the frontend. It’s lightweight and leads to more self contained, easily deployable projects than php imho.

    For the backend I am fond of Scala because using a static typed language simply makes me feel more secure when it comes to business logic.

    Just my 2 cents.

    • flyinghorsedancing says:

      I don’t know enough about all this jazz, but I recon if you use JavaScript on the server and you want to do things more ‘secure’ you could have JavaScript / NodeJS run some C++ or Java code on the server for super critical stuff. But with all the JavaScript ease of use, and tons of libraries available it seems to be taking over, slowly. And maybe Dart will eventually replace JavaScript. But I think Java is like COBOL, it’s gonna be around for a while too.

      I think Meteor are betting on killing Angular, but it’s too soon to tell. I’m gonna start learning Angular, I’m not a fan of Jade, but you gotta start somewhere, even though I don’t need a big fancy single page app I guess i’m gonna get one anyway with Angular. Jade drives me nuts with the spacing/indents.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: