Showing posts with label Web Browser. Show all posts
Showing posts with label Web Browser. Show all posts

Friday, May 25, 2012

Why Every Developer Needs to Learn Web Programming and What it Takes

Be a web programmer in less than four hours, yes that is my claim and I am assertive on that. learning web programming isn't rocket science, but people often get lost on their way as they start learning web programming since they are deluged with many technologies targeting the web platform.


OK, don't be deceived, this article isn't a tutorial on how to do web programming, because there is already opulent self explanatory resources on web, and adding any single line further will be redundant.

So, What is this article about ?
This article is basically intended to give an heads up to developers starting with web programming by delineating a systematic approach to learn basic web programming and explaining them why is it inevitable to learn web programming.
First part of the article speaks about the growing significance of web technologies which is leaving every programmer no choice but to learn web programming. And the second part unravels a step by step approach towards learning web programming and few links to free web resources available, making learning quick and easy.

Why every developer needs to learn web programming ?
Couple of reason, but to quote a few prominent ones.
  • Windows 8 and an increasing popularity of metro style applications.
  • Introduction of chrome OS and the popularity of chrome app store.
  • Re-engineered and elegant HTML5 UI
  • Bestowing browser with complex capabilities of native Multimedia playback, Canvas drawing, Geo positioning etc.
You like it or not, web technologies would be the most  hot and happening technologies of the future and it is coming in a big way. Developers working on OS components and other crucial system modules always had a misconception that web programming, which is basically mistaken as scripting is not for geeks like us. But in reality these misconceptions have become defunct.

To shed light on the facts mentioned above, significant number of metro apps will be coded in javascript by developers across the world, since it is quick and not a onerous task unlike other technologies like C++ and C#. Though the metro apps can be built using well known VB, C#, C++ no one would really acclaim this until there is something which can't be achieved by javascript. To quote an example metro style gaming apps using DirectX must be coded in C++ and there is no alternative for it.
With the release of Chrome OS which is complemented by chrome web store, and increasing number of web apps are built everyday. and if a developer is not there already, it leaves with very less opportunities to catch up with expedited technological growth.

With HTML5, the UI is revamped making web look more elegant and less cluttered. Browsers supporting HTML5 are fettered under the rules of W3C HTML working group to support native Video playback, Canvas drawing, Geo positioning and many other signification features. Once HTML5 and in turn Web Runtime can support these features it encourages significant number of app development with HTML5 UI and back end being built using other languages like C++, C#, VB.
Considering all the facts mentioned above, it makes it inevitable for every developer to learn and start programming for the web to be in concomitant with technological advancements.

Let's move on to the second part, 

What it take to be a web programmer ?
As mentioned earlier web programming is lucid, and not a painstaking task like other technologies. All which is needed is a proper guidance for a developer about what to start with and how to take it forward. This is very crucial since, when we speak about web technologies developers are deluged with hundreds of languages, frameworks, third party components  etc. Just to name a few we have HTML, XSLT, XML, XHTML, DHTML,CSS, JavaScript, PHP, DOM, Jason, JQuery, AJAX, ASP .. The list just goes on leaving developer confused about where to start with.

Below is my own experience when I started learning programming for web. Even I followed the well accepted approach of starting  with HTML, JavaScript, CSS before moving on to advanced topics, believe me it had its returns. Building a web page is basically an amalgamation of three technologies which results in an elegant web page. and they are,

HTML - Defines the basic structure of a web page.
HTML is an acronym for HyperText Markup Language. and it is basically a "Markup" language rather a programming language. A markup language, is collection of stylistic instructions, issuing the target rendering engine three basic instructions on,
  • What needs to be painted, 
  • Where it needs to be painted and 
  • How. it needs to be printed.
HTML is built on DOM architecture, where each HTML element is nothing but a DOM node. instructing web browser about the content to be rendered and its attributes.
CSS - Makes web pages look elegant with less work
By now you have a basic structure of web page which can convey the intended information, but let's present it in an eye catching way, use CSS, an acronym for Cascading Style Sheets.
CSS constitutes styling information to be used for different elements, and the reason it reduces significant amount of work is, once a CSS style is defined for an element it is applicable to all the occurrences of that elements hence avoiding specifying the styling information redundantly.
JavaScript - Makes web pages come alive by adding interactivity
Few people have a misconception that JavaScript is a variant of JAVA programming language, but the truth is far from reality. JavaScript and Java programming language share no resemblances and neither of them is derived from the other.
JavaScript adds intelligence to webpages so that, pages can talk back to the user. Rich web applications can be easily built using JavaScripts. Introspecting JavaScript it can be found that JS is in turn made up of two technologies, and they are,
  • ECMAScript - which defines the core language constructs, and
  • DOM elements - on which script acts on
And there needs an interface between these two technologies to work in synchronization and this is provided by WebIDL specifications. WebIDL is an interface definition language which prominently defines  javascript constructs for web runtime.

I hope this article, could elicit the intensity of need to start with web programming, and how to take it up further. for more resources kindly refer,
Happy Coding...

Sunday, December 25, 2011

Modern Web Browsers - Things you must know - Part 1

