mission critical apps; was Re: cross platform ide
Alex Rice
alex at mindlube.com
Sun Feb 8 00:15:48 EST 2004
Don't interpret any of the following as a complaint against xtalks, in
fact I desire to move away from business support apps and into more
games and multimedia. So I do like the "ad-hoc" flexibility of
transcript.
Topics have been coming up about how Runrev should gain footholds in
corporate IT departments, and lure in disaffected VB and .NET
programmers, and some issues are inevitably going to be raised about
the programming model used by transcript.
recall this post
On Jan 26, 2004, at 10:50 PM, Alex Rice wrote:
> Instead of ad-hoc message passing and script evaluation found in
> xtalks, Eiffel code is meticulously crafted with strictly typed
> objects that can only connect with other particular objects and call
> certain functions; "design by contract" they call it.
I keep on thinking about this post I made a couple of weeks ago, and I
am wondering more and more: is Runrev really suitable for mission
critical business or industrial apps where the design is strictly top
down with a rigid and well defined plan about how the objects are
required to interact with the rest of the system?
Look at Eiffel as the total opposite extreme from xtalks: the eiffel
compiler won't even build your code unless it can say with certainty if
a particular message is passed, it will have x,y,z pre conditions and
post conditions- you can count on a particular state of the system.
At a job interview once the guy was asking me about Objective-C, which
I had on my resume. As a Java programmer of a large financial app, he
was skeptical about the messaging model employed by Objective-C: "just
send a message 'out there' for some other object to catch...
hopefully", as he described it. Now he doesn't understand how the
Objective-C runtime works exactly, but I can understand the issue he's
worried about: How do you know whether a message will arrive at it's
intended destination (object).
In short- you don't know, unless the compiler and the language work
together to give that kind of assurance. Java goes a long way towards
this goal because it won't compile if any method call or any parameter
does not match the signature of the objects used.
Objective-C is compiled so if you are using typed objects, the compiler
gives you a degree of safety that object x will accept message y at
runtime. But with Objective-C it's still a smalltalk like "throw a
message out there".
xtalk (transcript) however is a total free-for-all. As messages are
fired off, any handler could dynamically change the message path via
front scripts, back scripts, insert scripts, etc. Think about it: it
literally is what that interviewer was talking about: "just send a
message 'out there' for some object to catch... hopefully". If the
intended object does not receive the message, how will you know? Is
exception handling working? Is errorDialog working? Did another object
handle the message? How did that other object get in the message path?
So the continuum of languages maybe looks something like this:
xtalks <-> smalltalk <-> objective-c <-> C++ <-> Java <-> Eiffel
Dan Schafer, if you are reading this far, How did smalltalk deal with
this issue, if it was a issue, in the eyes of customers getting large
business apps in written in smalltalk? I'm sure they had to deal with
it at some point as they tried to convince customers to use them
instead of some C++ programmers or Fortran or Ada or something. It
would be interesting to learn from the history of both smalltalk and
xalks. So when we walk into the board room we can defend the reputation
of 4GL scripting languages with acumen.
--
Alex Rice | Mindlube Software | http://mindlube.com
More information about the use-livecode
mailing list