From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: border2.nntp.dca1.giganews.com!nntp.giganews.com!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!aioe.org!.POSTED!not-for-mail From: Stan Mills Newsgroups: comp.lang.ada Subject: Re: What exactly is the licensing situation with GNAT? Date: Mon, 17 Nov 2014 08:28:32 +0000 (UTC) Organization: Aioe.org NNTP Server Message-ID: References: <22a3816a-4e89-48f0-a126-dce581781beb@googlegroups.com> <084b1934-9641-425e-85ec-293e0334413e@googlegroups.com> <86bf69c8-eb08-4696-b6c9-3784f5c42213@googlegroups.com> <87389olqie.fsf@ixod.org> <10d9w.55626$8w1.22302@fx12.iad> <150er0b62wsh3$.1xabmp81w5kdw.dlg@40tude.net> <1azsoc77wjhmi$.1grmnnlq033tz.dlg@40tude.net> NNTP-Posting-Host: CZys4dQT/QdgzTCHwe4TXA.user.speranza.aioe.org X-Complaints-To: abuse@aioe.org X-Notice: Filtered by postfilter v. 0.8.2 Xref: number.nntp.giganews.com comp.lang.ada:190755 Date: 2014-11-17T08:28:32+00:00 List-Id: On 2014-11-14, Peter Chapin wrote: > On Fri, 14 Nov 2014, Stan Mills wrote: > >> I have seen guys who never wrote a program from scratch in any language, >> and who can't understand or code any algorithm at all. But they are able >> to build huge ivory towers of applications based on nothing but other >> people's libaries. Everything is a black box to them and if you ask how >> it works all they can explain is how to invoke the methods they used. > > Isn't this exactly the idea of abstraction and data hiding, not to mention > software reuse? In the old days everyone wrote everything from scratch. > What you described sounds like progress to me. It's not. It only sounds like it. We used abstraction and data hiding many decades ago without any of the bad effects of the way the OO environment seems to be going in the Java and C++ age. We could call it progress would if the quality and professionalism of coders using these systems either increased or at least didn't decrease and if the coders using those abstractions were capable of designing and coding them themselves but just that the work was already done so they can do other stuff instead. That's value. The way things are now abstractions are things 99.9% of "coders" can't understand (too abstract) and the hiding is from the programmer's understanding. It has created a bizarro world where knowing how things work is considered worthless. That's disabling and wrong. The point people seem to be missing here is all this stuff only helps if it was done right and saves work but not at the expense of dumbing down the profession and enabling unqualified people to be "productive". If it only saves work up front (because things that are done wrong and break are very costly to fix- and this is comp.lang.ada so we're all somewhat aware of the benefit of discipline, planning, and using qualified people) then programming is reduced to essentially unqualified people cutting and pasting that's bad. The state of coding today shows this doesn't work. People can't get even web stuff right and how much more so serious, major systems in Java and C++. It's bad because these systems grow out of control, beyond any person or persons understanding and they get to the point where things break and nobody can fix them. The breakage takes various forms from obvious bad results to tougher things like unacceptable performance and the costs of fixing those things are too high. The driving force in OO is to reduce personnel costs not software costs and in my experience that is a false economy. Hiring the best people always pays for itself, and it has ever since Brook's book showed real numbers. > After all we don't expect programmers, even software engineers, to write > their own compilers, assemblers, and operating systems. Those things are > just black boxes. But when people were closer to compilers, assemblers, and operating systems the quality of the code and the ability to fix it were much higher than they are now. The other problem with class libraries and libraries generally is there is a lot more thrashing and fingerpointing when something goes wrong. If you control the product end to end you have nobody to blame but yourself and you learn very quickly to suspect your own work and to find and fix it then if you can waste a few weeks chasing your tail without anybody thinking it's unusual. > I suppose one could argue that a professional software engineer should be > capable of writing such things if they needed to, but that they only > choose not to because it's not cost effective. So perhaps what you are > really saying is that 99% of programmers are just not capable of writing > the kinds of libraries they routinely use. Yes but more than that I am saying this state of affairs is a problem. It causes succeeding generations of programmers to be less qualified to program and it encourages and enables unqualified people to work over their heads. And I think the major software failures we have seen in the last 15 years whether in C or OO languages are a result of this. Stan