Flash, HTML5, browsers and why it all Rocks! Oh yeah: Google

Posted on January 6, 2010

2


The future of things

The “the web is the application” stuff with which parties like Google scare the shit out of almost all other traditional software developers is still cripple shit. Like cutting meat with knives you made by chipping flints from rocks, while your neighbors next door have the latest shit regarding high tech diamond edged never get dull type of cutting tools.

From this perspective it is not surprising Google is developing their own browser and their own plugin for Internet Explorer. When the web becomes your playground, you want to use EVERYTHING your machine has to offer you WITH web standards as the basis.

Check this blogpost first, read the text and run the video. It shows 3D running in a browser without plugins.

Why is the web so great for application development? Two reasons:

  • DISTRIBUTION and PORTABILITY

Let’s start with a flashback.

1998.

I was working at Wieden & Kennedy Amsterdam in the then 3 people IT department. To build the new system for project management and timesheets / time administration in an organization counting 60 people I had two options with the infrastructure then:

  1. Write a desktop application connecting to a central database, distributed by LAN and floppy disk, in a mixed environment with Mac’s and PC’s
  2. Write a webbased application using the browser, connecting to a central database

I chose the second for this one reason: distribution and portability. No running around with a floppy disk and installing the crap out of myself on all machines. Not to mention that over 40% of all computers could not run Windows software anyway.

DISTRIBUTION and PORTABILITY is why it rocks

Simply have the user open the browser, connect to the intranet and there it is. Updates are implemented at the client side is done by a refresh of the page. Release cycles for new developments can be reduced to hours if required. No heavy downloads required. Only that stuff you need. On demand. Good old Client-Server Shit. Made shiny and pretty.

It is possible due to the open setup of HTML. Here is what HTML as a front end technology delivers:

  1. Direct updates of functionalities. No downloads and re-installs required. Fast, easy and simple.
  2. No (big) recompiles required to release your updates. (Unless you made a mess out of it, plunking everything in one huge binary)
  3. Easy unison of distributed applications in one single screen. You do not need Web2.0 to merge the Client Releationship Manager application running on server “A” with the Timesheet Application running on server “B”. A good old frameset and consistant design on all applications can already do the trick of making it act in the same way as a desktop application.
  4. Extensive visual design options. Now try and do the same thing with Java, C# or any “serious” programming language. THEY SUCK at that. HTML has evolved into a language that allows you to create gorgeous designs fast and simple, using wonderful hacks and fixes invented along the way to simplify styling (CSS) and do all kinds of interactive stuff that was never foreseen when HTML started (JavaScript and DOM).
  5. Distributed storage. Where your data is stored can be anywhere on this world. The danger is that you can lose it. The advantage is that it is available from anywhere where there is a internet connection.
  6. Portability. This is basically the sum of the above. Go anywhere. Start any browser on any computer. (Go online.) Type in a hyperlink. Start working. Need more processing power? Log out. Move to a more powerful machine.

Google – and what I think the future is they are aiming at

HTML as it is used and rendered now, is retarded, outdated and crap. It does not live up to the needs people have displayed online and offline. This lack is the main reason Flash is still a very competitive platform regardless of it’s many flaws.

Now imagine HTML what it can and could have been:

  1. JavaScript running almost as fast as native code.
  2. Solid rendering of HTML and CSS, so that “What You Design Is What You Get” pixel perfect and effects can be added to all objects, see also point 4.
  3. Single Page Navigation in a logical way — Now why is this important? Because Page reloads are crap. They are a crappy concept. They break the visual story telling. They break the user experience. Imagine your web page only updates and reloads those parts that require updating. Now image building entire websites and webapplications with that. Sounds weird? Sounds like a familiar concept? Yeah: Flash and all the desktop-applications on your computer.
  4. Using the GPU directly from HTML. This unleashes a completely new world for HTML. To mention some:
    1. Graphic filters like blur, dropshadow, blending, glow and transparancy native in your CSS for anything in your page: images, text and DIVs
    2. Rendering content on 3D objects
    3. Rendering 3D objects and 3D worlds (we tried in the late 90’s already with VRML but it sucked due to it’s crappy performance and lack of support from the community)
  5. Stylable GUI elements. Right now you are stuck to what your browser makes out of a text-input field, dropdown boxes and the lot. And in general they are UGLY.
  6. More advanced GUI elements. Now take the next items and imagine what you can build with it:
    1. An advanced, native, rich text editor which delivers HTML with styling and support for vector drawings.
    2. Smart grids using standard GUI elements for user input in lists
    3. Mulitiple level hierarchic menu’s like you know from Windows and the Mac
  7. Direct access to your camera. Flash already shows what you can do with that: AR, reading QR-codes, detecing motion and simple gestures, recording video to a server, doing video conferences.
  8. Direct access to your microphone. Again: Flash.
  9. Streaming video and streaming audio – native instead of via plugins
  10. Peer to peer communication for data-transmission
  11. Distributed events. Imagine having an application running over multiple computers, with multiple users working together on one single project. This can be anything from co-writing a document to co-creating 3D stuff or whatever you can make up. Google Wave is a first attempt.

