Design by Contract in CACM

68 views
Skip to first unread message

Ian Joyner

unread,
Dec 12, 2021, 7:54:27 PM12/12/21
to eiffel...@googlegroups.com
On a better note, CACM has published my letter in December’s issue about Frama-C, a project that was the subject of an article in June CACM about putting DbC into C++. It was really ugly and I point out that it really is lipstick on a pig.


The letter is a bit curt, since I had to cut down from 800 words to 500, so politeness was mostly discarded.

Interestingly, the first few letters are rebuttals to Michael Cusumano, and the last letter I had published was also in response to some ridiculous claims he had made. So I have crossed swords with Cusumano before.

Ian

lrix

unread,
Dec 15, 2021, 8:00:19 AM12/15/21
to Eiffel Users
Ian,

I do not understand the connection from CACM/C++ and DbC. The link (above) takes me to an article about Section 230. So, I am confused.

Kindest regards,

Larry Rix

Ian Joyner

unread,
Dec 15, 2021, 7:46:05 PM12/15/21
to eiffel...@googlegroups.com
Hi Larry,

Yes, you have to scroll down past those letters. Sorry they did not have a #section link.

Ian

--
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/8424d49f-b8e7-45c5-9d2a-0fa5194fd606n%40googlegroups.com.

lrix

unread,
Dec 19, 2021, 7:59:04 AM12/19/21
to Eiffel Users
Okay—DbC Lipstick on C Pig ... now I get it!

On the one hand, I am glad to see someone recognize enough value in DbC to bolt it on to the side of Frama-C. I have long considered that DbC could be added to any number of language compilers without breaking legacy code to where one could then (at least) attempt to gain some good from it within a legacy context.

What your writeup does for me is to greatly emphasize and highlight the raw (and especially modern) dangers of C/C++ in the context of hackers and other assorted malicious actors, where Frankenstein DbC compiler add-on's do not address the core flaws of the language itself.

The uphill battle for Eiffel yet remains. I feel like we are a small group of Christian monks trying to convert a world filled with pagans who have every emotional and irrational tie to their chosen pantheon of gods. Is that too strong of a view? :-)

Ian Joyner

unread,
Dec 20, 2021, 3:43:42 AM12/20/21
to eiffel...@googlegroups.com
Yes, I was not wanting to criticise their effort to put something worthwhile in C++. However, the story of new wine in old wineskins comes to mind as an analogy. Stroustrup objected to that saying “people are now using Bible stories to prove C++ is bad now”, so I have not used that one again, although I think it fits well.

Unfortunately, languages have become cults, and I think C was a language that was heavily promoted. I remember as a student talking to one of the programmers in the department who claimed that once you knew C, there was no need for anything else. And that attitude was widespread. Luckily, I was influenced by someone who was a BCPL expert who did not like that level of programming (come to think of it I just found the notes for the OO class that Bertrand ran in Sydney, and I remember Paul sticking up his hand and asking a very pertinent question about covariance in contracts).

The uphill battle for Eiffel yet remains. I feel like we are a small group of Christian monks trying to convert a world filled with pagans who have every emotional and irrational tie to their chosen pantheon of gods. Is that too strong of a view? :-)

I can see many parallels between cults and C/C++. Whenever they are criticised the cultists come out with gaslighting trying to make out the critic must have some kind of bitterness and psychological problems. I saw an interesting documentary by Leah Riminy on Scientology, and have been looking at the phenomenon of cults and cultists, and a lot of it applies to programming language following.

Yes, that makes it an uphill battle.

I’ve just been listening to an interesting podcast on irrationality and conspiracy theories, about a book by a couple of US academics ‘Bad Thinking and Good People’. They say how tribalism is used against rationality. And I think this is the unfortunate culture of the programming profession, and that is what we need to undercut. I don’t know if you will be able to access outside Australia, but here is the link:


Ian

--
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.

lrix

unread,
Dec 21, 2021, 10:53:59 AM12/21/21
to Eiffel Users
Hi Ian,

Yes—I was able to get to the link. So many people make interesting points. In the last few years, providence has brought me into a fold of people who have found our back to some anchoring philosophies that provided a foundation to many excellent movements in human history, starting in Britain and fanning out across the globe.

