Touch of Class - which version

150 views
Skip to first unread message

Saša Janiška

unread,
Jan 13, 2020, 2:17:31 AM1/13/20
to Eiffel Users
Hello,

I'd like to buy a copy of Touch of Class by Bertrand Meyer in order to
learn Eiffel method, but I'm a bit confused seeing that there are
several versions...

Afaict, there is original hardbound July 2009 version
(https://www.amazon.de/Touch-Class-Learning-Program-Contracts/dp/3540921443/ref=dp_ob_title_bk),
then it seems that there is Springer-Verlag, 2009, 2nd corrected ed.
2013 mentioned at eiffel.org
(https://www.amazon.com/Touch-Class-Learning-Program-Contracts/dp/3540921443)
as well as paperback version - Softcover reprint of the original 1st
ed. 2009 edition (23 Aug
2016)(https://www.amazon.de/gp/product/3662519070/ref=dbs_a_def_rwt_bibl_vppi_i1).

Strangely enough, at Springer's site both paperback and hardbound
versions are listed with the same price (51,95€) with free shipping,
but I bet that hardbound must be original 2009 version, while the
softcover must be a newer one which seems correct when I compare ISBN
numbers at https://isbn.nu.

Since I like (learning from) books hardbound version is always
preferable, but wonder which one should I get in this case since the
price (@Amazon) is almost the same for both versions:

a) original 2009 ed. hardcover

b) 2nd corrected ed. 2013 hardcover or

c) softcover reprint of the original 1st ed. 2009 edition from 2016 ?


Sincerely,
Saša

--
He is a perfect yogī who, by comparison to his own self,
sees the true equality of all beings, in both their
happiness and their distress, O Arjuna!

Davide Grandi

unread,
Jan 13, 2020, 7:13:56 AM1/13/20
to eiffel...@googlegroups.com
I've seen a regular copy (a draft ?) in an Eiffel site.

Look at Bertrand Meyer page at ETHZ, maybe it's still there.

Bye,

Davide

On 13/01/2020 08:17, Saša Janiška wrote:
> Touch of Class by Bertrand Meyer

--
Ing. Davide Grandi
email : davide...@email.it
mobile : +39 339 7468 778

Gary Smithrud (GMS134)

unread,
Jan 13, 2020, 8:05:56 AM1/13/20
to eiffel...@googlegroups.com
The site www.eiffel.org has a lot of useful information for the latest version of the language. Unfortunately, I do not know of any book that has been updated to the latest. So my suggestion would be, based on experience, is to read the book to get the concepts, and then look at the site...or just use the site only.

Sent from my iPhone

> On Jan 13, 2020, at 7:13 AM, Davide Grandi <davide...@email.it> wrote:
>
> I've seen a regular copy (a draft ?) in an Eiffel site.
> --
> You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/0a484ca7-e46d-b7ce-9ec5-a9bde59a18e9%40email.it.

Larry Rix

unread,
Jan 13, 2020, 8:11:03 AM1/13/20
to Eiffel Users
First—Bertrand gifted our team several copies years ago. It is an EXCELLENT bit of work and well worth the effort to read.

Second—if there is a corrected/updated version then all the better for you!

Third—I have had the pleasure of instructing perhaps 10 people in Eiffel—taking them from knowing nothing to being competent Eiffel engineers within about a week (M-F 10 hours per day). The result of that experience is—there are four critical parts to learning Eiffel (which is one of the simplest languages ever).

  1. Computer Science
  2. Eiffel the Language
  3. Eiffel the Method
  4. Eiffel Libraries
The computer science part is up to you. What is interesting to note is that in learning Eiffel (language, method, libraries) one gets a lot of CORE CS learning along the way! Do not be afraid to use Google and Wikipedia to expand your knowledge base. I find myself there asking questions and seeking answers all the time! I find that what I do not know can and will hurt me (or at least waste my time). So, I like to go looking and learning. Even if it is just to get a 30K-foot-view.

