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=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,21960280f1d61e84 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Newsgroups: comp.lang.ada Subject: Re: How come Ada isn't more popular? References: <1169636785.504223.139630@j27g2000cwj.googlegroups.com> <45b8361a_5@news.bluewin.ch> <3pejpgfbki.fsf@hod.lan.m-e-leypold.de> From: Markus E Leypold Organization: N/A Date: Sat, 03 Feb 2007 15:51:33 +0100 Message-ID: <8lwt2zb8ga.fsf@hod.lan.m-e-leypold.de> User-Agent: Some cool user agent (SCUG) Cancel-Lock: sha1:bEH3idFRgwa+JjxRuGONc4OWzEw= MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii NNTP-Posting-Host: 88.72.212.247 X-Trace: news.arcor-ip.de 1170513994 88.72.212.247 (3 Feb 2007 15:46:34 +0200) X-Complaints-To: abuse@arcor-ip.de Path: g2news2.google.com!news2.google.com!news4.google.com!newsfeed2.dallas1.level3.net!news.level3.com!newsfeed-00.mathworks.com!news.tele.dk!feed118.news.tele.dk!news.tele.dk!small.news.tele.dk!news-fra1.dfn.de!newsfeed.arcor-ip.de!news.arcor-ip.de!not-for-mail Xref: g2news2.google.com comp.lang.ada:8916 Date: 2007-02-03T15:51:33+01:00 List-Id: "Dmitry A. Kazakov" writes: > On Fri, 02 Feb 2007 14:57:17 +0100, Markus E Leypold wrote: >> When I talk about all those transitions, I see, that there was no >> C->Ada transition, at least no mass movement. So we come back to the >> C->initial question: Why not? > > How much popular was C that time? I am asking this question because I Really popular, at least in Europe and the US, I think. Pascal was a real contender on micros in the eighties but it had practically lost out in the nineties despite there being still a good number of Delphi shops/people/developers around. > learned C after Ada. My personal transition was FORTRAN-IV/PL/1 -> Ada 83. > I think so. GNAT was a quite poor compiler for too long. Another important GNAT is still annoying the hell out of me in fringe areas of the language. And the errors are so fundamental, that I begin to think that it will take a long time to smoke them out. Furthermore I believe there is simply no incentive for AdaCore (who as I understand maintain most of the GNAT code in the GCC repository) to establish a good or stable baseline in the publicly accessible repository. > thing was (is) a lack of good IDE. C++ vendors paid much attention to > design IDE, much more than to compiler quality... This is the first thing a > newcomer sees. There is something in that. Additionally there is/was a number additional tools missing like lint/splint/cscope etc. >>> Why? OO is about encapsulation and polymorphism, these don't need >>> references everywhere. >> >> Yes, but -- you want to keep, say, a list of Shape(s). Those can be >> Triangle(s), Circle(s) etc, which are all derived from class >> Shape. How do you store this list? An array of Shape'Class is out of >> question because of the different allocation requirements for the >> descendants of Shape(s). > > Why should this worry you (and me)? It should Randy and Robert! (:-)) > > The language does not require array implementation to be contiguous. Randy > told once that Janus Ada is practically ready for > > type X is array (...) of Y'Ckass; OK, then But non contigous representation of arrays will really stress memory management, fragment the heap (we can't do that on the stack AFAIS). And what about mapping of C arrays to Ada arrays (or is that not possible anyway -- I admit I'd have to read that up) >>> What about maintainability and reasoning? >> >> What about it? It's easy with value-oriented languages (i.e. languages >> that just produce new values from old ones in a non-destructive >> fashion). Functional languages do this therefore reasoning is a well >> developed art there. But the representations of all those values >> (trees, lists, ...) (a) rely heavily on representation sharing and (b) >> use references because of that. They need and use GC. > You are mixing by-value vs. by-reference semantics with no-identity vs. > has-identity. No. Values have no "identity". "Object identity" smacks heavily of storage and memory chunks. I fail to see how "identity" comes into the question of "value-oriented" languages (your term, BTW) and represenation sharing. GC is about references (to memory) and representation sharing works with references to parts of another "value" (see lisp lists). Represnattion sharing needs either reference counting (inefficient, is also just some kind of instant GC) or GC. > These are two semantically different things. One is about > implementation another is about properties of the domain. "Premature > optimization" is you know what... If identity is in question, then objects > should be made limited and could then be accessed through referential > objects. But that alone does not require GC. I might also require no > reference object if self-recursive types supported. I admit I cannot follow you into your rather foreign and, I have to say, closed and self referential world of programming language design. But that doesn't matter much: I also have forgotten why we're discussing this. "Maintainability and reasoning" was somewhere there. But did you answer my answer (quoted above) or did you just declare it as invalid, because you have a different terminology? Seems, we've actually stopped communicating ... So ... -- I summarize: In your opinion GC is bad, and I don't aunderstand your reasoning, in mine it's indispensable in a world were program sizes have grown and we desire to program on different levels of abstractions than we did 10 or 20 years ago. We should leave it at that. Regards -- Markus