AjaxWebApplications, a.k.a. WebTwoPointOh, deeply suck. Here's why: * Multiple implementation languages (JavaScript {or is that EcmaScript or hey is JscriptDotNet alive?} + a soft language {PythonLanguage, RubyLanguage, PerlLanguage, PhpLanguage [call that a language?] ...} + Webserver configuration + a hard language {yeah right, you don't need to AlternateHardAndSoftLayers, all that I/O means you're never CPU bound ... right? Um, I said right? Um, is this thing on?} + SqlLanguage wrapped in one of a million almost identical ObjectRelationalBridge''''''s {because, heck, you really don't know which database is going to perform best this week, or which one is legacy from last week, do you?} * Multiple data interchange languages {ExtensibleMarkupLanguage / JavaScriptObjectNotation / SimpleObjectAccessProtocol [whaddya mean SOAP? SOAP's the RemoteProcedureCall language, not the data interchange language ... well, unless you use it as the data interchange language; it all depends on where you want to encode your semantics today ...]} * Multiple representation formats {HTML, DHTML, CascadingStyleSheets, XsltLanguage, XformsTechnology [Hey, you dope, this is all open hooey, what you really want is MacromediaFlash! AFLAX! or, um, what is Adobe doing now?] * You're not cool if you're not ExtremelyInterstrangled with RssFeeds/RdfLanguage/MicroFormat''''''s/IJMTAUAIGA {I'm Just Making These Acronyms Up As I Go Along} * The WebArchitecture is broken. No, I don't mean just badly implemented, or all fscked up with commercial and open pissing matches, or just difficult to visualize. I mean it's the wrong architecture for most of the apps it hosts. Its address oriented where everything we're writing is content oriented. The only way you can host a content oriented site like, say, this here wiki, and all them there wikis, is to glom stuff together inside a single server and rely on GoogleSearch''''''es / inextensible InterWiki hacks that don't even support BackLink''''''s and don't scale ... * Because the architecture is broken, there are lots of StrangeLoop''''''s in it. For example, Google is a proprietary application server rather than, as it obviously wants to be, a protocol! * Need I go on? TimBernersLee invented a panacea and we all know that AllPanaceasBecomePoison. Always. In other words what we have here is a royal PatternOfBabel. Let's chuck it and start over. This page is about trying to figure out a simple WebArchitecture that does everything the ShonkyVille approach above does, but simply, with elegance, and without a trace of the backward compatibility that has caused the ExtremelyInterstrangled-ment to occur. ---- Start with the architecture. What we intend when we use a browser is to see current information. We're not interested in stale information. And we're not interested in navigating to get it - hence the need for Google and its kin. '''Therefore,''' The fundamental should be PublishAndSubscribe. A web address and a search string will be one and the same thing. We simply upgrade DNS with RDF and cut out about a dozen layers of middlemen. Well, we have to Sweeten RDF. Then dump Google in the ocean as a legacy boat anchor. ---- UniformResourceLocator''''''s have arbitrary semantics. This sucks because we never know how to map to them - hence the whole mess of REST/SOAP/Cherry''''''Py/what-have-you conventions not to mention various layers of obscurantism on top of that. And now, with AjaxWebApplications, much worse, more layers in front of them too, all written in bigomegahelpus JavaScript! '''Therefore,''' 3-part Turing complete URLs. If the first part of a URL names a collection of resources - courtesy of our RDFDNS (RNS?) - then the next part can be a program that translates them into another resource. And the last part can be a set of tags on which you publish that resource. Ah, but what is the ProgrammingLanguage? That's easy: XSLT. But, hey, XSLT is ugly as sin! Sure, but it's Turing compatible. Consequently we need merely pick another Turing-compatible language as the standard, and stick to it. And that choice is damn simple: SmalltalkLanguage. There's not a soul here who'll argue with this. All that's wanted is a bit of syntax extension to understand RDF and '''We're Done.''' ---- XmlSucks so much that people are falling back into JSON (JavaScriptObjectNotation) for AJAX. But JSON isn't anywhere near so powerful as XML, and that pushes way too much work down into the private programmatics inside your servlets (a.k.a. CGI blahblahblah, don't get hung up on the buzzwords). '''Therefore,''' What we need is to beef up JSON until it can represent all the XML semantics - but with generality and SyntacticSugar. Then write a translator and forget XML forever. What motivates people to ditch XML? Well, maintainability, readability, speed, reduced staff churn ... ---- Others? ''I detect the telltale traces of PeterMerel above. What is that phrase? Oh yeah - LetsBlowUpTheUniverse!'' I cannot tell a lie, it was me. I blew up the universe. Okay, let's start by replacing all the front end junk with AjaxSmalltalk. We then replace the XML/XSLT/XForms junk with ... SmalltalkLanguage via SeasideFramework. And then on the back end, let me see, what about oh, I dunno ... SmalltalkLanguage? There's lotsa connectivity/persistence choices there but GemStone anyone? Oh, and there's still that RDFDNS google-killer thingy ... how about we implement that in SmalltalkLanguage? Hey, and one more idea: let's have the server provide P2P access by mapping its RDFDNS to the respective client IP #s. Add the CocktailPartyMetaphor and ManaMana to that and away! --Pete going "Woo Woo!" like SteveBallmer. And then "Kapwing!" like CalvinAndHobbes. ''Ya know, just a hint, but it may be time to ReFactor this page. Just a little. So maybe someone could understand it. If that's not too much trouble ...'' You're forgetting that this page is a PeterMerel production. It's ''not supposed'' to make sense. Oh, hey, Pete! We were just talking about you. How's it been? :-) In all seriousness, I believe PhilipWadler is working on some language implementation where you write in a SINGLE language, and it compiles to server-side Java, client-side Javascript, and handles all the IPC requirements between the two on its own. The problems that Pete declares above are already well know (at least to Wadler). --SamuelFalvo ''You do it all in RubyOnRails these days. Works great so long as you stick to the synchronous stuff. If you want asynchronous you just bolt a message queue onto the model. And with Rubinius a month or two from launch that's that, everything makes sense again.'' Except, well, you're working with (shudder) Ruby. Java is markedly faster than Ruby, which makes it more suitable for large-scale business use. There's a reason why Google doesn't use Ruby. --SamuelFalvo ---- For observational, consumption, and archiving of WebContent, I just use OneNote: It captures a page I am interested in with a ReasonableRendering and finishes off with the NavigationUrl where it originated, while making its contents reachable with its own SearchEngine. That may not have been the original idea of what it is supposed to do, but that is how I use it. It is a terrific way of gathering "favorites" as well as a way of storing information of interest which is searchable and making it reachable at the same time. -- DonaldNoyes.20100822 ---- CategoryWebThreePointZero, naturally.