KEY POINT: How the Eiffel documentation, specifications, and even the EiffelStudio GUI "talk" (e.g. the English prose, style, tempo, etc) is uncommon. In the beginning, I found myself having to "sit-with" the documentation and slow down. I found that my brain was not wired in the same way from all my years of BASIC, smatterings of C, FORTRAN, and (finally) VFP. At first, I was highly frustrated trying to read the material (Example: Eiffel error messages). The best bit of advice I ever received on this was "slow down, OPEN the error message, and then read and understand". I offer you that advice now.

I make this key point (above) because it is a direct preparatory step towards the next bit of advice in learning Eiffel.

RULE: Learn to "think-like-your-compiler" (this is true of ANY software language system you want to learn). Each compiler is designed around rules. For Eiffel, those rules are beautifully laid out in the ECMA standard. Open that link and download the PDF file.

The quickest way to "getting" the language (syntax rules) is to break open and read and then re-read the ECMA 367 language specification. This will teach you to "think-like-your-compiler", which will aid you greatly in mastering the language at the syntax level quickly!

"Eiffel the Method" is where Touch of Class and other Eiffel documentation come into play.

I had a mentor who gave me a great bit of advice. Like most "bits-of-advice", I had to learn over time and through failure-to-follow the value of the advice! The advice was simple: If you want to know how to use a tool, watch someone who already knows and imitate them. In the case of software texts, this means two things: 1) Pair-program with an Eiffel programmer and interact with them (this is what I had the luxury of)—or—2) Read, comprehend, and understand successful software texts already written by professional and accomplished Eiffel developers! I cannot offer this advice too strongly!

Finally—there is the matter of Eiffel Libraries. Reading software texts in the libraries will give you a low and mid-level understanding of how code is thoughtfully designed and laid out. However, it will not give you a high-level overview. You can only get this from some level of study of existing libraries. Once you reach a place where you are comfortable with Eiffel the Language (syntax and validity) and with Eiffel the Method (basics)—I encourage you to sit with the Eiffel libraries. Take them one at a time and do both cursory overviews punctuated with some "deep-dives" into the code. Try building little projects that attempt to utilize the library to accomplish some goal or task. Don't be afraid to fail. Don't be afraid to "not-get-it". Don't be afraid to return again and again.

LIBRARY NOTE: Be aware that there are lots and lots of libraries! Even though I have been at this a while, I just recently got my awareness up around the "framework" libraries that come along with the Eiffel Source—that is—the publicly available code that is behind Eiffel Studio and the Eiffel Compiler and other such tools (e.g. Eiffel Build and so on). Once I was aware of this expanded universe of library resources, I found code that I could "put-to-work" immediately! In my case, I was introduced to the "configuration" library, which allows Eiffel Studio to open, parse, validate, utilize, and otherwise manage ECF files!


Larry Rix

unread,
Jan 13, 2020, 8:21:43 AM1/13/20
to Eiffel Users
Even the summary of the ECMA standard is wonderful!

Allow this summary to guide you like it states: What the specification promises to do and what it clearly promises NOT to do!



ecma_367_overview.PNG



Eric Bezault

unread,
Jan 13, 2020, 8:43:19 AM1/13/20
to eiffel...@googlegroups.com, Davide Grandi
On 13/01/2020 13:13, Davide Grandi wrote:
> I've seen a regular copy (a draft ?) in an Eiffel site.
>
> Look at Bertrand Meyer page at ETHZ, maybe it's still there.

I guess that this is what you had in mind:

http://touch.ethz.ch/

It's only a very tiny part of the book, but this page also
contains additional material.

--
Eric Bezault
mailto:er...@gobosoft.com
http://www.gobosoft.com

Richard

unread,
Jan 13, 2020, 8:02:59 PM1/13/20
to Eiffel Users
Bought my copy last year thru Amazon, best price on their German site at approx USD45.

Saša Janiška

