Essays:

Userland -
-



Sam Ruby
< It's just data >

Updated: 9/1/2002; 7:01:36 PM.

Monday, March 18, 2002

Went to TriJUG.  Thought I was going to talk to a few Apache buddies and a few of their friends.  I wore my MS t-shirt.  And planned to do my normal stereotype demolishing "I have friends at MS, Sun, IBM, Apache, PHP, ActiveState, etc... " bit.

Turns out that there was a full auditorium.  Much to even my host's surprise. At least 1/4 of the audience was looking for work.  The TriJUG has a reduced admission price for people who were unemployed.  There was a lot of anxiety.  Looks like .NET has a lot of people spooked.

I frankly acknowledged that C# and .NET is real and does contain some interesting features (example: I like enums).  No question.  And despite this, I still see Java going strong for the foreseeable future.  When asked technical questions on areas I knew about, I gave detailed answers.  On other areas and nontechnical questions ("what are IBM's plans for .NET" and "what are Sun's motivations"), I declined to speculate. 

From what I could tell, the mood seemed perceptibly a bit brighter at the end - people saw somebody who actually had a reasonably deep understanding of both technologies, wasn't a religious zealot on either side, and continues to be bullish on Java.


  11:24:59 PM    

Hannes Wallnöfer invents yet another weblog API.  Key additions: a single namespace prefix (what happens when multiple people try to extend?) and headers.  His insight on headers is excellent, I'll have to remember to reference it when I get around to writing a sequel to the SOAP BDG.
  9:00:46 AM    

Dave wonders how much extensibitity?

How much is the right amount? You end up chasing your tail. If an API is perfectly extensible then it says nothing about interop.

What we are discussing is alternate ways of expressing the concept:  The server must ignore all elements that it doesn't understand.   One can achive this in an interoperable way.

Something has to be nailed down. Always at the cost of extensibility.

What should be nailed down is the bits and bytes we exchange over the wire.  If I want to pass a title or a mood across the wire, should I add SOAP parameters:

<title>Bing!</title>
<mood>happy</mood>

Or XML-RPC struct members:

<member>
  <name>title</name>
  <value>Bing!</value>
</member>
<member>
  <name>mood</name>
  <value>happy</value>
</member>

Both are equally as extensible.

Imho, interop and extensibility are two opposing forces, like time and space.

Nope.  Interop is about Dealing with Diversity.  Extensibility is about Coping with Change.  One can do both.

One more example, and then a conclusion. The developers of Conversant boast that they've gone so far towards extensibility that their interface is all structs, even the name of the procedure that's being called is encoded in a struct so presumably if the way of expressing the name of the procedure requires extension there will be no breakage. But have they actually done anything other than replicate XML-RPC?

What they have actually done is re-invent named parameter asssociation.  Something that is built into SOAP.

Now the conclusion. We have to agree on something, for better or worse, in order to move forward.

We should agree on the bits and bytes sent across the wire.

You can't keep all the options open for all time.

Example: keeping the option open for both XML-RPC and SOAP, and thereby coding to the least common denominator, requiring designers to make the choice between brittle [positional parameter] interfaces and more complex [structs as parameter] interfaces.  Eliminating the choice to make simple and extensible [named parameter] interfaces.

This means there will be corner-turns. So far the Weblog API world has been very collegial and has produced real results at a very low cost. I believe we will be able to move forward, and the protocols and formats will evolve in a market-driven way, and when the corners are turned we will look to the tool developers to insulate users from the bumps.

A tool to go through your scripts remove all the structs and convert them to parameters?  Yea, sure.

I'm reminded of something Joel on Software said:

My friend, you can put wheels on your mama but that doesn't make her a bus, and if you think you can refactor your wrongly-implemented file-copy function to make it preemptive rather than threaded as quickly as I could write that sentence, you're in deep denial.

and

It's one of those weird forms of laziness where you end up doing more work than you would have done otherwise. I'm too lazy to design the feature on paper first, so I just write some code, and then it's not right, so I have to fix it, and I spend more time than I would have otherwise.

We have a real opportunity here.  There is an API that is in popular use which clearly isn't as extensible as it needs to be.  We can apply bandaids and put off the corner turn for another day, or simply say the blogging API is what it is.  Now here's another API which is as easy to implement and is more extensible.


  5:49:15 AM    





March 2002
Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
Feb   Apr

Click to see the XML version of this web page.


Related: Help link
Jon's Radio
Simon Fell > Its just code
BitWorking
The .NET Guy
Better Living Through Software
KeithBa's Blog
Web Hosting
REST + SOAP

Click here to visit the Radio UserLand website.

currently subscribed to:

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

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

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

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. Bright Eyed Mister Zen RSS link

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

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

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

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

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

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

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

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

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

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. Glen Daniels : it's all just metadata... RSS link

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

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

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

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. IK.VM.NET Weblog RSS link

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

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. It's Like Déjà Vu All Over Again RSS link

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. Tim Ewald's Ideas about XML and Web Services RSS link

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

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

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

Here's how this works.


Last update: 1/25/2002; 7:23:12 AM

© Copyright 2002 Sam Ruby

-