BREAKING

mardi 24 septembre 2013

20 Years ef Web Development


Reuven waxes nostalgic and reflects on the first two decades  of Web development.  A few months ago, I was walking can't get my fix of e-mail, or blogs, or  with my seven-year-old son, and I newspapers or Hacker News, I feel cut  mentioned that when I was young, we off from the rest of the world.  had computers in the house. I pointed This is, according to my count, my  out that while I was growing up, we 20Ist At the Forge column. It is also,  didn't have an Internet connection, and somewhat coincidentally, a bit more  that the Web hadn't even been invented than 20 years since I started writing  yet. ”Really?" he asked, confused. “So Web applications. So, I'd like to take  what did you do with the computer?” the opportunity to look at where Web  The Web has permeated our lives technologies have come from and  to such a large degree, it's easy to where they're going-and to wax a bit  understand why my son is unable to nostalgic for the days when the Web  comprehend what it would mean to be was still the great unknown, something  in a world without it. The notion of a that we knew would one day be a part  computer without Internet access today of everyone's lives, but that we couldn't  is quite strange; I have given a number express beyond those basic thoughts.  of lectures in military and otherwise-  restricted areas where Internet access ln the Beginning  is strictly forbidden, and let me tell In the beginning, of course, the Web  you, there's something accurate about was static. It took a while for people to  the way in which Internet access is realize that just because a Web browser  described as an addictive drug. If I was requesting a document didn't        mean that the server actually needed far from universal in those early days.  to send the contents of a document. When we put MlT's student newspaper  lnstead, the server could lie to the on the Web in 1993, almost no one,  browser, creating a document on the even among our readership, knew  fly, by executing a program. This sort of what a Web browser was. We had to  thing, which Web developers do every take out advertisements in our own  day, remains one of the funniest parts newspaper, telling people how to instal  of the Web from my perspective-that the Mosaic browser, so they could read  browsers ask for the contents of a URL, the newspaper on-line. And of course,  as if they're asking for something static, the look and feel of the newspaper in  without any way of knowing whether those days was extremely primitive. A  the server is creating something new paper we submitted to the first-ever  for them or sending the same data World Wide Web conference described  everyone else received. how we had made it possible for peopl  Back in those early days, it wasn't to search through our newspaper's  entirely obvious just what technologies archives-an amazing breakthrough in  people were going to use to implement those days!  their Web applications. Those of you Although it quickly became clear tha*  who have seen, or used, programs in the Web was becoming dynamic, no  a "cgi-bin" directory might remember one really thought about it as serious  CGI, the API that standardized the software development. I remember  way Web servers could invoke external expressing surprise, in 1995, when I  programs. You might not remember was given a business card that said  that the cgi-bin directory was where the "Web application developer" on it.  compiled C programs would go. Yes, While the Web was becoming dynamic,  the demonstration CGI programs that no one thought of Web development  came with the NCSA HTTP server were as serious software work. l snickered a  written in C and shell. lt took a little bit to myself, because it seemed clear  while before people discovered that to me that applications were serious  higher-level languages-mostly Perl and desktop software-not the toys that wi  Tcl in those days-could do the job just were creating.  as easily, while allowing programmers But it was in that year, 1995, that I  to be far more productive. began to understand where the Web  And, although Tim Berners-Lee called was headed. lt was then that l learned  it the World Wide Web, usage was about relational databases and began  to understand just how powerful Web  applications could be when connected  to a powerful, flexible system for  storing and retrieving data. lt also was  in that year that the Java and JavaScript  languages were unveiled, tantalizing  Web developers with the idea that we  could have things happen inside the  browser beyond simple text and images  lt was then that we began to  imagine that the browser could be  the beginning of a new platform for  applications. Of course, when |\/larc  Andreessen, then best known as author  of l\/losaic and a cofounder of Netscape  said things like that, we all laughed,  wondering how the Web could  turn into a platform for application  development. But of course, that vision  has turned into a reality. Desktop  software hasn't disappeared entirely,  but increasingly large categories of  software are being pushed onto the  Web, accessed through our browsers.       

Libraries and Frameworks







