Jon's Radio : Jon Udell's Radio Blog
Updated: 8/6/2002; 12:27:22 AM.

 

Note: Jon's Radio has moved to InfoWorld

storyList


Jon's homepage

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.

 
 

Thursday, January 31, 2002

Sure enough, I counted 3 Fs. 9:50:48 PM    

The uses of indirect discussion

Sam Ruby and I have been having this oddly indirect discussion here on Radio, and it's made me think. At first glance, the indirectness seemed like a flaw in Radio. Were it a discussion system, like Manila and countless others, we'd be talking back and forth directly, and others would doubtless be chiming in too.

Many believe that every document on the web -- even every paragraph or sentence -- should be, at least potentially, the root of a threaded discussion. I have thought so too, for a long time. But now I'm wondering whether this "bug" in Radio is really a feature. Writing for Radio feels different than writing for discussion groups. It feels more like writing for publication. It makes you want to think through what you say more carefully, and not shoot from the hip.

I've been a writer all my life, and one of the lessons I've learned is that the process of writing -- done slowly and reflectively -- is closely related to the process of learning. I don't really know something until I can explain it, and I can't really explain it until I can write it.

In this age of instant communication and message overload, it gets harder and harder to find time to think things through. Maybe every document on the web shouldn't also be a conversation. Maybe we also need some quiet places in which to think and write.

9:14:39 PM    

Sam writes that it's ECMAScript (a name which keeps on sounding like a skin disease to me), and not Python, which will be first out of the gate with optional type declaration.

Why didn't I include it in my mental list of "major" scripting environments? Especially since, lately, I find myself using JavaScr...oops, ECMAScript...for a variety of one-off tasks that I might otherwise reach for Perl to accomplish. On Windows nowadays, I often run [E|J]Script from the command line, by way of the Windows Scripting Host. I do this to invoke MSXML and MSXSL, for example, but increasingly for other chores too.

Coincidentally a friend asked, a few weeks back, what I thought were the limits of JavaScript as a general purpose scripting language. None really in the language itself, was my answer, when I thought about it. All the really important qualities that I value in Perl and Python are there in JS too. What differs is the environment. Historically JS has been used inside a browser. Taken outside that context, it appears to lack the rich library support we enjoy in Perl/Python/PHP/Ruby. Of course it can, and does, connect to support infrastructure. On Windows, that has been COM and is now also the .NET Framework. There are probably similar system-level integrations on other platforms that I'm not aware of.

So what did I really mean by "major"? I believe I meant not only a set of language features, but also a complete environment, with a rich support infrastructure, that is widely ported and works the same way on all major (there's that loaded word again) platforms.

The problem is, I also believe that scripting languages shouldn't have to roll their own support infrastructure. Far too much effort is expended wrapping components -- an XML parser, a database adaptor, whatever -- for every language that comes down the pike. But what's the alternative? Lacking widely deployed common infrastructure, our scripting languages must carry it around with them like turtles carry their shells.

8:43:00 PM    

Shane Caraveo from ActiveState wrote me a note illustrating how they handle WSDL for Perl:

=for interface
  static ustring echostring(ustring something);
  <soap namespace="http://www.ActiveState.com/echo/"/>
=cut

sub echostring {
     my $echo = shift;
     return $echo;
 }

The question is overhead. Obviously this metadata, like all documentation, requires double maintenance, and can get out of synch with the code. As a Perl programmer, would I rather pay that cost in the form of typing all my functions and variables, and have a free ride on WSDL generation, or pay it only on a per-exported-object basis?

Sam Ruby and I talked about this today. He makes a good point: since exported stuff will surely be a fraction of all the stuff you write in a dynamic scripting language, why not just pay on an as-needed basis? It's an 80/20 (or 90/10) thing.

The flip side of this is that web services network effects arise, I believe, when things can automatically, or almost automatically, be exported -- even when the need to do so wasn't originally anticipated.

Kevin Altis, who is working these days on PythonCard, sent me this set of definitions which was in turn sent to him by "an erudite reader":

"statically typed language

A language in which types are fixed at compile time. Most statically typed
languages enforce this by requiring you to declare all variables with their
datatypes before using them. Java and C are statically typed languages.

dynamically typed language

A language in which types are discovered at execution time; the opposite of
statically typed. VBScript and Python are dynamically typed, because they
figure out what type a variable is when you first assign it a value.

strongly typed language

A language in which types are always enforced. Java and Python are strongly
typed. If you have an integer, you can't treat it like a string without
explicitly converting it (more on how to do this later in this chapter).

weakly typed language

A language in which types may be ignored; the opposite of strongly typed.
VBScript is weakly typed. In VBScript, you can concatenate the string '12'
and the integer 3 to get the string '123', then treat that as the integer
123, all without any explicit conversion.

So Python is both dynamically typed (because it doesn't use explicit
datatype declarations) and strongly typed (because once a variable has a
datatype, it actually matters)."

(If you are that "erudite reader" and wish to be identified, just let me know.) 

Correction: here is the source of this quotation: it's from Mark Pilgrim's fabulous online Python book-in-progress. Sorry for the mixup, Kevin and Mark.

Note: it's tempting to try to rewrite history by changing these entries on the fly in order to erase errors.  But that won't last forever. Before too long, the Wayback Machine will catch you in the act when you try to cover your tracks :-) 

