What Draws Me to Web Development?

Note: This article is more technical than the rest of my posts so I’ve added addendum to kind-of explain some of the things I’m talking about. They will be paragraphs in italic like this.

So I’ve done all sorts of programming in all sorts of languages.  Ti-83, Visual Basic, C++, Java, straight C, php, python, LUA, ruby, javascript, etc etc. Command line tools, web serivices, high performance servers, low level libraries, games, web sites, web applications, mobile applications, calculator apps, the list goes on.

But I must say, I love web development. Why?

Because web development is a mix of all of these things. Each type of programming solves a different problem, is done in a different environment, has different rules, and requires its own mindset to decompose and solve the problem at hand.

Take a look at a typical Rails client/server stack (courtesy of joshcarter.com):

web_software_stack

Starting from the front of the client stack – you have web design. This includes graphics, layout, styling, and user interface design. I use Photoshop, hand coded HTML with a W3C validator, css, and javascript. Right there I need to have a discriminating visual eye, and competencies in fomatting, styles, and scripting. And that’s just to get something to show up in the browser. This doesn’t even include the idiosyncrasies between browsers, supported standards, typefacing, or compatibility (damn you Internet Explorer 6).

For the uninitiated, this means that I can write HTML that works perfectly in Firefox, a popular open source browser. However, if my friend uses IE (which comes with Windows), or Safari (which comes along with a Mac), you could potentially end up with a pages that look similar, but different enough to cause layout problems – I’m sure you’ve seen weird pages before. This is why you’re “geek” friends tell you to drop IE, because catering to the way IE displays its web pages is a difficult challenge.

How do you create that page? Well thats the stack on the left. Again, starting from the front – I’m probably are using a web application framework like Ruby on Rails, Django, CakePHP, etc. If you aren’t using a framework (or have written your own), theres a whole class of other issues right there. Web servers, CGI, request dispatching, MVC design, databases and SQL. In most cases (unless you are using Node.js) you’ll have to learn yet another language to use or create a web app framework.

Basically, you need a way to pull information from a database, get it in a form that is easy to work with, and then use it to *generate* the HTML for the web page. So not only does the resulting web page have to look right in all the different web browsers, but the developer has to write a *program* that creates this HTML – on the fly – correctly – every time. This requires another language on top of the visual element languages.

So the thats the front-end of the server (even though the database could be considered the back end). Then there is the ‘OS’ layer, which I would consider number crunching tasks. Web development and application providing increasingly requires heavy workloads, computation, or number crunching. In a lot of cases this can be done in the same server-side scripting language used in the framework, but not always. Ruby and python make it easy to create and bind to C for the heavy lifting. This brings in more low level programming languages, environments, and *gasp* – memory management.

The languages used to generate the HTML are usually slow because that too has to be converted into a language that the computer understands, *while* it is running. Meaning the “code” is just text in a file, and a computer reads it and does the corresponding “ones and zeros.” This conversion process takes time and the languages are usually limited. To do number-heavy or data intensive stuff, one must use *yet another language* (usually simpler in form but more low level and sophisticated) that is “ones and zeros” from the get-go. There is less and less of this but most large web applications require it.

On top of all this you are worrying about response time, ease of use, ability to service and maintain the application, CPU loads, search engine optimization,  and having fun somewhere along the way.

Does the web site load slower than Myspace? Where the hell is the delete button? This error has been happening for months! Why can’t I find the site anymore on Google? This website sucks.

Now don’t get me wrong – I love all programming. Low level performance code, games, animation and graphics, command line and server tools. Web development brings in all of this. The skills required to develop for the web – by yourself – literally encompasses a lifetime of learning.

The web moves faster than any other technology out there – and it requires the widest range of skills. If you are a developer and value learning as a life long endeavor, then web development is a challenge awaiting.


Tags:

 
 
 

3 Responses to “What Draws Me to Web Development?”

  1. Gravatar of Kylie Batt Kylie Batt
    24. May 2010 at 13:31

    В этом что-то есть и я думаю, что это отличная идея….

    Note: This article is more technical than the rest of my posts so I’ve added addendum to kind-of explain some of the things I’m talking about…..

  2. Gravatar of CLINTON CLINTON
    29. June 2010 at 23:55


    Pillspot.org. Canadian Health&Care.Special Internet Prices.No prescription online pharmacy.Best quality drugs. Low price pills. Order pills online

    Buy:Viagra Super Force.Viagra.Soma.Tramadol.Cialis Professional.Viagra Super Active+.Maxaman.VPXL.Cialis Super Active+.Propecia.Viagra Soft Tabs.Cialis.Viagra Professional.Zithromax.Levitra.Cialis Soft Tabs.Super Active ED Pack….

  3. Gravatar of Estee Estee
    29. August 2010 at 22:15

    Estee http://jprescriptivet7t.BEDROOMPROPERTY.INFO/tag/r2+Cosmetics+Estee/ : Estee…

    r2…

Leave a Reply

You must be logged in to post a comment.