comp.lang.ada
 help / color / mirror / Atom feed
From: Jared <nowhere@nowhere.nowhere>
Subject: Re: NOACE- End of the road for Ada?
Date: Mon, 14 Mar 2005 05:13:22 GMT
Date: 2005-03-14T05:13:22+00:00	[thread overview]
Message-ID: <S39Zd.1389$fO6.3528@news.uswest.net> (raw)
In-Reply-To: vQ%Yd.19429$OU1.18883@newssvr21.news.prodigy.com

I could be wrong about all of this.  I often am.

<adaworks@sbcglobal.net> wrote in news:vQ%Yd.19429$OU1.18883
@newssvr21.news.prodigy.com:
> The move toward Java has nothing to do with
> whether Java is superior to
> Ada. It's not.   Is it easier to learn than Ada?
> No.   Is it more efficient
> than Ada?  Certainly not.   Is it easier to code
> than Ada?  Not at all.
> Does it produce better executables?   Not at all.

This is wrong.  I'm sorry.  I like Ada.  I want to believe it is right, but 
it isn't.

Sun is behind Java.  They've been hyping it.  They've been pushing it.  
They've been doing everything they can to keep it in the press.  That's 
great, and it gives Java a chance to succeed, but that's all it gives it.  
Java really is better, in a marketing sense, and sort of better in a 
conceptual sense.

> So why is it taking over the programming landscape
> like kudzu or crabgrass
> on an Alabama lawn?

Rant abstract: Java is more popular because its syntax better represents 
OO.  If you're bored of that argument, there is another, much shorter one, 
at the first separator.  If you're bored of that one, there's a third one, 
but it isn't very constructive.


Java, as has been pointed out elsewhere on this group, is basically C++ 
with all the bad parts removed and with garbage collection added.  Java is 
comfortable to all the C people, because of its syntax, because of its 
culture, and because it pretends to share the C++ idioms.  Nobody is going 
to switch to a language that feels uncomfortable unless it has some really 
neat gimmick.  (For example, Oz and Piccola have really neat gimmicks.)  In 
a market sense, even without the hype, this makes Java better.

It's worse than that, though.  Java got namespaces mostly right.  It got 
packaging mostly right.  A package isn't a namespace.  It's really tempting 
to identify them, but the real namespaces are the variables.

Why do you think Object.Method syntax is so popular?  What was the big deal 
with the 'use type' clause?  And what are all those Smalltalk people 
yammering about when they talk about sending messages to objects?  The 
variable is the namespace.  The method exists within it.  It isn't in the 
package.  The package isn't really a real thing; it's a variable of 
anonymous type.  The reason that Object.Method and Package.Method are 
indistinguishable it that they are indistinct.

So, for example, suppose I have:

package thing is
  a: integer := 0;
  procedure do_something;
end thing;

...

type thing_type is tagged record
  a: integer := 0;
end record;

procedure do_something (t: in out thing);

thing: thing_type;

There's not much difference when I declare it, except that the latter is 
much more verbose and has to be embedded in a package.  There's no 
difference at all when I use it.  There is a difference when I try to 
extend it, but was anyone paying attention when Dmitry suggested that 
'use' be transitive?

What I mean by getting packaging mostly right should be clear by now.  The 
type (class, or whatever one wants to call it) is the natural unit of 
packaging.  Consider the following common idiom:

package shoes is
  type shoe is tagged record with private;
  ...
end shoes;

With no other types declared in the package.  Wouldn't it just be easier to 
let the type be a package?  That's about all I have to say about that.

So, in conclusion, Java represents a cleaner presentation of OO than Ada.

But that's all it is.  Java's model is not really any better from Ada's; it 
just looks better, or rather, it's presented in a way that people prefer.  
It's just presentation, but presentation is critical.  Many industries 
exist almost entirely on presentation, with substance coming in a distant 
second.

Yes, I know Ada was meant to be legible.  But it has a low signal to noise 
ratio.

Want Ada to be more popular?  Write an alternate syntax.  Play up objects.  
Make them the focus.  Read up on the pi calculus, and compare with 
protected types and streams.  Above all, if something doesn't need to be 
said more than once, it shouldn't be.

For example, see:
http://www.cs.uofs.edu/~beidler/Ada/gnat/win_task-threads.html

The package at that link was the fifth hit for 'pragma import' on Google.  
It contains 'pragma Import (StdCall, foo, "foo")' 18 times and 'pragma 
Import (C, foo, "foo")' twice.  Not one of the StdCall functions is 
renamed.  The sum of the renaming for the C functions is to strip the 
leading underscore.  That's noise.  It makes every single function 
declaration two lines longer than necessary without conveying a single bit 
of information more than, say,

import StdCall "CreateThread" (args).

There are many many great features in the language, but the syntax bogs it 
all down in a ton of noise.

---

Actually, I do have one argument besides the old "the syntax sucks" dead 
horse.  Think about Perl.

Perl was created to solve a problem.  It thrives because it filled a niche, 
and did it well.  Ada didn't have that kind of focus.  The ARG needs to 
find new niches and fill them well.  It needs to defend hard real-time and 
do so quickly, because that's being lost to Java.  A garbage collected 
language!  For real-time systems!

