Jump to content
xisto Community
Giniu

Eiffel Faster, Easier, Smarter...

Recommended Posts

Hi,

Just wanted to check if anyone there knows Eiffel? Eiffel is not well known language that was created in 1986 by Bertrand Meyer. Eiffel has many implementations, one from it's author - implementation free for Open Source projects and very costy for others... but Eiffel also has one fully OpenSource implementation...

so what is so good about it that it's worth to learn other language? Let's just write few things that are connected to SmartEiffel - Open Source implementation of Eiffel:

- first of all - it's very powerfull object oriented language - one of few true object oriented languages like Small Talk... it have very robust multiple inheritance with selective export of features, transparency, feature renaming, generic clases, and hundreds other neat features... It can start war but it's OO design is LOOOOT more complete than in Hybrid languages like C++ or Java but this is sure in case of Pure-OO... :)

- then it's slow you say like all this OO crap? nope - it's faster than C++ and have smaller memory footprint while it still have garbage collection (you can choose gc you want or even none if you are sure about your app)

- so it won't run on most modern hardware you say? Again wrong - in theory it runs everywhere where simple GCC can run... in practise you have Windows, Unix and MacOS offically supported - rest you have to test yourself...

- ok - so I still prefer C++/Java, I can do this or that in it... (web aplets, drivers, ...) - ok - you can do that in C++/Java... but they are very hard to learn compared to Eiffel - and - in Eiffel you can use option "compile to C" or "compile to JVM" to get portable source code or Java executable...

- so how about reuse of existing software? you can call C in almost in-line fasion when you just make executable or compile to C, same for Java when you are using compile to jvm...

- at last, probably it has very long syntax that wasn't seen anywhere else? a bit... there is example file hello_world.e, straight from compiler "tutorial" dir:

class HELLO_WORLD	--	-- The "Hi World program" for SmartEiffel :-)	--	-- To compile type command : compile hello_world	-- Run with command : a.out	--	-- To compile an optimized version type : compile hello_world -boost -O2	--	-- To produce Java bytecode : compile_to_jvm -o hello hello_world	-- To run the Java bytecode : java hello	--creation {ANY}	makefeature {ANY}	make is		do			io.put_string("Hello World.%N")		endend -- class HELLO_WORLD
also Eiffel it's not only language - it's whole method... with tools like "unit tests", "pretty printers", "project compilation management" and lot's more... there are some libraries out there and already few small games made with that language... take a look at: http://games.ethz.ch/ - all those made by students at short time...

so if at least one person is interested I think I can start some tutorial there - it's easy language, but not very popular (probably because so called "design by contract"). Or probably anyone there that knows that language and we can write it together? (I don't need points or hosting, probably in team we could produce document in better quality - C'mon, let's do this - would this be first tutorial wrote by two? :))...

remember - this is one of languages that changes the way you code...

\G

PS.: to prove it's faster than C++ I put this test result: [shootout.alioth.debian.org - subpage with Eiffel vs C++ test] - it's slower than C++ in few tests just because it don't have that dangerous direct memory access... so making something round way is slow... but if realy must use direct memory access that's why you can just call C function... to say it's faster or better or something in GENERAL I use this comparsion: [ same page as above, just shows all languages... ] - so those are not only my thoughts but are confirmed with tests...

and my personal opinion - this language together with C, Erlang and Ruby makes you super hero... C for dangerous tasks, Erlang because have 20 times faster concurency than almost any other language, Ruby for RoR and fast scripting... Eiffel for general system prototyping, design and development...

-- edit --

one interesting thing I forgot - SmartEiffel compiler is written in Eiffel, every single class is written just like any other class you write, there is just no little difference in how you write them or how you use them... all can learn a lot just by reading standard library implementation... for example default windowing widgets - EiffelVision or some other libraries from base system or 3'rd party libraries like ESDL.

-- edit --

ok - so links above don't show that SmartEiffel is faster than C++, now it is bit slower, probably someone rewrote C++ version or they use never compiler, while they probably use latest stable SmartEiffel not svn snapshot that is far better - all languages are getting better and Eiffel is still on top together with others (in first 5, well - even if in first 10 it is still good... really noone is interested? even a bit? ok then... I will keep it for other time :D )
Edited by Giniu (see edit history)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.