Perhaps this explains why I have the sense that if optional type declaration were going happen in any major scripting environment, it would happen first in Python.

4:12:23 PM    


© Copyright 2002 Jon Udell.



Click here to visit the Radio UserLand website.

 


Top 10 hits for "limits of transparency" on..
Google
1.
2.
3.
4.
5.
6.
7.
8.

9.
10.

Help link
 8/6/2002; 12:04:03 AM.

currently subscribed to:

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link 80211b News

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link ARTS & FARCES internet

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Blogging Alone

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Blogzilla - a blog about Mozilla

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Blur Circle

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Brian Jepson's Radio Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Business 2.0 - Technology

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Clemens Vasters: Enterprise Development & Alien Abductions

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Content Wire - Digital Copyright

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link decentralization

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Digital Identity

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Digital Identity World

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link DJ's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Economist: Books

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Free XML tools

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link IBM DeveloperWorks: XML News

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Industrie Toulouse

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link InfoWorld: Top News

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link internetnews.com: Internet Advertising Report

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link jDance

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Jeremy Bowers: Jabber

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Jeremy Zawodny's blog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Jeroen Bekkers' Groove Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link John Burkhardt

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link John Patrick's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Jon Schull's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Jon's Radio

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Jon's Radio (full-length descriptions)

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Kevin Altis' Radio Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Kimbro Staken: XML Database JuJu

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link klogs

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Larry Welkowitz's Radio Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Latest RFC:s

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Liftoff

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Line56: B2B News

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Linux Magazine

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Loosely Coupled weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Macromedia Resource Feed

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Matt Pope's Radio Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link matt.griffith

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link McGee's Musings

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Meatball Wiki

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Meerkat: An Open Wire Service

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Michael Helfrich's Radio Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Nature: Human Genetics

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link New Scientist

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link New Web Services from SalCentral

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link New York Times: Business

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link New York Times: Science

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link New York Times: Technology

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link News Is Free: Recent Additions

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link O'Reilly Network Articles

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link O'Reilly Safari

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Patrick Logan's Radio Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Peter Drayton's Radio Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Privacy Digest Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Python News

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Ray Ozzie's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link ResearchBuzz

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Russ Lipton Documents Radio

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link s l a m

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Salon: Arts & Entertainment

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Sam Ruby

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Scientific American

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link search.cpan.org

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link SearchTools News for 2002

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Security Focus

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link sellsbrothers.com: Windows Developer News

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Simon Fell

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Sjoerd Visscher's weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link snowdeal.org > {bio,medical}informatics

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Steven Vore: KM

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link syndication

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link The GrooveLog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link The World Wide Web Consortium

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Tony Bowden's Radio Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link toolbox

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Voidstar

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Web Services Articles from The Stencil Group

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Web Voice: internet business models and technical marketing - a blog by Olivier Travers

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link weblog-devel

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Werblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Windley's Enterprise Computing Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link WriteTheWeb

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link xmlhack

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Yahoo News Headlines - XML

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Zope Products

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Zope.org

Here's how this works.