unread,
Jan 14, 2020, 6:55:08 AM1/14/20
to eiffel...@googlegroups.com
On Mon, 13 Jan 2020 17:02:59 -0800 (PST)
Richard <eiffel-...@rth10260.info> wrote:

> >
> > Bought my copy last year thru Amazon, best price on their German
> > site at approx USD45.

Thanks! I like it is a hardbound one. :-)


Sincerely.
Saša

--
When your intelligence has passed out of the dense forest
of delusion, you shall become indifferent to all that has
been heard and all that is to be heard.

Saša Janiška

unread,
Jan 14, 2020, 6:57:12 AM1/14/20
to eiffel...@googlegroups.com
On Mon, 13 Jan 2020 08:05:53 -0500
"Gary Smithrud (GMS134)" <gary.s...@gmail.com> wrote:

> Unfortunately, I do not know of any book that has been updated to the latest.

Any doc online explaining about the differences?

> So my suggestion would be, based on experience, is to read the book to get
> the concepts, and then look at the site...or just use the site only.

OK.


Sincerely,
Saša

--
In the material world, one who is unaffected by whatever good
or evil he may obtain, neither praising it nor despising it,
is firmly fixed in perfect knowledge.

Saša Janiška

unread,
Jan 14, 2020, 7:08:59 AM1/14/20
to eiffel...@googlegroups.com
On Mon, 13 Jan 2020 05:11:03 -0800 (PST)
Larry Rix <lar...@moonshotsoftware.com> wrote:

> It is an EXCELLENT bit of work and well worth the effort to read.

I?m glad I've picked the right one. ;)

> Second—if there is a corrected/updated version then all the better
> for you!

Not knowing whether the later versions are just corrected or updated as well.
Otherwise, I'm leaning towards buying a hardbound book -it's almost 900p.

> Third—I have had the pleasure of instructing perhaps 10 people in
> Eiffel—taking them from knowing nothing to being competent Eiffel
> engineers within about a week (M-F 10 hours per day).

Sounds good. Probably that can't be achieved with e.g. Ada. :-D

> (which is one of the simplest languages ever).

This is certainly one of the important aspect of the language for me -
simplicity rules!

> The computer science part is up to you.

Well I hold university degree in computer engineering, but that was long ago.
At that time I was doing Fortran, C(++), but then my life went into another
direction and now looking for a language to do come back programming as hobby
project.

> KEY POINT: How the Eiffel documentation, specifications, and even the
> EiffelStudio GUI "talk" (e.g. the English prose, style, tempo, etc) is
> uncommon. In the beginning, I found myself having to "sit-with" the
> documentation and slow down. I found that my brain was not wired in the same
> way from all my years of BASIC, smatterings of C, FORTRAN, and (finally) VFP.

:-)

> At first, I was highly frustrated trying to read the material (Example:
> Eiffel error messages). The best bit of advice I ever received on this was
> "slow down, OPEN the error message, and then read and understand". I offer
> you that advice now.

Thank you!

> RULE: Learn to "think-like-your-compiler" (this is true of ANY
> software language system you want to learn). Each compiler is
> designed around rules. For Eiffel, those rules are beautifully laid
> out in the ECMA standard
> <https://www.ecma-international.org/publications/standards/Ecma-367.htm>.
> Open that link and download the PDF file.

Will do!

> "Eiffel the Method" is where Touch of Class and other Eiffel
> documentation come into play.

Good.

> I had a mentor who gave me a great bit of advice. Like most
> "bits-of-advice", I had to learn over time and through
> failure-to-follow the value of the advice! The advice was simple: If
> you want to know how to use a tool, watch someone who already knows
> and imitate them. In the case of software texts, this means two
> things: 1) Pair-program with an Eiffel programmer and interact with
> them (this is what I had the luxury of)—or—2) Read, comprehend, and
> understand successful software texts already written by professional
> and accomplished Eiffel developers! I cannot offer this advice too
> strongly!

I'm not aware of any nearby Eiffel programmers, but will try to take advantage
of reading the source code.

