I do not follow every announcement from Microsoft, Sun or even Google anymore. After riding this crazy technology train ever since I graduated in 99, I forced myself to slow down and re-evaluate everything I have ever picked up. Turns out it wasn't that much. More than half of what came around had gotten obsolete or irrelevant or proven to be dead wrong.
On the other hand, I see the same old (sometimes scary-old) and good ideas coming back into fashion over and over again being re-packaged into newer and trendier buzzwords.
Did you notice how web programmers pissed all over themselves when they happily discovered MVC? Do you have any idea how old the concept is? Didn’t you find it ironic how JavaScript suddenly became trendy, and not just for the Web, and how its zealots love to name-drop first-class functions and closures it borrowed from 2nd oldest computer programming language in the world?
This is why I started moving back in time about 2 years ago, my latest books are all about “good old stuff”. I met the beauty of Smalltalk and liberating flexibility of Lisp. Bam-m-m! And Boost with its binding facility did not look so sexy anymore… These languages, or should I say cultures, did not land me any gigs and I haven’t done any projects with them, but they helped me to notice and pick up Python and Ruby, discover bash and vim, and enjoy the freshness and simplicity of a plain ASCII text file, free of XML garbage.Old tech can feel very refreshing after years of Win32, GDI, COM, XML/XSLT/XPath and .NET. Most of that is nearly useless now and the stuff hasn’t even been around that long... I guess I got lucky for not ever touching Java after college - that would be another pile of wasted neurons in my head.
Some "New" Tech is Scary.
In fact (or maybe it comes with age) I started to dislike "new technologies". They are scary, like Flash/Flex/Air from Adobe. I see a great danger of "web runtime" being controlled by a single company, even if they are playing nice and flirting with open source community. If not stopped, Adobe will soon become "Microsoft of the Web" and they will be in control of "Web OS", turning browsers into dumb and irrelevant hosts for Flash Runtime. That is precisely why I want AIR to fail and I hope that more web applications will stick to standards-based HTML/CSS/JavaScript as opposed to moving to Adobe world.
It is sad that Miguel de Icaza, who I have great respect for, is not seeing this when he enthusiastically speaks out on Silverlight issue.
Adobe already controls video on the Internet (YouTube, Google Video) and soon, by looking at the trend established by startups like Anywhere.fm, Songza and Scribd, Adobe will have the sound and “universal document” formats under their API umbrella. Do not overestimate the power that comes with a monopoly on APIs.People go nuts these days if they discover a useful web application that's got "Designed for Internet Explorer" stamp on it, but nobody has ever complained about "Designed for Flash" sites that often have zero HTML content on them. Why is that? If anything, Flash is more proprietary in nature than IE. Not only Flash has closed-source implementation, everything about it is proprietary and not standardized: the runtime, development tools, data formats, etc.
What amazing is that nobody seems to notice... Flash is slowly taking over the Web absolutely unnoticed. What happened? Where are you, open-standards proponents? Where are you, folks who used to whine about IE's monopoly? At least Internet Explorer supports a significant portion of HTML/CSS/JS standards. Sure IE has always had Microsoft-specific extensions, but they were only extensions - the basic foundation has always been open. Flash is none of that - Flash represents Adobe's own and complete redesign of the Web.
The only thing stopping them from completely taking over is somewhat higher cost of entry for content producers, i.e. developers and designers. A simple Flash/Flex web form with back-end server scripts is not nearly as trivial to implement as a typical PHP/Rails one-page tutorial.
I like the addition of VIDEO and AUDIO tags to HTML5, I like SVG, but I am afraid by the time all mainstream browsers adopt these features it will be too late. More specifically, I am afraid that IE8 won't be out for the next 3-5 years. Without new IE Flash/Silverlight will win.
Some would disagree arguing that developing for Flash/Flex frees you from browser incompatibilities. They would say that Adobe has not been hostile the way Microsoft has been. To those, I say that any Monarch, albeit wise, loving and open to his peoples, dies sooner or later. And nobody can tell who is coming next.
Therefore let's stick to democracy and avoid rulers altogether.
26 comments:
Well written and appropriate post for this time in our IT industry..
Interesting to see this post after reading your R.E.S.P.E.C.T C post.
-raj
http://balasubramanians.com/blog
People use flash largely because they have visions of what they see on the web, and HTML/JS/CSS is inadequate for what they want to do. That's it.
People want to get things done more than they want to worry about open source/freedom, and unless the freedom advocates get their act together and compete with the proprietary pieces of software, those will win.
I made this point in long form: http://billmill.org/putup.html .
I think the reason people have a soft spot for Flash is simple: developing in Flash is much more pleasant than developing for IE. It's more rational. It feels more like programming and less like hacking. Flash may not be standard, but it doesn't *violate* any existing standard.
Lots of smart people believe that HTML/CSS/JS are competitive with Flash, but if you want rounded corners in flash, you just draw them, while in HTML, it's dozens of lines of hacks in two to three different languages.
All your points are correct and all your fears will be borne out.
Googlebot doesn't read flash...
Online text benefits massively from being in an open, plain text format like html.
Look at a youtube page. The only thing in Flash is what needs to be. Everything else is html.
The flash format (swf) is open. There are a number of projects that allows you to develop flash content without any of Adobe's proprietary technologies.
osflash.org
flashdevelop
mtasc
Get your facts straight.
While I develop with rubyonrails, drupal, and opensource, and haven't touched flash much over the past few years, I have not a problem with Flash, or the people who use it.
The simple fact remains, visually and aesthetically there is nothing on the web that can touch Flash, or if there is, it's a hell of a lot of effort and programming skill to replicate what could take minutes in Flash. And that's BEFORE you browser test it.
The bottom line remains that an everyday web user doesn't care about what it's made out of, they care what it tastes like. And Flash can pack a lot of flavour.
There's definitely a problem with Flash being so incredibly proprietary but I don't think you understand Silverlight.
Moonlight is an open source implementation of Silverlight. Microsoft actually gave the documentation details to Novell to create an open source version (Adobe would never do this). Because of this, Silverlight is nowhere near as closed as Flash.
Check out openlaszlo. You write your apps in an XML + javascript DSL, and it gets compiled to flash bytecode *or* javascript.
it totally embraces web standards, oh yea and it's open source.
--Gabe
To the anonymous guy who said Flash is open: That statement is only partially true. Adobe makes the SWF and FLV sepcifications available for the development of tools that can export them. The license for the spec specifically forbids use of the information to create a player:
3. Restrictions
a. You may not use the Specification in any way to create or develop a runtime, client, player, executable or other program that reads or renders SWF files.
That's a bit of a switch for Adobe, which made the PostScript and PDF specs widely available without restriction. Personally, I'm a little puzzled because you'd think Adobe's revenue stream would be from tools to create the format. They give the player away free.
People use flash as far as I can tell in order to make there site look like it has more content than it really does.
Besides I myself want simple pages that are easy to navigate not a mess of flashing glitzy eye candy that never says anything.
P.S. - web pages should not have sound or animated backgrounds as they take away from the readability of the page.
As stated above Flash is far easier to develop for than JS and HTML. The Furor over IE is not so much that it's closed, but rather that it fails to render what you've programed as you expect. It requires numerous hacks and workarounds to make things look like you expect.
Flash doesn't suffer from this problem. it is predictible not only across browsers, but across operating systems as well.
To the anonymous poster above, they restrict anyone from making another player because they don't want to fracture the user base.
Look how long it takes for any significant movement in the html world to happen, meanwhile Flash can happily move from one version to the next without concern whether other vendors will implement their spec or not.
Your comment about AIR shows your ignorance for the runtime. Saying you want AIR to fail is saying you want webkit to fail. AIR treats ONLINE html content like any other webkit based browser.
The only change comes in when an html file is bundled in locally as a trusted source, in which case addition javascript extensions become available to deal with things like file apis.
really its amazing how many people talk about how much they hate flash - yet they have most likely done little to NO programming in it....last I checked flash had a lot of say in the 'standards' of ECMA - and into giving back scripting engine to Firefox...as well as many motion math libraries into ajax stuff like MooFx...
Sounds to me like there are plenty of 'standards' based techniques that are completely compatible with flash. Admit it - its the 'coder' in you that thinks flash sucks cause its for 'designers' not real manly coders. haha.
Why do we use it? Cause it works most of the time - and across more browsers and machines than any javascript Ive done (although its getting better in javascript)...seems the 'standards' are still behind the curve...and for all the bad sites using flash? I have just as many bad sites using standards based CSS / HTML / Javascript...its all about the designer and developer...not about the underlying technology - Flash just does MORE in one place than any other thing out there....when something new comes along and does more - then Id be more than happy to check it out - especially if its 'standards' based.
As someone who dabbles in software dev stuff (I write code for myself in my daily work but it's not my primary function) I've learned to be very wary of stuff that's touted as the new big thing. Mostly I just do perl, shell, a little bit of lisp like stuff and *shock* javascript. I'd have to find a pretty compelling case to expand that.
Most of the points made in the above article are valid, however, Flash lets me do what no other technology does (in RIAs I mean), why should I go to PERL/PHP and Javascript/CSS when I know they can't accomplish what I want them to (at least not in the current browsers). One such case is Printing.
I understand your point of view
many people mantioned here lot of obvious reasons why Flash is so big today
hopefully it will get bigger and bigger, changing the face of the web from flat to interactive as it is doing now
one of the best point made here is that they should open up as much as possible but going over the edge of destroying whole thing wouldn't be good for example in situations where users would have many different versions of this runtime so it isn't such a widespread and act same standard
I guess it's been a week or so since a "Flash is the worst thing evar!!" blog post has shown up, so we were due for one. I do like that this one also squeezes in some Lisp/Smalltalk/vim snobbery (and shout outs to Ruby and Python!). It's like a high-horse programmer's laundry list of favored technologies.
Honestly, this reads like a parody of the arrogant anti-flash posts that show up every once in a while.
The bottom line is that Flash has become so entrenched because it provided a common, rich experience across multiple browsers and platforms from the beginning when nothing else could. Things have gotten better in the browser space, but Flash is still way ahead.
You're saying that everyone should put up with the worse alternative because of certain values that are important to you. 99% of web users want what works better or makes them more comfortable, they don't care about "openness" because it doesn't help them solve their problems.
The kinds of excesses that Flash makes possible, and that prompt a lot of these rants, are the result of your attitude when taken by Flash designers. Whenever you say "My values should trump the user's values," you are moving in the wrong direction.
If you want Flash to go away, then compete, don't complain.
About search engines and Flash: search engines can read the embedded text (specially the Flash document properties "Title" and "Description"). But search engines cannot tell whether such content is actually displayed or if it's just about hidden words. That's why Flash pages tend to rank low in search engines. But I find that this isn't a Flash issue but a search engine issue.
About video and Flash: latest versions of Flash come with the On2VP6 video codec, which is arguably the best web video codec in the world: small sizes, with high quality, that nearly loads in real time. That's why most internet video sites are built using Flash. Nevertheless, there are open source programs out there that can encode your video into the .flv format (without the incredible compression/quality ratio of On2VP6, but free, after all!) so you don't really have to worry.
Talking about open source, you can create complete Flash applications without using any proprietary tool, as it has been already mentioned: pick your favourite text editor, write an ActionScript file, compile the swf file with MTASC, and embed it on a HTML webpage. That's it!
About Flash and visual effects: the spectacular results that you can achieve using Flash would be really hard to make using... Javascript? Or just plain HTML?. Flash can create movies, animations, videogame-like effects, or just clean and effective presentations. All of that can be created using small file sizes, so loading times aren't a problem if you are a good Flash designer/programmer.
And that's another strength of Flash: it is useful for both designers and programmers. From cool visual effects to complex e-commerce solutions: everything can be done using Flash. Don't forget that ActionScript 3.0 is an Object Oriented Programming (OOP) language, that can produce reusable, clean code (in fact, much cleaner that javascript).
By the way, Flash is already installed in the 98% of web connected devices (PCs, PDAs, laptops, gaming platforms, cell phones...). So compatibility and interconnection capabilities shouldn't be a problem.
As nearly everything in the world, Flash has weak points and strong points. You have remarked plenty of the weak ones in your article, and that's why someone had to remark the strong ones - the mix of both would be a much realistic approach of the subject. ;-)
You are probably right in some points, but don't call it Web after all. It's not a web: I can't use it on my FreeBSD laptop, I can't use it in my own products. I even enforced to write my apps in GTK (and C) to use this Adobe crap.
If you're like this features so much, why not jus put Java or MSWIn exe on site to allow users to download and run it? How it will differ? It won't! It's just a standalone app that gets downloaded onto your PC and run. Nothing more.
Disclaimer, I used flash for a few projects in school 3 or 4 years a ago and am prolly talking out my a** since my toolkit only includes xhtml/css/Javascript/php/sql & emacs.
I have a question for the commenter who said this, "Things have gotten better in the browser space, but Flash is still way ahead."
Where is the flash gmail/yahoo/hotmail application? Where is the flash based Digg or Reddit or other type of social networking site? Why aren't online banking applications made with flash?
Sure it can deliver content (movie's, ads, pretty splash pages) but where is the highly trafficked flash web application that users are getting things done(on or off the internet) with? It almost seems more like a channel framework to deliver content and not an application framework that delivers functionality.
Anonymous at December 6, 2007 4:35 AM -- I salute you.
You can go on and on about standards and ideals and philosophies and all that intangible BS, but while you whine, the smart developers will use what works in the real world.
Flash and Flex are great to work with, Adobe's not evil, their monopoly and long history creates a homogeneous run-time user-base (why is this bad? It isn't!) and their technologies and dev process is elegant and streamlined. Have you ever developed in Flex? It's fun. That's what wins out in the end :)
To me, it's like Adobe looked at the standards that were out there and all the fragmented implementations of constantly-revised specs, and said "screw that, let's do it better."
So yes, the ideals of open standards *are* great and good and holy, but in the real world, the standards aren't enforced or are changed and revised based on the needs of all the individual groups involved, and you end up with competing implementations of a "spec" that's hard to develop for and hard for users to keep straight!
Once you can corral the standards into a single universal implementation that works the same across every browser, then you can complain about the closedness of Flash. Until then, the real-world evidence seems to point otherwise - that a closed-loop, single-implementation runtime and standard can do better for some situations, despite limitations. At least accept that much.
You're largely missing a point here. We always choose our "weapons" according to what we need to shoot. You won't use a crossbow against a tank, and you won't use a mortar to hunt a rabbit.
In the end it all depends on the scope. Sure you can do animations and effects with javascript and css.. and sure you can build search engines and community sites with flash, but you'll just be putting a lot more effort and time.
Integration and mixing of all available technologies that you can put your hand on is the way to go.
your page is so f-king UNPRINTABLE !
> Where are you, open-standards proponents?
Since when were HTML / Ajax and Javascript open-standards? In theory they are, but in the real world, they are nightmarish dog's breakfast of incompatibility and proprietary meddling.
Java guru Bruce Eckel explains it very well:-
---------
The Web is a Mess
Seeing possibilities is great, but the downside is that it can be hard to acknowledge when something isn’t working. The concept of the web was visionary, but much of the web is a failure. Yes, we’ve been able to force it to work. But it could hardly be said to “work well.” In particular, applications of any complexity using HTML, CSS and JavaScript are difficult and expensive to develop, and it seems virtually impossible to get identical appearances across browsers. Even simple pages look different because of font issues.
If you use Firefox, how many sites do you visit that are at least partially unreadable because they’ve been created only for Internet Explorer (IE)? It seems to me that things are getting worse; I’m seeing more, not less sites that don’t work right with Firefox…to the point that I’m seriously considering going back to IE.
The noble promise of CSS has not panned out. After years, it’s still implemented inconsistently across browsers. As long as you’re using HTML and CSS, you’ll always wonder if what you’ve created is going to produce an unpleasant effect on different browsers. Browsers other than IE or Firefox can often get it even worse.
JavaScript has been around since, effectively, the beginning of the Web, but the browser wars made JavaScript inconsistent and thus painful to use. A key part of Ajax is that someone has gone to the trouble of figuring out cross-platform JavaScript issues so you can ignore the often radical inconsistencies between different browsers.
There are two problems with this approach. The first is that JavaScript is limited in what it can do. Although Ajax is an excellent hack that gets the last bit of mileage from JavaScript, it is nonetheless a hack, and the end is in sight. The second problem is that you are relying on Ajax libraries to handle cross-browser issues. If you want to write your own code, you must become an expert on those issues, and at that point much of the leverage of Ajax goes away. Ajax improves the experience a lot, but it has limits and I suspect we’ve already seen most of the tricks that Ajax is going to offer.
Even more impressive is the Google Web Toolkit (GWT) which translates type-checked Java into cross-platform JavaScript in order to speed the development process. You write code in Java, and GWT compiles it into cross-browser JavaScript. JavaScript, then, becomes the intermediate code that will run on all platforms. But it took Google’s brain trust to solve the problems that shouldn’t have happened in the first place. And if the library you need isn’t there, you must, again, be a cross-platform JavaScript expert in order to write new code. As brilliant as GWT is, I think it will still run out of gas due to the inherent limitations of JavaScript and browsers.
We do see relatively amazing Ajax-based tools like GMail and the other Google tools which are slowly seducing me (but I repeat: it took Google to create those, not Joe garage-programmer). Very nice, but is this the best you ever want to see on the web? You’re seeing, if not the limit, then very close to it in those applications, and even then they don’t work consistently (yes, I know Google tools are “still in beta”). In GMail, for example, you’re supposed to be able to press keys like ‘r’ to reply to a message. Sometimes this works, often it doesn’t, to the point where it’s maddening. And more and more often, when I use web applications like GMail, my “control-c” copy operation stops working. It could be Windows, Firefox, JavaScript or something else but it seems to be associated with web apps and it’s been happening for at least a year. And frankly I don’t care why it’s happening, and neither does any other consumer. When things this simple are broken, the outlook is not promising.
How much effort must we expend to compensate for the long sequence of misguided decisions that has produced today’s web?
If you can't beat 'em, join 'em.
Post a Comment