This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Question re. FSF GNU SmallEiffel vs. C and C++


From what I understand about Eiffel when I was studying it in University, is
that this language is more robust in certain aspects like strong
assertions(pre- and post-), no pointers(doesn't allow the programmer to
manipulate pointers directly), type checking, etc.  This means that there is
less likelyhood of programs corrupting data or overwriting information in
memory, etc.  The ESA (European Space Agency) uses Eiffel for their
programs.  In short, this language was designed so that you don't screw up
and destroy a multi-billion dollar project due to a small error in your
data.

The thing that I'd like to stress is that Eiffel is actually an evolution in
to a programming language.  It started off as a methodology for programming
or something like that, and then evolved in to a programming language of its
own right.  It is not in fact a front end language.  The reason that the
implementors of the language chose to convert the code into C or C++ is for
performance reasons, as compilers for C and C++ at that time was very
efficient as well as fast execution code;  it is able to interface with a
multitude of other languages; and furthermore C or C++ is a mainstay for
UNIX systems.

If you ask me what I think about Java, I'd say that it is a hyped up
language that is useful for only one thing, which is flashy moving graphics.
It is basically useless for anything else other than online internet
applications which are slow and basically a reinvention of the wheel (A
C/C++ wannabe).  The only good thing going for Java is the multiplatform
use, which I think is not that great at all.  Don't even bother comparing
Eiffel to Java or even C/C++ for that matter, as these languages were
designed for different applications.

Ok, this is just my point of view on things, so don't start flaming me.

Cheers,
Saran.



-----Original Message-----
From: gcc-help-owner@gcc.gnu.org [mailto:gcc-help-owner@gcc.gnu.org]On
Behalf Of mike corbeil ordinary user account
Sent: Wednesday, October 18, 2000 10:35 PM
To: 'gcc-help@gcc.gnu.org'
Subject: Re: Question re. FSF GNU SmallEiffel vs. C and C++


Alexandre Oliva wrote:
>
> On Oct 17, 2000, mike corbeil ordinary user account
<mcorbeil@NetRevolution.com> wrote:

Since I didn't get nailed in any way for posting the question to this
mailing list, I'll venture a little further, because I don't know that
you'd want this only sent direct to you.  The bit more follows your
respone.

>
> > the SmallEiffel compiler translates the code to or into C, followed
> > (obv.) by compiling the C code.  This seems tentatively or possibly
> > okay, or even good, if it avoids problems people have with C++, and
> > C; however, this also means that SmallEiffel is more of a macro
> > language than a real one, albeit modelled after or based on the
> > Eiffel language.
>
> This is not unlike the first implementation of C++, that was also a
> translator from C++ to C.  Given enough time and interest, people may
> eventually write a front-end for GCC, that may allow more higher-level
> information about the source program to be exposed to the compiler,
> providing for language-specific optimizations.

In other words, you're not saying that Eiffel or SmallEiffel is
something you're against, based on your experience and knowledge, if I
understand you correctly.

I found some material to read last night (I have a book from several
years ago, but it's not within reach) and from the albeit small amount
of actual Eiffel language used to highlight certain aspects or strengths
of the language, it looks interesting.

I've taken an OOP course using C++, read a few or more reputable books,
and worked for a few months with it; however, having read several months
ago that Eiffel was considered better, I'm wondering which to focus on
for some self-study and subsequently trying to find employment.

I have around ten years experience, mostly on Unix, with "enough" C and
shell scripting, database and gui development, PASCAL (years ago), some
FORTRAN, ..., and a b.sc. CS (swe).  With all of the importation of
foreign labor, I'm in need of  taking some time to learn Linux, Perl
(these two, I've been working on for about six months), and would like
to get some good compiled language in the mix.

Even if I've already more than broken the ice with C++, I've heard or
read that many people or projects have problems with it, and the little
I've read about Eiffel makes it sound like a good way to go.  There
aren't presently many jobs for this, but there are a few or more
companies which are apparently using it.  If it is as good as what I've
read, then I may have some chance of getting future clients (or
employers) to accept using Eiffel, especially since it's a "front-end"
to C and makes C programs better (supposedly anyway).

The fact that it does compile to C, they're working on improving the
compile to Java bytecode (which SmallEiffel already has some of), and
"hooks" to C and (I believe) C++ are supported, well, this makes Eiffel
seem of value (but I'm not sure).  Someone from Lockheed, a guru or a
manager (or both), supposedly recommends Eiffel over Ada95, and from
what I read, it's only a little slower than normal C and C++ binaries,
due to assertions.  The expressiveness looks, at least initially,
interesting, and I like focusing on providing good and "clean"
solutions.

However, I don't have personal acquaintances who know anything about
Eiffel; therefore, I've only the little reading for a basis.  The
documents I've read on Eiffel speak more highly of Java compared to C++,
and don't seem to make a whole lot of the difference between Eiffel vs.
Java, but do say that Eiffel is better in some supposedly important ways
(I don't remember exactly which these are).  I only know of Java being
used for internet/intranet/web, my background is systems programming,
and I haven't been planning on becoming a web developer, not per se
anyway (if I got hired for that, then ...).

Having C for experience and Eiffel compiling to C, with many companies
using GCC, seems a potential plus.

I think that I'm satisfied with it compiling to C, after last night's
reading.  Using Eiffel may be or is a way of providing more reliable C
code, and with C being considered an object-based language, good for
component oriented development, the extra or robust data typing of
Eiffel makes it, again, seem probably worthwhile.

Linux and Perl, alone, with my prior experience, should open doors of
opportunity, but I'd like to learn more OOA/OOD/OOP with a compiled
language.  Java would be an option, and I wouldn't mind Smalltalk, but
I'm in the world of fuzzy logic at the moment, evidently.

This, hopefully, isn't too long and not too out of place for this
mailing list, however do you have any further tips or feedback to share
based on this additional gibberish?  It'd be appreciated, if you have
any.

P.S.  I don't really care whether work is in FORTRAN, C, C++, ... for
the primary focus is to do the best that can be done with which ever
language is pertinent to a job.  For new development, providing the
best, or at least a very good, solution, one that's easy to understand,
maintain, and reliable, is the way (in case this is of any help in
understanding where I'm "coming from").  (Sorry for the length.)


>
> --
> Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
> Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
> CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
> Free Software Evangelist    *Please* write to mailing lists, not to me


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]