Thanks a lot for such an elaborate answer!


Sincerely,
Saša

--
In this endeavor there is no loss or diminution,
and a little advancement on this path can protect
one from the most dangerous type of fear.

Gary Smithrud (GMS134)

unread,
Jan 16, 2020, 9:03:01 AM1/16/20
to eiffel...@googlegroups.com
I was not able to find the site/page that I was thinking of, but http://dev.erffel.com/Language_road_map will help.

Sent from my iPhone

> On Jan 14, 2020, at 6:57 AM, Saša Janiška <sjan...@gmail.com> wrote:
>
> On Mon, 13 Jan 2020 08:05:53 -0500
> --
> You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/20200114125708.1f36d625%40atmarama.ddns.net.

Anthony W

unread,
Jan 16, 2020, 9:13:07 PM1/16/20
to eiffel...@googlegroups.com
I have the hard cover 2009 edition.

I have been trying to work through it with one of my daughters, to introduce her to programming, and it's been basically a non-starter.

The code and examples in the book are significantly different than the traffic code you are supposed to download and use. Not just "uses a different city name" different - the commands and queries referenced in the book are not present in the latest version of the library I pulled off the internet.

From all appearances, the book and supporting software have been abandoned.


Anthony W

unread,
Jan 16, 2020, 9:35:34 PM1/16/20
to eiffel...@googlegroups.com
Correction -
The library I downloaded wasn't for the book.

The zip file at https://bitbucket.org/nadiapolikarpova/traffic/downloads/ compiles under ES 13.11 and appears to be the same source (on brief glance) as the text book.

