3 posts tagged “internet”
From my way of looking at it, there are 3 major "languages" in play on the client-side of websites. The server-side can have about 400trillion variants, but the client side is much more limited. We gots HTML, CSS, and Javascript. Those 3 technologies combined make up all the webpage content on every page on the web (minus proprietary plugins that are themselves just scaffolded in html, such as flash/virtools/flex etc...and maybe some old vbscript lying around (shudder)).
I'm gonna cruise right past 2 of them, because in my opinion they are adequate. HTML and CSS. HTML has been relegated to a fairly simple scaffolding role, and CSS is sweet (if browsers would fuckin implement properly).
That leaves one ugly duckling: Javascript. I'm sure the committee that first made EcmaScript never dreamed it would transform into such a poorly-named, disparate and ugly mess.
Javascript needs a successor, or an overhaul, or to be taken out back and shot (works for me). Javascript fills in what i'd call the "logic" part of the client-side controller/view layer. (the controller layer i think is split across the net now...some on server, some on client...i'll write about that later).
Of the logic your browser is performing, there's 3 (the little 3) aspects that I think are fundamental. There's the language itself (Javascript), the method to communicate with the server, (AJAX), and the interface to control the CSS/HTML on the page on the fly (DOM). The point of all 3 are really to make things happen in the browser without having to travel across the web and fetch a whole new page from the server.
We need a new 3. Javascript/AJAX/DOM won't do. We need options. These 3 all suck. They are not filling their role nearly as elegantly and CSS/HTML.
There's lots of ugly crap in browsers. And all that ugly inconsistent crap certainly slows down developers and makes life hard, but it's not insurmountable.
The one truly insurmountable and heavily limiting fact of browsers revolves around security (or implicitly, trust). When I want to get you (as the "client" computer), to interpret my code and display my "program", you are extremely persnickety in what you'll let me do. You might trust me COMPLETELY, I might be your brother, but your browser is still going to distrust my code...the best you can do is maybe let it enable pop-ups. ;o)
Basically, code can't read from, or write to your operating system. It can eat up 100% of your cpu, but touching the FS is a no-no (except for the very limited environment for cookies (or flash's "shared-objects", which i bet are treated as cookies under the hood). Also, code can't run unless it's javascript, and code can't execute other apps already on your computer.
These are the fundamentals limitations that come from a lack of trust. Why not enable the user to say, "look, i'm not an idiot, i KNOW this site isn't going to screw me over, so let's trust it completely"...we basically say that same thing all the time when we download shareware applications and try them out...we are completely trusting the developer not to trash our system...
This would really open up the door to Rich Internet Applications. There'd be so many new options I hardly know where to begin...(beer time, maybe more later).
So I was working today on some CSS, which always gets me burning with hatred towards Internet Explorer. I was thinking about how they always come up with crazy estimates concerning how much something will cost the american economy. Like when Halo 2 came out it cost us several hundred million dollars because of people calling in sick to play the game. I think they also came up with an estimated cost in the trillions from 9/11.
How much money do you think is freakin lost every year because of internet explorer? I'd say the styling of every page we ever do takes ~20% longer (on average), if not way more, thanks to IE. I'm sure IE costs my smallish company of 800 employees several million dollars a year in labor wages alone. Looking at just the issue of development, I'd wager IE costs our economy on the order of several billion dollars a year.
But I think the damage of IE runs much deeper than development inefficiency. I am going to argue that IE is the singular most damaging commercial product of the 21st century in terms of money and standards of living. For that matter I have a hard time thinking of many other products that I would unequivocally argue are completely bad for the entire world. Ok, cigarettes. Many others spring to mind as possible candidates, but not like IE.
My point basically goes like this: IE has severely held back the advancement of web technology, and the Web is a powerfully transformational force, for rich and poor countries alike.
Let me first address point one of my previous sentence: IE has severely held back the advancement of web technology. Anybody in web development knows there's no way you can make a website that doesn't display correctly in IE. As much as (most of us?) we all hate it, we have to make our sites display correctly in IE. It rules the day. If Firefox rendered html entirely differently, and we had to essentially develop our websites twice in order to support both browsers, a lot of websites would simply drop Firefox.
So basically, Firefox has to emulate (more or less) the rendering style of IE. We may have fancy W3C web standards, but in all practicality IE *is* the web standard. If it weren't for this reality, I propose the web would have innovated in virtually unimaginable ways. Web standards could've really moved forward with new concepts.
For example, why must javascript be our client side interpreted language? How about ruby? I see no reason why not. How about supporting several languages? How about a DOM structure that works and makes fucking sense? How about long-ago standardizing css 3.0, and probably moving far beyond that?
Certainly IE is not the only reason web standards have lagged, but it is a major one.
I think Adobe and the former Macromedia (RIP) have actually benefited greatly from the existence of IE. Applications like Flash (and the new and hip Flex) manage to fill in the gaps where standard web-browser rendering has failed. The web could've solved these issues long ago, if there were opportunity for standards to move forward. The thick client, which is only belatedly coming into existence, could be much farther along.
I'm writing this in Vox, using Firefox. And I know the code and the development to make all this fanciness happen is a desperate tortuous nightmare. I wouldn't wish this javascript/css work on anybody. It is horrible. Applications like pipes.yahoo.com (!)...I can't even imagine. I can't even compose this blog entry in Safari, because Vox hasn't yet managed to support it. Really there's 3+ different rendering engines out there, though Safari/Firefox/et. al. are fairly similar.
Nobody likes developing this crap. They do it because the potential end result is so powerful. You can make an app that will reach people so so easily if it's on the web. The web is the portal to popularity for an aspiring developer. As the power and potential of the client-side development environment deepens, web browsing is turning into a miniature standardized operating system that is distributed across the world. The cross platform and international distributability of a web application is completely unmatched by any desktop application.
This transitions me to the second point, the incredible opportunities and horizons the web opens up for people everywhere. The web is a way to get "linked in" to the globalized economy. Smart poor people across the globe are successfully pulling themselves out of poverty, (often actually moving to places like the US), by mastering technological tools and communicating online.
In this simple "The World is Flat" (great book) style, the web is super useful to people in developing countries. But the web offers much more. Real time communication is deceptively powerful...