From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!feeder.news-service.com!xlned.com!feeder1.xlned.com!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!npeer.de.kpn-eurorings.net!npeer-ng0.de.kpn-eurorings.net!newsfeed.arcor.de!newsspool1.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Sun, 24 May 2009 14:17:51 +0200 From: Georg Bauhaus Reply-To: rm.tsoh+bauhaus@maps.futureapps.de User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Ada vs Eiffel - Ada programmer approach References: <405b5054-4c8f-4e16-9ea8-503a9b9f976e@t21g2000yqi.googlegroups.com> In-Reply-To: <405b5054-4c8f-4e16-9ea8-503a9b9f976e@t21g2000yqi.googlegroups.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-ID: <4a193aef$0$31865$9b4e6d93@newsspool3.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 24 May 2009 14:17:51 CEST NNTP-Posting-Host: 49ba3464.newsspool3.arcor-online.net X-Trace: DXC=SPaXiBXk[ek9kIfcjg:0fdMcF=Q^Z^V3h4Fo<]lROoRa^YC2XCjHcbiJE\0ln_FPEiA:ho7QcPOVcQ;SP:PX@V8hU?D;5c@RXGf X-Complaints-To: usenet-abuse@arcor.de Xref: g2news2.google.com comp.lang.ada:5991 Date: 2009-05-24T14:17:51+02:00 List-Id: 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.