Before you start reading this article click here, and there you go, you found information about your browser's current version and its capabilities. Now run a Google search to find out the most recent version of  your browser which is available and you can evaluate where you stand. if you are happened to be using an outdated version of your browser, it is time to update your browser. Premise is simple you must always be using an updated version of the browser to support web in all its glory and for secured online transactions shielded from hacking community.

The whole article is divided into two parts, The current article which is Part - 1 is written from an end user perspective, which explains few must to know about modern web browsers, introduces users to web applications, browser plugins and extensions, and addresses concerns over security of online transactions.

The Part - 2 of this article will be developer centric, which briefs on below topis.
  • HTML5 and web-video
  • Parsing of a web page
  • Rendering 3D contents
  • Hardware accelerated browser rendering
  • OpenVG and OpenGL

Let's begin with Part -1
Nothing  seems to be possible, working on a computer isolated from web infrastructure. Browser, the gateway to outside world is growing aggressively to a point that, it won't be a surprise if one day browser can replace the whole operating system itself.

And this aggressive development makes everyone who uses web browsers to access world wide web to must know about few basic facts listed below.
  • What goes behind the scene when an URL is entered.
  • What makes web pages highly interactive and enables rich UI
  • What is cloud  storage and cloud computing.
  • What are web applications.
  • What are browser plugins and extensions.
  • What are browser cookies.
  • User privacy and security.
So now take up these topics one by one and try to understand from an end user perspective.

What goes behind the scene when an URL is entered.
URL is human understandable format of a machine address, and these addresses are normally referred to as IP address. As an analogy consider a phone number saved on your device, then

Contact Name =  URL of the web server / Web site.
Contact Number = Address of the web server / Web site.

When an URL is entered, browser contacts DNS server which is same as a telephone directory to convert this human understandable address or URL to machine understandable address or IP . DNS server returns browser with the IP address of the server. Once the browser receives IP address of the server it fetches the HTML page on to local machine and renders it on to screen.

What makes web pages highly interactive and enables rich UI
During the early days of web technologies, web pages were written in basic HTML language to support only text and images but as the web community grew,  new web technologies were introduced and existing technologies were enhanced to bring in rich user interface and highly interactive user experience.
This was made possible with the introduction of Java Scripts, XMLHttpRequests, CSS (Cascading Style Sheets) , AJAX and lots of browser plugins. I'll be taking up these topics in depth in part -2 of this article.

What is cloud  storage and cloud computing
Every internet user must have used an E-mail application, would have backed up some files on a server, might have played online games, would have filled applications online. All these services are the results of cloud computing,

In short, cloud computing enables an internet user to use combined capabilities of thousands of servers without the knowledge of end user about where the data is being backed up, which server is doing computations, which server is maintaining all the history of browsing habits of a user and many more.

With cloud computing, it really doesn't require an end user's computer to have a good hardware configuration, but it should be capable enough to run browser at its maximum efficiency to leverage all its functionalities. Cloud computing made it possible to run complex applications smoothly on hand held devices with low processing capabilities.

What are web applications
Internet users who are using Google Chrome must be well aware of web applications however, users who are using other web browsers than chrome would be using web applications in the form of plugins but these are different nomenclatures of the same entity.

Web applications are simple applications running within the browser, and mostly built to perform a single specific task. for e.g a simple notes application which enables user to take some quick notes,  a sports app which is made to display live cricket scores. an online photo editor, a gaming app, a new mail notifier. and many more. All these applications comes very handy and mostly would be using the power of cloud computing.

What are browser plugins and extensions
Browser plugins and extensions are the add-ons which empowers the browser to do many more things beyond browser's basic capabilities.
To quote some, add-ons like Flash Plugin enables video playback on webpages, Adobe reader plugin helps browser to render pdf  files within web browsers, a currency converter, language translator etc. All these plugins give superpower to browsers to render various contents and helps cater to various requirements of an end user.

What are browser cookies
Browser cookies are some piece of information which websites wants to remember about you. So each time when you visit a web site, the site secretly sends information about your browsing interests to your web browser in the form of  cookies which is locally stored. So next time when you visit the same site, you will see articles, photos, videos presented are inline with your interests.

For e g, Amazon may always display electronic gadgets on home screen since most of the time you browse for electronic gadgets. YouTube may present you with technical videos since you always browse about new technologies.
This is how websites are able to serve thousands of users  with different interests and from varied backgrounds with the preferred  contents.

User privacy and security
Most of us think twice before going ahead with online transactions, all of us have a common question, " Is online transactions are safe " and my answer is " Yes it is " but only with a little risk. The system is not 100% shielded from hacking community.

But users need not panic on this, because the existing systems which handle online transactions are strong enough to challenge capabilities of hackers and even if hacked, the validity of hacked data might have been expired and which would be of no use to the hacker.

Users doing online transactions must be aware that all the transactions must happen through a secured connection, hence it is must to notice the type of the protocol used is " HTTPS ".
Also, users must not be misled by phishing sites, which look exactly like a genuine site from a bank or any other financial organization. The solution to this problem is to check for certificates or browser does this on your behalf. It can be noticed that when URL of a reputed bank is loaded the background of address-bar changes to green color indicating that this is a genuine site owned by the bank.

That's all for this current part - 1 of the article. I hope this was helpful in understanding the basics about modern web browsers. part -2 of the article would be more on internals of modern web browsers.


ShareThis