Think. Solve. Triumph.

Menu

Monthly Archives: May 2014

Well there are many people who are beginning to be web developers and find it amazing to work on (as fun projects)!

It’s one of the coolest things to do but there are certain things that one might want to consider while doing it.

I have had some experience in Web Designing during my undergraduate years in IIT Madras. We had developed an online Notice Board for the student community and later I was the web operations co-ordinator for our Cultural festival, , and I had an intern, part of it was to expose our IP using a Web interface.
This is years 2007-2008 when we used Perl/PHP and MySQL as the backend scripting language and database. We had build a server from scratch, used a LAMP and used dedicated servers for college festival work. There are many things which have changed since then which I came to know only recently when I was helping an undergrad student at GaTech for a financial startup (unfortunately, we din’t get funding for the idea), and I will compare them later in the post.
Although there are many ready-made themes available, I would like to share some thoughts on what should one consider while creating good websites. It’s easy to just drop lot of text on a webpage, but its equally difficult to manage and present it well.

The first and most important rule is the Golden Rule : Everything should be at most 3 clicks away.
This helps users to find information quickly and not getting confused and lost in the webpage. This is violated in so many websites today that it is hard to keep track of.

Organization of Webpage : The content should not be cluttered on the landing web page making it hard for the reader to find information. By dumping everything on the landing page, one has made it hard for the person to locate it and he might as well leave the webpage. This is the best strategies followed by startups who look for validating their ideas by keeping minimal information on the landing page.
One should have soothing color scheme that least strain the users’ eyes and should always try to use Sans Serif fonts(eg. simple Helvetica and Arial) on website. Note that these are followed by Google!

Unless you are not building something really fancy, you should try to stick to the fact that the end user has minimal resource/capabilities in his browsers! Which means, the least use of multiple libraries! The lesser assumptions of remote browser supporting it. Think about someone in Siberia wants to see your webpage with a Netscape browser and a 256 MB RAM card! Your webpage should render itself well on it too(although it is an extreme case, but having a variant of it is quite plausible)!
There are lot of people who ignore this fact, but it will be nice to take care of it.

Digital media is an offshoot of print media – which was the primary means of communicating ideas for several centuries and there certain things it has inherited from it(everything before Web 2.0 atleast). For example the lines should not be longer than 70-80 characters so that mind can synchronize while reading it, easily. 720 X 1280 pixel was a very good resolution with least strain on your eyes (imo),but as the resolutions keep increasing with years, one should always try to design their website keeping it in mind.

As I suggested that there are plenty of server side scripting langugages – PHP, Ruby and Python(Perl is apparently outdated and I guess it has performance issues too because its usual server implementation forked a new process per request apart from it being an hacker language).
There are couple of environment which grappled over spending a day worth of time on. This is particularly Node.js and meteor and Bootrap (which is not exactly an environment but mostly like old Yahoo YUI). All of them use Javascript as server side scripting language (not intuitive to me when I first learned about).
Apparently, current developers find Javascript as an awesome language ( personally, I think is a horrible experience and must be avoided; For once it was created and released in 10 days for the first Netscape release back in 1995 with Windows ’95) as server and client side both can be written in same scripting languages avoiding them context switches.
Node.js was created in 2009 and the main motivation for writing it in Javascript is that these frameworks use event driven programming model (as it has been established that webserver’s processor takes most of its time waiting for IO than doing other tasks). Google’s V8 engine has been phenomenal for such kind of development and exposing the runtime on servers making them quite fast(with respect to other dynamically typed languages).

Meteor.js is another framework but it is a bit more advanced and still in development (as of May 2014), although it has different philosophy, which is more than just writing everything in Javascript. The framework wants the server and client to share different responsibilities unlike the old client-server model where the server is responsible for sending the HTML as well as data to client, instead the client is smart enough to figure it out!

Bootstrap is a product which new web developers can use to quickly build a new website, like drupal, joomla and such, but supposedly it offers more which might be obvious to give a better feel to the website.
Since Javascript has taken over the web-development landscape, I still feel it is not the best way to go about. Recenly, developers have ported real time games to browser using asm.js, which runs the ported C++ code on web browser making it even more powerful to play games with minimal delays. I don’t think if these developers understand how much overhead is a simple click in the browser going to cost the operating system (in terms of context switches and system calls) and if this makes sense. The only thing javascript solves in this big picture is portability, but is it any good ?,

There might be another detail you might be going into- which web-service to use! SOAP or REST ?Depending on what your website is about, you might want to use one or the other. If you are just building a simple website for blogging, or simple pages, you might want to use REST as it is pretty good in terms of modern view of Web. If you are building something complex (like amazon) and may be are stuck with Java based solution (which are quicker in response time, as they are compiled object files running than a dynamically typed Javascript), then SOAP might be a better option to work on. They both have strengths and one cannot simply say one is better than other, unless you define what are you trying to create.