The browser BECOMES your OS

With an environment like this running in your browser, you do not need any installed desktop application on your computer EXCEPT for the browser.

With an environment like this, it becomes very easy to develop online applications that blow you away, created in the way we are used to build sites and applications for the web: fast releases, clear purpose, easy to access (no installations required, no clogging up your computer with crap you use maybe ever so often.

The computer can literally be nothing more than a browser and some hardware. The browser BECOMES the OS.

Think again about: “Google”, “mobile phones” and “Chrome OS”. Looking at the long tail of HTML and all browser based “standards” the OS becomes more and more obsolete since you can do almost anything in the browser.

Ambitions and waiting for others to catch up with you

When you want to develop for the web, when you have the money and people to throw at it, like Google does and when it is your core business, you do not want to wait on others to catch up with your ambitions. When it is in your reach, you will develop your own technology. Fuck the rest.

Google certainly has the visibility, resources and reach to pull a stunt like this and change the whole fucking landscape of anything that is the Web. And what they do makes totally sense from this perspective. Build that kick-ass browser that uses everything to it’s optimum. Build that one browser based OS that cuts away all the useless clutter our current OSses suffer from. Build those fucking faster phones with more options for the web so that WiFi will be all you need soon, the suck ass and expensive GSM can be disabandoned in 5 years and as a bonues you can leave your fucking laptop home because your phone has enough processing power to have become your personal computer.

The one missing thing: “Google Wireless”

Reflecting on this, I think it might be a logical next step voor Google to start a project similar to Fon to stimulate the distribution of wireless routers. As a hack of these routers make them into nodes of a self-sufficient network, you can use that network for phone calls over the internet, power goes to the people and you do not want to be dependent of existing providers for these kind of things, these routers might form their own wireless networks via meshups.

Adobe and Flash

Now let’s not forget Adobe here. They bought Macromedia not without reason, being the one company that dominates the world of anything that is to do with graphics, whether it is paper, movie-editing, publishing electronic content (PDF) or the web.

I have no clue where the RIA strategy of Macromedia played a role, but Flash certainly is doing their share in fulfilling their vision on this possible future. Flash could be the one dominating technology to create any web based application (including word processors, spread sheet applications, complex data driven applications) if they did not deliver such crappy components.

The biggest critiques regarding performance and memory usage I gave in my previous post are one of the things that made and makes Macromedia/Adobe killing their own future until now. It is not enough to have some sales-dudes running around with the promises of web based RIA and better integrations of anything via Adobe Catalyst when your software is slow and your components sucks.

This is where Adobe could have already been for at least the past 4 years:

  1. Direct GPU 2D rendering, allowing you to do heavy duty eye candy moving, rotating and scaling things around
  2. Direct GPU 3D rendering, opening up your market to big scale game developers like the ones producing games for the desktops
  3. Fast code execution, allowing your programmers to implement intense shit like face recognition, real time spelling checking, gesture recognition, AR
  4. Efficient and tight memory management, allowing countless complex Flash applications running next to each other without bothering each other or you.
  5. Solid and easy skinnable GUI components, allowing you to build any application you like using the capacities of the users machine to the max
  6. Peer to peer communication, for file transport and audiovisual communication, making applications like Skype seem like obsolete concepts
  7. Offering a clear strategy for SEO, using HTML or XML as content for spiders instead of “solving” the problem like they done now

Right now, Flash could have been the number one leading development environment for any type web based applications, from text editors with printing capacities to drawing and graphical design, making HTML for websites and web applications an obsolete item from the past. Fast, simple to use, simple to build.

It is not, because until now it still sucks.

Flash 10.1 [update: Jan 7, 10:18]

Flash 10.1 might be introducing a major leap forward regarding all above, so at least the long wait for all this seems to be ending. In the past the team for Flash mobile was separated from the team that did Flash for the desktop. Now they work together.

Mobile, much more than desktop, demands efficient use of resources. Where Flash got away with it on the desktop, they do not on the mobile phone.

Check this video from Adobe

Improvements (see video) have been made on memory management / use and GPU rendering. See 0:33 – optimization of memory use. See 1:06 – video rendering via hardware and 1:45 – vector rendering via hardware. 2:54 “So on mobile we have a full GPU hardware renderer, which we don’t on the desktop [yet].”

I love the web

I love the web and anything around it. All the cripple shit I work with can frustrate me from time to time, but still do not make me move to the old school way of working (desktop applications, Installers, DLL’s and all that shit). I will rant from time to time and will wait until stuff get’s up to date in the world of Adobe, Mozilla, Microsoft and Chrome.

There is at least 10 years to catch up with to meet the possibilities of current standards, but when we get there, we are in for a totally new ride.

Advertisements
Posted in: Uncategorized