mission critical apps; was Re: cross platform ide
Alex Rice
alex at mindlube.com
Mon Feb 9 01:09:01 EST 2004
"Well *I* can write reliable code in transcript". Of course! If we all
didn't believe that we would not be using Runrev as our favorite
development tool right?
I don't mean to be pedantic about this. I want anyone trying to write
business apps with runrev to succeed. Before you can succeed you have
to get in the door. Before you can get in the door you have to justify
and get funding for your dev. tools, or get a client to sign off on a
technical spec of the project. I am just raising issues that I think
runrev users should be aware of if they are bringing runrev into
corporate IT environments, where correctness and reliability is
important. By "important" I don't mean important because some suit
likes the buzzword "mission-critical". I mean where $, property, or
safety is actually at stake.
Rob C wrote:
> If the intended objet does not receive the message, the programmer
> screwed up.
The question I am raising is not whether it is possible for programmers
to screw up using xtalk code, rather: how are you going to sell xtalks
in a corporate environment where reliability and correctness is more
important than programmer productivity? Imagine a manager or programmer
is in your face asking for a justification of the xtalk/smalltalk
messaging model where the message traipses up the message path, landing
on whatever object it may land (in their subjective view, that is).
It's a legitimate question, issue, and (perhaps) there are places where
xtalks are not a good solution. A very few places.
Ken N wrote:
> The
> message --> the object. The message is now on a rail, can't go anywhere
> else.
Your "rails" concept is appealing, but in reality you don't know until
*at runtime* if the message lands where you intended. Furthermore,
getting the message to the object is only part of the problem. Ensuring
the object can accept the message is the other part: the message having
the right number and type of parameters.
What's worse is in complex apps you are probably going to be
manipulating the message path with "send", "start using", or evaluating
dynamic code with "do" or "value". I deduce from the existence of such
language features: the message is not on a rail. In other words, the
message path can change at runtime.
Even if the message path is not changing at runtime, it's still tricky.
Something that has bitten me many times in transcript is sending a
message to "this card" or "this stack" only to discover this card or
this stack was not the one *I thought I was sending to*.
Ken N wrote:
> I admit, the models I use are much more simplistic than you fellers
> seem to
> be describing, but I never had one miss or get lost if I did it like I
> described.
Again: formalize it and be able to explain it to managers and other
programmers. Make a case study for runrev to post on their website. Or
write a HOW-To and post it to RevNet. Seriously. I'm not singling you
out Ken; anyone who's thinking the same thing, I challenge you.
Myself, I admit to having lots of message path problems. There is a
learning curve about the message path. I guess it depends what kind of
apps you are writing and whether you use "send" , "do" , "value",
"start using"; the features of the language that involve different
parts of the message path.
Also, consider the possibility that maybe you don't even know if
messages not reaching their destination. Did you know there is a bug
with errorDialog in standalones, and with try/catch exception handling
in the IDE? Dar once filed a bug that messages start getting unreliable
after many million messages or weeks of runtime (I forget the details
or even if it was a legitimate bug). Issues like these will thwart even
the most well intentioned and diligent xtalk programmer.
The questions I intended to bring up were:
1) In a technical interview, or when trying to sell an xtalk solution
to corporate IT dept, you may run into someone who challenges the
xtalk/smalltalk messaging model. I described in a previous post that
interview where the Java engineer was challenging me about Objective-C.
It's possible the issue will come up for other
xtalk/smalltalk/objective-C programmers too.
2) Is a tool that's really good for games and multimedia also a good
tool for making ultra-reliable business applications? There is an
saying something like: When all you have is a hammer, everything looks
like a nail. Can the 'All talking All singing All dancing' Runrev
really be the 1 true tool that we want it to be?
Another anecdote:
I wrote some Perl CGI programs at an insurance company, for auto and
homeowners policies. There were definitely mission critical aspects
because large amounts of money were involved in the transactions. But
the Perl CGI programs were just taking initial information for new
policy applications, and providing quotes, before a policy was even
active. So it's OK that the Perl code was rushed and hastily done and
that it was _Perl_ which is even more weird and flexible and dynamic as
xtalk. It's OK: because the mission critical stuff like billing, claims
and actuarials were done in some other language, probably in Oracle
PL/SQL. In hindsight Runrev could have been fine for the former purpose
(the Perl part), but not the latter (the Oracle PL/SQL part).
--
Alex Rice | Mindlube Software | http://mindlube.com
More information about the use-livecode
mailing list