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: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: Stan Mills Newsgroups: comp.lang.ada Subject: Re: What exactly is the licensing situation with GNAT? Date: Fri, 14 Nov 2014 10:38:17 +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: /73E1exqNyif7fBAZXl+/w.user.speranza.aioe.org X-Complaints-To: abuse@aioe.org X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:23282 Date: 2014-11-14T10:38:17+00:00 List-Id: On 2014-11-14, Dmitry A. Kazakov wrote: > On Fri, 14 Nov 2014 09:02:49 +0000 (UTC), Stan Mills wrote: > >> On 2014-11-14, Dmitry A. Kazakov wrote: >>> On Thu, 13 Nov 2014 17:36:06 -0800, Hubert wrote: >>> >>>> That is a point that I have been contemplating for a while now but in >>>> conjunction with Object Oriented Programming. When I look back at my >>>> career I realize that I became lazier and lazier in terms of designing >>>> before programming with the advent of OOP. I think OOP is designed to to >>>> just that: >>> >>> Hmm, actually OOD and OOP require more upfront design than traditional >>> procedural approach. Ad-hoch subprograms are much easier and quicker stuff >>> than ad-hoc type + subprograms (=class) with thinking about possible >>> inheritance etc. >> >> That's if you are responsible for the whole thing or care about doing it properly. >> >> The way OO is used today all the real work is expected to have already been >> done by the class library writers and the "coder" just cuts and pastes his >> way to the end of the program. Next! > > This is how everything is done today. Certainly it is not OO's fault or > OO's feature. Oh, I beg to differ. Sun certainly dumbed down programming when they designed Java. It's about making unqualified people "productive" and the best way to do that is for qualified people to write as much code as possible for unqualified people to use. The primary feature of OO in practice is the huge set of class libraries to reduce the amount of future coding as much as possible to simple cut and paste of existing bad code. The only thing a regular programmer can't write in Java or C++ today is something that doesn't already have a class library to do it for him. > On the contrary, OO, specifically the concepts of inheritance and > instances, addresses software-reuse, which is exactly the opposite to the > cut and paste approach. That's the theory. But in practice, having all the hard stuff written already just promotes cutting and pasting of a different color. The code that *uses* those classes is normally not reusable. That's what is cutting and pasting. It's been shoved down a level or two. Don't try and impose your sense of rigor and order on chaos and think everybody works according to sound software engineering practice ;-) The reality is unfortunately like I said. People are worse coders than they were before OO and they are crippled, not enabled, by immense class libraries. 1/2% of the people are writing 99% of the usable code. The other guys are just invoking their methods. 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. It was true in C and it's much worse with Java and C++, not to mention the new OO scripting languages. In the end OO is about the other guy doing all the work and you feeling like you accomplished something by using it. It's a big lie. Those people aren't programmers, they're disabled end-users. Stan