The Forum for Discussion about The Third Manifesto and Related Matters

You need to log in to create posts and topics.

Inappropriate responses to points about language design in SQL

Quote from Dave Voorhis on November 11, 2019, 11:02 pm
Quote from dandl on November 11, 2019, 10:39 pm
Quote from Dave Voorhis on November 11, 2019, 9:09 am

I meant "noble" as in having the finest qualities. Computer programming is a fine craft, requiring unusual expertise and attention to quality to do it properly. I use "noble" to distinguish it from, say, hobby macramé.

Check your dictionary. Programming is a fine craft, but neither associated with nobility, nor being directly associated with any high moral principles, nor being practised by moral people. Some of the finest programming is done in pursuit of evil purposes.

I mean lofty as opposed to base -- akin to the use of "noble" in "noble gasses", etc. -- and code is amoral. Its application may be evil, but it is not. Code as a tool for evil no more makes code evil than a knife used to murder makes metal evil.

The terms was applied to the craft, not to the code, and wrongly. The craft is not noble.

I work with certified engineers, have them in the family and in my circle of friends. Despite computing having borrowed terms from engineering -- and your deprecation of its craftsmanship notwithstanding -- what we do could be called software development but there's a growing trend toward using that phrase to include activities that are primarily UX design or systems analysis and that may or may not include computer programming. I had multiple requests last year to help organisations find a mix of computer programmers (sometimes erroneously called software engineers, and sometimes correctly called computer programmers) and software developers. That distinction, as was explicitly emphasised at the time, was intentional.

I'm happy to accept developer as a broader term, encompassing both coding and a range of other skills. No argument there.

Computer programming is what we do. We should proclaim it proudly, loudly, and at every opportunity. We should reclaim it from those who use it as a synonym for code monkeycoder and other dismissive deprecations. If and when it acquires the self-reflective scientific rigour and recognised standards and internal (and maybe external) validations needed to be considered an engineering discipline, then we can call it software engineering.

Programming is not software engineering. Your paper tiger, not mine.

Programming encompasses what we call software engineering, because what we call software engineering isn't engineering, it's just various ways of getting working code into computers. Getting working code into computers is computer programming.

Prove it. Show me an authoritative reference to contradict my assertion and references to the effect that software engineering encompasses programming, not the other way around. [Getting steel into bridges and getting electricity to users does not actually help in describing those engineering feats either.]

Again, when programmers collectively accept rigorous ethical responsibility and professional standards, then it will deserve to be called software engineering. The few wispy efforts made by the BCS, ACM, etc. barely count.

The people are not the profession are not the discipline. By all normal usage, persons who "who invent, design, analyze, build, and test software machines, systems, structures and materials" are software engineers. Persons who hold a professional qualification and are professionally engaged in the practice of software engineering are software engineers. I'm not expressing an opinion here, I'm simply quoting references. Your are entitled to your own opinion but not your own facts, and the facts do not support your position.

You may personally aspire to a recognised profession with the same standing as doctors and lawyers, but that's a totally different issue. The passage of time virtually guarantees it will come to pass, but it has nothing to do with my assertions.

Andl - A New Database Language - andl.org
Quote from dandl on November 12, 2019, 8:28 am
Quote from Dave Voorhis on November 11, 2019, 11:02 pm
Quote from dandl on November 11, 2019, 10:39 pm
Quote from Dave Voorhis on November 11, 2019, 9:09 am

I meant "noble" as in having the finest qualities. Computer programming is a fine craft, requiring unusual expertise and attention to quality to do it properly. I use "noble" to distinguish it from, say, hobby macramé.

Check your dictionary. Programming is a fine craft, but neither associated with nobility, nor being directly associated with any high moral principles, nor being practised by moral people. Some of the finest programming is done in pursuit of evil purposes.

I mean lofty as opposed to base -- akin to the use of "noble" in "noble gasses", etc. -- and code is amoral. Its application may be evil, but it is not. Code as a tool for evil no more makes code evil than a knife used to murder makes metal evil.

The terms was applied to the craft, not to the code, and wrongly. The craft is not noble.

Again, I used the term to appropriately elevate it above "arts and crafts" hobbies. The meaning should be clear.

I work with certified engineers, have them in the family and in my circle of friends. Despite computing having borrowed terms from engineering -- and your deprecation of its craftsmanship notwithstanding -- what we do could be called software development but there's a growing trend toward using that phrase to include activities that are primarily UX design or systems analysis and that may or may not include computer programming. I had multiple requests last year to help organisations find a mix of computer programmers (sometimes erroneously called software engineers, and sometimes correctly called computer programmers) and software developers. That distinction, as was explicitly emphasised at the time, was intentional.

I'm happy to accept developer as a broader term, encompassing both coding and a range of other skills. No argument there.

Computer programming is what we do. We should proclaim it proudly, loudly, and at every opportunity. We should reclaim it from those who use it as a synonym for code monkeycoder and other dismissive deprecations. If and when it acquires the self-reflective scientific rigour and recognised standards and internal (and maybe external) validations needed to be considered an engineering discipline, then we can call it software engineering.

Programming is not software engineering. Your paper tiger, not mine.

Programming encompasses what we call software engineering, because what we call software engineering isn't engineering, it's just various ways of getting working code into computers. Getting working code into computers is computer programming.

Prove it. Show me an authoritative reference to contradict my assertion and references to the effect that software engineering encompasses programming, not the other way around. [Getting steel into bridges and getting electricity to users does not actually help in describing those engineering feats either.]

No need, because it's self evident. Show me the references to the effect that software engineering is a genuine engineering discipline, with all the rigour, responsibility, and professional governance that engineering -- as in electrical engineering, mechanical engineering, aeronautical engineering, building engineering, etc. -- implies.

Alternatively, you can look at other popular misapplications of engineering -- like "train engineer" or "sanitation engineer" or "appliance engineer" -- to see the nice family to which software engineering currently belongs.

Again, when programmers collectively accept rigorous ethical responsibility and professional standards, then it will deserve to be called software engineering. The few wispy efforts made by the BCS, ACM, etc. barely count.

The people are not the profession are not the discipline. By all normal usage, persons who "who invent, design, analyze, build, and test software machines, systems, structures and materials" are software engineers. Persons who hold a professional qualification and are professionally engaged in the practice of software engineering are software engineers. I'm not expressing an opinion here, I'm simply quoting references. Your are entitled to your own opinion but not your own facts, and the facts do not support your position.

You may personally aspire to a recognised profession with the same standing as doctors and lawyers, but that's a totally different issue. The passage of time virtually guarantees it will come to pass, but it has nothing to do with my assertions.

No, it's not a totally different issue. It is precisely the issue here, and it will only come to pass if we push for it.

One of the reasons it hasn't come to pass already is because most of us happily call computer programmers software engineers, which tells industry outsiders that our profession has the same qualities, controls, regulatory frameworks, and standards as mechanical, electrical, aeronautical, and building engineering. Only, we know better. We know it doesn't at all.

Furthermore, we casually deprecate computer programmer as if it's something less than software engineer, when what we call software engineering is usually nothing more than computer programming plus some largely ad hoc, unscientific, and untested (in any rigorous sense) processes, which if they weren't so ad hoc and untested -- and instead had the qualities of real engineering -- would be no more or less than the standard processes of computer programming.

You won't find that in the dictionary, because the dictionary definitions are as much confused by casual misuse of software engineering as the rest of the general public. You will find it if you talk to any mechanical, electrical, aeronautical, or building engineer because every one of those professions is populated with professional members who know full well -- and will happily tell you and explain why, as I've done here -- that software engineering is a pretender that superficially imitates engineering without having any of its qualities.

And they're right.

I'm the forum administrator and lead developer of Rel. Email me at dave@armchair.mb.ca with the Subject 'TTM Forum'. Download Rel from https://reldb.org
Quote from Dave Voorhis on November 12, 2019, 7:27 am

I don't disagree with how the words are used; that should be clear from the other posts in this thread. I disagree with whether or not they're used correctly, and I argue that as software professionals who should be concerned about the standards of our profession, we should be pushing for:

  • Professional standards and science-based reflective processes in everything we do, along with taking responsibility for what we do including self-regulation, i.e., the same as for electrical engineering, mechanical engineering, aeronautical engineering, building engineering, etc; and
  • Appropriate, responsible, and respectable use of terms like engineering in the context of our profession.

What we currently have is a situation akin to an imaginary (and hopefully ridiculous) one: Imagine carpenters and construction workers were called building engineers (per the UK definition, see https://en.wikipedia.org/wiki/Building_engineer#United_Kingdom_and_Ireland) and building engineers didn't exist. That's exactly what we've got in the software industry, only replace "carpenters and construction workers" with "software engineers" -- when the equivalent to "carpenters and construction workers" should be called "computer programmers", and their application of genuine engineering principles should be inherent in the craft -- and there is no equivalent to a "building engineer."

If you want to discuss the behaviour of the majority of developers, we probably have similar views. If you want to aspire to a professional body similar to those in other branches of engineering, then be my guest. Personally, as a current or former member of a few such, I could contribute to that discussion if I cared enough.

But that's not what I challenged and not what I'm asserting. I say (on a sound factual basis) that:

  • software engineering exists as a reasonably well defined and understood discipline, akin to other kinds of engineering
  • there are accredited education establishments providing training and awarding professional qualifications in that discipline, linked to engineering rather than computer science
  • there are individuals practising that discipline, who are distinguishable from mere 'programmers'.

Whether you accept or believe this to be so does not alter the underlying facts on which those assertions are based.

Andl - A New Database Language - andl.org
Quote from dandl on November 12, 2019, 10:09 am
Quote from Dave Voorhis on November 12, 2019, 7:27 am

I don't disagree with how the words are used; that should be clear from the other posts in this thread. I disagree with whether or not they're used correctly, and I argue that as software professionals who should be concerned about the standards of our profession, we should be pushing for:

  • Professional standards and science-based reflective processes in everything we do, along with taking responsibility for what we do including self-regulation, i.e., the same as for electrical engineering, mechanical engineering, aeronautical engineering, building engineering, etc; and
  • Appropriate, responsible, and respectable use of terms like engineering in the context of our profession.

What we currently have is a situation akin to an imaginary (and hopefully ridiculous) one: Imagine carpenters and construction workers were called building engineers (per the UK definition, see https://en.wikipedia.org/wiki/Building_engineer#United_Kingdom_and_Ireland) and building engineers didn't exist. That's exactly what we've got in the software industry, only replace "carpenters and construction workers" with "software engineers" -- when the equivalent to "carpenters and construction workers" should be called "computer programmers", and their application of genuine engineering principles should be inherent in the craft -- and there is no equivalent to a "building engineer."

If you want to discuss the behaviour of the majority of developers, we probably have similar views. If you want to aspire to a professional body similar to those in other branches of engineering, then be my guest. Personally, as a current or former member of a few such, I could contribute to that discussion if I cared enough.

But that's not what I challenged and not what I'm asserting. I say (on a sound factual basis) that:

  • software engineering exists as a reasonably well defined and understood discipline, akin to other kinds of engineering
  • there are accredited education establishments providing training and awarding professional qualifications in that discipline, linked to engineering rather than computer science
  • there are individuals practising that discipline, who are distinguishable from mere 'programmers'.

Whether you accept or believe this to be so does not alter the underlying facts on which those assertions are based.

The facts upon which those assertions are based are only superficially true, and that is precisely the problem.

  • It seems there is a well-defined and understood discipline of software engineering when there isn't. It actually consists entirely of ad hoc and arbitrary processes -- more made-up on the fly than rigorously tested, and constantly changing due to popular fashion and fads -- rather than scientifically focusing on fundamental and broad engineering issues of reliability, productivity, stability, safety, repeat-ability, test-ability, security, etc.
  • The accreditation of educational establishments is either conventional university self-accreditation ("this degree is valid because we say so") or superficial tickboxing by the BCS and the like, which is often more focused on curriculum content (and in some cases, obsolete curriculum content) than genuine professional standards. Compare CS/SE accreditation by the BCS with mechanical engineering accreditation by IMechE and the difference is significant and worrying. IET accreditation may be a bit better, but still far from where it should be.
  • Individuals do various activities related to programming, some of which occasionally resemble engineering, but -- as I noted before -- none have its qualities.

 

I'm the forum administrator and lead developer of Rel. Email me at dave@armchair.mb.ca with the Subject 'TTM Forum'. Download Rel from https://reldb.org

Yesterday I met an engineer who started a business that now employs over a hundred engineers. He said the mechanical engineering is straightforward, the electronic engineering is just a matter of dropping a CPU and a few stock components onto a board, and that pushes all the hard parts of the engineering down into the software. The limiting factor for growth of his business is his ability to hire top quality software engineers.

I also met an academic engineer involved in building competition robots: Robocup or similar. He made no distinction between the engineering that goes into the mechanicals, the electronics or the software, except that the winners are those with the best software engineering. I think they were winning.

These stories only confirm to me that there are others, working in the field, who think as I do and use the words as I do. They are of no particular value otherwise. I could have made them up.

You have your strongly held opinions and your own little collection of anecdotes, and no facts (that I know of). I rely on definitions and facts as presented. I won't change your opinion and you won't change my facts. I think we leave it there.

Andl - A New Database Language - andl.org
Quote from dandl on November 14, 2019, 10:30 pm

Yesterday I met an engineer who started a business that now employs over a hundred engineers. He said the mechanical engineering is straightforward, the electronic engineering is just a matter of dropping a CPU and a few stock components onto a board, and that pushes all the hard parts of the engineering down into the software. The limiting factor for growth of his business is his ability to hire top quality software engineers.

I also met an academic engineer involved in building competition robots: Robocup or similar. He made no distinction between the engineering that goes into the mechanicals, the electronics or the software, except that the winners are those with the best software engineering. I think they were winning.

These stories only confirm to me that there are others, working in the field, who think as I do and use the words as I do. They are of no particular value otherwise. I could have made them up.

You have your strongly held opinions and your own little collection of anecdotes, and no facts (that I know of). I rely on definitions and facts as presented. I won't change your opinion and you won't change my facts. I think we leave it there.

There are certainly "engineers" -- and I use the term loosely, as do they -- who are largely, for lack of a better phrase, assembly technicians. They're little better than the sort of "engineer" who comes to your home to fix your dishwasher, and a fair bit less engineering-oriented than the average carpenter or cabinetmaker.

If you and some others (and I'm not surprised there are others who think like you do; birds of a feather and all that, and you're by no means unique) think that's what engineering really is, then you are collectively contributing to the problems -- which are occasionally deadly or very, very expensive -- commonly found in mechanical and electrical goods and (especially!) software.

Indeed, you have highlighted precisely the problem that some of us think needs to be addressed: the fact that what's called software engineering -- and increasingly, certain product design activities mislabelled mechanical engineering and electrical engineering -- aren't engineering at all.

Worst of all, there are those who actually think the un-engineering of engineering is reasonable.

Fortunately, not all of us do.

I'm the forum administrator and lead developer of Rel. Email me at dave@armchair.mb.ca with the Subject 'TTM Forum'. Download Rel from https://reldb.org