Subject: Re: corba or sockets?
From: Erik Naggum <erik@naggum.net>
Date: 01 Nov 2000 02:32:55 +0000
Newsgroups: comp.lang.lisp
Message-ID: <3182034775888846@naggum.net>

* Jon S Anthony <jsa@synquiry.com>
| Again, if you're interested in getting into the protocol business,
| that's a different story.

  This seems to be your key argument, that there is a primary business
  and lots of ancillary concerns for which it is better to use the
  results of somebody else's primary business than dabble in it.  I do
  not agree with this for several reasons.  First, if you discover
  that you need better control over some ancillary concern, you may
  have to make it the primary business of some person or group in your
  company.  Second, if you find that you cannot afford to do it on
  your own, but need something different from the available offerings,
  you may cause somebody else to spawn a similar new primary business,
  such as a consortium.  Third, you may discover that as you go abaout
  your business, you gravitate towards certain concerns that are very
  different from what you set out to do, and your primary business may
  change to a previously ancillary concern, not the least because the
  only way to improve your previous primary business to do something
  else entirely.  All of these have happened to me, and I claim that
  if you're making any effort to be good at what you do, you will not
  be able to tell beforehand what you will do best in.

| Designing is only a fraction of the effort.

  I see that it is somehow important to you to exaggerate the costs of
  "rolling your own", but I'd like to know why.  It may be necessary
  to defend the choice of using CORBA, but I have _already_ stated in
  plain text and simple terms that if you can't do it better yourself,
  by all means, stick with what somebody else did even if that is not
  particularly good, so I hoped that we would have that condition
  behind us, but you keep carping on this cost of not doing it better.
  I fail to see the relevance in context.

  I'm effectively arguing that out-doing CORBA is not that hard, but
  having said

    CORBA is already badly designed, so if you are new to sockets and
    protocol design (which you will get yourself into), the likelihood
    that you, too, will design your protocol badly is so high that it
    is probably better to go with CORBA.

  the rather obvious (to me, anyway) ramification is that you should
  be good enough at what you do to out-do CORBA.

| You then need to implement it across several platforms and make it
| available for use in an effectively open ended set of languages (at
| the least C++ and Java).  Given what we are doing, I would guess it
| would have taken well over a person year or more of resources.  And
| for what?  To get something just as good?  Probably not even as good
| if you factor in such things as the IDL compilers, exceptions, and
| the like.

  I started out overhauling a system that spent 6 seconds from end
  system to end system at best, with more than 120 seconds worst case.
  It was the third generation of a system I built in 1989 that then
  guaranteed 2 seconds from end system to end system.  It was simply
  so incompetently done that it had to be rewritten.  I got it down to
  the old standards in the summer of 1998.  To move beyond that into
  the 500 ms guaranteed end system to end system transmission times,
  including more and more clients on the randomly performing Internet
  instead of dedicated lines with known characteristics, much higher
  bandwidth and even higher transmission needs, I had months and
  months of hard work cut out for me.

  This stuff is not for sale to random clients as a packaged product,
  and it won't be, either.  It is not in my employer's interest to
  sell the server side of my protocol, because that has become one of
  the main reasons we're ahead of the pack.  The protocol is intended
  to be open to the public and a tremendous amount of work has been
  put into ensuring that a client can be written in a short time, like
  a week for a reasonably competent programmer regardless of language,
  while the server has taken almost 18 months.

| Now, an order of magnitude better (depending on how that gain is
| distribted), that would be a different story, but the effort would
| go up dramatically and you are then basically in the distributed
| object protocol _business_ (or at least you _should_ be).

  I think you have a fairly naive view of the separation between the
  primary business and the ancillary concerns of an endeavor.  Our
  _primary_ business is delivering financial news to investors and
  brokers.  The protocol design became _my_ primary business when I
  found that we were destined to waste a lot of time if we stuck with
  off-the-shelf products, and I'm paid exceedingly well to develop,
  maintain, and promulgate this protocol.  This came to be because I
  have managers who saw the value of my work and listened to my
  concerns and honored my request to be free to work on this for as
  long as I wanted.  Now I can honestly say that whatever I take home
  from this project is miniscule compared to what it brings in.  This
  was not something that could have been realized if anyone had had
  the naive "primary business" view of what we intended to be good at.
  Nowhere in our business plans would you find mention of what I do
  for this company, because it isn't what we tell people about, and we
  don't make any money from my work, we make the money _with_ my work.

#:Erik
-- 
  Does anyone remember where I parked Air Force One?
                                   -- George W. Bush