The git repository I first pulled from (https://github.com/EiffelSoftware/traffic) is completely different. Which explains why we couldn't get any of the examples to work...


Saša Janiška

unread,
Jan 17, 2020, 7:02:54 AM1/17/20
to eiffel...@googlegroups.com
On Thu, 16 Jan 2020 20:12:54 -0600
Anthony W <awei...@gmail.com> wrote:

> I have the hard cover 2009 edition.

OK.

> I have been trying to work through it with one of my daughters, to
> introduce her to programming, and it's been basically a non-starter.

Hmm, this is very valuable info.

> From all appearances, the book and supporting software have been
> abandoned.

Would you still recommend the book for the theoretical part?


Sincerely,
Saša

--
Before giving up this present body, if one is able to tolerate
the urges of the material senses and check the force of desire and
anger, he is well situated and is happy in this world.

Saša Janiška

unread,
Jan 17, 2020, 7:04:13 AM1/17/20
to eiffel...@googlegroups.com
On Thu, 16 Jan 2020 20:35:21 -0600
Anthony W <awei...@gmail.com> wrote:

> The zip file at
> https://bitbucket.org/nadiapolikarpova/traffic/downloads/ compiles
> under ES 13.11 and appears to be the same source (on brief glance) as
> the text book.

And that's probably not so easy to adjust to new(er) versions of ES?


Sincerely,
Saša

--
There is no possibility of one's becoming a yogī, O Arjuna,
if one eats too much or eats too little, sleeps too much
or does not sleep enough.

Anthony W

unread,
Jan 17, 2020, 9:33:19 AM1/17/20
to eiffel...@googlegroups.com
Hi Sasa -

I'd say my copy makes a good reference for Eiffel - but I'm not an expert in the language, so my opinion probably doesn't hold much weight. :)

I can't say if the polikarpova version of the traffic library will have problems with more recent compilers or not (ES 13.11 is the one that's installed on my primary dev machine, and I haven't gotten around to installing later versions. I go through fits and starts with trying to get Eiffel to be useful to me.)

If I get a chance to test it on a later version I'll let you know the results. :)

All the best - 
Anthony

--
You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.

Bertrand Meyer

unread,
Jan 17, 2020, 11:50:16 AM1/17/20
to eiffel...@googlegroups.com, me...@inf.ethz.ch

I didn't follow the earlier part of this discussion but here is the status of the book:

 

There was a first printing which has the full text but was big and heavy. (Springer wanted to do a really good job, in particular use high-quality paper to make sure the color, which I wanted to use, doesn't show through. But in their quest for quality they made the book hard to manipulate.)

 

A second printing corrected that situation:

·         Smaller size (but still readable), thinner paper, as a result easier to handle.

·         All then known typos (there was a list, which must still be accessible somewhere) fixed.

·         Colors fixed (I was very proud of a light green which did not turn out too well in the first printing for my taste, now it is as I wanted).

 

Those are the only differences.

 

I don’t understand the amazon.com page (it talks about a “soft cover” edition, there is no such thing as far as I know, but it also says there is a more recent version, I have no idea what that means).

 

If your copy is about 27 cm tall and 19.5 cm wide, it’s the first printing. If it is significantly smaller (I don’t have a copy with me right now) it’s the second printing. Again the difference is only physical format, the green color in a few figures, and a few typos.

 

> From all appearances, the book and supporting software have been

> abandoned.

 

I am not sure what you mean but as far as I know everything is available. Software evolves so there might be some minor updates to make sure everything still compiles with the current EiffelStudio compiler.

 

-- BM

--

You received this message because you are subscribed to the Google Groups "Eiffel Users" group.

To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.

Richard

unread,
Jan 18, 2020, 9:46:43 PM1/18/20
to Eiffel Users

to clarify: 

On Tuesday, January 14, 2020 at 2:02:59 AM UTC+1, Richard wrote:
Bought my copy last year thru Amazon, best price on their German site at approx USD45.


The reference is to 

Springer-Verlag, 2009, 2nd corrected ed. 2013

876 + lxiv pp.

ISBN-13: 978-3540921448 

Thomas Goering

unread,
Mar 13, 2020, 8:56:51 AM3/13/20
to Eiffel Users
 

> From all appearances, the book and supporting software have been

> abandoned.

 

I am not sure what you mean but as far as I know everything is available. Software evolves so there might be some minor updates to make sure everything still compiles with the current EiffelStudio compiler.

 

-- BM


Although a newer version of the traffic library is available (traffic 4, see https://www.eiffel.org/projects/traffic) it cannot be used together with the book (starting with chapter 2, where you cannot get the modifications of class PREVIEW working). I have the 1st printing of Touch Of Class from 2009 (maybe the 2013 is different here) and the new traffic 4 library seems to be a stripped-off version of the original traffic 3 library. The maps look very different (without some of the details, e.g. of the landmarks), the Paris map is not available anymore at all and also the sources are very different.

This wouldn't be a big issue if the traffic 3 library would still be available and could be made working with the current EiffelStudio compiler. But:

1. The traffic 3 library is not available anywhere. I have found one version on the web (traffic_ev_1104) but only using Google and it doesn't look like a somehow official link. And it's the same version I found in my private archive from the days when I worked with the book.

2. I tried to compile it with EiffelStudio 19.05 and it seems that far more that some minor updates are necessary, but I'm still in the process of getting through the list of the compiler complaints. But it could be easier to adopt it to older compiler versions, I guess.

On the web I also found references to version traffic_ev_1134 and my question to the community is: Can anyone provide a link to this version?
If there's an even newer version of traffic 3, I'm also interested...

Best regards,
Thomas

Bertrand Meyer

unread,
Mar 13, 2020, 9:13:06 AM3/13/20
to eiffel...@googlegroups.com, me...@inf.ethz.ch

Thanks for the detailed report. It is important to bring everything up to date. An Eiffel Software engineer has been assigned to this project and will post here about his progress (including calling for community help if anyone is interested).

 

 

-- BM

 

From: eiffel...@googlegroups.com <eiffel...@googlegroups.com> On Behalf Of Thomas Goering
Sent: Friday, March 13, 2020 13:57
To: Eiffel Users <eiffel...@googlegroups.com>
Subject: Re: [eiffel-users] Touch of Class - which version

 

 

> From all appearances, the book and supporting software have been

--

You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.

javier hector

unread,
Mar 13, 2020, 8:21:29 PM3/13/20
to Eiffel Users
I've created a github repository for Traffic Library version 3, you can get it here https://github.com/eiffelhub/Traffic3
The library was updated to use EiffelStudio 19.12, the current code is not void safe and the code is using old syntax.
Please let me know if you have any issues, I will try to fix it ASAP or you can contribute with a fix.

As any open source project, you are welcome to collaborate and improve the library.
So feel free to fork the the Traffic library, create a branch and send a pull request with your changes. (Check the following tutorial to contribute on open source projects https://github.com/firstcontributions/first-contributions)


/Javier

To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users+unsubscribe@googlegroups.com.

Thomas Goering

unread,
Mar 15, 2020, 11:48:16 AM3/15/20
to Eiffel Users
Thanks Javier, this is great news!

I had a look at the GitHub repository and it already looks quite good. Anyway, I have some ideas and questions. What is the best way to discuss these? Issues on Github?

Best regards,
Thomas
Message has been deleted

javier hector

unread,
Mar 16, 2020, 8:59:25 AM3/16/20
to Eiffel Users
Hi Thomas,



On Sunday, March 15, 2020 at 12:48:16 PM UTC-3, Thomas Goering wrote:
Thanks Javier, this is great news!

I had a look at the GitHub repository and it already looks quite good. Anyway, I have some ideas and questions. What is the best way to discuss these? Issues on Github?
Issues in Github and we can also share it here to let other know what's going on.

Best regards,
Thomas
Javier

Thomas Goering

unread,
Jun 6, 2020, 7:11:26 AM6/6/20
to Eiffel Users

I had a look at the GitHub repository and it already looks quite good. Anyway, I have some ideas and questions. What is the best way to discuss these? Issues on Github?
Issues in Github and we can also share it here to let other know what's going on.

I have issues and a pull request open for quite some time. Is someone still looking into the Github project?

Best regards,
Thomas 
Message has been deleted

javier hector

unread,
Jun 8, 2020, 9:22:49 AM6/8/20
to Eiffel Users
I've merged your pull request. For some reasons I didnt see it.
Thanks.
Javier

Thomas Goering

unread,
Jul 16, 2020, 9:56:53 AM7/16/20
to Eiffel Users
I created another pull request. @Javier, could you please have a look at it and also at issue #3 for updating the book site?

Best regards,
Thomas

javier...@gmail.com

unread,
Jul 20, 2020, 11:22:03 AM7/20/20
to Eiffel Users
Hi Thomas, the pull request was merged and the book site updated.

Thanks.

Javier

Thomas Goering

unread,
Jul 23, 2020, 9:23:54 AM7/23/20
to Eiffel Users
Hi Javier,

Which site was updated? The book site (touch.ethz.ch) still links to the Traffic4 project on Bitbucket.

I noticed that you created a release on Github for the Traffic project back in June. Do you think it makes sense to create a new release because the version of the Traffic project has changed from 3.3 to 3.4?

Thomas

javier hector

unread,
Jul 23, 2020, 10:37:17 AM7/23/20
to Eiffel Users
Hi Thomas

On Thursday, July 23, 2020 at 10:23:54 AM UTC-3, Thomas Goering wrote:
Hi Javier,

Which site was updated? The book site (touch.ethz.ch) still links to the Traffic4 project on Bitbucket.
Yes, it´s updated, I just copy the section here  
 Can you double check?

Thomas Goering

unread,
Jul 23, 2020, 11:03:48 AM7/23/20
to Eiffel Users
Hi Javier,

Thanks. The issue was with Safari. It kept loading the page menu.html from the cache instead of loading the updated page from the web. I closed the corresponding Github issue.

What do you think about creating a new release?

Thomas
Reply all
Reply to author
Forward
0 new messages