Will AJAX Threaten Windows Desktop?
prostoalex writes "They are not your father's HTML pages anymore. AJAX interfaces are getting more complex and versatile, relieving the user of the necessity to reload the page, and thus are becoming more like your average desktop apps. The catch? AJAX apps work in any browser out there, making the OS layer a bit irrelevant. Will the trend threaten Microsoft desktop near-monopoly? Or are we hearing the story of poorly debugged device drivers again?"
It wont be any enormous instant change. But it will be a very slow methodical one. I notice that many companies are developing more and more web applications rather than buying expensive proprietary software. As companies break free of the proprietary software on their own, they will be more open to alternative OS and hardware solutions. All it takes is one salesman to go in to such a company and win them over.
AJAX helps because there was a set of desktop applications that could not formerly be made into equivalent web applications, but they now can be. You'll see MS take some losses over the years if the trend continues.
The GeekNights podcast is going strong. Listen!
People shouldn't be running scripts of random websites, the web is for serving documents. If something requires more functionality than a web app, write client code.
Ajax == hyperbole
That is all.
Many enterprises are plagued with too many proprietary, non-modular fat clients needed for Customer Care, Service Management, Billing, HR, etc. etc.
The people on this sometimes have to work with 1-5 apps for one transaction (e.g. Cable Service Customer calls Customer Care about a billing problem for a PPV event, CC maybe agent has to look in one app details of the Customer, in another if there was a know outage, in a third if the money was transfered from the customer, and then maybe open a ticket in a 4th, etc., all while copying&pasting data from one app to the next)
All that because each of the applications just offers a dumb fat client to access it per default.
If vendors - which should have no interest in that kind of lock-in - started to offer modern Web GUIs, that would be a step in the right direction.
Though expect that these Web interface will pop up, and have already, I also know that the underlying interfaces often doesn't lend itself for easy integration with others.
Another thing to note is that a full trend towards this, with the logical loss of not only a proprietary operating system, but a general-purpose OS of any kind on the client, could be a far more severe threat to user freedom than any "trusted computing by limiting access to ring 0" scheme...
If moving CPU cycles and storage on-line to big company's (compare how fast it takes to search all your emails in gmail and Microsoft outlook, and how much space is available and backed up), then i can see the demand for new, faster PCs for a lot of people to decline.
When that starts to happen, who needs the newest and latest OS, or even a PC anymore when you can do it on your WiMax enabled pda and opera.
Things like Ajax only help move this data off the PC on-line and reduce the need for both a OS and PC
"In a time of universal deceit - telling the truth is a revolutionary act." - George Orwell
They said the same thing about Java, right? Which is faster than web apps (even if you think it's slow compared to C) and has more access to the file system and it's resources.
The way to make the Desktop unimportant is to have cross-platform applications become the norm. Word processors especially, but also browsers, mail programs, etc. Only when the apps that average folks use every day can be found on every platform will the platform cease to be so crucial.
Okay, I'll feed the troll.
As a web developer, I'm currently focusing my AJAX development on our Intranet. It's safer in the sense that we have more control over the browser and it's less likely that people with odd browsers will complain. That's where most of the interest is at the moment. For example, a form builder that lets people drag and drop controls, update properties, and so on.
There's a reason why Google maps is so popular while Google Earth (a client/server app) isn't as much. Anyone with a modern browser can use Google maps, while Google Earth requires an install, the right OS, and more.
The along came things like microsoft Basic. The computer would boot into an interactive language environment. If you wanted an operating system, you wrote a program in the language that could do primitive reads of some storage device (paper tape, cassette and later 8" floppy), on that was a larger basic program that would do operating system commands like list the files on the tape/floppy and allow you to copy them.
then along came DOS. While mini computers (like vax and prime and wang) had had OS's for years these were new to Mini computers. now the computer booted to the OS and if you wanted to program you had to load BASIC or fortran to create a programming environment.
Then along came the PC. suddenly there was this thing call the BIOS that normalized a lot of hardware kinds to a more uniform hardware API. And there were these device drivers that patched the OS.
THe OS slowly became more layered in design but that was transparent to the user.
the next big leap were browsers and quickly JAVA, which were touted as a normalizing layer over the OS to make machines more common at a higher level of abstraction above the OS.
Everyone thought webapps would rule. Never happened.
Maybe it was just too soon. Or maybe it's because MS torpedoed JAVA's cross platform success.
Now were seeing the rise of Javascript and XML. A few years back that would have been a joke. But I guess computers hand interpreters and high speed internet have gotten fast enough now that you can do slick things Google maps. Fast enough for simple common operations like Calendars, editors, spreadsheets and what-not.
my own feeling is the interface itself is still pretty crude. I'd rather run local apps. On the other hand if I were a corporation I'd probably tell my employees they dont need a faincy calendar or editor they need a siimple one we can maintain on a server.
So my feeling is that for the most part this is just another layer on a rather large stack of layers. and probably the slowest one yet. It offers little improvement to the user but does simplify maintainence and offers attractive corporate benefits.
Some drink at the fountain of knowledge. Others just gargle.
The main reason the internet caught on is because it had a consistant UI that everyone, even non-computers users, could use.
- All links worked the same way and had the same right click menu.
- The back button could get you back if you get lost
- You could bookmark what you're interested in.
With showcase AJAX applications from leading software vendors all of this is broken. I can't bookmark. I can't use the back button (I remember when only porn sites used to do this - and now Microsoft sinks so low?). I can't use my right-click menus that I know.AJAX combines all the inconsistancies and learning curves of desktop applications with all the limitations (bandwidth, limited access to local storage) of the web.
Please make it stop.
Have you actually developed something using AJAX? I'm going to guess not if you think it works in "any browser." It probably works in Firefox/Mozilla, good chance it works in IE6, Opera and Safari if you say a few prayers, and anything else is pretty unlikely. Now, you msy say that's most browsers, and it is, but it is not "any browser." There are still people using Netscape 4 for some unknown reason.
You're making the assumption that the bulk of data handling is going to happen in the web browser (which may be the case in AJAX, I don't know anything about it). This is simply not true.
For an example, take a look at mldonkey. The engine runs as a separate process, and lets the user access it through either a very primitive telnet interface or a web browser. If you use the latter, you get a graphical user interface without having to depend on GTK, QT or Windows (and can start the core from crontab as soon as the machine starts, without having to wait for the user to log in and start it from X-Windows).
Or take the program I'm writing. I regularly read binary newsgroups, and have accumulated thousands of image files (from fantasy-sci-fi -group, so save the jokes about porn collection), and must manage them somehow. As a solution I wrote a python script that downloads the images from desired newsgroups, decodes them, and inserts them into a PostgreSQL database together with all the headers and other data that could be collected from the message (and even checks fro dublicate posts and simply links to the old image in case one is found). The database uses a web browser (through Apache and PHP) as its user interface, but the actual data processing is done in Python, PHP, ImageMagick and PostgreSQL. This frees me from having to worry about the interface into wondering how my Python script actually works, since I forgot to comment it and can't make heads or tails out of the 3-page listing ;(.
Forget magic. Any technology distinguishable from divine power is insufficiently advanced.
It's about time Web "programmers" (too long a title swiped by HTML formatters) realized that URLs are just pointers. To (MIME) typed data, with varied fetch protocols. It's a measure of how badly designed was HTML: *cough*Andreesen*cough*.
His "circular reference oops" was a terrible reason not to use Berners-Lee's advice to use URLs as generic pointers to any embeddable data object. Any good programmer could have cut the recursion, merely by allowing only a (configurable) depth in the renderer, terminating in a hyperlink, rather than a fetch. The disease can be easily detected in the blowjobbing comment by Giza, the "Instructor": because Andreesen got lucky with Mosaic taking off enough for Jim Clark to pick it as "the next big thing", his design travesty was good, even though it was totally broken.
It's 12 years, and millions of hacks, later, and we're finally talking about "AJAX" apps that can get any data, any type, and insert them anywhere in a single document. Calling graphic artists "web designers" gave us a generation of deeper bad designs like half-assed IFRAMEs. How long will it take before we push AJAX JavaScripts back inside the app frame engine, so only a little bit of presentation tag code can lay out a GUI with dynamic data, accessed from and processed by distributed hosts? That was Berners-Lee's design for HTML/URL/CGI, back in 1990. Which is why Berners-Lee got knighted, and Andreesen only got rich.
Flaming Andreesen aside, we've now got "thin" browser clients that are as fat, in their way, as were the dedicated clients to proprietary client/server protocols before the Web. Sure, they do quite a lot, opening up the vast array of content, services and people now more easily connected to the Internet. But we're still trapped in the "browser". Imagine if all Windows apps ran in the context, and GUI, of Windows Explorer. Or all Linux apps in, say, Nautilus. Or every app ran in a panel in the Desktop itself. Using only the simple, static GUI of the enclosing app. Isolated from other apps, other data, any real configurability, integration or further programming by the app "consumer".
"Web services" should be the default for any process on the Web. It needs extra features, like per-call authentication (like htauth/SSL). Their APIs should be versioned and signed for reciprocal authentication of the service by the client. The data should be easily embeddable in any app, a generic remote procedure call. The services should be associated with default logic ojbects for further processing or rendering, keyed either to objects bundled with the local client app, residing in keyed repositories distributed around the Net, or downloadable from the service server. URIs should merely associated with URLs, not merely identical to them, so services/content can be retrieved by name or criteria, rather than by static location (a URI handle, rather than a merely dereferenceable URL pointer).
We've got more "computer science" students and teachers now than ever before. We've got more programmers, designers, architects, IT professionals, infosystem pundits. More depends on this system than ever before, and the stakes of getting more into it, and more people using it, are extremely high. Yet we're spiraling down the same drain that we flushed a generation ago, when we kicked off the fundamental Web architecture (really the ground floor, as per Andreesen's half-blind email to Berners-Lee) with a hack that was never fixed to work beyond its immediate deadline requirement.
Is there any hope that AJAX will become the norm, pushed under an API as simple as HTML 1.0? The Windows apps (and equally mediocre frameworks on all the other platforms) are stuck with their own cultural and legacy requirements baggage. After 15 years of spinning our Web wheels, have we merely moved our architectural tangles onto the Web? Is all of our development, local or networked, doomed to consume 80
--
make install -not war
Google maps etc. aren't really striking examples. If you want to see something really cool, go to http://demo.atmail.com/. The web interface of their online e-mail client is, I dare say, superior to many traditional ones. It's an incredible example of what a modern Web browser (both IE and Mozilla-based) is capable of.
This is getting at the real reasons why AJAX is up-and-coming. The technical details (performance, GUI widgets, even portability) are relatively unimportant. AJAX is about network effects.
Web developers can innovate faster because they can iterate faster. If there's a bug, it can be fixed over night. Similarly for suggestions from users, so experimentation is easy. AJAX helps change users into collaborators in software development. These are the thousand eyeballs that made open source successful, only more so.
There are more of those eyeballs because the barrier to entry is lower. Users can try your software casually because they don't need to install anything. (I use Google maps all the time, but I've never downloaded any of their apps. It doesn't matter how good they are because I've never seen them.) Copying is 100% free when there's nothing to install.
One poster dismissed AJAX as only useful for Web applications. But that's critical, because most new software is about communication, which is easier to develop with Web technologies.
Finally, the software business is changing from a focus on software to a focus on services. Amazon and eBay are the two most obvious examples of software companies that aren't about the software. Even Microsoft has been trying to move to a service model; they're trying to cope with the fact that the best technology to enable that threatens their core business.
In short, the value in software increasingly comes from communities - from the network. AJAX leverages that. Somehow when we start talking about AJAX we think it's about programming and technical details. It's not. AJAX isn't about the software, it's about the Web.