Featured Post

Linkedin

 These days, I mostly post my tech musings on Linkedin.  https://www.linkedin.com/in/seanmcgrath/

Saturday, October 30, 2004

Code, data, dynamic languages, gmail and bootstrapping a GUI

So, the hunt is on amonsgt the perspicacious blogopuli to classify what kind of a thing Gmail is from a GUI perspective.

I haven't looked closely enough to comment but, since that never stopped me before, I'll comment anyway :-)

GMail looks to me like a classic bootstrap. I suspect that on the server side there is a model of the client side expressed in domain terms - concepts like inbox, e-mail composer, contacts list and so on.

When a client connects, it effectively downloads an implementation of that model. Once in situ, further conversations between client and server can go up a notch - expressed in terms of domain specific concepts "render the inbox will you? There's a good chap" rather than "At X,Y render a blue box...".

Web clients carry around a basic, low level programming language called Javascript. The real beauty of Javascript is that it is dynamic - you can blurr the distinction between code and data. You can hoist the level of abstraction you work with in your app by layering domain specific concepts on top of it in the form of functions and data structures. You can sling across data structures already teed up for use on the other end with the aid of the magic of "eval". You can implement complex behaviour by sending across a program to be run rather than trying to explain what you want done declaratively to the other side.

Now, in such a world - would you send XML data to and fro? Developers with a static typing programming language background might be inclined to say yes but I suspect javascriptophiles, lispers, pythoneers and rubyites are more likely to say no. Reason being, it is so much more natural to exchange lumps of code - mere text strings remember - that can be eval'ed to re-create the data structure you have in the XML.

In my opinion, there is more power in that one idea than in the whole minatory miasma of WS-GetAGrip.

Thursday, October 28, 2004

Read this

Read this.
Best wishes Mr Helland.

Very useful Jython tutorial from Barry Feigenbaum (and Jython status update)

See http://www.jython.org/ for links to a substantial Jython tutorial from IBM's Barry Feigenbaum.

Also of note is that work on implementing new-style classes in Jython - key to the 2.2 release - is ongoing and Samuele Pedroni is aiming for a 15 November check-in of the new branch into sourceforge. Once we get that in, progress in Jython-land can proceed in multiple parallel-roads at once e.g. core language work, library work, build system work etc. etc.

Wednesday, October 27, 2004

Thus spaketh Ganesha + Minerva + Thoth!


    "Namespaces are close to a disaster [but not quite, that dubious honor goes to W3C XML Schema]

http://lists.xml.org/archives/xml-dev/200410/msg00509.html

Yes. Oh yes. Oh scrummy, knock-me-down-with-a-feather yes :-)

Tuesday, October 26, 2004

Hopeless seeker of generalizations goes off the deep end

    "Being a hopeless seeker of generalizations, I cannot help but wonder where this phenomenon will take us next? It appears as if a meme has taken shape around the use of the word 'planet' so it might be no harm to extrapolate the analogy for guidance as to where we may be headed."

No. I'm not going to give you a hint. The rest is here.

Monday, October 25, 2004

Pet geek peeve #1

I *hate* it when a book/FAQ/tutorial says:
    "open the file foo.baz with your favorite text editor."
or
    "decompress the sample files with your favorite compression tool."


Favorite? What has favorite got to do with it? It is my business if I choose to use the programs I most hate on the planet to edit the files or de-compress the archive.

Ooops! I feel a literal-interpretation spasm coming on.


    Cannot... find... favorite... text editor... cannot... complete... tutorial...panic! panic! \n@@+[*Houston. We have a problem.@+_\n

    Attribute nodes and children first into the life rafts. Abort, abort! Wrrrrr. Click. Wrrrrr. Click.