lt didn't take long before Web  development really began to take off.  Suddenly, the big thing was to have “a  Web page" or even an entire site. The  growth of the Web happened at about  the same time that the term "open  source” was coined, giving publicity and  ammunition to the techies who wanted  to rely on software such as Linux and        Perl to run their systems. (lt took a long  time before some of my clients Were  convinced that running a Web server on  Linux was a safe choice, or that it could  handle the dozens of users who Would  visit their site in a given day.)  I don't think that it's a coincidence  that open source and the Web grew  together. Open-source operating systems  and languages-in those days, Perl,  Python and PHP-grew in popularity,  both because they Were free of charge  and because they offered enormous  numbers of standardized, debugged and  highly useful libraries. CG|.pm became  an enormously popular Perl module,  because it made so much of Web  development easy.  On the database side, things also  Were starting to improve: l\/lySQL,  which had been free of charge (but  commercially licensed), was released  under the GPL, and it was soon  ubiquitous on the Web servers that  you could license by the month or year.  PostgreSQL also emerged on the scene  and overcame the 8 kilobyte-per-row  limit that had hobbled it for so long.  Suddenly, you could get a full-fledged  relational database sitting behind your  application, using libraries that were  fast, efficient and full of features.  Web technologies themselves  were becoming more sophisticated  as well. The standards for HTTP,        CSS and HTI\/IL were formalized and  then grew to handle such things as  caching. The W3C, formed to create  and encourage standards for Web-  related technologies, produced XML,  a document format that remains  pervasive in the computer world.  lt was, on the one hand, easier to  create sophisticated Web applications  than ever before. But on the other  hand, it was no longer possible to learn  everything you needed to know about  Web development in a few days or  weeks. lt was becoming a specialized  set of skills, with people specializing  in particular subsets. No longer did  "Webmaster" refer to someone who  knew everything about all parts of Web  technologies. You didn't yet hear about  "front-end" or even "full-stack" Web  developers. But you did have people  who were specializing in particular  languages, servers, databases and even  whereas a framework is something to  which you add your code. Given the  number of things a Web developer  increasingly was having to worry  about-user sessions, database  connections, cookie persistence and  caching-it shouldn't come as a  surprise that the frameworks started to  become increasingly serious, complex  and sophisticated. l\/lany (but not all)  of these frameworks were released  as open-source software, allowing  developers to create complete,  stem-to-stern Web applications using  software that was inexpensive, robust  and scalable, as well as written by the  same people who used it.  Even Java got into the act. Although it  took years for Java to be released under  an open-source license, server-side Java  has been around for some time and has  gone through many incarnations. From  the initial rollouts of servlets and JSP  (to some degree) in Web design, helping pages, to Java beans and Enterprise  ensure that sites were both aesthetically Java Beans, to the dozens of standards  pleasing and user-friendly.  All of this meant that Web  development was becoming serious,  and the individual libraries, such as  and open-source projects that have  grown up in the Java world, the  language that was originally designed  to run applets in our browsers suddenly  CGl.pm, were no longer enough. Web was a powerhouse to contend with.  developers started to use frameworks  instead of libraries. l once heard  someone distinguish libraries from  frameworks by saying that a library  is something you add to your code,  And yet, Java, which was introduced  as a simpler files, protocols and Java-centric words  and libraries. Out of this frustration (to  some degree, at least) came the first of  a new generation of Web frameworks,  Ruby on Rails (written in Ruby) and  Django (written in Python). Both Rails  and Django promised developers  something that hadn't yet existed,  namely the ability to write sophisticated  Web applications, but without the  enormous overhead and bloat that  Java-based systems required. Not  surprisingly, both were instant hits, and  they managed to hook a new generation  of Web developers, as well as pull many  (myself included) away from other, older,  less-sophisticated frameworks that we  had been using until then.  Now I do most of my work in Ruby on  Rails, and I continue to enjoy working  with this framework every day. But even  the biggest enthusiasts among us need  to remember that Rails is nearly ten  years old at this point. lt hasn't reached  the level of bloat and bureaucracy that  we see in the Java world, but at the  same time, we see that many other  language communities have produced  their own versions of Rails, using many  of the ideas that were pioneered there.  l\/loreover, as Rails has matured, it has  needed to consider legacy software and  offer developers ways to integrate Rails  apps into an existing infrastructure.  As a result, we've seen that the small,        scrappy framework is now getting larger,  a bit more bloated and certainly harder  to learn than was the case When I first  learned about it back in 2005.     
Components, APIs and Browsers
  Where does that leave us today? First,  the news is all good, in that there  never has been a better time to be a  Web developer. The opportunities to  learn, explore, extend, implement and  use Web-based technologies already  are overwhelming and seemingly  limitless, and every day appears to  bring new frameworks, libraries and  techniques that make Web applications  even more interactive and compelling  than already was the case.  And yet, for all of the opportunities,  Web development never has been more  difficult to get into, simply because  of the many technologies you need  to master in order to create a Web  application. Web development, as  Philip Greenspun said so many years  ago, requires that you be a generalist,  understanding a little about a large  number of different technologies.  A modern Web developer needs to  understand HTTP, HTML and CSS, at  least one server-side language, SQL  and JavaScript. lt also helps a lot to  know how to work with Linux or other  server operating systems.  The reality also is that even the most experienced Web developers upcoming installment of this column).  are starting to specialize. True, I True, some languages are more popule  think of myself as what's increasingly than others, but you can find work  called a "full-stack Web developer", in just about any language you want  understanding everything from server today, trying it out and learning how  configuration to database optimization that language's paradigms fit into the  to JavaScript programming, but the tapestry of languages and frameworks  march toward specialization continues, Perhaps the most important languaç  and |'ve seen that a growing number of today is JavaScript. JavaScript, which  jobs are aimed at people with expertise never has been one of my favorite  on the back end or the front end, languages, now is required knowledge  without much overlap between the for anyone who works on the Web.  two. Configuration and deployment lt sits inside every browser and  also are becoming their own specialties, increasingly is used for server-side  as we've seen with the rise of devops programs as well. JavaScript's ubiquity,  during the last few years. and the fact that it is necessary for  That said, if you're willing to high~powered Web applications that li  learn new technologies and improve inside of the browser, means that sucr  yourself constantly, there are limitless organizations as Google and l\/lozilla  opportunities to do amazing things on are spending enormous amounts of  the Web today. time, money and effort trying to get  Let's start with languages. lt's JavaScript to execute as efficiently as  clear that a huge proportion of Web possible. The sophistication of browsei  development is being done with based programs never ceases to amazr  dynamic languages. Ruby, Python and me, and that's all due to JavaScript.  PHP continue to dominate (outside of There's also a growing trend of  large corporations, at least). But we languages that compile into JavaScript  also see a large number of open-source such as CoffeeScript and ClojureScript  languages based on the JVM, such allowing us to write in one language  as Clojure and Scala, each of which but execute something else (that is,  have their own Web development JavaScript) in the browser. And then  paradigms and frameworks. The rise of there are the JavaScript frameworks,  Go, a compiled, open-source language including Backbonejs and Angular.js,  from Google, also is intriguing (and which are making it possible to create  is something I hope to cover in an browser-based applications that not        only do amazing things, but which level of abstraction, use Heroku, which  also are structured like the serious costs more but reduces your IT staff to  applications that they are. I've often said nearly zero. The same is true for login  that today, developing software isn't systems, e-commerce transactions  that difficult, but maintaining software and even commenting systems, each  is, and thus, server-side Web developers of which now can be outsourced,  eventually realized they needed to rely via an API and a few minutes of  on libraries and frameworks in order work, and then plugged in to your  not to lose their minds. Web application. The use of APIs is  As the browser part of applications particularly relevant today, when we  become more sophisticated, we see have so many people accessing the Web  that server-side Web applications not via traditional browsers, but rather  increasingly are becoming API servers, via mobile devices and platform-specific  offering outsiders a chance to retrieve apps. That app you installed might not  and modify data stored in a database look like it's contacting a Web site, but  of some sort. True, there always it's undoubtedly making a JSQN API call  will be a need for server-side Web over HTTP in the background.  development, but it seems to me that In other words, we're finally seeing  as people learn to create better and the start of Tim Berners-Lee's original  better experiences within the browser, vision, in which people all over  we're going to see the server as a the world are both retrieving and  remote storage mechanism, offering contributing information, no matter  one of the many APIs that our browser where they happen to be. I'm writing  contacts in order to bring up a fancy- this from Chicago, where I'm spending  looking application for our users. the summer, but thanks to modern Web  Indeed, we see a trend of breaking technologies, I'm able to see my family  Web applications into many little parts, in Israel (including play Chess with my  each of which specializes in a different aforementioned son), order books and  thing. You want to have real-time other merchandise to my apartment,  updates? Use Pusher or PubNub. You read the news, check the weather, pay  want to have nice-looking fonts? Use for airline and movie tickets and listen  Google. You need more servers? Fire up to music. And no, none of this should  some additional machines from Amazon come as a surprise to anyone reading  or Rackspace. Or, if you want to think this magazine, or even anyone who has  about your servers from an even higher been using the Web at any time in the  last decade. But that's just the point.  If we can step back a bit from the  technologies we're using, we can see  how much easier our lives have been as  a result of the Web.  Web development was exciting when  I started to do it 20 years ago, and  the amazing thing is that it remains  just as exciting today. If you've always  wanted to be a Web developer, choose  a language, learn how to use it to write  Web applications and then see what  you can do. I never cease to be amazed  by the magic of programming, and the  Web makes it possible to spread that  magic to the entire world. Here's to  the next 20 years of advances in Web.

Aucun commentaire:

Enregistrer un commentaire

 
Copyright © 2013 Key Pirate
Distributed By Free Blogger Templates | Design by FBTemplates | emThemes
    Twitter Facebook Google Plus Vimeo Videosmall Flickr YouTube