Government contracting isn't a niche.  It's a hog trough; a place to become 
bloated and lazy.

And that's about all I have to say, unless somebody needs a clarification.  
That quite likely; I doubt the previous made much more sense than it did 
the first time I tried to formulate it.

---

Now, you don't have to buy into any of that.  So here's an alternate 
theory, based on the grass analogy.  From an article in a university 
newspaper:

 "One of the more common questions I'm asked is how to control Bermuda 
grass in the lawn. My standard reply is 'asphalt'," says Jerry Goodspeed, 
Utah State University Extension horticulturist. Unfortunately, Bermuda 
grass can grow through asphalt and really thrive.

There you go.  Java is the weed that won't die and Sun (pun not intended) 
is making sure it stays that way.


> I continue to believe that Ada is as good, often
> better, as a programming language
> than either Java or C++.   But that is not a
> widespread belief throughout the DoD.

Myopically focusing on Java and C++ is a good way to ensure that Ada is 
never more than marginally better than either.  There's a lot of research 
going on out there.  For example,
www.cis.upenn.edu/~bcpierce/ papers/tng-lics2003-slides.pdf

Much of this research is geared at making functional and denotational 
languages more efficient.  I have full confidence that the Mozart/Oz people 
will screw up their chance to become the Next Big Thing.  But somebody 
won't, and that could happen tomorrow.

> There is no large company currently pushing Ada.
> There are no substantial financial
> resources behind it.   Even the companies that
> publish Ada compilers, with the exception
> of Ada Core, RR Software, and Irvine Compiler, are
> focusing their attention and their
> advertsising dollars on other products.

Where are the big bucks behind, say, Ruby?  What is Ruby's growth rate, 
compared to Ada's?  What can be learned here?


> Who will champion Ada?

AWS.  APQ, maybe.  Maybe Nick Roberts, if he ever gets anywhere.  The other 
projects.  You.  Maybe me.  We don't need big companies.  We don't need 
money.  We need, if you'll forgive me for putting it this way, the coolness 
factor.

Step 2: ???

Step 3: Profit!

I'm still working on step 2.



  parent reply	other threads:[~2005-03-14  5:13 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-10  2:33 NOACE- End of the road for Ada? Michael Card
2005-03-10  4:33 ` Alexander E. Kopilovich
2005-03-10 13:42   ` Michael Card
2005-03-10 21:57     ` Ludovic Brenta
2005-03-11  4:53     ` Alexander E. Kopilovich
2005-03-10 21:39   ` Frank J. Lhota
2005-03-12 19:08 ` svaa
2005-03-13  1:59   ` Stephen Leake
2005-03-13 12:44     ` svaa
2005-03-13 14:22       ` Stephen Leake
2005-03-13 14:56         ` Dmitry A. Kazakov
2005-03-13 21:50         ` Dr. Adrian Wrigley
2005-03-13 23:39           ` Larry Kilgallen
2005-03-13 23:20         ` Dr. Adrian Wrigley
2005-03-14  0:25           ` Michael Card
2005-03-14  2:11             ` Ed Falis
2005-03-14  2:29               ` Dr. Adrian Wrigley
2005-03-16  4:49             ` Wes Groleau
2005-03-14  2:22           ` Jeff C
2005-03-13 17:23       ` Marin David Condic
2005-03-13 18:42 ` adaworks
2005-03-13 19:58   ` Peter C. Chapin
2005-03-13 20:14     ` Pascal Obry
2005-03-14  5:13   ` Jared [this message]
2005-03-14 13:42     ` Marin David Condic
2005-03-15  0:34       ` Alexander E. Kopilovich
2005-03-15 10:52         ` Marin David Condic
2005-03-16  5:15           ` Alexander E. Kopilovich
2005-03-16 17:42             ` Marin David Condic
2005-03-17  2:34               ` adaworks
2005-03-17 13:25                 ` Marin David Condic
2005-03-17 15:35                   ` Dmitry A. Kazakov
2005-03-18 12:34                     ` Marin David Condic
2005-03-17  4:56               ` Alexander E. Kopilovich
2005-03-17 13:56                 ` Marin David Condic
2005-03-18 22:22                   ` Alexander E. Kopilovich
2005-03-19 13:43                     ` Marin David Condic
2005-03-17 14:54                 ` Dr. Adrian Wrigley
2005-03-18  1:26                   ` Alexander E. Kopilovich
2005-03-30  8:46                 ` jtg
2005-03-15  4:00     ` adaworks
2005-03-16 20:18       ` Robert A Duff
2005-03-17  2:48         ` adaworks
2005-03-17  3:54         ` Alexander E. Kopilovich
2005-03-18  2:45           ` adaworks
2005-03-18  3:45             ` Wes Groleau
2005-03-18  8:43               ` Dmitry A. Kazakov
2005-03-18 13:04               ` Robert A Duff
2005-03-18 14:03                 ` Jean-Pierre Rosen
2005-03-20 13:47       ` Marin David Condic
2005-03-20 17:29         ` adaworks
2005-03-21 13:07           ` Marin David Condic
2005-03-21 13:59             ` Peter Hermann
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox