[Cross-post and follow-up to comp.software-eng.]
<
rupert...@googlemail.com> wrote in message
news:88a02c27-2af2-4149...@googlegroups.com...
> On Monday, April 13, 2015 at 1:22:35 PM UTC+1, Julio Di Egidio wrote:
>> On Monday, April 13, 2015 at 12:17:15 PM UTC+1,
rupert...@googlemail.com
>> wrote:
>>
>> > Quit being a whining baby Julio, and tell us what your vision of a
>> > better language is?
>>
>> I have already told you and quite clearly that the language per se is the
>> least of the problems. Your post just echoes all too common hype, its
>> fallacies and the plain misunderstanding: but I will not take the time to
>> go through it line by line, which is all I could give you, unless you
>> rather stop lying and you rather show some respect, not for me but for
>> the discipline. Otherwise, please feel free to just have it as you like
>> it, I do not need to convince anybody, not on these matter, not
>> anymore...
>
> We are in agreement; the language is ok not amazing;
We have certainly seen worse, and engineering problems are certainly vastly
more complex than just a programming language: on the other hand, I'd argue
that it is a very poor choice for the programming class, neither high-level,
nor low-level...
> it is used in an undisciplined fashion and that is the worst of it.
No, again, a programming language (that is not completely a showstopper, of
course) has only marginal relevance to the success of an engineering
endeavour, i.e. to the success of real production: first, there are actually
many languages involved in any piece of real development (and if one does
not forget that there is also analysis and design, there are actually so
many "languages" involved, some formal, most not even formal); second, any
languages are rather elements of platforms, and a platform as a whole rather
determines technical effectiveness; last but most important, all technical
aspects are in fact always the least critical: in software engineering, as
and more than in any other engineering, the human factor, i.e. people and
their requirements, is the true critical factor and the source of all
intrinsic, a.k.a. non-eliminable, complexity.
> As someone said, all OO programming is, is just a way to write spaghetti
> code in a more sustained fashion than we could before it came along.
Said by people who can write no better than spaghetti code to begin with.
There is rather a problem I call "OO uber alles", which is the real problem
with OO in general, that it has been misunderstood, mystified, and, of
course, oversold: to begin with, and as already mentioned, any non-trivial
system is rather written in a mixture of languages, in fact, in a mixture of
paradigms: declarative, imperative, functional, maybe even some bits of
logical (I do not have statistics at hand, but these exist and show for
instance that the role of declarative is usually vastly underestimated,
etc.). But, in particular, the idea that one can reduce all coding of a
system to one single paradigm is broken; the idea that OO is the best such
paradigm is even more broken; in fact, the idea that OO most immediately
models reality is even more than just broken (OO is actually the furthest
from reality); and, last but by no means least, architectural and
construction patterns such as the various instances of
model-driven/domain-driven (and the so many notions then needed to support
that picture, the truly fake complexity) are in fact incarnations of a
monolithic idea of systems that is the opposite of anything sensible
(indeed, just think modularity), and the opposite of anything that can have
a chance to really "work"...
> But I'm interested to know, what is this discipline you speak of? Can you
> summarize what your engineering discipline is?
Software engineering: not just my invention. My reference manual remains R.
Pressman, Software Engineering - A Practitioner's Approach, but beware that
mine is 4th edition (1997), then even in Pressman I find a little bit of
dilution... still one of the best reference points.
> What language might support it better?
> Is it possible to even have a language that can only be used in a
> disciplined way, or is a lack of discipline always going to be a problem.
As it should now be clear, I would not consider these the right questions to
ask.
> If I wanted my accounts done, I'd get a qualified accountant. If I wanted
> a house designed, I would pay a qualified architect. A bridge? A chartered
> structural engineer. So why do I look around the room I am sitting in and
> not see even one qualified IEEE software engineer? Only a few people with
> degrees in the subject, a lot of people with backgrounds in science or
> technical stuff, but usually a few that segwayed from Economics or History
> or somesuch. And then of course there is the Mumbai crew, like monkeys
> trying to randomly write Shakespear on a thousand typewriters. Well the
> demand for employees is high and the money is good so it is no surprise.
> But I think software engineering suffers somewhat from professional
> qualification issues; it would be to the advantage of those of us who are
> better qualified to try and get professional software engineering
> qualifications, and to promote them as a baseline for entry into our
> industry. This is what Parnas did, he described the term "software
> engineering" as an unconsummated marriage, and sat his professional exams.
I have always been in favour of a strict regulation of software engineering:
by all means, yes, software engineering should not be any different than
other engineerings, including the level of responsibility. On the other
hand, I can see few "very big" problems to solve before that can happen:
first, the situation is so compromised that we cannot expect any agreement,
not even on which the most fundamental principles of the discipline are (and
the state of the academia is not any less pitiful than it is the state of
the industry as a whole). Case in point, I do have my "book", it is just a
distillation of good old principles, plus my own findings, plus necessarily
the debunking of all bandwagons, but would you or anybody ever abide to it?
I mean, who is going to decide what the "discipline" exactly is, *at this
point*, i.e. after at least 20 years of heavy speculations and misguidance
and the totally compromised discipline and market I keep mentioning?
Moreover, I still think it is much more of a matter of the big players'
interests: you know, beside that software is not even sold, software is
"special" (all knowledge engineering is) and, to make a long story short,
this is much more about whether ideas are free vs. bread...
Julio