New Trends In Front Ends

Man, my blogging pace has slowed right down. Not doing anything particularly exciting will do that to you. So, I thought I’d take a break from trying to diagnose a production-only bug (you know, the type of bug where the code runs perfectly in dev but doesn’t work properly in production) that is mocking me, and taunting me while I feel the burn from starting the 100 pushups challenge (damn you Twitter for the peer pressure!). In case you’re wondering, I am starting at rank 1 because I think I have the upper body strength of a man twice my age.

Last week I wrote more Javascript code than PHP code, which is an interesting trend so it has me thinking about front end development a little more. I still suck at interfaces (Rallyhat’s UI is giving me analysis paralysis) but recent developments make me feel a little better.

In a previous post (not gonna self link, so search for it) I talked about why can’t I have an all-Javascript back-end talking to an Erlang server. Well, other than the fact that I don’t know any Erlang I mean. This is why projects like Sproutcore have me excited. Never mind the whole “Cocoa on the web angle” that a lot of people are talking up when describing it. It’s exciting because it is promoting a “back-end neutral” philosophy and emphasizing that people who ignore Javascript are turning their backs on a lot of good functionality.

Javascript + any back end that can spit out JSON is really what a Sproutcore application is. I know the word paradigm shift is thrown out there a lot and is really overused, but I think the fact that something like Sproutcore is out there shows that web development itself is undergoing a shift. I know that there are lots of examples of advanced Javascript + some back end in use (GMail, anyone?) but the fact that Sproutcore is getting some backing from Apple should tell you how important some people feel this type of application architecture could be.

It also simply reinforces my thoughts that knowing one language is no longer enough. Just think of what you would need to understand in order to build something in Sproutcore using, say, CakePHP as the back-end:

  • HTML
  • CSS (can’t have those pages looking ugly, right?)
  • Javascript (although I’m wondering if jQuery and Sproutcore can co-exist)
  • PHP
  • SQL (have to be able to understand the queries being generated)
  • JSON (does that really count as a language or is it just encoding really?)

The funny thing is that I now use this stuff without really considering that they are separate. I just use ‘em all, and abuse my relationships with people who are smarter than me to fill in the gaps. It’s the only way, really. :)

I believe Sproutcore is just the first of many Javascript application frameworks that will come out, so keep an eye peeled for the copycats and the “I did this because my problem is so unique that I could not use an existing solution” crowd. The signal-to-noise ratio will be low, but worth wading through.

Article Tags >> || ||

5 Responses to this post.

  1. Brit's Gravatar

    Posted by Brit on 24.06.08 at 9:57 am

    Good post - I tend to agree with you that I’m seeing a lot more usage of all those technologies in development.

    But, there is a growing trend the other direction and it’s centered around javascript. It is feasible (though I don’t know if it’s been done) to build an entire data-driven application in just javascript (plus HTML/CSS):

    Javascript client side like we all know and love
    Javascript server side through the relatively new Aptana Jaxer server
    Javascript/JSON as a query language to the database with CouchDB

    In this scenario - you would never need a middleware language like PHP because javascript can do client and server side processing. Also, SQL is a non-factor because CouchDB uses JSON objects for querying the database.

    But like I’ve said - I haven’t been brave enough or had time enough to actually give this stack a try.

  2. Chris Hartjes's Gravatar

    Posted by Chris Hartjes on 24.06.08 at 9:57 am

    @Brit

    Sometimes you have to take baby steps to embrace a new application architecture. All those things you are talking about beyond the client-side Javascript are really new. For most developers, simply understanding how to use CouchDB is a tough task. The mere fact you mention it places you in the minority that understand.

    Be brave! Try something out even if it’s something really simple. I sort of understand what CouchDB is doing because of my work with eXist, and how new paradigms cause people to retreat to old and familiar things.

  3. Dieter_be's Gravatar

    Posted by Dieter_be on 24.06.08 at 9:57 am

    “Just think of what you would need to understand in order to build something in Sproutcore using, say, CakePHP as the back-end: ”

    The list you mention is not particular for sproutcore, those are just the technologies most people tend to work with when building web sites/applications. And I don’t see anything wrong with that anyway :)

  4. Steve Oliveira's Gravatar

    Posted by Steve Oliveira on 24.06.08 at 9:57 am

    This looks similar to ExtJs (http://www.extjs.com)? They’ve also built a version for Google Web Toolkit which uses Java to product javascript. (http://www.google.com/webtoolkit/).

    I personally like the idea of limiting CakePHP to backend stuff.

  5. derek's Gravatar

    Posted by derek on 24.06.08 at 9:57 am

    check out the jaxer screencasts at aptana tv. They really are petty cool!

Respond to this post

Want to advertise on this blog? Send email to chartjes@littlehart.net
GTcars Canadian Car Audio TurboDodge Car For Sale Sign
Audi Forum Mustang Forum Dodge Intrepid Miata Turbo
GTscene Pontiac Bonneville


@TheKeyboard is Digg proof thanks to caching by WP Super Cache!