The writings of men like Richard Hooker, John Locke, and others led Great Britain into two astonishing civil wars in the 17th century (1600's)—Royalists v. Parliamentarians. This was a huge leap forward for Personal Liberty, at least at the level of the Nobility and Gentlemen classes of those times. The philosophies and writings of John Locke in particular would form the basis for the next great leap—the forming and foundation of the United States. Others would follow—France, Australia, and a few others. Personal Liberty would expand from the elite, wealthy, noble, and upper-crust down to include even the lowest of the low. In the US, that would span more time to abolish the scourge of slavery and encompass all men (a battle we are still fighting).

So—what the bloody heck does this all have to do with C/C++? Human beings—how we think and how we determine our own personal actions and interactions. Namely—human beings find it very difficult to treat just about any topic with rational thinking processes, opting for prideful, irrational, horse-race tribalism (as you have pointed out). Programming languages as viewed by human beings suffer in this regard as well. It is difficult to discuss them without the intervening humanity of irrationalism and emotionalism together with peer pressure, limited knowledge, and even personal pride gone wild.

To this end—I have always admired many in this community for being able to maintain a rational detachment from such notions and to simply focus on observation and experimentation as the basis for forming an opinion about this topic of computer programming languages. It is a high tribute to everyone involved and a goal I find myself wanting to emulate as well (more and more).

Still—how do the Principles of Personal Liberty play out in this space and how do I think they can help?

I have spent a little more than two years attempting to pare down the Principles of Personal Liberty as related by Locke and Hooker. Let's see how I do. So—these Principles as a statement:

We are endowed by Nature or Nature's God to do as we see fit with our Person, Property, and Liberty (choices) as long as we do not harm or threaten to harm others and are (instead) helpful in all to all first, most, and most often. That every interaction is voluntary on the part of all people involved.

Now—apply this to the topic of tools like programming languages.

The best tools are those that harm the least and help the most and enlarge the range of choices (Liberty) as far as humanly possible.

Therefore—I hope this demonstrates that the Principles of Personal Liberty applied to tools (and programming languages as tools) is consistent and revealing of a dispassionate and rational approach to making choices about which tools to use and for what purpose.

For me personally—such notions further anchor me in my own selection of Eiffel because my experience of it and with it has proven to me over and over that it best fulfills the desire to do the most good and helpful thing first, most, and most often and to limit the amount of harm and threat of harm that can be presented by a programming language and its grammar. I think that we all know the considerable damage in terms of harm and threat to Person, Property, and Liberty of languages like C/C++ can be easily and readily demonstrated.

Finally—I do quite readily admit that one fault I find with Eiffel (as harmful and threatening) is the lack of depth and breadth in available Libraries, documentation, and demonstrable examples. However—I temper that label of "fault" with an understanding that such a "fault" is quickly and easily mitigated by a larger and wider user-base. The more people use it and develop those libraries, documentations, and examples—then—the less "fault" it becomes. Moreover—it is not a "fault" of Eiffel (the method or language) as such, but is a rational and expected result of a small pool of adopters, making the fault a fault of people and not of the tool.

Nevertheless—the fact remains—(for me) Eiffel is the least harmful, least threatening, most helpful, most useful programming method and language I have ever experienced and had the pleasure of using. That it lines up as a tool so well with the notions of Personal Liberty and Voluntaryism cements my reasoned and considered view point. Now—the task is as it has always been—lead others into that train of reasoning as well and let the chips fall where they may.

Larry

Ian Joyner

unread,
Dec 22, 2021, 8:04:24 PM12/22/21
to eiffel...@googlegroups.com
Hi Larry,

Well liberty and freedom are strange things. Charles I was a bad king, but he was replaced with worse, Oliver Cromwell. People were not free under Cromwell to do most things. After he died Richard Cromwell was so unpopular the monarchy was reestablished under Charles II, freedoms returned, but the ‘freedom’ of the monarchy and rulers restricted. Too often, one tyranny is replaced by a worse one, or something that starts well, but the descends into worse (Communism seems to have the ‘advantage’ of reaching the bottom more efficiently).


(That’s interesting this seems to be a website that has grown out of a magazine my Mum used to buy for me every week in London.)

I have a personal connection to Oliver Cromwell, my relations owned his cottage in Storrington, so I have sat in Cromwell's lounge watching TV. But I think it was a house from very early in his life.

I’ve also been to the Banqueting House in Whitehall where Charles I lost his head. He had a wonderful ceiling painted, and that became one of the last things he saw.

In the US, the great documents on freedom were drawn up by slave owners. Civil war resulted with many wanting to protect their ‘freedom’ to own slaves (and some still want that ‘freedom’). As you note, a scourge you are still fighting! And Australia is not a republic, but still constitutional monarchy under QEII, but it is OK for now, and people have personal freedom (constrained by covid).

As for C and C++, people have been fooled that all those other ’terrible’ languages with type checking and advanced concepts are against freedom. However, C and C++ result in lock in. It is like a cult, difficult to get out. Users of other languages seem able to move on as things improve, but not those enslaved to the C/C++ cult.

C and C++ people sound so sure of themselves when talking and making their claims. Cults give certainty in falsehoods, and people are attracted to that, especially newcomers who want some definite teaching. The C cult sayings about ‘programmer freedom’ and ‘advanced developers who understand under the hood’, just appeal to the ego.

I think we are both interested in the human factors in this. How simplistic falsehoods are much more attractive than hard-to-understand truths that might no be to people’s liking, or maybe against their ego and that they don’t understand as much as they thought. People need to be open to different things, but mostly are not. And that is not freedom.

And people are locked into this notion that programming is about a physical machine, and not an abstract machine, and even C and C++ are themselves about an abstract machine, but one that results in more lock in to those concepts that other languages are free of.

That is why many of my postings on Quora are that programming is about the contents of the problem (types), not the container. Thus rather than long dry technical arguments, I hope to have found a simple truth, that from there points in the right direction.

Ian

--
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.

lrix

unread,
Dec 23, 2021, 9:28:50 AM12/23/21
to Eiffel Users
Lot's to digest, but interesting thoughts for sure!

On Wednesday, December 22, 2021 at 8:04:24 PM UTC-5 joyne...@gmail.com wrote:
Hi Larry,

Well liberty and freedom are strange things. Charles I was a bad king, but he was replaced with worse, Oliver Cromwell. People were not free under Cromwell to do most things. After he died Richard Cromwell was so unpopular the monarchy was reestablished under Charles II, freedoms returned, but the ‘freedom’ of the monarchy and rulers restricted. Too often, one tyranny is replaced by a worse one, or something that starts well, but the descends into worse (Communism seems to have the ‘advantage’ of reaching the bottom more efficiently).


Liberty is very strange—especially when viewed from the simple reality that while it is innate within each of us and we kind of get it, the truer realization and living of it requires a great deal of thought and labor in reasoning. I find that for most people, we tend to resist the labor-intensive pursuit of understanding Liberty in order to live it well. My goal and hope in the distilling of the Five Principles of Liberty (as previously noted) is to reduce the amount of work required to get to 80% of the goal.

In this whole process of actually learning Liberty from the Age of Englightenment—I was surprised at the steps and happenstance of Great Britain as they waxed and waned and waxed again in huge steps forwards toward Personal Liberty and away from governmental totalitarian tyranny and tyrants. As an American, I was haphazardly raised with a notion of Liberty being this purely American thing and (of course) that turns out to be wholly untrue. So, English history of the two hundreds years predating 1776 is of keen interest to me. So many great thinkers of that time in science, philosophy, and religion.
 

(That’s interesting this seems to be a website that has grown out of a magazine my Mum used to buy for me every week in London.)

I have a personal connection to Oliver Cromwell, my relations owned his cottage in Storrington, so I have sat in Cromwell's lounge watching TV. But I think it was a house from very early in his life.

I’ve also been to the Banqueting House in Whitehall where Charles I lost his head. He had a wonderful ceiling painted, and that became one of the last things he saw.

My wife and I really enjoy watching history programs regarding that era and so hearing history from those who have touched it is of high interest to me.
 

In the US, the great documents on freedom were drawn up by slave owners. Civil war resulted with many wanting to protect their ‘freedom’ to own slaves (and some still want that ‘freedom’). As you note, a scourge you are still fighting! And Australia is not a republic, but still constitutional monarchy under QEII, but it is OK for now, and people have personal freedom (constrained by covid).


Some were slaveholders and some were not. Some held slaves by means of inheritance and then became trapped legally. For example, Thomas Jefferson inherited the slaves of his family. Mr. Jefferson hated this fact. To him, these people were more employees and family members than what the media has portrayed. He wanted to legally free them, but the laws were written in such a way that doing so would simply transfer them as slaves to other masters. Therefore, he retained them legally as slaves to protect them because of legal complications and the threat that freeing them from himself would engender pragmatically in their lives.

The moral of that story is that history is not simplistic. It is one thing to simplistically state that the US Founders were slave owners. It is quite another thing to understand them as they understood themselves. Yet, I am not saying that all slave owners were like Jefferson either. Many were cruel and I am quite happy to know that Britain took the steps to abolish slavery and that this notion spread. What is disheartening is to know that slavery continues to this day and wicked men persist in it.

As for being a constitutional monarchy I can only comment that the form of government is the smaller matter in the face of Personal Liberty. From where I sit, if a majority of people within a nation or country know and respect Personal Liberty, then the form of the government will matter less and less as this knowledge grows, deepens, and broadens over the hearts and minds of We the People of that country! Here in the US, the scariest part of my countrymen is that many think that government is a good thug that is wielded as a hired tyrant at the ballot box. So, instead of leaving my neighbors alone in Liberty, we choose to tyrannize each other through endless partisanship at the ballot box. Tyranny of the Majority is alive and well in the United States!
 
As for C and C++, people have been fooled that all those other ’terrible’ languages with type checking and advanced concepts are against freedom. However, C and C++ result in lock in. It is like a cult, difficult to get out. Users of other languages seem able to move on as things improve, but not those enslaved to the C/C++ cult.

It has long amazed me at how human programmers are when it comes to the cultishness of tools like programming languages. I know that many accuse us in the Eiffel community of being this and I do my best to take honest assessments to help ensure I am not of that ilk. It does me good to see Eiffelist's examine the mechanisms of other language tools and methods and adopt them when they make sense (e.g. the assign keyword bow or tip-of-the-hat to Java is one example).
 

C and C++ people sound so sure of themselves when talking and making their claims. Cults give certainty in falsehoods, and people are attracted to that, especially newcomers who want some definite teaching. The C cult sayings about ‘programmer freedom’ and ‘advanced developers who understand under the hood’, just appeal to the ego.


We are attracted to that because of this human tendency to arrogant pride instead of the labor needed for reasoned and rational thought. I fight that fight within myself and certainly around the work tools. There was a time when I thought Microsoft Visual FoxPro could solve every problem and was an excellent language system. That was how I felt from about 1992 until about 2009-ish, where I found my way back to taking another long serious, and applied look at Eiffel.
 
I think we are both interested in the human factors in this. How simplistic falsehoods are much more attractive than hard-to-understand truths that might no be to people’s liking, or maybe against their ego and that they don’t understand as much as they thought. People need to be open to different things, but mostly are not. And that is not freedom.

No—it is not freedom. It is simplistically held pride and arrogance.

I have recently been introduced to a resurgence in analog computing and it is so compelling and intriguing! There seems to be growing evidence that a wonderful way forward in computing power is a hybrid approach where analog and digital computing is fused. The analog machines have shown themselves to be potentially 30 to 3,000 times faster, consuming less power and time to get to the same answer. While there are issues of reliable interrogation and accuracy in analog computers, they might fit into a niche of good enough and be fantastic partners with digital systems.

I mention that because we have become seemingly arrogant and prideful about our binary digital computers. So much so, that for the most part, most people have forgotten the analog computers that were used in large and meaningful ways across the world right up to the 1970's! I was stunned to learn the story of analog computers used to calculate world tidal flows. Such analog computers were even used to plan the Normandy invasions of France in WW-II!

Apparently, there is research going on to use analog computers even in AI and ML to help speed up and reduce the amount of power consumed by such systems. Even Graphics processors cannot compete. We are at the infancy of this backwards turn to take another look at analogs and see how they can be reasonably and usefully used.
 

And people are locked into this notion that programming is about a physical machine, and not an abstract machine, and even C and C++ are themselves about an abstract machine, but one that results in more lock in to those concepts that other languages are free of.

This comment takes me to another thought from the analog machines. One interesting fact of the analogs is that they operate around the pure mathematics and have no need for memory because they are both the memory and the computation in one. It is like an abacus, where its very structure and way of working melds memory and computation together. This climbs the abstraction ladder a step higher to where descriptive languages are not necessary. Only the math and mechanics matter.
 

That is why many of my postings on Quora are that programming is about the contents of the problem (types), not the container. Thus rather than long dry technical arguments, I hope to have found a simple truth, that from there points in the right direction.

Ian


I think your point is clear and certainly well taken on my part as well as others. One problem with an explosive industry and tools is that the pressures of business coupled with the laziness, pride, and arrogance of humanity tends to take us away from doing the hard work of laboring to betters answers and better tools.

Ian Joyner

unread,
Dec 26, 2021, 10:32:59 PM12/26/21
to eiffel...@googlegroups.com
Hi Larry,

Yes, lots to digest along with Christmas meals as well.

We make up too many myths about liberty, and how our countries either invented it or are the bastions of it. The UK looks back to the Magna Carta (I have a copy somewhere), but really that was not for the common people, but the lords limiting the king (King John) with regards to themselves. A lot of British history is about the villains vs the good guys, but then you find people like Richard III probably weren’t that bad as history (and Shakespeare) make out.

But then Romans and Greeks had liberties. Life in Herculaneum and Pompeii actually didn’t seem that bad, except for maybe the slaves.

I’m sure like you say, life for slaves was a matter of luck. Perhaps you’d get a good master like Jefferson. A old family friend was upset after he played family consultant to ‘Who do you Think You Are?’ for his cousin actor Richard Roxburgh (my friend was married to Eric Burdon’s cousin, but they were from big families and never met). The program found that the Roxburgh family had been slave owners in the Caribbean. I thought they’d find out more about their Scottish heritage to the Roxburgh area around Edinburgh.

Much of the wealth of Britain was built on slavery. I know in Bristol there is a lot commemorating Edward Colston in Bristol since he made Bristol rich. Colston Hall is certainly one of the things named after him. Many people around the world saw his statue being pulled down in Bristol, so the hero becomes the villain.

On C and C++ cult, I have just written on Quora that it is the role of programming languages to support programming in the activity of programming, but unfortunately it is programmers that end up supporting the PL, making up for its deficiencies and avoiding the flaws and traps, and then defending it. I think that is a corollary of my saying that "you don’t master C++, C++ masters you”. I think we should judge PLs according to that primary role.

Certainly out of pride and arrogance comes judgementalism. I know I might be judgemental about C and C++, but that is a reaction to the judgementalism in the C community about anything that looks Pascal-like or not C-like. They don’t like the torch being turned on C, perhaps because they understand how effective it was against Pascal and all else.

I’m not sure that it is entirely pride and arrogance on the part of individuals — a lot of people are taught about C at all levels of education. Sure there is pride and arrogance at the top, but we can’t blame those who have been indoctrinated further down the cult. People trust their teachers. They want certainty and teachers in schools and even universities just pass on the same cult knowledge.

Yes, it is a cult. Alan Kay wrote in a comment to me about Robert Barton, designer of the B5000 and his teacher at Utah (Barton was a reluctant teacher) that Barton didn’t want a following, he just wanted to teach people to think for themselves and come up with their own ideas about computing.

Another thing that Barton pointed out is that “System programmers are the high priests of a low cult”. That is true of many C and C++ programmers. They feel power over a machine and the users. But that should not be. Programmers and companies don’t own computers anymore — they write programs for others to run on machines they own. We cannot trust programmers and they cannot gain control over another’s machine, but C gives them that. Programmers cannot have that ‘freedom’, but live within security constraints.

The C world is the opposite, encouraging and perpetuating cult. Even the elevation of Dennis Ritchie to grand designer of C is false. Ritchie was more-or-less a compiler writer who added basic types and structures to B, which was mostly BCPL. But most people only know Ritchie, they don’t know that C is mostly the work of Christopher Strachey (CPL), then Martin Richards (BCPL). Strachey is even to blame for ‘()’. However, from what I can tell Ritchie was a perfectly modest man, just the cult of C built up around him.

We need to get these truths out there, and stop the narrow focus on C and C++. I know it is hard to open people’s minds when the pride and arrogance tells them what they know is right, even when it is wrong. But they have been fed lies, like the lies of history we talked about earlier.

We are not just engaged in a technical war, but in a war against cult ignorance, pride, arrogance, without promoting a cult of our own. And that is tricky!

Ian

Ian Joyner

unread,
Dec 26, 2021, 10:44:34 PM12/26/21
to eiffel...@googlegroups.com

Ulrich Windl

unread,
Dec 27, 2021, 7:05:29 AM12/27/21
to eiffel...@googlegroups.com
Ian,

your eloquence is astounding. However I think (to sequeeze ot the essence)
given a property

is_better_than(Eiffel, C): BOOLEAN

may simply not evaluate to TRUE for some people, so they still stick with (or
fall back to) C.
I guess this is what your are essentially saying.
What remains to discuss is what makes a "better" language.
I can remember a story from the past that HP color laser printers had their
software written in Eiffel.
Maybe that was just a marketing gag as HP printers still had numerous security
flaws after that.
And the interest of Microsoft in Eiffel probably was just to help designing
C#, I might guess.
Maybe Eiffel has the disadvantage that the hype is over (just as for C, C++,
Java, and many more).
I still can remember a FORTRAN hype (produces the most efficient code)...

Regards,
Ulrich

>>> Ian Joyner <joyne...@gmail.com> schrieb am 27.12.2021 um 04:32 in
Nachricht
<78F34F81-3CBB-414C...@gmail.com>:
<https://www.lookandlearn.com/blog/5254/oliver-cromwell-life-under-puritan-ru

> le/>
> <applewebdata://5C16C08E-1BF5-4F49-96DC-B7C94DD22031>.
>>
>>> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/eiffel-users/d01b03ef-1ae1-4119-b9e5-0e3bc0

> 457725n%40googlegroups.com
>
<https://groups.google.com/d/msgid/eiffel-users/d01b03ef-1ae1-4119-b9e5-0e3bc

> 0457725n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>
>>
>> --
>> 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
> <mailto:eiffel-users...@googlegroups.com>.
>> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/eiffel-users/d6086bf6-0685-49c8-8560-9338f1

> 700551n%40googlegroups.com
>
<https://groups.google.com/d/msgid/eiffel-users/d6086bf6-0685-49c8-8560-9338f

> 1700551n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>
> --
> 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/78F34F81-3CBB-414C-B789-AC9BF8

> 1E4FF1%40gmail.com.



Ian Joyner

unread,
Dec 27, 2021, 8:16:12 PM12/27/21
to eiffel...@googlegroups.com
Actually the link I meant to post was:


which is linked to the earlier discussion. I was distracted for a few hours yesterday, so the link comparing Java and C should still have been of interest. OO should have been a paradigm shift in programming and C++ killed it, setting programming back to dealing with machine details and poor type systems (those ’training wheels for beginners’).

I think these are all important discussions to have to finally enact the paradigm shift and undo the damage to people’s thinking that C and C++ have done.

Ian

Ian Joyner

unread,
Dec 27, 2021, 8:38:46 PM12/27/21
to eiffel...@googlegroups.com
Hi Ulrich,

Thanks I think. Whether C or Eiffel is better, is mostly decided in the favour of C because of lock in. Sure there is technical lock in and economic lock in — rewriting a lot of C would cost a lot of money.

But there is also psychological lock in — that is people who have been taught the wrong thinking about programming, like Pascal was just a teaching language (Wirth had said that was a major aim, so they ignore the rest and believe that was Pascal’s only intent). Out of that the platitude about dogmatists and ’training wheels for beginners’. The culture and cult of C is populist and appeals to the ego. Don’t just discount it, they are very powerful.

Technically, the worse the technology, the greater the economic lock in.

I remember the guy from HP (I can’t remember his name now). I don’t think what he did in Eiffel was appreciated at HP, since DbC showed up many deficiencies in their own software which was sort of patched together until it worked.

It is a shame he moved on from the Eiffel community, he was a great communicator and enthusiastic.

I don’t think the C and C++ hype is over. Their proponents tell others to beware of fads, when really C and C++ are the ultimate fads with a powerful cult(ure) around them, that is hard to dispel.

So many of the Quora answers I do are to people who have obviously just started programming and someone has told them to start in C or C++ and ignore the rest.

I think my role has not been to move towards Eiffel or anything in particular, but to move people away from the old paradigm of machine-oriented programming towards problem-oriented programming, which system programming is only there to support.

Again Bob Barton’s quote:

Bob Barton noted that:

"Systems programmers are the high priests of a low cult." (1967)
"The Open Channel". Computer. 13 (3): 78–79. Mar 1980. doi:10.1109/MC.1980.1653540.

https://wikimili.com/en/Robert_S._Barton

Ian

Reply all
Reply to author
Forward
0 new messages