comp.lang.ada
 help / color / mirror / Atom feed
From: Georg Bauhaus <rm.tsoh.plus-bug.bauhaus@maps.futureapps.de>
Subject: Re: Ada vs Eiffel - Ada programmer approach
Date: Sun, 24 May 2009 14:17:51 +0200
Date: 2009-05-24T14:17:51+02:00	[thread overview]
Message-ID: <4a193aef$0$31865$9b4e6d93@newsspool3.arcor-online.net> (raw)
In-Reply-To: <405b5054-4c8f-4e16-9ea8-503a9b9f976e@t21g2000yqi.googlegroups.com>

Tomek Walkuski wrote:
> Hi group,
> 
> I do not want to start another flame war which language is better. I
> think that Ada and Eiffel target same field 

Ah, really? :-)


- Eiffel has garbage collection by default. Good for programs
  that can afford it.

- Eiffel offers a little less to support systems/hardware
  programming directly
 (for example, the base type system is frozen, which means
  that you cannot have basic types of the range 0 .. 100 kind,
  the advice being to use DbC assertions instead.  For bit
  operations we can use features from class NATURAL_32 ...
  There is class POINTER/POINTER_REF; it may be necessary
  to use "extern",  i.e. C, for hardware address things...
  Not sure about the latter, though.  Ada's loop is more
  flexible, which I guess matters when a program is to run
  in 64kB or less, or when I want tight control over inner
  loops).

- Eiffel has, or used to have, a "standardized" separate cluster
  language for namespace things and also configuration.
  (Currently being, uh, reworked?) I like the configuration part
  because it removes vendor specific language without impeding
  vendors I should think.
  You can't see the "namespaces" in the source proper. Good or bad?
  Advice is: Use EiffelStudio.

- Eiffel's cuncurrency features are basically experimental.
  (Side note: the Redomond amoeba has recently embraced the
  word "task".)  While Eiffel's "separate" and SCOOP are
  defined, class THREAD is mentioned a lot ...
  The SmartEiffel language is said not to be  thread safe at
  this time.

- Ada's separate specification is only possible using deferred
  classes in Eiffel.  You can then use the cluster language to
  rename this or that class as a "body" class, implementing
  any deferred feature.  Using deferred this way seems like a
  misuse to me.

- Eiffel has full multiple inheritance. Not sure this is
  a big deal, in practice, compared to mix-in generics, but it
  is being used to add characteristics such as HASHABLE or
  INDEXABLE.  Seems somewhat less "flexible" than Ada generic
  actuals that can be supplied from just about anywhere,
  including from local scopes.  (Not sure there are no Eiffel
  tricks here, using [anonymous] agents, though.)

- Eiffel's Design by Contract is only beginning to be present
  in Ada.  (Not mentioning SPARK.) Still praying...

- Eiffel is flat (anonymous agents being an exception of sorts...),
  Ada allows nesting, including local types.

I really missed the explicit packaging structure of Ada when
writing the same (sequential) program in both Eiffel and Ada.



  parent reply	other threads:[~2009-05-24 12:17 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-24  8:39 Ada vs Eiffel - Ada programmer approach Tomek Walkuski
2009-05-24 11:49 ` anon
2009-05-24 12:26   ` Georg Bauhaus
2009-05-24 12:17 ` Georg Bauhaus [this message]
2009-05-24 16:31 ` Pascal Obry
2009-05-25 16:32   ` Rugxulo
2009-05-26 13:37   ` Ludovic Brenta
2009-05-26 14:51     ` Dmitry A. Kazakov
2009-05-26 17:26       ` Georg Bauhaus
2009-05-26 17:39         ` Dmitry A. Kazakov
2009-05-26 17:59           ` Georg Bauhaus
2009-05-26 19:52             ` Dmitry A. Kazakov
2009-05-26 20:14               ` Pascal Obry
2009-05-26 20:25                 ` Pascal Obry
2009-05-26 21:28                 ` Dmitry A. Kazakov
2009-05-26 18:23       ` Jeffrey R. Carter
2009-05-26 15:07     ` Tim Rowe
2009-05-26 16:37       ` Georg Bauhaus
2009-05-28  8:37         ` Nicholas Paul Collin Gloucester
2009-06-01 16:22         ` Tim Rowe
2009-06-04  7:35       ` Hibou57 (Yannick Duchêne)
2009-06-04  9:46         ` Martin
2009-06-04 12:16           ` Hibou57 (Yannick Duchêne)
2009-06-04  9:56         ` Jean-Pierre Rosen
2009-06-16  6:58         ` ardjussi
2009-06-16 17:22           ` Jeffrey R. Carter
2009-05-26 18:21     ` Jeffrey R. Carter
2009-05-26 18:35       ` Dmitry A. Kazakov
2009-06-04  7:39       ` Hibou57 (Yannick Duchêne)
2009-06-04  9:02         ` Ludovic Brenta
2009-06-04  9:19           ` Dmitry A. Kazakov
2009-06-04 12:14             ` Hibou57 (Yannick Duchêne)
2009-06-04 14:14               ` Dmitry A. Kazakov
2009-06-04 16:45         ` Jeffrey R. Carter
2009-06-04  7:30     ` Hibou57 (Yannick Duchêne)
2009-06-04  7:55       ` Ludovic Brenta
2009-06-04  8:45         ` Georg Bauhaus
2009-06-04  9:03           ` Ludovic Brenta
2009-06-04 13:25         ` Robert A Duff
2009-06-04 13:39           ` Martin
2009-06-04 13:08             ` stefan-lucks
2009-06-08 12:41           ` Samuel Tardieu
2009-06-08 19:37             ` Robert A Duff
2009-06-08 22:52               ` Randy Brukardt
2009-06-09  7:39                 ` Dmitry A. Kazakov
2009-06-10  6:55               ` Hibou57 (Yannick Duchêne)
2009-06-10  6:58               ` Hibou57 (Yannick Duchêne)
2009-06-10 11:10                 ` Georg Bauhaus
2009-06-04  7:04   ` Hibou57 (Yannick Duchêne)
2009-06-04  6:04 ` Hibou57 (Yannick Duchêne)
2009-06-06 14:27   ` Marco
2009-06-06 15:37     ` Tomek Wałkuski
replies disabled

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