* Anybody in US using ADA ? @ 2002-12-31 18:37 Mr Bill 2002-12-31 18:55 ` John R. Strohm 2002-12-31 22:38 ` Anybody in US using ADA ? Britt Snodgrass 0 siblings, 2 replies; 337+ messages in thread From: Mr Bill @ 2002-12-31 18:37 UTC (permalink / raw) It seems to have fallen out of favor with everybody I know. Thanks, Bill ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2002-12-31 18:37 Anybody in US using ADA ? Mr Bill @ 2002-12-31 18:55 ` John R. Strohm 2003-01-01 3:20 ` Marin David Condic 2003-01-06 22:24 ` Richard Riehle 2002-12-31 22:38 ` Anybody in US using ADA ? Britt Snodgrass 1 sibling, 2 replies; 337+ messages in thread From: John R. Strohm @ 2002-12-31 18:55 UTC (permalink / raw) I *THINK* that Lockheed-Martin Fort Worth is using Ada for F-22 and F-16. You might try looking at their web sight (http://www.lmco.com) and seeing what they are looking to hire. (Most of their effort appears to be trawling for resumes for Joint Strike Fighter, which is in C++. "Mr Bill" <nospam@nospam.com> wrote in message news:VtlQ9.42144$%3.10762066@twister.neo.rr.com... > It seems to have fallen out of favor with everybody I know. > > Thanks, > Bill > > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2002-12-31 18:55 ` John R. Strohm @ 2003-01-01 3:20 ` Marin David Condic 2003-01-01 7:11 ` tmoran ` (2 more replies) 2003-01-06 22:24 ` Richard Riehle 1 sibling, 3 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-01 3:20 UTC (permalink / raw) I believe Pratt & Whitney is still using Ada for engine controls. At least some of them. As one who is working on the engines for the JSF, I can tell you that those controls are still in Ada - for the time being. (Don't know what will happen when they go into full scale development.) Its a shame to see that many in the DoD arena are abandoning Ada because "Everybody else is using C++". In this area, Ada does not tend to suffer so much from lack of large libraries or other development enhancers since hardware is often custom built and/or software development is not the long pole in the tent. Here Ada's faster development time and reduced defect characteristics can truly stand out. I'm afraid I don't know how to overcome the "follow the crowd" mentality here. Ada has the technical edge and so long as compilers/tools are available for the target (at a reasonable cost) there isn't a whole lot of business/financial edge to something else (in many cases at least). None of that tends to persuade the programmers or their managers that they shouldn't try to be like everyone else. The only real hope is for Ada to find its way into a significant commercial niche so that there is a large body of "everyone else" out there to be followed. Its hard to blame the programmers or the managers. Programmers want to have skills that can get them a job somewhere else if Congress pulls the plug on what they're doing - or simply want to use what they are familiar with already. Managers don't want to be perceived as taking unnecessary risks and - as the saying used to be - "Nobody ever got fired for picking IBM". Similarly, management won't be fired for using tools that are "industry standard". Nobody is going to change that position unless Ada is adopted for some reasonably wide sector of the software market. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== John R. Strohm <strohm@airmail.net> wrote in message news:C900921B7A3FDDD4.5FD752FF5D42F9AF.349D2214D482463F@lp.airnews.net... > I *THINK* that Lockheed-Martin Fort Worth is using Ada for F-22 and F-16. > You might try looking at their web sight (http://www.lmco.com) and seeing > what they are looking to hire. (Most of their effort appears to be trawling > for resumes for Joint Strike Fighter, which is in C++. > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-01 3:20 ` Marin David Condic @ 2003-01-01 7:11 ` tmoran 2003-01-01 14:31 ` Marin David Condic ` (3 more replies) 2003-01-02 17:57 ` Anybody in US using ADA ? One silly idea Warren W. Gay VE3WWG 2003-01-02 18:29 ` Anybody in US using ADA ? Mike Silva 2 siblings, 4 replies; 337+ messages in thread From: tmoran @ 2003-01-01 7:11 UTC (permalink / raw) > Programmers want to have skills that can get them a job somewhere else if > Congress pulls the plug on what they're doing Are there other industries or professions with as narrow apparent skill sets? "Young doctors don't want to learn surgery in case advanced drugs make it unnecessary." "Lawyers don't want to learn criminal law in case everybody becomes saintly." "Civil engineers want to learn only about high speed rail, not roads, fearing no more roads will be built in future." Even actors worrying about type casting usually try to diversify, rather than getting lots and lots of practice in crowd scenes. :( Q 2: What will all those C++ and Java programmers do when they discover you don't innovate by getting a job that let's you use last year's innovations, and they have no competitive advantage over Indians or Russians at learning last year's innovations. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-01 7:11 ` tmoran @ 2003-01-01 14:31 ` Marin David Condic 2003-01-01 22:49 ` tmoran 2003-01-05 17:06 ` Adrian Hoe 2003-01-02 3:05 ` faust ` (2 subsequent siblings) 3 siblings, 2 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-01 14:31 UTC (permalink / raw) To some extent, you're preaching to the choir. I agree that what is really important is not the language or toolsets you use, but your abilities as an engineer. But there is the other side of the coin. All professions specialize to some extent and just as a doctor who specialized in gynocology might have a hard time switching to proctology and beginning to work in an entirely new field, so is it true that a programmer who has specialized in Ada and some Ada toolset might have a bit of work making the transition to some other language/toolset/problem domain. And even if one dismisses this as not that big a deal, there's still this nasty problem called "Reality". Job postings try to look for very specific skills and hiring managers generally don't want to consider someone unless they match their job description very closely. The fact that you can adapt and don't think that this is a big deal doesn't matter because the people making those decisions *do* think its a big deal. Life is often not fair, eh? MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== <tmoran@acm.org> wrote in message news:hwwQ9.518530$%m4.144999@rwcrnsc52.ops.asp.att.net... > > Programmers want to have skills that can get them a job somewhere else if > > Congress pulls the plug on what they're doing > Are there other industries or professions with as narrow apparent skill > sets? "Young doctors don't want to learn surgery in case advanced drugs > make it unnecessary." "Lawyers don't want to learn criminal law in case > everybody becomes saintly." "Civil engineers want to learn only about > high speed rail, not roads, fearing no more roads will be built in future." > Even actors worrying about type casting usually try to diversify, rather > than getting lots and lots of practice in crowd scenes. :( > Q 2: What will all those C++ and Java programmers do when they discover > you don't innovate by getting a job that let's you use last year's > innovations, and they have no competitive advantage over Indians or > Russians at learning last year's innovations. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-01 14:31 ` Marin David Condic @ 2003-01-01 22:49 ` tmoran 2003-01-02 12:45 ` Marin David Condic 2003-01-05 17:04 ` Adrian Hoe 2003-01-05 17:06 ` Adrian Hoe 1 sibling, 2 replies; 337+ messages in thread From: tmoran @ 2003-01-01 22:49 UTC (permalink / raw) > Job postings try to look for very specific skills The necessary implication being that the design has already been frozen - "we will be using this language, that database, this kind of UI, ...". I read an interesting essay recently that pointed out that color TV, UHF, and cable were all technically feasible in 1948 when TVs were in less than 1% of American households. But we had three black and white VHF network channels for a very long time because of industry structure&power reasons. I suppose there were lots of job postings for B/W VHF tuner designers, and few for people who knew UHF etc. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-01 22:49 ` tmoran @ 2003-01-02 12:45 ` Marin David Condic 2003-01-02 18:08 ` Anybody in US using ADA ? New language competition? Warren W. Gay VE3WWG 2003-01-03 9:57 ` Anybody in US using ADA ? Kevin Cline 2003-01-05 17:04 ` Adrian Hoe 1 sibling, 2 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-02 12:45 UTC (permalink / raw) I never said it was "right" - just "reality". :-) I agree, if one is contemplating a new system from bottom-dead-center then one ought to consider all of the inputs and decide what provides the best solution. But new systems from bottom-dead-center are the exception. Almost always, you're dealing with evolutionary growth or enhancement of some existing system or a new project living within an existing context. Hence someone already has a big investment in infrastructure that isn't going to get discarded just because there exists some superior technology somewhere. (Example: A bank needs some new accounting package that must operate on its existing mainframe(s) & peripherials, against its existing database, maintained by its existing staff, etc. They already have an OS, a Cobol compiler, a database product and a heavy investment in tools, utilities, libraries, etc. to operate here and the new system has to interact with the existing applications. What are the odds someone is going to talk them into switching to Ada for that new development?) Maybe that's part of why there was/is a lot of resentment toward Ada. It walked in the door with a mandate and everyone had big investments in other things and the feeling was "This is going to cost me truckloads in discarding my existing investment and for what? An uncertain 'technical advantage'? Why are they trying to make my life harder?" This is why Ada's best hope would be to attach itself to some new, emerging technology where it doesn't have to displace existing technology and can itself become the entrenched status quo. Barring that, it has to find some groundswell of usage out in the hacker world so that there is some large infrastructure of practical things in use that keep it afloat. (Another version of "new technology") I don't see it doing either one unless it offers the world some significant edge over the existing technology and "reduced errors" isn't selling. "Time to market" probably would. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== <tmoran@acm.org> wrote in message news:VfKQ9.193788$qF3.13607@sccrnsc04... > > Job postings try to look for very specific skills > The necessary implication being that the design has already been > frozen - "we will be using this language, that database, this kind > of UI, ...". > I read an interesting essay recently that pointed out that color TV, > UHF, and cable were all technically feasible in 1948 when TVs were in less > than 1% of American households. But we had three black and white VHF > network channels for a very long time because of industry structure&power > reasons. I suppose there were lots of job postings for B/W VHF tuner > designers, and few for people who knew UHF etc. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? 2003-01-02 12:45 ` Marin David Condic @ 2003-01-02 18:08 ` Warren W. Gay VE3WWG 2003-01-03 2:47 ` Marin David Condic 2003-01-03 9:57 ` Anybody in US using ADA ? Kevin Cline 1 sibling, 1 reply; 337+ messages in thread From: Warren W. Gay VE3WWG @ 2003-01-02 18:08 UTC (permalink / raw) Marin David Condic wrote: ... > Maybe that's part of why there was/is a lot of resentment toward Ada. It > walked in the door with a mandate and everyone had big investments in other > things and the feeling was "This is going to cost me truckloads in > discarding my existing investment and for what? An uncertain 'technical > advantage'? Why are they trying to make my life harder?" It would be interesting reading to review the "competition to the Green language" at this point in time, to see how the other entries stack up with what we know and accept today in compiler languages and technologies. Are there online documents that describe the other entries? The Internet today would make it very easy for us to form our own committee of "language experts" to start a language design competition and review. Once the winner is announced, there must be enough open sourced people spoiling for a chance to work on a new language/compiler. Getting it accepted by industry would be a different matter, but hey -- Linux is gaining acceptance. Stranger things have happened. However, when I think about it myself, I just feel that Ada95 (and pending 200y) has gained so much useful experience, that it seems a shame to start over (and add to the competition with Ada). I'd rather see Ada succeed than start from near scratch again. But hey- maybe there is a better design waiting to be sprung on the world. -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? 2003-01-02 18:08 ` Anybody in US using ADA ? New language competition? Warren W. Gay VE3WWG @ 2003-01-03 2:47 ` Marin David Condic 2003-01-03 6:01 ` Robert C. Leif 2003-01-03 17:58 ` Anybody in US using ADA ? New language competition? (long) Warren W. Gay VE3WWG 0 siblings, 2 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-03 2:47 UTC (permalink / raw) Well, Ada's original requirements were targeted towards the embedded world and for a whole bunch of reasons, it went over like a lead balloon with the embedded developers. Partly because it initially didn't satisfy those requirements in practice. (Eventually, it got there but not after having created a horrible first impression and leaving a bad taste in the mouths of too many embedded developers.) I don't think there is anything inherently wrong with the language and there isn't anything inherently wrong with its original requirements. However, if I was going to write a new set of requirements for Ada (or some new language) to meet, I'd spend some time talking to the folks who are not using Ada now and find out what they want most in a programming language. I'd bet (given the history of what is being bought out there) that development leverage would tip the scales in its favor. "Hey guys! Pay that initial investment in learning curve and infrastructure development up front and you'll be building apps in half the time you do now and oh, P.S., they'll be portable across Windoze, Unix, Linux and Mac too!!!" Reliability, performance, maintainability are all wonderful and desirable things - but first you've got to deliver! Ada's problem is that it has a history of promising how great its going to be one day, but doesn't deliver - at least not on time. By this, I mean that it has promised things like being good for embedded development and then taking years to get efficient enough to do it and not being targeted to nearly enough embedded platforms. People went with C because Ada just talked about how great it would be one day. Same story now for workstation/PC development. One day, if enough bindings and libraries are built you could develop better GUI apps that are more reliable. But so what? C++ and/or Java are already there with their libraries and bindings. Too bad that "One Day" Ada could do it better. People are picking their languages and platforms today - not "One Day". If Ada wants to win, its got to get out in front and lead the way with more/better leverage *today* rather than "One Day". MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== Warren W. Gay VE3WWG <ve3wwg@cogeco.ca> wrote in message news:3E148004.5000408@cogeco.ca... > > It would be interesting reading to review the "competition to > the Green language" at this point in time, to see how the > other entries stack up with what we know and accept today in > compiler languages and technologies. Are there online documents > that describe the other entries? > > The Internet today would make it very easy for us to form our > own committee of "language experts" to start a language design > competition and review. Once the winner is announced, there must > be enough open sourced people spoiling for a chance to work on > a new language/compiler. Getting it accepted by industry would > be a different matter, but hey -- Linux is gaining acceptance. > Stranger things have happened. > > However, when I think about it myself, I just feel that Ada95 (and > pending 200y) has gained so much useful experience, that it seems > a shame to start over (and add to the competition with Ada). I'd > rather see Ada succeed than start from near scratch again. But hey- > maybe there is a better design waiting to be sprung on the world. > > -- > Warren W. Gay VE3WWG > http://home.cogeco.ca/~ve3wwg > ^ permalink raw reply [flat|nested] 337+ messages in thread
* RE: Anybody in US using ADA ? New language competition? 2003-01-03 2:47 ` Marin David Condic @ 2003-01-03 6:01 ` Robert C. Leif 2003-01-03 17:58 ` Anybody in US using ADA ? New language competition? (long) Warren W. Gay VE3WWG 1 sibling, 0 replies; 337+ messages in thread From: Robert C. Leif @ 2003-01-03 6:01 UTC (permalink / raw) Marin Condic stated, " If Ada wants to win, its got to get out in front and lead the way with more/better leverage *today* rather than "One Day". This is totally correct. Our chance is with XML, which has a greater similarity with Ada than other programming languages. We need an XForms implementation that works and can exchange data with Ada. Bob Leif -----Original Message----- From: comp.lang.ada-admin@ada.eu.org [mailto:comp.lang.ada-admin@ada.eu.org] On Behalf Of Marin David Condic Sent: Thursday, January 02, 2003 6:47 PM To: comp.lang.ada@ada.eu.org Subject: Re: Anybody in US using ADA ? New language competition? Well, Ada's original requirements were targeted towards the embedded world and for a whole bunch of reasons, it went over like a lead balloon with the embedded developers. Partly because it initially didn't satisfy those requirements in practice. (Eventually, it got there but not after having created a horrible first impression and leaving a bad taste in the mouths of too many embedded developers.) I don't think there is anything inherently wrong with the language and there isn't anything inherently wrong with its original requirements. However, if I was going to write a new set of requirements for Ada (or some new language) to meet, I'd spend some time talking to the folks who are not using Ada now and find out what they want most in a programming language. I'd bet (given the history of what is being bought out there) that development leverage would tip the scales in its favor. "Hey guys! Pay that initial investment in learning curve and infrastructure development up front and you'll be building apps in half the time you do now and oh, P.S., they'll be portable across Windoze, Unix, Linux and Mac too!!!" Reliability, performance, maintainability are all wonderful and desirable things - but first you've got to deliver! Ada's problem is that it has a history of promising how great its going to be one day, but doesn't deliver - at least not on time. By this, I mean that it has promised things like being good for embedded development and then taking years to get efficient enough to do it and not being targeted to nearly enough embedded platforms. People went with C because Ada just talked about how great it would be one day. Same story now for workstation/PC development. One day, if enough bindings and libraries are built you could develop better GUI apps that are more reliable. But so what? C++ and/or Java are already there with their libraries and bindings. Too bad that "One Day" Ada could do it better. People are picking their languages and platforms today - not "One Day". If Ada wants to win, its got to get out in front and lead the way with more/better leverage *today* rather than "One Day". MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== Warren W. Gay VE3WWG <ve3wwg@cogeco.ca> wrote in message news:3E148004.5000408@cogeco.ca... > > It would be interesting reading to review the "competition to > the Green language" at this point in time, to see how the > other entries stack up with what we know and accept today in > compiler languages and technologies. Are there online documents > that describe the other entries? > > The Internet today would make it very easy for us to form our > own committee of "language experts" to start a language design > competition and review. Once the winner is announced, there must > be enough open sourced people spoiling for a chance to work on > a new language/compiler. Getting it accepted by industry would > be a different matter, but hey -- Linux is gaining acceptance. > Stranger things have happened. > > However, when I think about it myself, I just feel that Ada95 (and > pending 200y) has gained so much useful experience, that it seems > a shame to start over (and add to the competition with Ada). I'd > rather see Ada succeed than start from near scratch again. But hey- > maybe there is a better design waiting to be sprung on the world. > > -- > Warren W. Gay VE3WWG > http://home.cogeco.ca/~ve3wwg > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-03 2:47 ` Marin David Condic 2003-01-03 6:01 ` Robert C. Leif @ 2003-01-03 17:58 ` Warren W. Gay VE3WWG 2003-01-04 14:57 ` Marin David Condic 1 sibling, 1 reply; 337+ messages in thread From: Warren W. Gay VE3WWG @ 2003-01-03 17:58 UTC (permalink / raw) Marin David Condic wrote: > Well, Ada's original requirements were targeted towards the embedded world > and for a whole bunch of reasons, it went over like a lead balloon with the > embedded developers. Partly because it initially didn't satisfy those > requirements in practice. (Eventually, it got there but not after having > created a horrible first impression and leaving a bad taste in the mouths of > too many embedded developers.) In its day, I could see why embedded people had concerns (Ada is still a very large "language"). The largeness should not be a concern for general purpose use - GNAT just flies through compiles on my 1.2Ghz laptop. I can only image how fast it is on current technology. The only general fault that I would state about the Ada95 _language_ apart from a few "warts", would be the complexity of some of the rules. But then, I suppose, if you were to implement limited types (for example) in a new language, you'd probably still have those same complex rules under different names/circumstances. The freezing rules are a bit tricky, and some of the visibility aspects are a bit tricky. I also think better could be expected of "representation rules" as well. > I don't think there is anything inherently wrong with the language and there > isn't anything inherently wrong with its original requirements. I would generally support this (with exceptions noted above). > However, if > I was going to write a new set of requirements for Ada (or some new > language) to meet, I'd spend some time talking to the folks who are not > using Ada now and find out what they want most in a programming language. I think we've discussed this before-- the real reason IMHO is the lack of "library support". It is less an issue of the language, but more about the libraries and bindings. Being that Ada95 is different than C/C++, bindings come into just about everything (for both Windows and UNIX) -- speaking non-embedded world wise. Also a lack of a "generally accepted" container library (standard or not), is also a "fracturing component". I myself find the Booch components extremely useful, but many I suppose do not like the complexities of the instantiations required to use them. Is it possible that the generics in the _language_ needs to be researched to make container libraries more elegant? Or are the implementations of these (Booch?) the problem? Or are we too hard on the requirements? > I'd bet (given the history of what is being bought out there) that > development leverage would tip the scales in its favor. "Hey guys! Pay that > initial investment in learning curve and infrastructure development up front > and you'll be building apps in half the time you do now and oh, P.S., > they'll be portable across Windoze, Unix, Linux and Mac too!!!" I think you could eventually sell Ada if the binding/library support was there. If developers could find all the bindings to the O/S, database, GUI and all that other cool Open Sourced set of libraries, then it becomes only a matter of language choice. The reality is that using Ada for general purpose work is still very much an uphill battle on most of these fronts, because the developer must become expert in writing bindings to existing libraries and often O/S facilities. Portability might be enhanced with a _standard_ preprocessor (something like gnatprep). > Reliability, performance, maintainability are all wonderful and desirable > things - but first you've got to deliver! THat is where libraries/bindings would be a great benefit. > Ada's problem is that it has a > history of promising how great its going to be one day, but doesn't > deliver - at least not on time. By this, I mean that it has promised things > like being good for embedded development and then taking years to get > efficient enough to do it and not being targeted to nearly enough embedded > platforms. People went with C because Ada just talked about how great it > would be one day. Embedded systems have their own challenge, because they are very much focused on efficiency with very limited resources. On the GP scene however, I don't believe this needs to be much of a factor. > Same story now for workstation/PC development. One day, if > enough bindings and libraries are built you could develop better GUI apps > that are more reliable. Yes, that's it. > But so what? C++ and/or Java are already there with > their libraries and bindings. Yep, that is the _competition_ then -- the competition is at the library level. > Too bad that "One Day" Ada could do it better. > People are picking their languages and platforms today - not "One Day". If > Ada wants to win, its got to get out in front and lead the way with > more/better leverage *today* rather than "One Day". > Marin David Condic I do believe however, that language/tool choice is becoming increasingly critical in the GP scene. Consider this: 1. Assembly language was the language of choice for operating systems when hardware was slow, clunky in resource strapped. This was so in order to be efficient (mostly), due to limited choice of compiler technology and memory/CPU resources and needs. 2. People started to write O/S in higher level languages: C, Modula-2 etc. There was still a need to be "resource frugal", but the higher level language was decidedly much more reliable, and saved time in development and maintenance. 3. Large software systems like the X-Window software was written in C, because it was available and efficient for the hardware of that time. It is still in C, primarily due to its age and "legacy reasons" 4. About the same time, we have various incarnations of unreliable Microsoft software also being written in C initially, although increasingly in C++. 5. The Internet: with it came the problems of security and virus and hacking threats. Users are sick of Windows unreliability. Also a fork into the foray of java etc. 6. Users/IT is sick of securing against network hacks. Still contending with "instability". Systems of all kinds are getting "huge" and built with an "unstable foundation". <Present Time: 2003> 7. Recognition that software reliability requires that the compiler technology must be very rigid. Two alternatives: i) Form a consortium to design a new language/tools. ii) Recognize that Ada95/Ada200y is the best new tool for the job. iii)Fork off another Ada200x variant that is targeted to general purpose work, leaving the embedded systems roots behind. Clean up warts. 8. Build new foundations (O/S etc.) in this/these new language(s). # 4, 5 and 6 remind me of the time when O/S were unstable because of their assembler language roots. Now we have O/S that have some instability due to their C roots (granted a great improvement in some cases over the assembler counterparts). Now its time to move past C into Ada (thinking optimistically...) I like to think optimistically, that we are headed in the 7.ii or 7.iii direction in the near future. We cannot keep buiding humungous systems on unstable foundations. At some point, someone is going to say "scrap the foundation and put something more reliable there, so that we can get _on_ with building on top reliably". How can you build a tower if you have to keep patching the basement? This even applies to the embedded world still -- I can't believe the number of software bugs I have encountered in my Kodak digital camera. -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-03 17:58 ` Anybody in US using ADA ? New language competition? (long) Warren W. Gay VE3WWG @ 2003-01-04 14:57 ` Marin David Condic 2003-01-06 15:53 ` Wes Groleau 2003-01-06 18:22 ` Warren W. Gay VE3WWG 0 siblings, 2 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-04 14:57 UTC (permalink / raw) Warren W. Gay VE3WWG <ve3wwg@cogeco.ca> wrote in message news:3E15CF31.1020900@cogeco.ca... > > In its day, I could see why embedded people had concerns (Ada is still > a very large "language"). The largeness should not be a concern for > general purpose use - GNAT just flies through compiles on my 1.2Ghz > laptop. I can only image how fast it is on current technology. > Back when Ada was first emerging, compilers were generating really crappy code and if a compiler worked at all, it almost certainly wasn't targeted to your embedded processor. If by some miracle it was, the large overhead could kill you. Assuming you also had the tools needed to get an executable image into the target - which would be a rather rash assumption at the time. Things eventually got better, but not before validating everyone's prejudices and guaranteeing that Ada would never get considered by a large segment of the population. Things have gotten better today but Ada still fails in the embedded world for a variety of reasons. Sure, you can get good quality compilers that target some of the larger processors in use today and you might even find enough support tools to make the job relatively easy, but there are still lots of tiny processors out there that Ada doesn't (and arguably, can't) target and in general, Ada is pretty much totally ignored by the embedded world. (A few notable exceptions out there - including myself.) So if Ada's original requirements were aimed at satisfying the needs of embedded development, it seems to have failed in that market. Did it fail because it failed to satisfy *real* embedded requirements or did it fail for other reasons? (Political, social, environmental, etc?) Probably a combination of both. > > I think we've discussed this before-- the real reason IMHO is the lack > of "library support". It is less an issue of the language, but more > about the libraries and bindings. Being that Ada95 is different than > C/C++, bindings come into just about everything (for both Windows > and UNIX) -- speaking non-embedded world wise. > > Also a lack of a "generally accepted" container library (standard or > not), is also a "fracturing component". I myself find the Booch > components extremely useful, but many I suppose do not like the > complexities of the instantiations required to use them. > If Ada woke up tommorrow with everything in it you describe above, it would meet the general reaction of "Gee. That's interesting. C/C++ have had this for years and we're already heavily invested in those technologies. What else have you got?" The problem here is not that Ada shouldn't strive to have those things, but rather that these are just the entry price needed to even get in the game. Its not enough to be able to supplant someone's heavy investment in other technology. Whatever Ada does, it needs to become *better* than other languages out there or nobody has any reason to want to switch. It might even be necessary to rethink all of the library & binding stuff to do something totally *different* or Ada is just another "Me Too!!!" player that is going to be ignored because it will *never* be as good at binding to something as the language the thing is written in (Unix, Motif, etc.) > Is it possible that the generics in the _language_ needs to be > researched to make container libraries more elegant? Or are the > implementations of these (Booch?) the problem? Or are we too > hard on the requirements? > I'd say pick one and start enhancing it. We can argue all day long and into the night about what is the best way to ultimately come up with the "perfect" container library. Doing that will insure we never have one. Grab something as a model, get it under a tree that can be easily expanded to include new things for different problem domains, build a reference implementation and share it with all the vendors. That would get something in use and start providing leverage for the developer. > > I think you could eventually sell Ada if the binding/library support > was there. If developers could find all the bindings to the O/S, > database, GUI and all that other cool Open Sourced set of libraries, > then it becomes only a matter of language choice. The reality is that > using Ada for general purpose work is still very much an uphill battle > on most of these fronts, because the developer must become expert > in writing bindings to existing libraries and often O/S facilities. > Agreed. And disagreed. As noted above, you need the bindings just to be a player, but I think you've got to offer something *more* than just that to sway someone away from what they already use. Also, I've never liked Ada bindings to C libraries because while it is technically possible, itr always feels like an unnatural act and demands that the Ada developer think like a C programmer. It would be better if Ada could go down its own path and do something new/different that got the same net effect as bindings might produce, but do it in a way consistent with Ada and offering a *better* answer. > > Embedded systems have their own challenge, because they are very much > focused on efficiency with very limited resources. On the GP scene > however, I don't believe this needs to be much of a factor. > Really? We're here talking about how great it will be one day when Ada provides libraries and bindings and all that. Where are they? By the time Ada succeeds in getting some of the useful things already found in numerous other languages, the world has passed it by once again. Something needs to be done with Ada to institutionally/culturally get it to react faster to the marketplace or it will always be in "catch up" mode chasing the leaders rather than *being* the leader. I like Ada and want to see it succeed, but efforts need to be focused on leapfrogging the competition if this is to happen. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-04 14:57 ` Marin David Condic @ 2003-01-06 15:53 ` Wes Groleau 2003-01-06 16:36 ` Larry Kilgallen ` (2 more replies) 2003-01-06 18:22 ` Warren W. Gay VE3WWG 1 sibling, 3 replies; 337+ messages in thread From: Wes Groleau @ 2003-01-06 15:53 UTC (permalink / raw) > sway someone away from what they already use. Also, I've never liked Ada > bindings to C libraries because while it is technically possible, itr always > feels like an unnatural act and demands that the Ada developer think like a > C programmer. It would be better if Ada could go down its own path and do Like we did with POSIX--declared _one_ exception, and after it's raised you examine a global variable to find out what actually happened. I see your point about "leapfrogging the competition" _but_ anything new has to actually be not only new but self-contained. If you make a new web server, it still has to interoperate with most of the things other webservers work with, or it won't get used. And it isn't being used, is it? Sure, by Ada fans, but that's not the point. How about TopGraph'X - is it a better X-server? How many of them have been installed compared to the number of X-servers in (the) other language(s)? If they're better and they do interoperate, why are they not being used? Anonymity? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-06 15:53 ` Wes Groleau @ 2003-01-06 16:36 ` Larry Kilgallen 2003-01-06 20:47 ` Randy Brukardt 2003-01-07 13:11 ` Marin David Condic 2 siblings, 0 replies; 337+ messages in thread From: Larry Kilgallen @ 2003-01-06 16:36 UTC (permalink / raw) In article <PDhS9.214$Z74.885@dfw-service2.ext.raytheon.com>, Wes Groleau <wesgroleau@despammed.com> writes: > How about TopGraph'X - is it a better X-server? > How many of them have been installed compared to > the number of X-servers in (the) other language(s)? I thought it was a replacement for the Motif Library rather than for the Xwindows server. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-06 15:53 ` Wes Groleau 2003-01-06 16:36 ` Larry Kilgallen @ 2003-01-06 20:47 ` Randy Brukardt 2003-01-07 13:15 ` Wes Groleau 2003-01-07 13:11 ` Marin David Condic 2 siblings, 1 reply; 337+ messages in thread From: Randy Brukardt @ 2003-01-06 20:47 UTC (permalink / raw) Wes Groleau wrote in message ... >If you make a new web server, it still has to interoperate with >most of the things other webservers work with, or it won't get >used. And it isn't being used, is it? Sure, by Ada fans, but >that's not the point. That's a lousy example. If you "interoperate" with those other things, (i.e. plugins and CGIs), you're also bringing in the intractable security problems of those other things. That's precisely why I updated Tom Moran's web server to use for our AdaIC backup server. It doesn't know how to execute another program (and never will), so no one will ever be able to use it to launch Cmd.Exe, no matter what garbage it is given. And most of the other security problems you hear about can't happen, either. The only thing it writes is log files, so an attacker can't use it to create files, either, no matter what they do. About the worst that can happen is that they could use it to cause a denial-of-service -- and given that it uses a set of Ada tasks, even that would be fairly difficult. Of course, it has to understand HTTP and make log files that analyzer programs recognize, but the first is the definition of "web server" and the latter is trivial. But, all of that said, I think your basic point is correct. Randy Brukardt. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-06 20:47 ` Randy Brukardt @ 2003-01-07 13:15 ` Wes Groleau 2003-01-07 19:05 ` Randy Brukardt 0 siblings, 1 reply; 337+ messages in thread From: Wes Groleau @ 2003-01-07 13:15 UTC (permalink / raw) >>If you make a new web server, it still has to interoperate with >>most of the things other webservers work with, or it won't get >>used. And it isn't being used, is it? Sure, by Ada fans, but >>that's not the point. > > That's a lousy example. If you "interoperate" with those other things, > (i.e. plugins and CGIs), you're also bringing in the intractable > security problems of those other things. My point is that if we need something "new" instead of "me-too" to sell Ada, then it would have to be _really_ new. A webserver that doesn't do what people want webservers to do won't get used. But to do all those things (the fact that they're insecure doesn't stop people from wanting them) it has to have the interfaces for them, and thus it's not something "new" in the sense that Marin was advocating. > That's precisely why I updated Tom Moran's web server to use for our > AdaIC backup server. It doesn't know how to execute another program (and > never will), so no one will ever be able to use it to launch Cmd.Exe, no No one will ever use my Apache to launch cmd.exe on my Mac, either. :-) Seriously, I think an Ada webserver is a good thing, but unless you sell it from the security standpoint (which _severely_ limits its audience) it's not something "new" > But, all of that said, I think your basic point is correct. Now that I've re-stated my basic point, still think so? :-) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-07 13:15 ` Wes Groleau @ 2003-01-07 19:05 ` Randy Brukardt 2003-01-07 19:37 ` Larry Kilgallen ` (3 more replies) 0 siblings, 4 replies; 337+ messages in thread From: Randy Brukardt @ 2003-01-07 19:05 UTC (permalink / raw) Wes Groleau wrote in message ... >> That's precisely why I updated Tom Moran's web server to use for our >> AdaIC backup server. It doesn't know how to execute another program (and >> never will), so no one will ever be able to use it to launch Cmd.Exe, no > >No one will ever use my Apache to launch cmd.exe on my Mac, either. :-) >Seriously, I think an Ada webserver is a good thing, but unless you >sell it from the security standpoint (which _severely_ limits its >audience) it's not something "new" Well, security is where its at when it comes to servers on the Internet. People make millions describing how to secure servers. Certainly, it helps to not have software running on it that has unnecessary security holes. But all that said, it would be hard to market YAWS (Yet Another Web Server), even if it was highly secure. It would also have to have better performance than anything built directly on top of Windows sockets can. So, I don't currently have any intention to market or even make available the web server I wrote. >> But, all of that said, I think your basic point is correct. > >Now that I've re-stated my basic point, still think so? :-) Sure. I agree that we need to get ahead of the curve, and having a better way to serve web pages isn't it. (Or having bindings to sockets and HTTP, or Claw for that matter). To get ahead of the curve, you'd need something truely new. And if I have any good ideas for that, I wouldn't be sitting here answering this message!!! Randy. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-07 19:05 ` Randy Brukardt @ 2003-01-07 19:37 ` Larry Kilgallen 2003-01-07 20:52 ` Wes Groleau ` (2 subsequent siblings) 3 siblings, 0 replies; 337+ messages in thread From: Larry Kilgallen @ 2003-01-07 19:37 UTC (permalink / raw) In article <v1m98cprbu23dd@corp.supernews.com>, "Randy Brukardt" <randy@rrsoftware.com> writes: > Well, security is where its at when it comes to servers on the Internet. > People make millions describing how to secure servers. Certainly, it > helps to not have software running on it that has unnecessary security > holes. One might think that, but consider the large market for virus scanners to fill security holes created by one corporation. That corporation is not at all shamed into eliminating the security holes, and is content to live with the other companies making a living off plugging the holes. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-07 19:05 ` Randy Brukardt 2003-01-07 19:37 ` Larry Kilgallen @ 2003-01-07 20:52 ` Wes Groleau 2003-01-08 20:05 ` Randy Brukardt 2003-01-07 21:23 ` Georg Bauhaus 2003-01-08 0:30 ` Richard Riehle 3 siblings, 1 reply; 337+ messages in thread From: Wes Groleau @ 2003-01-07 20:52 UTC (permalink / raw) > Well, security is where its at when it comes to servers on the Internet. > People make millions describing how to secure servers. Certainly, it On the other hand, web hosting companies are NOT interested in disabling the babel of plugins and extensions and modules that make them so insecure. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-07 20:52 ` Wes Groleau @ 2003-01-08 20:05 ` Randy Brukardt 0 siblings, 0 replies; 337+ messages in thread From: Randy Brukardt @ 2003-01-08 20:05 UTC (permalink / raw) Wes Groleau wrote in message ... >> Well, security is where its at when it comes to servers on the Internet. >> People make millions describing how to secure servers. Certainly, it > >On the other hand, web hosting companies are NOT interested >in disabling the babel of plugins and extensions and modules >that make them so insecure. I'm happy to host web sites without those things. :-) Of course, that would be popular, because then all of those fancy (and insecure) scripts couldn't run. Randy. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-07 19:05 ` Randy Brukardt 2003-01-07 19:37 ` Larry Kilgallen 2003-01-07 20:52 ` Wes Groleau @ 2003-01-07 21:23 ` Georg Bauhaus 2003-01-08 0:30 ` Richard Riehle 3 siblings, 0 replies; 337+ messages in thread From: Georg Bauhaus @ 2003-01-07 21:23 UTC (permalink / raw) Randy Brukardt <randy@rrsoftware.com> wrote: : To get ahead of the curve, you'd : need something truely new. And if I have any good ideas for that, I : wouldn't be sitting here answering this message!!! Sometimes I'd rather stick with something old. The more I see of it, the more I'm impressed by the quality and richness of old ideas and old software :-) Hope it doesn't get lost between all this new stuff. -- Georg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-07 19:05 ` Randy Brukardt ` (2 preceding siblings ...) 2003-01-07 21:23 ` Georg Bauhaus @ 2003-01-08 0:30 ` Richard Riehle 2003-01-08 20:12 ` Randy Brukardt 3 siblings, 1 reply; 337+ messages in thread From: Richard Riehle @ 2003-01-08 0:30 UTC (permalink / raw) Randy Brukardt wrote: > But all that said, it would be hard to market YAWS (Yet Another Web > Server), even if it was highly secure. It would also have to have better > performance than anything built directly on top of Windows sockets can. > So, I don't currently have any intention to market or even make > available the web server I wrote. At NPS we have some serious efforts going on where students are researching opportunities for more secure web servers along with other approaches to computer security. I would be interested in using your code to set up a laboratory experiment for one of our labs and invite students to hack into the server. If it proves to be as secure as you suggest, I think it could make a real contribution to the computer security program. Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-08 0:30 ` Richard Riehle @ 2003-01-08 20:12 ` Randy Brukardt 0 siblings, 0 replies; 337+ messages in thread From: Randy Brukardt @ 2003-01-08 20:12 UTC (permalink / raw) Richard Riehle wrote in message <3E1B713F.D194E2D@adaworks.com>... >Randy Brukardt wrote: > >> But all that said, it would be hard to market YAWS (Yet Another Web >> Server), even if it was highly secure. It would also have to have better >> performance than anything built directly on top of Windows sockets can. >> So, I don't currently have any intention to market or even make >> available the web server I wrote. > >At NPS we have some serious efforts going on where students >are researching opportunities for more secure web servers along >with other approaches to computer security. I would be interested >in using your code to set up a laboratory experiment for one of >our labs and invite students to hack into the server. If it proves >to be as secure as you suggest, I think it could make a real >contribution to the computer security program. I'm afraid it's not particularly new. It just embodies rules number 1 and 2 about security: #1 Don't run anything you don't need; #2 Have multiple layers of security. #1 is handled by using the simple Ada server; and #2 is handled by using a hardware router to insure that requests other than the ones we're prepared to handle are never given to the machine. (That's critical, given that I'm running on a Windows machine, which I must assume is insecure. But if you can't talk to the OS, that doesn't matter as much.) Anyway, we should take this off-line. Randy. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-06 15:53 ` Wes Groleau 2003-01-06 16:36 ` Larry Kilgallen 2003-01-06 20:47 ` Randy Brukardt @ 2003-01-07 13:11 ` Marin David Condic 2 siblings, 0 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-07 13:11 UTC (permalink / raw) Wes Groleau <wesgroleau@despammed.com> wrote in message news:PDhS9.214$Z74.885@dfw-service2.ext.raytheon.com... > > > sway someone away from what they already use. Also, I've never liked Ada > > bindings to C libraries because while it is technically possible, itr always > > feels like an unnatural act and demands that the Ada developer think like a > > C programmer. It would be better if Ada could go down its own path and do > > Like we did with POSIX--declared _one_ exception, and after it's > raised you examine a global variable to find out what actually > happened. > That may be one technique for hiding the C-ishness of some underlying binding, but that is by no means covering *all* of the C-ishness one encounters in bindings. If an effort was being made to generate bindings to all of the usual things, I'd prefer that they be thought out and made thick enough to be Ada-ish. But then, bindings won't save Ada - its just a necessary condition and one that Ada would forever be playing "catch up" to. If Ada had its own OS, its own GUI, its own database, etc. - or possibly some operating environment that simulated these things and hid the underlying implementation (portability?) - it would be a better way to go. > I see your point about "leapfrogging the competition" _but_ > anything new has to actually be not only new but self-contained. > Maybe yes and maybe no. What I'm suggesting is that we possibly come up with a whole bunch of brainstormed ideas about what could be done with Ada that made something *new* - or at least repackaged an old idea in a way that made it generally useful in a new way. Example: Java stole the idea of pseudo-code and came up with the "virtual machine" targeted towards the Internet. That made it possible to build apps that were executed by web browsers to do some useful things that weren't possible with web pages alone. People jumped on it because it filled a need. What if Ada did something similar? Suppose Ada were to go down a path where the objective was to provide a whole standard GUI environment that was portable across platforms? Here's something Java can't do very well because its interpreted: Execute high-res graphic animations. What if a model was dreampt up that allowed you to download apps from the internet and they were auto-recompiled for your machine on the fly and they executed in some high-res graphics environment? (You're already half way there with Gnat) It might be a natural for the computer game business - perhaps reinventing their whole business model in the process. (Download games free and run them uninterrupted for 10 minutes, then get a 2 minute commercial break - just like TV?) This idea or some other one of a similar bent would be a good direction for Ada - provide something *new* that makes Ada the attractive choice for doing some particular domain of apps. > If you make a new web server, it still has to interoperate with > most of the things other webservers work with, or it won't get > used. And it isn't being used, is it? Sure, by Ada fans, but > that's not the point. > Yes, if you pick a domain you want to address and that domain already has certain standards for data or content or interfaces, you've got to play in that ballgame. But that still doesn't mean you will find acceptance if you're just another programming language that isn't the definer of the domain. To take over that domain, you'll need something *better* in some significant way that makes people willing to put up with your fundamental incompatibility in order to get the *extra* that you provide. > How about TopGraph'X - is it a better X-server? > How many of them have been installed compared to > the number of X-servers in (the) other language(s)? > I don't know. I'm not familiar with the product. But if all it is is another X-server, it isn't really providing anything *different* and it will force the users into incompatibility with all the "real" X-servers written in C, right? Why do I want that headache - unless perhaps someone is forcing me to use Ada by mandate and I still want to use an X-server? > If they're better and they do interoperate, > why are they not being used? Anonymity? > No mandate? Costs too much? A "me too!" product with no compelling reason to use it versus the "industry standard" product? You'll have to tell me. I suspect that one of the reasons Ada has not been gaining widespread acceptance is that too many of the people involved with Ada think like engineers rather than think like businessmen. Perhaps if we shift our focus a little and think like businessmen, we might persuade some businessmen to adopt Ada and increase their profits. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-04 14:57 ` Marin David Condic 2003-01-06 15:53 ` Wes Groleau @ 2003-01-06 18:22 ` Warren W. Gay VE3WWG 2003-01-06 20:52 ` Randy Brukardt 2003-01-07 13:50 ` Marin David Condic 1 sibling, 2 replies; 337+ messages in thread From: Warren W. Gay VE3WWG @ 2003-01-06 18:22 UTC (permalink / raw) Marin David Condic wrote: > Warren W. Gay VE3WWG <ve3wwg@cogeco.ca> wrote in message > news:3E15CF31.1020900@cogeco.ca... > >>In its day, I could see why embedded people had concerns (Ada is still >>a very large "language"). The largeness should not be a concern for >>general purpose use - GNAT just flies through compiles on my 1.2Ghz >>laptop. I can only image how fast it is on current technology. > > Back when Ada was first emerging, compilers were generating really crappy > code and if a compiler worked at all, it almost certainly wasn't targeted to > your embedded processor. If by some miracle it was, the large overhead could > kill you. Assuming you also had the tools needed to get an executable image > into the target - which would be a rather rash assumption at the time. > Things eventually got better, but not before validating everyone's > prejudices and guaranteeing that Ada would never get considered by a large > segment of the population. I guess this problem exists even today for certain processor models. I think of a small single chip CPU like the Motorola MC68705 where you may only have 2kb worth of EPROM to place your code in. Its difficult to imagine much Ada95 code compiling into 2k, but that is not to say it couldn't be done. Its a stretch even for assembly code, depending upon what it must accomplish ;-) I havn't worked with the PIC chips, but there again, I suspect that it would be a challenge. But surely for larger processors, it is simply a matter of vendor support (and market). > Things have gotten better today but Ada still fails in the embedded world > for a variety of reasons. Sure, you can get good quality compilers that > target some of the larger processors in use today and you might even find > enough support tools to make the job relatively easy, but there are still > lots of tiny processors out there that Ada doesn't (and arguably, can't) > target and in general, Ada is pretty much totally ignored by the embedded > world. (A few notable exceptions out there - including myself.) So if Ada's > original requirements were aimed at satisfying the needs of embedded > development, it seems to have failed in that market. Did it fail because it > failed to satisfy *real* embedded requirements or did it fail for other > reasons? (Political, social, environmental, etc?) Probably a combination of > both. Free compilers might give it a chance... but part of the problem is that I don't see enough Open Sourced Ada enthusiasts chomping at the bit for a project like this ;-) >>I think we've discussed this before-- the real reason IMHO is the lack >>of "library support". It is less an issue of the language, but more >>about the libraries and bindings. Being that Ada95 is different than >>C/C++, bindings come into just about everything (for both Windows >>and UNIX) -- speaking non-embedded world wise. >> >>Also a lack of a "generally accepted" container library (standard or >>not), is also a "fracturing component". I myself find the Booch >>components extremely useful, but many I suppose do not like the >>complexities of the instantiations required to use them. > > If Ada woke up tommorrow with everything in it you describe above, it would > meet the general reaction of "Gee. That's interesting. C/C++ have had this > for years and we're already heavily invested in those technologies. What > else have you got?" The "what else have you got?" I think can be explained in the way of the compiler and language benefits (all else being equal). Ultimately the siren song of lower total costs and faster to market sell. But if the Ada95 user has to start building a database binding, a GUI binding and an O/S binding just to get started on the _application_ (that is supposed to bring the tangible real benefit), then he's going to sigh and give up. This leads to taking a path of lower resisitance, no matter that it may be the road to hell ;-) > The problem here is not that Ada shouldn't strive to have those things, but > rather that these are just the entry price needed to even get in the game. Agreed. > Its not enough to be able to supplant someone's heavy investment in other > technology. Whatever Ada does, it needs to become *better* than other > languages out there or nobody has any reason to want to switch. If the libraries/bindings were there, then the differences _would_ be at the superiority of the language/compiler. The problem is, that no one cares about this issue because X or Y is not available at the library support level. This is seen as a more fundamental requirement. > It might > even be necessary to rethink all of the library & binding stuff to do > something totally *different* or Ada is just another "Me Too!!!" player that > is going to be ignored because it will *never* be as good at binding to > something as the language the thing is written in (Unix, Motif, etc.) I don't see this as an issue. Java has all of these same issues, but people look past this because it is "new" and is considered "the thing to do(TM)". > I'd say pick one and start enhancing it. Well I have picked the Booch components for my work, but that hardly does anything for the rest of the community ;-) > We can argue all day long and into > the night about what is the best way to ultimately come up with the > "perfect" container library. Agreed. > Doing that will insure we never have one. Yep. > Grab > something as a model, get it under a tree that can be easily expanded to > include new things for different problem domains, build a reference > implementation and share it with all the vendors. That would get something > in use and start providing leverage for the developer. That would be a good thing. Another workable approach is to get an Ada package distribution going. I can't start one yet, but if I find enough time, I may. I see this as being important. Right now to compile any major Open Source project requires the end user to download this, that and another package from this, that and another web site in shopping cart fashion. THe poor user must then get them all compiled and installed correctly. If all goes well, he might get your project compiled and then installed correctly. I see this as a horrible way to introduce C/C++ types to the "Ada way". Mind you, this type of thing is done in the C/C++ world too, but often times the Linux/*BSD distributions have already done the bulk of the work for you. If not, then a "make install" does the rest. How many Linux distributions do you know that include the Booch components or Florist installed as ready to compile against Ada packages/libraries? We are missing the boat here. >>I think you could eventually sell Ada if the binding/library support >>was there. If developers could find all the bindings to the O/S, >>database, GUI and all that other cool Open Sourced set of libraries, >>then it becomes only a matter of language choice. The reality is that >>using Ada for general purpose work is still very much an uphill battle >>on most of these fronts, because the developer must become expert >>in writing bindings to existing libraries and often O/S facilities. >> > > Agreed. And disagreed. As noted above, you need the bindings just to be a > player, but I think you've got to offer something *more* Again, I think the "more" is the language benefits that are often espoused here. But if the "other" is not equal or better, no one wants to talk about the language features. > than just that to > sway someone away from what they already use. Also, I've never liked Ada > bindings to C libraries because while it is technically possible, itr always > feels like an unnatural act and demands that the Ada developer think like a > C programmer. It would be better if Ada could go down its own path and do > something new/different that got the same net effect as bindings might > produce, but do it in a way consistent with Ada and offering a *better* > answer. I advocate thick bindings to O/S and other features (MOTIF etc.) Anything less, is a nightmare in Ada (agreed). Certainly the thick bindings can build on thin bindings, but only the thick bindings should be used in application level code (IMHO). The reality at some levels however, is that some O/S features may not map that well. But I still see thick bindings reducing this to a minimum. >>Embedded systems have their own challenge, because they are very much >>focused on efficiency with very limited resources. On the GP scene >>however, I don't believe this needs to be much of a factor. > > Really? We're here talking about how great it will be one day when Ada > provides libraries and bindings and all that. Where are they? I am not sure what you are reacting to here, but basically my statement was meant to convey the idea that for general purpose programming, there doesn't need to be any Ada "issues" (save for the bindings/libraries). Compiler availability, and fast CPUs eliminate much of the "compiler issue". I didn't state this well in the above paragraph ;-) > By the time > Ada succeeds in getting some of the useful things already found in numerous > other languages, the world has passed it by once again. Something needs to > be done with Ada to institutionally/culturally get it to react faster to the > marketplace or it will always be in "catch up" mode chasing the leaders > rather than *being* the leader. > > I like Ada and want to see it succeed, but efforts need to be focused on > leapfrogging the competition if this is to happen. Well, let's get a group to organize an "Ada Package Distribution". I may be forced to do it myself, but I would rather spend my free time on developing Open Sourced Ada applications, if possible. I have already booked my free time for the next forseeable 6 months. I have even hatched a name for this distribution, which I would gladly give away to someone/group that would take on this worthy cause ;-) -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-06 18:22 ` Warren W. Gay VE3WWG @ 2003-01-06 20:52 ` Randy Brukardt 2003-01-07 13:56 ` Marin David Condic 2003-01-07 13:50 ` Marin David Condic 1 sibling, 1 reply; 337+ messages in thread From: Randy Brukardt @ 2003-01-06 20:52 UTC (permalink / raw) Warren W. Gay VE3WWG wrote in message <3E19C980.6060902@cogeco.ca>... >Well, let's get a group to organize an "Ada Package Distribution". I may >be forced to do it myself, but I would rather spend my free time on >developing Open Sourced Ada applications, if possible. I have already >booked my free time for the next forseeable 6 months. I have even hatched >a name for this distribution, which I would gladly give away to >someone/group that would take on this worthy cause ;-) SigAda is supposedly working on setting up such a thing. Hopefully, they'll succeed, because they are the right sort of organization to do it: independent of the vendors; not a standards body (which would take years) yet they have visibility and clout to get people to pay attention. Randy Brukardt ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-06 20:52 ` Randy Brukardt @ 2003-01-07 13:56 ` Marin David Condic 2003-01-07 19:15 ` Randy Brukardt 0 siblings, 1 reply; 337+ messages in thread From: Marin David Condic @ 2003-01-07 13:56 UTC (permalink / raw) SIGAda is the right forum for establishing all sorts of things as being "Conventional Ada" and you're 100% right about its advantages compared to the vendors or standards body. However, I think it could benefit if it had some acceptance & endorsement by the vendors and standards body so that everyone saluted the flag concerning the end results. As a member of SIGAda, I'd support the effort and would even be willing to donate some time if the effort was well focused and the relevant players were signed up to accept the end result. Without those conditions, its chances of succeeding are slim. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== Randy Brukardt <randy@rrsoftware.com> wrote in message news:v1jrf31jr6bk00@corp.supernews.com... > > > SigAda is supposedly working on setting up such a thing. Hopefully, > they'll succeed, because they are the right sort of organization to do > it: independent of the vendors; not a standards body (which would take > years) yet they have visibility and clout to get people to pay > attention. > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-07 13:56 ` Marin David Condic @ 2003-01-07 19:15 ` Randy Brukardt 2003-01-08 13:14 ` Marin David Condic 0 siblings, 1 reply; 337+ messages in thread From: Randy Brukardt @ 2003-01-07 19:15 UTC (permalink / raw) Marin David Condic wrote in message ... >SIGAda is the right forum for establishing all sorts of things as being >"Conventional Ada" and you're 100% right about its advantages compared to >the vendors or standards body. However, I think it could benefit if it had >some acceptance & endorsement by the vendors and standards body so that >everyone saluted the flag concerning the end results. As a member of SIGAda, >I'd support the effort and would even be willing to donate some time if the >effort was well focused and the relevant players were signed up to accept >the end result. Without those conditions, its chances of succeeding are >slim. I can't speak for the vendors, of course. As far as the standards body goes, that's where the idea originated (inside of WG9). SigAda volunteered to try to implement it, because it is out of scope for WG9. The hope is that some of the packages pseudo-standardized by SigAda could be picked up and added to the standard in the future. I suspect that getting the vendors to do anything will be a hard sell. The idea as I recall it (I wasn't at either the recent SigAda meeting or the most recent WG9 meeting, so the plan may have changed) was to set up a place where "certified packages" could be accessed. Such software would already have been tested on a variety of compilers, so it ought to work out of the box for you. Java supposedly has something similar. The problem with most of the stuff on the net is that it has only been tested with whatever compiler the author has. And it often doesn't work anywhere else. Our experience with Claw is that you really have to compile and test it on each compiler if it does anything interesting at all, because some things won't work, and some compilers have bugs that allow illegal code to be compiled, and so on. If this stuff works well and is popular, the vendors will pick up on it. Randy. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-07 19:15 ` Randy Brukardt @ 2003-01-08 13:14 ` Marin David Condic 2003-01-08 18:04 ` tmoran ` (2 more replies) 0 siblings, 3 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-08 13:14 UTC (permalink / raw) Obviously, you can't speak for all vendors, but you could speak for at least *one* vendor. :-) (Probably, you also talk to most of the other ones with your involvement in other areas of Ada.) Would there be any sympathy on the part of the vendors (or RR Software?) to get some sort of "Conventional Ada Library" going under the auspices of SIGAda? Would there be some willingness on the part of the vendors (or RR Software) to distribute such a library? SIGAda probably would be a good place to get some kind of development package put together from things on the net. Selecting some things (like a database product?) would be difficult because you'd want it to work on several platforms and everyone is going to have a favorite, but it might be possible to do that relatively quickly. (Version 1 doesn't have to have *everything* in it - just a good start.) You're right about it being work to make sure it compiles across most of the compilers out there, but realistically, its a job that could get done if there were enough volunteers willing to take a package and run it against what they've got. If a disk were produced, SIGAda might even be able to raise some funds by selling it for some small fee. But again, I think it would have a better chance of success if the vendors were to get behind it and at minimum put their imprimatur on it. If they don't want to distribute it, they should at least push it as the "recommended" package. Obviously, I think it would be better if they packaged it with their compilers, complete with precompiled object code, but that could raise some support issues. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== Randy Brukardt <randy@rrsoftware.com> wrote in message news:v1m9qg4r8m8la7@corp.supernews.com... > > > I can't speak for the vendors, of course. As far as the standards body > goes, that's where the idea originated (inside of WG9). SigAda > volunteered to try to implement it, because it is out of scope for WG9. > The hope is that some of the packages pseudo-standardized by SigAda > could be picked up and added to the standard in the future. > > I suspect that getting the vendors to do anything will be a hard sell. > The idea as I recall it (I wasn't at either the recent SigAda meeting or > the most recent WG9 meeting, so the plan may have changed) was to set up > a place where "certified packages" could be accessed. Such software > would already have been tested on a variety of compilers, so it ought to > work out of the box for you. Java supposedly has something similar. > > The problem with most of the stuff on the net is that it has only been > tested with whatever compiler the author has. And it often doesn't work > anywhere else. Our experience with Claw is that you really have to > compile and test it on each compiler if it does anything interesting at > all, because some things won't work, and some compilers have bugs that > allow illegal code to be compiled, and so on. If this stuff works well > and is popular, the vendors will pick up on it. > > Randy. > > > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-08 13:14 ` Marin David Condic @ 2003-01-08 18:04 ` tmoran 2003-01-08 18:05 ` Warren W. Gay VE3WWG 2003-01-08 20:24 ` Randy Brukardt 2 siblings, 0 replies; 337+ messages in thread From: tmoran @ 2003-01-08 18:04 UTC (permalink / raw) > If a disk were produced, Isn't David Botton working on a CDROM of www.adapower.com? (That solves the "if there was one disk" problem even if not the "vetted, agreed, and portable" problems.) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-08 13:14 ` Marin David Condic 2003-01-08 18:04 ` tmoran @ 2003-01-08 18:05 ` Warren W. Gay VE3WWG 2003-01-08 20:20 ` Larry Kilgallen 2003-01-09 13:21 ` Marin David Condic 2003-01-08 20:24 ` Randy Brukardt 2 siblings, 2 replies; 337+ messages in thread From: Warren W. Gay VE3WWG @ 2003-01-08 18:05 UTC (permalink / raw) Marin David Condic wrote: > Obviously, you can't speak for all vendors, but you could speak for at least > *one* vendor. :-) (Probably, you also talk to most of the other ones with > your involvement in other areas of Ada.) Would there be any sympathy on the > part of the vendors (or RR Software?) to get some sort of "Conventional Ada > Library" going under the auspices of SIGAda? Would there be some willingness > on the part of the vendors (or RR Software) to distribute such a library? > > SIGAda probably would be a good place to get some kind of development > package put together from things on the net. My only concern with SIGAda being the only one to distribute such a beast is that their interest may be a bit different than many Linux/*BSD or even Win32 enthusiasts have in mind. If they focus too much on making it work for all of the commonly available Ada compilers out there, I can see how this might actually hold back such a project. Whereas, if you focused on the hobby community (at least for a start), where they are already doing major things like writing O/S's (Linux, Hurd, etc.), X-Windows (updates), LessTif (MOTIF replacement) etc., then you might get more enthusiasm and overall support over time. This lets you leverage the GNAT features, like some of the GNAT supplied libraries (although, you could probably still distribute those libraries for use with other compilers, if you are willing to make the necessary changes). The other important factor I see in a successful distribution is that certain elements of it should be _optional_ to install. If you have biases against certain packages and want to insure that none of yours will use them for example, the best way to prevent that is to not waste space installing them. OTOH, this may make it harder to install some other Ada software that needs it, but hey-- empower the end user anyway. ;-) Disk space limitations may be one of the most compelling reasons why not all packages will be selected for install. Doing this, also mandates some sort of a package dependency check. All of this type of thing is being done already in Linux distributions, and I would like to see a similar result. (Blue Sky Warning -- Visors down) It would be truly wonderful to be able to do a "Ada Package Update" from the net, dare I say it, in a manner similar to the "Windows Update" or "RedHat update". This would be a service worth paying for. > Selecting some things (like a > database product?) would be difficult because you'd want it to work on > several platforms and everyone is going to have a favorite, but it might be > possible to do that relatively quickly. It doesn't have to be difficult. Use different packages for different client support. For example, you could have my APQ for PostgreSQL package installed, whether you plan to use it or not (some other Ada Open Sourced project might ;-) You could have another package, maybe named My_SQL that could exist along side. Again, if you can deselect either at install/update time, you never need to be forced to have both, but they can sit there too, if you like. > (Version 1 doesn't have to have > *everything* in it - just a good start.) Absolutely. > You're right about it being work to > make sure it compiles across most of the compilers out there, but > realistically, its a job that could get done if there were enough volunteers > willing to take a package and run it against what they've got. I think if a GNAT version were released, vendors would have their own invested interest in getting the same distribution working for their own products. I think this could kind of pressure would bring about the desired side effect ;-) Then you might see such a beast coming with your favour compiler update, from the vendor. > If a disk > were produced, SIGAda might even be able to raise some funds by selling it > for some small fee. Because it adds so much value, this I believe would work. > But again, I think it would have a better chance of success if the vendors > were to get behind it and at minimum put their imprimatur on it. If they > don't want to distribute it, they should at least push it as the > "recommended" package. Obviously, I think it would be better if they > packaged it with their compilers, complete with precompiled object code, but > that could raise some support issues. > > MDC > -- > ====================================================================== > Marin David Condic Make it available in GNAT/GCC form, and I think the vendors may just end up doing what you asked for. After all, competition is the greatest motivator ;-) -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-08 18:05 ` Warren W. Gay VE3WWG @ 2003-01-08 20:20 ` Larry Kilgallen 2003-01-09 13:21 ` Marin David Condic 1 sibling, 0 replies; 337+ messages in thread From: Larry Kilgallen @ 2003-01-08 20:20 UTC (permalink / raw) In article <3E1C6880.8050202@cogeco.ca>, "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca> writes: > My only concern with SIGAda being the only one to distribute such a > beast is that their interest may be a bit different than many > Linux/*BSD or even Win32 enthusiasts have in mind. If they focus > too much on making it work for all of the commonly available Ada > compilers out there, I can see how this might actually hold back > such a project. As would any arguments over what is "commonly available". But ISO-9660 supports aliased directory entries for files, so perhaps the role of SIGAda could be to document those environments for which something is known to work, providing a directory hierarchy for each environment (along with a master hierarchy for "all"). Omissions from a particular environment hierarchy could be readily fixed the next time around, with fans of that environment passing the word around that something in the master hierarchy really was applicable although not advertised that way. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-08 18:05 ` Warren W. Gay VE3WWG 2003-01-08 20:20 ` Larry Kilgallen @ 2003-01-09 13:21 ` Marin David Condic 1 sibling, 0 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-09 13:21 UTC (permalink / raw) Warren W. Gay VE3WWG <ve3wwg@cogeco.ca> wrote in message news:3E1C6880.8050202@cogeco.ca... > > My only concern with SIGAda being the only one to distribute such a > beast is that their interest may be a bit different than many > Linux/*BSD or even Win32 enthusiasts have in mind. If they focus > too much on making it work for all of the commonly available Ada > compilers out there, I can see how this might actually hold back > such a project. > Why would SIGAda be the only distributor? I think that would be the forum to define what the package should be so that there is something resembling a "standard" (in the loose sense) distribution of tools & utilities. I'd presume that since these would be things readily available off the net that the license wouldn't preclude someone else from distributing it. In particular, I'd want to see the vendors distributing it with their compilers. (Loosely bundled to avoid the presumption of support. A separate disk or .zip file that just happens to be in the same place as the compiler.) I'd also not want to see SIGAda set a goal of making it work with *all* the compilers. That could become too much work and ultimately kill it. Make it work with a few of the top players and leave any additional work as an exercise for the vendor or users - with the ability to fold back in any changes they produce if it seems to be desirable. > Whereas, if you focused on the hobby community (at least for a start), > where they are already doing major things like writing O/S's (Linux, > Hurd, etc.), X-Windows (updates), LessTif (MOTIF replacement) etc., > then you might get more enthusiasm and overall support over time. > This lets you leverage the GNAT features, like some of the GNAT > supplied libraries (although, you could probably still distribute > those libraries for use with other compilers, if you are willing > to make the necessary changes). > But the hobby community is not exactly an organized institution capable of defining some "Conventional Ada" standard and isn't going to be able to do much to promote such a thing. Sure, hobbyists are the ones who produce a fair amount of this stuff in the first place and its nice to have them involved, but there is no "Hobbyists Inc." that can get a pannel together to decide what goes into a release and do whatever work is needed to get a single, organized distribution together. > > It doesn't have to be difficult. Use different packages for different > client support. For example, you could have my APQ for PostgreSQL > package installed, whether you plan to use it or not (some other > Ada Open Sourced project might ;-) You could have another package, > maybe named My_SQL that could exist along side. Again, if you > can deselect either at install/update time, you never need to be > forced to have both, but they can sit there too, if you like. > I don't think you want to have a dozen different products for a dozen different platforms. The object (one of them, at least) of having such a distribution as a Conventional Ada toolset is so that some developer doesn't have to learn a dozen different tools. For example, MySQL runs on PC's and Unix platforms - which covers probably 80%-90% of the territory. (Maybe it runs on Macs? Dunno - but that would get you close to 100%, wouldn't it?) So why wouldn't you want to standardize on that and have different databases all over the place instead? BTW, you'd like as much as possible to have the tools you select written in Ada so that you're not always playing catch up with bindings as new releases of products come out. Suppose you had something like GtkAda, MySQL (with an appropriate Ada interface) and some standard component library. If all of that worked with some significant subset of the available compilers for PCs and the various flavors of Unix, you'd really have a good start. From there, you could look to expand the component library - with the assumption that GtkAda & MySQL were on board? - and look for additional tools (configuration management? IDE?) to expand the toolset. Of course, some documentation and perhaps some "integration" might be desirable as well. Naturally, you'd have to do some work to make sure it would operate with the available compilers/platforms, but probably nothing too fancy. That sounds like an achievable goal and one that might be able to gain some consensus as "The Conventional Ada Toolset". Especially if it came out under the auspices of SIGAda and had some acceptance from the vendors. Comments? > > > If a disk > > were produced, SIGAda might even be able to raise some funds by selling it > > for some small fee. > > Because it adds so much value, this I believe would work. > I agree. Perhaps a few sessions of shouting and hair-pulling in some SIGAda working group might arrive at a consensus as to what should go in the distribution and with a little cajoling and pleading, enough volunteers might be found to do some testing & integrating for different platforms. If such a disk were available, I'd shell out a few $$$ for one knowing that I'm supporting SIGAda and developing stuff against a common toolset/library. Ultimately, it ought to be available through the vendors as well - either free or for some nominal media charge. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-08 13:14 ` Marin David Condic 2003-01-08 18:04 ` tmoran 2003-01-08 18:05 ` Warren W. Gay VE3WWG @ 2003-01-08 20:24 ` Randy Brukardt 2003-01-09 13:34 ` Marin David Condic 2 siblings, 1 reply; 337+ messages in thread From: Randy Brukardt @ 2003-01-08 20:24 UTC (permalink / raw) Marin David Condic wrote in message ... >Obviously, you can't speak for all vendors, but you could speak for at least >*one* vendor. :-) (Probably, you also talk to most of the other ones with >your involvement in other areas of Ada.) Would there be any sympathy on the >part of the vendors (or RR Software?) to get some sort of "Conventional Ada >Library" going under the auspices of SIGAda? Would there be some willingness >on the part of the vendors (or RR Software) to distribute such a library? I'm sure the vendors are in favor of someone doing that. But it will need to be vendor-neutral -- it does no good if most of the code only compiles with GNAT. Then vendors will say -- yet another hobbyest library for GNAT -- and ignore it. I'll reiterate that our experience with Claw is that GNAT is no better or worse than other Ada compilers for bugs. It allows some illegal code, won't compile some legal code, etc. In order to have something useful to end users, it really has to be the case that you can pick up the packages off of the SigAda web site and use them, no matter what Ada compiler you are using. For that to be the case, they have to have been compiled successfully with at least 3 different Ada compilers. Of course, some compilers may be just too buggy or limited to work with some software. I suspect just making the code work on GNAT, ObjectAda, and Rational Apex would be enough. You may not want to be restricted to the least common denominator code (like we did with Claw). Anyway, RRS would distribute such a library if it made sense, and making it work did not take up too many resources. After all, given: 10 bugs reported by customers; 10 bugs in new ACATS tests; and 10 bugs in a pseudo-standard library it's fairly likely that work on the library will be later in the list. :-) Randy Brukardt ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-08 20:24 ` Randy Brukardt @ 2003-01-09 13:34 ` Marin David Condic 0 siblings, 0 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-09 13:34 UTC (permalink / raw) I'd agree that you wouldn't want to try to get it to work on either only 1 compiler or on all compilers. Its not useful unless it really is portable to some extent and obviously, not all compilers would be appropriate. (Would an embedded compiler be able to utilize a GUI?) You'd have to pick a set of compilers (and volunteers) who would (dare I use the word?) "Validate" that the toolset worked in that environment. No small job, but I'd expect that it wouldn't have to be *perfect* (bug-free) - just compilable and executable for some major functionality. A bit more than a smoke test and significantly less than a formal qualification test. "Vendor Neutral" might be a bit harder. For some things (like a database?) it would probably work, but for others (like a GUI?) it might be competing against what a vendor already has. If you work to the least common denominator (things that no vendor will object to as a competing product) you probably will have a very small library. Not sure how to handle that one other than to have SIGAda distribute a disk full of stuff and if it gains acceptance as "Conventional Ada" then the vendors will ultimately have to follow. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== Randy Brukardt <randy@rrsoftware.com> wrote in message news:v1p2fu1h297j04@corp.supernews.com... > > I'm sure the vendors are in favor of someone doing that. But it will > need to be vendor-neutral -- it does no good if most of the code only > compiles with GNAT. Then vendors will say -- yet another hobbyest > library for GNAT -- and ignore it. > > I'll reiterate that our experience with Claw is that GNAT is no better > or worse than other Ada compilers for bugs. It allows some illegal code, > won't compile some legal code, etc. In order to have something useful to > end users, it really has to be the case that you can pick up the > packages off of the SigAda web site and use them, no matter what Ada > compiler you are using. For that to be the case, they have to have been > compiled successfully with at least 3 different Ada compilers. > > Of course, some compilers may be just too buggy or limited to work with > some software. I suspect just making the code work on GNAT, ObjectAda, > and Rational Apex would be enough. You may not want to be restricted to > the least common denominator code (like we did with Claw). > > Anyway, RRS would distribute such a library if it made sense, and making > it work did not take up too many resources. After all, given: > 10 bugs reported by customers; > 10 bugs in new ACATS tests; and > 10 bugs in a pseudo-standard library > it's fairly likely that work on the library will be later in the list. > :-) > > Randy Brukardt > > > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-06 18:22 ` Warren W. Gay VE3WWG 2003-01-06 20:52 ` Randy Brukardt @ 2003-01-07 13:50 ` Marin David Condic 2003-01-07 17:48 ` Warren W. Gay VE3WWG 2003-01-09 13:22 ` chris.danx 1 sibling, 2 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-07 13:50 UTC (permalink / raw) Warren W. Gay VE3WWG <ve3wwg@cogeco.ca> wrote in message news:3E19C980.6060902@cogeco.ca... > > Free compilers might give it a chance... but part of the problem is that > I don't see enough Open Sourced Ada enthusiasts chomping at the bit for > a project like this ;-) > That's because nobody wants to work for free and unless they desparately need it for their own reasons, there's no incentive. The folks who build embedded computers have stayed away from Ada in droves so they aren't going to retarget Gnat for their own projects. Who else is going to do it unless you pay them? > > > > If Ada woke up tommorrow with everything in it you describe above, it would > > meet the general reaction of "Gee. That's interesting. C/C++ have had this > > for years and we're already heavily invested in those technologies. What > > else have you got?" > > The "what else have you got?" I think can be explained in the way of > the compiler and language benefits (all else being equal). Ultimately > the siren song of lower total costs and faster to market sell. > Sorry, but I think I have proof that this won't work. First off, we're NOT faster until "all other things being equal" becomes the case and compared to C, C++ and Java, all other things are definitely not equal, are they? Then, we've been selling higher reliability and lower life cycle costs for (let's count them out....83, 84, 85...03) TWENTY YEARS now and it just isn't gaining traction. (And before I get battered about the head and shoulders with several standard sized jellyfish, I believe in high reliability and lower life cycle costs and think these are GOOD THINGS - just not what the general developer market is purchasing.)Why isn't it gaining traction? I think the reason is because the market is buying Time To Market over Life Cycle Costs and Reliability. (Good? Fast? Cheap? I think they're going Fast and Cheap while Ada was concentrating on Good.) > But if the Ada95 user has to start building a database binding, a GUI > binding and an O/S binding just to get started on the _application_ > (that is supposed to bring the tangible real benefit), then he's > going to sigh and give up. This leads to taking a path of lower > resisitance, no matter that it may be the road to hell ;-) > Yes sir. Very much so sir. And pretty much to my basic point: Ada *can't* win out unless it provides more development leverage than its competitors. You *might* build all those bindings if, for example, you had a library of stuff that got 90% of your app done for you and all you had to do was glue together the other pieces - but then you're just getting the leverage somewhere else and making a tradeoff. But you're right - for those developing apps that need an OS, GUI, Database, etc, they don't want to spend time building bindings. > > If the libraries/bindings were there, then the differences _would_ be > at the superiority of the language/compiler. The problem is, that no > one cares about this issue because X or Y is not available at the > library support level. This is seen as a more fundamental requirement. > See above. Superiority of the language/compiler has not sold for the last twenty years and isn't likely to start selling soon. And a cautionary note on bindings: That puts you in the "me too!" category and you're forever playing "catch up" so you are forever at a disadvantage compared to the native language of the thing you're binding to. You are much better off defining something *different* that is within your control and offers product distinction. > > That would be a good thing. Another workable approach is to get an > Ada package distribution going. I can't start one yet, but if I > find enough time, I may. I see this as being important. Right now > to compile any major Open Source project requires the end user to > download this, that and another package from this, that and another > web site in shopping cart fashion. THe poor user must then get them > all compiled and installed correctly. If all goes well, he might > get your project compiled and then installed correctly. I see this > as a horrible way to introduce C/C++ types to the "Ada way". > I've made that observation before: Even if all the pieces exist, they need to exist under one roof and in an integrated manner. Also, it would be better if there were not 50 different choices for the same functionality (How many container libraries are out there?) A package distribution would be A Good Start, but how well integrated would it be? Its still a bunch of odds and ends with questionable documentation and dubious interoperability and no overall toolset that pulls the whole kitten caboodle together. Better than nothing at all? Yes. Is that likely to get developers to start using Ada? Probably not many - or at least very slow growth. The problem here is that there has to be some kind of general endorsement of whatever gets adopted by the vendors and user community. You personally may write all of the libraries you like and you personally can put all of them into the public domain if you like, but that isn't going to accomplish the goal. It has to come from some authority to be accepted as "The Library" and I just don't see anybody in that position jumping up to say "Lets Do It..." (Yes, I know they're talking about containers, etc., for Ada0y, but for a bunch of reasons this will never work as part of the language standard.) MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-07 13:50 ` Marin David Condic @ 2003-01-07 17:48 ` Warren W. Gay VE3WWG 2003-01-08 13:34 ` Marin David Condic 2003-01-09 13:22 ` chris.danx 1 sibling, 1 reply; 337+ messages in thread From: Warren W. Gay VE3WWG @ 2003-01-07 17:48 UTC (permalink / raw) Marin David Condic wrote: > Warren W. Gay VE3WWG <ve3wwg@cogeco.ca> wrote in message > news:3E19C980.6060902@cogeco.ca... > >>Free compilers might give it a chance... but part of the problem is that >>I don't see enough Open Sourced Ada enthusiasts chomping at the bit for >>a project like this ;-) > > That's because nobody wants to work for free and unless they desparately > need it for their own reasons, there's no incentive. The folks who build > embedded computers have stayed away from Ada in droves so they aren't going > to retarget Gnat for their own projects. Who else is going to do it unless > you pay them? I agree that nobody wants to do their day job for "free", but there seems to be no shortage of people wanting to work on O/S, compiler and other related GNUish things. So I would have to disagree slightly ;-) I suppose once GNAT is better integrated into GCC, then any ports of GCC to various hardware will hopefully imply an automatic Ada port to the same. ... >>>for years and we're already heavily invested in those technologies. What >>>else have you got?" >> >>The "what else have you got?" I think can be explained in the way of >>the compiler and language benefits (all else being equal). Ultimately >>the siren song of lower total costs and faster to market sell. > > Sorry, but I think I have proof that this won't work. First off, we're NOT > faster until "all other things being equal" becomes the case and compared to > C, C++ and Java, all other things are definitely not equal, are they? Then, > we've been selling higher reliability and lower life cycle costs for (let's > count them out....83, 84, 85...03) TWENTY YEARS now and it just isn't > gaining traction. But, but.. this was my point... the "20 years+" of presenting the reliability case has not worked because all _other_ things were NOT equal. If they _WERE_, the reliability case might gain some ground. But the "20 years+" has not worked because the other problem remained unsolved. If all other things are not near equal, nobody wants to care about "reliability". They are too focused on what they have to do (getting to market as you say). To make the reliability case important, you have to provide all of the other "prerequesit library support" first. Without this, it doesn't matter what the other point is (reliability). To conclude then, I don't buy the fact that reliability is unimportant to people. What I see is that other people feel that other factors weigh into the decision a lot higher than reliability, and those then are factors that must be met first. > (And before I get battered about the head and shoulders > with several standard sized jellyfish, I believe in high reliability and > lower life cycle costs and think these are GOOD THINGS - just not what the > general developer market is purchasing.)Why isn't it gaining traction? I > think the reason is because the market is buying Time To Market over Life > Cycle Costs and Reliability. (Good? Fast? Cheap? I think they're going Fast > and Cheap while Ada was concentrating on Good.) I believe that reliability is still important to people, but as you have pointed, it is not on the top of the list. Reliability "weighs in", but not as strongly as cost and time-to-market. Most software shops (excluding possibly Microsoft), want to ship reliable products. But again, they have decided to weight more in favour of "time to market". >>If the libraries/bindings were there, then the differences _would_ be >>at the superiority of the language/compiler. The problem is, that no >>one cares about this issue because X or Y is not available at the >>library support level. This is seen as a more fundamental requirement. > > See above. Superiority of the language/compiler has not sold for the last > twenty years and isn't likely to start selling soon. Again, it might if the "all _other_ things" were equal. As long as they are not, then I agree, that this will not always be enough in its favour. > And a cautionary note > on bindings: That puts you in the "me too!" category and you're forever > playing "catch up" so you are forever at a disadvantage compared to the > native language of the thing you're binding to. You are much better off > defining something *different* that is within your control and offers > product distinction. I don't know if I buy this point. In a real sense the Ada.Text_IO is a binding to the O/S whether it is a UNIX or Windows O/S or some native Ada95 O/S. Sure, the Ada.Text_IO is "me too!" -- we'd expect that every language provide some I/O support ;-) I do see your point on the "catching up" with other binding support. But until the binding support reaches "critical mass" in supporting what developers expect to interface to today, there can be little or no _new_ developments. Efforts are being spent "catching up" instead. But I optimistically hope (perhaps foolishly) that things may turn out differently ;-) >>That would be a good thing. Another workable approach is to get an >>Ada package distribution going. I can't start one yet, but if I >>find enough time, I may. I see this as being important. Right now >>to compile any major Open Source project requires the end user to >>download this, that and another package from this, that and another >>web site in shopping cart fashion. THe poor user must then get them >>all compiled and installed correctly. If all goes well, he might >>get your project compiled and then installed correctly. I see this >>as a horrible way to introduce C/C++ types to the "Ada way". > > I've made that observation before: Even if all the pieces exist, they need > to exist under one roof and in an integrated manner. Yes. > Also, it would be > better if there were not 50 different choices for the same functionality > (How many container libraries are out there?) I would agree, but having them all in one place would be a good start. Natural selection may eliminate (over time) the cruft. What the distribution needs to do, is to allow the user to uncheck those packages he does not want to install. > A package distribution would > be A Good Start, but how well integrated would it be? Its still a bunch of > odds and ends with questionable documentation and dubious interoperability > and no overall toolset that pulls the whole kitten caboodle together. Agreed, that this collection would not be "cohesive" in terms of types etc., but it would make re-use of the code a whole lot simpler. Even if you ignore that, it would make installing your software much easier for me to install, since I would just have to compile your software against the "Ada distribution". Without the distribution, I'd have to go fishing around the net for the various packages you employed, compile and install all of them. And this is a pain, but easily done by Ada people, but non-Ada types would just throw their arms up in the air over this. > Better > than nothing at all? Yes. Is that likely to get developers to start using > Ada? Probably not many - or at least very slow growth. I believe that a failure to do this, would put Ada into the same situation that Linux was once in, before 1994: - Pick up the Linux pieces - Pick up the GNU compiler - Pick up the sources to the various GNU/UNIX commands needed - compile the various components - assemble into an organized file system - integrate, integrate and integrate... To make Ada more "friendly", you _must_ make the library support easier. Otherwise, you are back to a piece-meal approach, which only works for the die-hards. I think that any Ada distribution would be a big boost to the effort, and may help spur software development in general. If nothing else, it may prevent people from having to re-invent the wheel so often. > The problem here is that there has to be some kind of general endorsement of > whatever gets adopted by the vendors and user community. You personally may > write all of the libraries you like and you personally can put all of them > into the public domain if you like, but that isn't going to accomplish the > goal. You have to allow time for that. Linux started out as someone's pet project. But people saw the usefullness of it, and later eliminated the piece-meal approach. This made it available to people who didn't have the expertise or time to put a complete UNIX (like) system together. Now, even grandmothers can run Linux (should they choose to) ;-) > It has to come from some authority to be accepted as "The Library" and > I just don't see anybody in that position jumping up to say "Lets Do It..." > (Yes, I know they're talking about containers, etc., for Ada0y, but for a > bunch of reasons this will never work as part of the language standard.) > > MDC In my mind, its only necessary to make it easily installed as a distribution. If someone were to keep this distribution up to date, then this saves all of its users from having to do the same (they only have to re-install the lastest update of the distribution now, and recompile their own code). This is a valuable service. GCC is not a standard, in and of itself. Yet it is hugely popular. I remember being pleasantly surprised when I saw that it was the native compiler for a DataGeneral machine I had to port to, a few years ago. If the "Ada Distribution" were popular, portions of it might "leak" into a standard, which would be a good thing. But it is initially only important that it become generally accepted. This then could create the "defacto standard". -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-07 17:48 ` Warren W. Gay VE3WWG @ 2003-01-08 13:34 ` Marin David Condic 2003-01-08 18:04 ` tmoran 2003-01-08 18:16 ` Warren W. Gay VE3WWG 0 siblings, 2 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-08 13:34 UTC (permalink / raw) We're probably at 99% agreement on most of what you've said. I think I'd still differ on this one slightly. If somehow you had "all other things being equal" to, for example, MSVC++, you'd still be at a disadvantage. Suppose you had MSVAda++ that had the GUI builder, class libraries, etc., all for development on a Windows platform. Your sales pitch is: "All other things are equal to MSVC++ ***PLUS*** you get added reliability..." I, as the potential customer, go down this line of reasoning: Yes, some added reliability and possibly some productivity improvement might be there *eventually*, but I've already got some heavy investment in MSVC++. I've got my personnel trained and I've got some extensive libraries of my own and I've got processes built around MSVC++ and its tools, etc. Am I going to realize *enough* improvement in my bottom line (profit) from switching to MSVAda++ to make it worth the investment I'll have to make and the learning curve I'll be up against (possibly delaying delivery of my next few projects) or will the return on my investment be too small to offset that cost? Typically, I'd guess the answer is going to be "No" because that's what it has been for twenty years - even back when compilers *didn't* come with huge libraries and development tools. (There was a time when all other things *were* equal between Ada and C (in some areas) - except possibly for price and had Ada's "reliability" been a big enough concern, that would have offset the price issue.) Now if Ada waltzed in the door with bindings to everything and huge libraries to compete with anything the other guys had and development tools to make it just as easy to get an app running *AND* threw something else on top that cut 50% of the development time for some domain (and then said: "Oh yes. By the way. You're apps will be more reliable and cost less over time as well.") it would be much more likely to make the sale. I just don't see reliability and life cycle cost as having much success in the past, so I think we ought to find and push another angle. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== Warren W. Gay VE3WWG <ve3wwg@cogeco.ca> wrote in message news:3E1B12E0.60507@cogeco.ca... > > But, but.. this was my point... the "20 years+" of presenting the > reliability case has not worked because all _other_ things were > NOT equal. If they _WERE_, the reliability case might gain some > ground. But the "20 years+" has not worked because the other > problem remained unsolved. If all other things are not near equal, > nobody wants to care about "reliability". They are too focused on > what they have to do (getting to market as you say). > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-08 13:34 ` Marin David Condic @ 2003-01-08 18:04 ` tmoran 2003-01-08 18:16 ` Warren W. Gay VE3WWG 1 sibling, 0 replies; 337+ messages in thread From: tmoran @ 2003-01-08 18:04 UTC (permalink / raw) >things are equal to MSVC++ ***PLUS*** you get added reliability..." > ... >top that cut 50% of the development time for some domain Personally, I'm periodically amazed to find how much faster it is to get an Ada program running right than with previous languages I've used. "Once it compiles in Ada, it's close to being done." Or perhaps I'm just a whole lot smarter than I used to be. ;) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-08 13:34 ` Marin David Condic 2003-01-08 18:04 ` tmoran @ 2003-01-08 18:16 ` Warren W. Gay VE3WWG 1 sibling, 0 replies; 337+ messages in thread From: Warren W. Gay VE3WWG @ 2003-01-08 18:16 UTC (permalink / raw) Marin David Condic wrote: > We're probably at 99% agreement on most of what you've said. I think I'd > still differ on this one slightly. If somehow you had "all other things > being equal" to, for example, MSVC++, you'd still be at a disadvantage. > Suppose you had MSVAda++ that had the GUI builder, class libraries, etc., > all for development on a Windows platform. Your sales pitch is: "All other > things are equal to MSVC++ ***PLUS*** you get added reliability..." I, as > the potential customer, go down this line of reasoning: Yes, some added > reliability and possibly some productivity improvement might be there > *eventually*, but I've already got some heavy investment in MSVC++. I've got > my personnel trained and I've got some extensive libraries of my own and > I've got processes built around MSVC++ and its tools, etc. Am I going to > realize *enough* improvement in my bottom line (profit) from switching to > MSVAda++ to make it worth the investment I'll have to make and the learning > curve I'll be up against (possibly delaying delivery of my next few > projects) or will the return on my investment be too small to offset that > cost? > > Typically, I'd guess the answer is going to be "No" because that's what it > has been for twenty years - even back when compilers *didn't* come with huge > libraries and development tools. (There was a time when all other things > *were* equal between Ada and C (in some areas) - except possibly for price > and had Ada's "reliability" been a big enough concern, that would have > offset the price issue.) Well, there is no doubt in my mind, that you are right about the existing "momentum". I think of this kind of change as reversing a large ship in the Welland canal system ;-) Agreed, that where an existing investment in custom libraries and code, a MSVAda++ as you say, is not likely to change much (although, you could, with this capability, start to write subroutines that might inteface still). However, as programmers in droves are looking at C# and Java for a "better way" (read "easier way"), I don't think they would be hostile to the Ada language for new projects (of which, I see many, which don't start on a big existing framework). Assuming that MSVAda++ had equal access to all of that MS kludgey API stuff, then each new GUI client program is a perfect candidate for trying something new. After reliability, if you sell the developer on the nice programer conveniences of Ada, like A'First, A'Last, for ... A'Range, discriminated records, easy tasking etc., I think most programmers would welcome a high level, easier to read on the programmer tool. The reason these things don't matter right now, is that Ada does not enjoy equal API access on neither Windows or UNIX. GNAT, I believe has gone a long way to make this better, as do other efforts such as CLAW (though I've not looked at it much yet). But it is still much less than equal. Until it enjoys equal or better status, programmers just moan when you tell them that you have to blaze a few new trails on their own, writing pragma import statements and the like. > Now if Ada waltzed in the door with bindings to everything and huge > libraries to compete with anything the other guys had and development tools > to make it just as easy to get an app running *AND* threw something else on > top that cut 50% of the development time for some domain (and then said: "Oh > yes. By the way. You're apps will be more reliable and cost less over time > as well.") it would be much more likely to make the sale. I just don't see > reliability and life cycle cost as having much success in the past, so I > think we ought to find and push another angle. > > MDC > -- > ====================================================================== > Marin David Condic You might be right about this, but reliability doesn't have a chance when other things are not equal. But I think we basically agree. You've raised some interesting points. -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-07 13:50 ` Marin David Condic 2003-01-07 17:48 ` Warren W. Gay VE3WWG @ 2003-01-09 13:22 ` chris.danx 2003-01-09 13:53 ` Marin David Condic 2003-01-09 15:09 ` Raster graphics [was Anybody in US using ADA ? New language competition? (long)] Chad R. Meiners 1 sibling, 2 replies; 337+ messages in thread From: chris.danx @ 2003-01-09 13:22 UTC (permalink / raw) > See above. Superiority of the language/compiler has not sold for the last > twenty years and isn't likely to start selling soon. And a cautionary note > on bindings: That puts you in the "me too!" category and you're forever > playing "catch up" so you are forever at a disadvantage compared to the > native language of the thing you're binding to. You are much better off > defining something *different* that is within your control and offers > product distinction. In some ways I agree with you but if you don't have "me too!" then people ain't gonna look twice at you. For example, I would like to do some raster graphics work (practice for uni) right now for a course. Where is the ada package that lets me do that? Does it support decoding and encoding of raster graphics formats? Does it support multiple colour spaces (eg RGB, RGBA, CYM, HSV, Monotone, Greyscale)? Is it portable? Can you interface it with GUIs easily? Java has this, and I've seen other languages that offer something comparable (libraries etc) but there's none for Ada (not on Adapower, nor in the first 4 pages of google on a reasonable search string - which is a rough limit I've observed to the depth people will go on average before changing the search criteria). Even given the fact I know Ada, I have considered going back to Java to do this work. What would a newer Ada programmer do? What would someone looking for a new language to learn think if raster graphics where important to them? This is just one library ada lacks... If I get time, I'll finish writing the proposal for Ada 2D that I'm in the middle of, but like so many things I've wanted to do or tried to do, this might not ever come to be... it might be shelved because I just don't have the time with all the Uni work they love to give us. Failing that I will upload it for others to work on, but I doubt anyone else would be willing to work on it for any length of time because we're all in the same boat - e.g. this is probably why grace is stalled (it's certainly true of Aqua)! Danx -- for personal replies change spamoff to chris ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? New language competition? (long) 2003-01-09 13:22 ` chris.danx @ 2003-01-09 13:53 ` Marin David Condic 2003-01-09 15:09 ` Raster graphics [was Anybody in US using ADA ? New language competition? (long)] Chad R. Meiners 1 sibling, 0 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-09 13:53 UTC (permalink / raw) Well, there's really two kinds of "me too!!!". On the one hand, you could talk about things like thin bindings, which always puts you in the position of having to mimic what the other guy does and then you're stuck in a position where they always have more capability, easier access and ultimately define the game. On the other hand, you can talk about having similar *capabilities* such as "I have a graphics library too, but mine is better because of yada yada yada". You do have to have an ability to bind to many things that already exist - it just isn't very exciting and doesn't win you converts. What is *better* is if you can present your own capabilities as superior to what is done elsewhere because it gives the developer a real reason to want to use your product rather than someone else's. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== chris.danx <spamoff.danx@ntlworld.com> wrote in message news:MHeT9.11$bG2.122@news13-win.server.ntlworld.com... > > In some ways I agree with you but if you don't have "me too!" then > people ain't gonna look twice at you. For example, I would like to do > some raster graphics work (practice for uni) right now for a course. > Where is the ada package that lets me do that? Does it support decoding > and encoding of raster graphics formats? Does it support multiple > colour spaces (eg RGB, RGBA, CYM, HSV, Monotone, Greyscale)? Is it > portable? Can you interface it with GUIs easily? > > Java has this, and I've seen other languages that offer something > comparable (libraries etc) but there's none for Ada (not on Adapower, > nor in the first 4 pages of google on a reasonable search string - which > is a rough limit I've observed to the depth people will go on average > before changing the search criteria). Even given the fact I know Ada, I > have considered going back to Java to do this work. What would a newer > Ada programmer do? What would someone looking for a new language to > learn think if raster graphics where important to them? This is just > one library ada lacks... > > If I get time, I'll finish writing the proposal for Ada 2D that I'm in > the middle of, but like so many things I've wanted to do or tried to do, > this might not ever come to be... it might be shelved because I just > don't have the time with all the Uni work they love to give us. Failing > that I will upload it for others to work on, but I doubt anyone else > would be willing to work on it for any length of time because we're all > in the same boat - e.g. this is probably why grace is stalled (it's > certainly true of Aqua)! > > > Danx > -- > for personal replies change spamoff to chris > > > > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Raster graphics [was Anybody in US using ADA ? New language competition? (long)] 2003-01-09 13:22 ` chris.danx 2003-01-09 13:53 ` Marin David Condic @ 2003-01-09 15:09 ` Chad R. Meiners 2003-01-11 19:23 ` chris.danx 1 sibling, 1 reply; 337+ messages in thread From: Chad R. Meiners @ 2003-01-09 15:09 UTC (permalink / raw) "chris.danx" <spamoff.danx@ntlworld.com> wrote in message news:MHeT9.11$bG2.122@news13-win.server.ntlworld.com... > In some ways I agree with you but if you don't have "me too!" then > people ain't gonna look twice at you. For example, I would like to do > some raster graphics work (practice for uni) right now for a course. > Where is the ada package that lets me do that? Does it support decoding > and encoding of raster graphics formats? Does it support multiple > colour spaces (eg RGB, RGBA, CYM, HSV, Monotone, Greyscale)? Is it > portable? Can you interface it with GUIs easily? Try looking at AdaSDL. Both the thin and thick binding available will allow you to write directly to the screen. It supports at least RGB and RGBA. Plus it plays well will window managers. > If I get time, I'll finish writing the proposal for Ada 2D that I'm in > the middle of, but like so many things I've wanted to do or tried to do, > this might not ever come to be... it might be shelved because I just > don't have the time with all the Uni work they love to give us. Failing > that I will upload it for others to work on, but I doubt anyone else > would be willing to work on it for any length of time because we're all > in the same boat - e.g. this is probably why grace is stalled (it's > certainly true of Aqua)! Well both Vargas and I have a masters thesis to be working on so that is why the AdaSDL project is somewhat stalled. ;) Anyway you should collaborate with us on AdaSDL. We have a lot of ground work laid already. Get a sourceforge account and get in touch with Vargas. -CRM ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Raster graphics [was Anybody in US using ADA ? New language competition? (long)] 2003-01-09 15:09 ` Raster graphics [was Anybody in US using ADA ? New language competition? (long)] Chad R. Meiners @ 2003-01-11 19:23 ` chris.danx 0 siblings, 0 replies; 337+ messages in thread From: chris.danx @ 2003-01-11 19:23 UTC (permalink / raw) Chad R. Meiners wrote: > Try looking at AdaSDL. Both the thin and thick binding available will allow > you to write directly to the screen. It supports at least RGB and RGBA. > Plus it plays well will window managers. I will, but what I had in mind didn't involve the screen. It would have functions to take input from or output to the screen (it would be just another source), but is really concerned with taking the data, processing it, and outputing the result. For example it would be possible to get channels, do halftoning, blending, convolutions, etc. > Well both Vargas and I have a masters thesis to be working on so that is why > the AdaSDL project is somewhat stalled. ;) Anyway you should collaborate > with us on AdaSDL. We have a lot of ground work laid already. Get a > sourceforge account and get in touch with Vargas. Might contribute on and off if I have time, but I've got my own huge Ada project to be working on, Niamh - an open source development tool set. Ada 2D actually grew from that; when I found there was no 2d graphics engine, I started to play around with a small engine and eventually got drawn to wanting to play with graphics processing again as I did on the uni CS graphics & multimed course with Java. Chris -- for personal replies change spamoff to chris ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-02 12:45 ` Marin David Condic 2003-01-02 18:08 ` Anybody in US using ADA ? New language competition? Warren W. Gay VE3WWG @ 2003-01-03 9:57 ` Kevin Cline 2003-01-03 12:37 ` Marin David Condic 1 sibling, 1 reply; 337+ messages in thread From: Kevin Cline @ 2003-01-03 9:57 UTC (permalink / raw) "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote in message news:<av1c7j$ctl$1@slb3.atl.mindspring.net>... > Maybe that's part of why there was/is a lot of resentment toward Ada. It > walked in the door with a mandate and everyone had big investments in other > things and the feeling was "This is going to cost me truckloads in > discarding my existing investment and for what? An uncertain 'technical > advantage'? Why are they trying to make my life harder?" It walked in the door with an overly broad mandate and almost nothing else. The compilers were buggy. The debuggers were a joke. Tasking was useless except on an Ada RTOS. Bindings to system facilities were compiler-specific. Without function pointers, binding to a GUI was nearly impossible. Work that could be done in hours in C suddenly expanded to take several days. Most programmers with any breadth of experience quickly labelled Ada a non-starter. > > This is why Ada's best hope would be to attach itself to some new, emerging > technology where it doesn't have to displace existing technology and can > itself become the entrenched status quo. Barring that, it has to find some > groundswell of usage out in the hacker world so that there is some large > infrastructure of practical things in use that keep it afloat. LOL. Look at the languages that have been adopted by the 'hacker world' over the past fifteen years: C++. Tcl/Tk. Perl. Java. Python. Ruby. PHP. The drive is to do more and more while saying less and less. Safety is good, but expressiveness and compatibility with existing technology (i.e. the Web, relational databases, and GUI) are the real drivers. OO is still going strong, but functional programming is gaining mindshare. Compile-link-run is on the wane. Also, all these languages provide built-in associative containers. Arrays are fine for small embedded systems, but not very useful for database-driven text processing applications. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-03 9:57 ` Anybody in US using ADA ? Kevin Cline @ 2003-01-03 12:37 ` Marin David Condic 2003-01-03 15:32 ` Anybody in US using ADA ? | for interrest Mark 2003-01-09 0:59 ` Anybody in US using ADA ? faust 0 siblings, 2 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-03 12:37 UTC (permalink / raw) It depends. By "Hacker Community" I meant those who are developing and sharing software without some immediate commercial purpose in mind. Ada has its own hacker community that is putting out some software - just not enough of them to flood the world with something like Linux. If you can't get the commercial developers to use Ada because of their investment in existing technology, you get the "hackers" to build technology to surpass what is already there. I agree that there are trends in the larger "Hacker Community" that Ada does not fit in well with. But that doesn't mean it can't have some appeal in some other way to some segment of the world. When you say "The drive is to do more and more while saying less and less" I couldn't agree more nor do I think that is a bad thing. That's simply talking about "leverage" and if Ada concentrated on that a bit more it might start looking really attractive to others. I don't mean shorten the syntax. I mean provide big libraries so that a developer basically spends time patching together existing code rather than developing it all from bottom-dead-center. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== Kevin Cline <kcline17@hotmail.com> wrote in message news:ba162549.0301030157.3147623d@posting.google.com... > > LOL. Look at the languages that have been adopted by the 'hacker > world' > over the past fifteen years: C++. Tcl/Tk. Perl. Java. Python. Ruby. > PHP. > The drive is to do more and more while saying less and less. Safety > is good, but expressiveness and compatibility with existing technology > (i.e. the Web, relational databases, and GUI) are the real drivers. OO > is still going strong, but functional programming is gaining > mindshare. > Compile-link-run is on the wane. > > Also, all these languages provide built-in associative containers. > Arrays are fine for small embedded systems, but not very useful > for database-driven text processing applications. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? | for interrest. 2003-01-03 12:37 ` Marin David Condic @ 2003-01-03 15:32 ` Mark 2003-01-09 0:59 ` Anybody in US using ADA ? faust 1 sibling, 0 replies; 337+ messages in thread From: Mark @ 2003-01-03 15:32 UTC (permalink / raw) On Fri, 3 Jan 2003, Marin David Condic wrote: > It depends. By "Hacker Community" I meant those who are developing and > sharing software without some immediate commercial purpose in mind. Ada has > its own hacker community that is putting out some software - just not enough > of them to flood the world with something like Linux. If you can't get the > commercial developers to use Ada because of their investment in existing > technology, you get the "hackers" to build technology to surpass what is > already there. Not quite sure if anyone cares, however: I know that a number of people are trying to write/re-write various parts of the Linux kernel and kernel modules with Ada... I hear the projects 'should' be out by the summer... > > I agree that there are trends in the larger "Hacker Community" that Ada does > not fit in well with. But that doesn't mean it can't have some appeal in > some other way to some segment of the world. When you say "The drive is to > do more and more while saying less and less" I couldn't agree more nor do I > think that is a bad thing. That's simply talking about "leverage" and if Ada > concentrated on that a bit more it might start looking really attractive to > others. I don't mean shorten the syntax. I mean provide big libraries so > that a developer basically spends time patching together existing code > rather than developing it all from bottom-dead-center. Sounds good to me, would save muchos time and effort. cheers folks, Mark > > MDC > -- > ====================================================================== > Marin David Condic > I work for: http://www.belcan.com/ > My project is: http://www.jast.mil/ > > Send Replies To: m c o n d i c @ a c m . o r g > > "I'd trade it all for just a little more" > -- Charles Montgomery Burns, [4F10] > ====================================================================== > > Kevin Cline <kcline17@hotmail.com> wrote in message > news:ba162549.0301030157.3147623d@posting.google.com... > > > > LOL. Look at the languages that have been adopted by the 'hacker > > world' > > over the past fifteen years: C++. Tcl/Tk. Perl. Java. Python. Ruby. > > PHP. > > The drive is to do more and more while saying less and less. Safety > > is good, but expressiveness and compatibility with existing technology > > (i.e. the Web, relational databases, and GUI) are the real drivers. OO > > is still going strong, but functional programming is gaining > > mindshare. > > Compile-link-run is on the wane. > > > > Also, all these languages provide built-in associative containers. > > Arrays are fine for small embedded systems, but not very useful > > for database-driven text processing applications. > > > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-03 12:37 ` Marin David Condic 2003-01-03 15:32 ` Anybody in US using ADA ? | for interrest Mark @ 2003-01-09 0:59 ` faust 2003-01-08 12:53 ` Marin David Condic 1 sibling, 1 reply; 337+ messages in thread From: faust @ 2003-01-09 0:59 UTC (permalink / raw) "Marin David Condic" <mcondic.auntie.spam@acm.org> , emitted these fragments: >I mean provide big libraries so >that a developer basically spends time patching together existing code >rather than developing it all from bottom-dead-center. But Ruby, Python and Perl provide extensive _cross-platform_ libraries. How is Ada going to compete with that ? -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-09 0:59 ` Anybody in US using ADA ? faust @ 2003-01-08 12:53 ` Marin David Condic 0 siblings, 0 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-08 12:53 UTC (permalink / raw) But this is exactly my point. Lots of contemporary languages *already* provide extensive libraries to give the developer leverage and Ada *can't* compete with that until it provides some libraries of its own. Waiting for the standards committee to include it in the ARM is just too long a cycle and poses other problems WRT validation, etc. Some less formal mechanism should be developed that can get some libraries attached to Ada *quickly* because every day that goes by, Ada is not adopted for some new development because someone can get more leverage from Ruby, Python, Perl, Whatever, that contains much more extensive libraries. Note that I don't think libraries would cure everything - just provide a good start. They are a necessary, but not sufficient condition. Ada still ought to leapfrog other languages by providing something above and beyond what they do if it hopes to gain adoption by those not already using it. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== faust <urfaust@optushome.com.au> wrote in message news:l6ip1vgvnc8p460qeo4ac8i0neumi9bq7c@4ax.com... > > > But Ruby, Python and Perl provide extensive _cross-platform_ > libraries. > > How is Ada going to compete with that ? > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-01 22:49 ` tmoran 2003-01-02 12:45 ` Marin David Condic @ 2003-01-05 17:04 ` Adrian Hoe 2003-01-06 20:06 ` Randy Brukardt 2003-01-07 2:07 ` Jeffrey Creem 1 sibling, 2 replies; 337+ messages in thread From: Adrian Hoe @ 2003-01-05 17:04 UTC (permalink / raw) tmoran@acm.org wrote: >>Job postings try to look for very specific skills >> > The necessary implication being that the design has already been > frozen - "we will be using this language, that database, this kind > of UI, ...". > I read an interesting essay recently that pointed out that color TV, > UHF, and cable were all technically feasible in 1948 when TVs were in less > than 1% of American households. But we had three black and white VHF > network channels for a very long time because of industry structure&power > reasons. I suppose there were lots of job postings for B/W VHF tuner > designers, and few for people who knew UHF etc. > Another identical twin - Betamax vs. VHS. Betamax (Ada) was more expensive although it had better playback quality than VHS (C/C++) which was cheaper. It was the price that put VHS into every living rooms. Today, some professionals (high-end) still use Betamax. If there were Turbo Ada in the mid/late 80's, Ada could have been a mainstream programming language today. If there were M$ Visual Ada, -- type Dmitry is new Adrian; -- Adrian Hoe -- http://adrianhoe.com -- Remove *nospam* to email ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-05 17:04 ` Adrian Hoe @ 2003-01-06 20:06 ` Randy Brukardt 2003-01-07 2:07 ` Jeffrey Creem 1 sibling, 0 replies; 337+ messages in thread From: Randy Brukardt @ 2003-01-06 20:06 UTC (permalink / raw) Adrian Hoe wrote in message <3e18f3f6_1@news.tm.net.my>... >If there were Turbo Ada in the mid/late 80's, Ada could have been a >mainstream programming language today. If there were M$ Visual Ada, Of course there *was* a Turbo-like Ada in the mid 80's. Indeed, there were several companies vying for that market. The basic Janus/Ada system cost $99 then; it was validated in 1987, but versions were available before that. Indeed, we still have that compiler (Janus/Ada 83 for MS-DOS) available for $129. Perhaps the product could have been better or the marketing better, but certainly low-cost Ada compilers existed from the mid 80's onwards. Randy Brukardt. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-05 17:04 ` Adrian Hoe 2003-01-06 20:06 ` Randy Brukardt @ 2003-01-07 2:07 ` Jeffrey Creem 2003-01-07 3:22 ` Jeffrey Creem 1 sibling, 1 reply; 337+ messages in thread From: Jeffrey Creem @ 2003-01-07 2:07 UTC (permalink / raw) "Adrian Hoe" <mailbox@*nospam*adrianhoe.com> wrote in message news:3e18f3f6_1@news.tm.net.my... > Another identical twin - Betamax vs. VHS. Betamax (Ada) was more > expensive although it had better playback quality than VHS (C/C++) > which was cheaper. It was the price that put VHS into every living > rooms. Today, some professionals (high-end) still use Betamax. > > If there were Turbo Ada in the mid/late 80's, Ada could have been a > mainstream programming language today. If there were M$ Visual Ada, Ok..If you are going to post the obligatory Betamax thing then I have to post the obligatory response that the VHS v.s. Beta battle is not exactly the case that everyone thinks that it is : http://groups.google.com/groups?q=beta+group:comp.lang.ada+author:dewar&hl=e n&lr=&ie=UTF-8&selm=8sg6g2%24eur%241%40nnrp1.deja.com&rnum=3 ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-07 2:07 ` Jeffrey Creem @ 2003-01-07 3:22 ` Jeffrey Creem 0 siblings, 0 replies; 337+ messages in thread From: Jeffrey Creem @ 2003-01-07 3:22 UTC (permalink / raw) "Jeffrey Creem" <jeff@thecreems.com> wrote in message news:gDqS9.268595$qF3.23936@sccrnsc04... Forgot that long links get messed up...This might help http://makeashorterlink.com/?K1E623DF2 ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-01 14:31 ` Marin David Condic 2003-01-01 22:49 ` tmoran @ 2003-01-05 17:06 ` Adrian Hoe 1 sibling, 0 replies; 337+ messages in thread From: Adrian Hoe @ 2003-01-05 17:06 UTC (permalink / raw) Marin David Condic wrote: > To some extent, you're preaching to the choir. I agree that what is really > important is not the language or toolsets you use, but your abilities as an > engineer. But there is the other side of the coin. All professions > specialize to some extent and just as a doctor who specialized in gynocology > might have a hard time switching to proctology and beginning to work in an > entirely new field, so is it true that a programmer who has specialized in > Ada and some Ada toolset might have a bit of work making the transition to > some other language/toolset/problem domain. And even if one dismisses this > as not that big a deal, there's still this nasty problem called "Reality". > Job postings try to look for very specific skills and hiring managers > generally don't want to consider someone unless they match their job > description very closely. The fact that you can adapt and don't think that > this is a big deal doesn't matter because the people making those decisions > *do* think its a big deal. Life is often not fair, eh? I find that programmers specialized in other programming languages/toolsets have strong resistance against Ada and require more effort to learn Ada. OTOH, programmers specialized in Ada and Ada toolsets have the abilities making transition to some other languages/toolsets with little effort. Therefore, I would suggest Universities to teach Ada as the first language. Ada can help students to understand programming languages, -- type Dmitry is new Adrian; -- Adrian Hoe -- http://adrianhoe.com -- Remove *nospam* to email ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-01 7:11 ` tmoran 2003-01-01 14:31 ` Marin David Condic @ 2003-01-02 3:05 ` faust 2003-01-02 3:07 ` faust 2003-01-02 22:09 ` Robert C. Leif 3 siblings, 0 replies; 337+ messages in thread From: faust @ 2003-01-02 3:05 UTC (permalink / raw) tmoran@acm.org , emitted these fragments: >> Programmers want to have skills that can get them a job somewhere else if >> Congress pulls the plug on what they're doing > Are there other industries or professions with as narrow apparent skill >sets? "Young doctors don't want to learn surgery in case advanced drugs >make it unnecessary." Well, very few doctors want to specialise in a niche like neonatal neurology or pediatric cardiac surgery. -------------------------------------------------------- Come see, real flowers of this pain-filled world. (from Basho) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-01 7:11 ` tmoran 2003-01-01 14:31 ` Marin David Condic 2003-01-02 3:05 ` faust @ 2003-01-02 3:07 ` faust 2003-01-02 22:09 ` Robert C. Leif 3 siblings, 0 replies; 337+ messages in thread From: faust @ 2003-01-02 3:07 UTC (permalink / raw) tmoran@acm.org , emitted these fragments: >What will all those C++ and Java programmers do when they discover >you don't innovate by getting a job that let's you use last year's >innovations, and they have no competitive advantage over Indians or >Russians at learning last year's innovations. Those smart Indians are now inventing next year's innovations. There are a fair number of South East Asian names in the programming languages research and the functional programming worlds. -------------------------------------------------------- Come see, real flowers of this pain-filled world. (from Basho) ^ permalink raw reply [flat|nested] 337+ messages in thread
* RE: Anybody in US using ADA ? 2003-01-01 7:11 ` tmoran ` (2 preceding siblings ...) 2003-01-02 3:07 ` faust @ 2003-01-02 22:09 ` Robert C. Leif 3 siblings, 0 replies; 337+ messages in thread From: Robert C. Leif @ 2003-01-02 22:09 UTC (permalink / raw) Especially if the Indians, Russians, etc. use an Ada compiler including the free version of GNAT to build commercial applications that put US software manufacturers out of business. Deming taught the Japanese manufacturers statistical quality control and the US automotive industry has still and probably never will fully recover. Bob Leif -----Original Message----- From: comp.lang.ada-admin@ada.eu.org [mailto:comp.lang.ada-admin@ada.eu.org] On Behalf Of tmoran@acm.org Sent: Tuesday, December 31, 2002 11:11 PM To: comp.lang.ada@ada.eu.org Subject: Re: Anybody in US using ADA ? > Programmers want to have skills that can get them a job somewhere else if > Congress pulls the plug on what they're doing Are there other industries or professions with as narrow apparent skill sets? "Young doctors don't want to learn surgery in case advanced drugs make it unnecessary." "Lawyers don't want to learn criminal law in case everybody becomes saintly." "Civil engineers want to learn only about high speed rail, not roads, fearing no more roads will be built in future." Even actors worrying about type casting usually try to diversify, rather than getting lots and lots of practice in crowd scenes. :( Q 2: What will all those C++ and Java programmers do when they discover you don't innovate by getting a job that let's you use last year's innovations, and they have no competitive advantage over Indians or Russians at learning last year's innovations. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-01 3:20 ` Marin David Condic 2003-01-01 7:11 ` tmoran @ 2003-01-02 17:57 ` Warren W. Gay VE3WWG 2003-01-02 18:29 ` Vinzent Hoefler ` (4 more replies) 2003-01-02 18:29 ` Anybody in US using ADA ? Mike Silva 2 siblings, 5 replies; 337+ messages in thread From: Warren W. Gay VE3WWG @ 2003-01-02 17:57 UTC (permalink / raw) Marin David Condic wrote: > I believe Pratt & Whitney is still using Ada for engine controls. At least > some of them. As one who is working on the engines for the JSF, I can tell > you that those controls are still in Ada - for the time being. (Don't know > what will happen when they go into full scale development.) > > Its a shame to see that many in the DoD arena are abandoning Ada because > "Everybody else is using C++". In this area, Ada does not tend to suffer so > much from lack of large libraries or other development enhancers since > hardware is often custom built and/or software development is not the long > pole in the tent. Here Ada's faster development time and reduced defect > characteristics can truly stand out. I'm afraid I don't know how to overcome > the "follow the crowd" mentality here. ... Maybe what needs to be done is to form a brand new committee, to design a spashy new language that basically implements the same features, with similar syntax (but not too obviously). Then give it a splashy new name after a popular young female (no programmer experience required), and call it something like "Shania". Make sure it gets included in .Net, and have the Universities preach about it and.. world domination! ;-) Just a thought. -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-02 17:57 ` Anybody in US using ADA ? One silly idea Warren W. Gay VE3WWG @ 2003-01-02 18:29 ` Vinzent Hoefler 2003-01-02 22:02 ` Warren W. Gay VE3WWG 2003-01-02 20:36 ` Bill Findlay ` (3 subsequent siblings) 4 siblings, 1 reply; 337+ messages in thread From: Vinzent Hoefler @ 2003-01-02 18:29 UTC (permalink / raw) Warren W. Gay VE3WWG wrote: > Maybe what needs to be done is to form a brand new committee, to > design a spashy new language that basically implements the same > features, with similar syntax (but not too obviously). Then give it a > splashy new name after a popular young female (no programmer > experience required), and call it something like "Shania". new language Shania renames Ada; But, WTF is Shania? > Make sure > it gets included in .Net, and have the Universities preach about it > and.. world domination! We already got A#. :-) Vinzent. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-02 18:29 ` Vinzent Hoefler @ 2003-01-02 22:02 ` Warren W. Gay VE3WWG 0 siblings, 0 replies; 337+ messages in thread From: Warren W. Gay VE3WWG @ 2003-01-02 22:02 UTC (permalink / raw) Vinzent Hoefler wrote: > Warren W. Gay VE3WWG wrote: >>Maybe what needs to be done is to form a brand new committee, to >>design a spashy new language that basically implements the same >>features, with similar syntax (but not too obviously). Then give it a >>splashy new name after a popular young female (no programmer >>experience required), and call it something like "Shania". > > new language Shania renames Ada; > > But, WTF is Shania? No real reason, other than her naval seems to still persist in my memory cells ;-) Warren. -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-02 17:57 ` Anybody in US using ADA ? One silly idea Warren W. Gay VE3WWG 2003-01-02 18:29 ` Vinzent Hoefler @ 2003-01-02 20:36 ` Bill Findlay 2003-01-03 2:56 ` Marin David Condic ` (2 more replies) 2003-01-03 0:07 ` Robert C. Leif ` (2 subsequent siblings) 4 siblings, 3 replies; 337+ messages in thread From: Bill Findlay @ 2003-01-02 20:36 UTC (permalink / raw) On 2/1/03 17:57, in article 3E147D79.2070703@cogeco.ca, "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca> wrote: > > Maybe what needs to be done is to form a brand new committee, to design > a spashy new language that basically implements the same features, with > similar syntax (but not too obviously). Then give it a splashy new name > after a popular young female (no programmer experience required), and > call it something like "Shania". In a language controversy on comp.arch a few weeks ago, some of us came to the conclusion that a lot of the irrational antipathy to Ada was based on unregenerate machismo. Real Programmers � don't want to hear about "software safety" (obviously a namby-pamby concern) and they certainly don't want their code criticized by Ada (a mere slip of girl). I suggested that we Ada proponents should talk instead about "aggressive bug destruction" and that the 0Y committee should look at changing the name to something that exudes testosterone. My first idea was "Rocky", but "Brutus" attracted more support. -- Bill-Findlay chez blue-yonder.co.uk ("-" => "") ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-02 20:36 ` Bill Findlay @ 2003-01-03 2:56 ` Marin David Condic 2003-01-03 4:11 ` sk 2003-01-03 4:43 ` Bill Findlay 2003-01-03 9:24 ` Anybody in US using ADA ? One silly idea Kevin Cline [not found] ` <ujn2va.go3.ln@beastie.ix.netcom.com> 2 siblings, 2 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-03 2:56 UTC (permalink / raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 1718 bytes --] Machismo may be interesting, but nobody is going to be fooled by empty, shallow, marketing for very long. Eventually, they open the box up and see the same old Ada and word gets out. I don't think Ada is *bad* - but it sure has a problem selling itself with "reliability", etc. That's why I've become convinced that a new emphasis and new tools might do a better job of getting Ada accepted. I'd be happy to be proven wrong - that all we really had to do was change the name and use some more cosmetics - but I don't think that's the case. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message news:BA3A535D.177F%yaldnifw@blueyonder.co.uk... > > In a language controversy on comp.arch a few weeks ago, some of us came to > the conclusion that a lot of the irrational antipathy to Ada was based on > unregenerate machismo. Real Programmers � don't want to hear about "software > safety" (obviously a namby-pamby concern) and they certainly don't want > their code criticized by Ada (a mere slip of girl). > > I suggested that we Ada proponents should talk instead about "aggressive bug > destruction" and that the 0Y committee should look at changing the name to > something that exudes testosterone. My first idea was "Rocky", but "Brutus" > attracted more support. > > -- > Bill-Findlay chez blue-yonder.co.uk ("-" => "") > > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 2:56 ` Marin David Condic @ 2003-01-03 4:11 ` sk 2003-01-03 4:43 ` Bill Findlay 1 sibling, 0 replies; 337+ messages in thread From: sk @ 2003-01-03 4:11 UTC (permalink / raw) mcondic.auntie.spam@acm.org > Machismo may be interesting, but nobody is going to be fooled by > empty, shallow, marketing for very long. Eventually, they open the > box up and see... How has MS and windows survivied then ? :-) -- -- -- Merge vertically for real address -- ------------------------------------ -- s n p @ t . o -- k i e k c c m ------------------------------------ ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 2:56 ` Marin David Condic 2003-01-03 4:11 ` sk @ 2003-01-03 4:43 ` Bill Findlay 2003-01-03 6:01 ` Robert C. Leif 2003-01-03 13:16 ` Marin David Condic 1 sibling, 2 replies; 337+ messages in thread From: Bill Findlay @ 2003-01-03 4:43 UTC (permalink / raw) On 3/1/03 02:56, in article av2u64$qj$1@slb5.atl.mindspring.net, "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote: > Machismo may be interesting, but nobody is going to be fooled by empty, > shallow, marketing for very long. It was a joke, Marin. > Eventually, they open the box up and see the same old Ada and word gets out. "Same old Ada"? For all practical purposes Ada 95 is the same age as Java. "Word gets out"? What word is that? Are you saying that there are serious unacknowledged technical defects in Ada 95? Opposition to Ada in comp.arch fell into three categories, which I parody (grotesquely unfairly, I admit 8-) as follows: (1) "We don't care about software quality. We make money selling **** written in C, and that's fine with us." (2) "We do care about software quality. We write our software in C (or other, even less safe, languages) and ensure its quality by being faultless programmers and superior human beings. Ada is for talentless losers." (3) "Ada is too low-level. Our favourite language is Functional-Telepathy/1, which generates an optimal program for you while you are still thinking about the specification. It should be implemented real soon now." Depressingly, type (1) critics were in a majority. When shown evidence (the Rational data) that Ada could help them to make even more money, the response was "I don't believe it"; taken even to the point of suggesting that Rational had fabricated their figures. In other words: "I've no evidence of my own, so I'll find reasons to ignore yours". The intensity of denial was astonishing. Type (2) and type (3) critics tended to post from academic domains (no surprise 8-), although academia did not have a monopoly on false pride. It's interesting that essentially no-one objected to Ada on the grounds of technical or pragmatic issues such as are are openly discussed here. > I don't think Ada is *bad* - That's damming with faint praise. I think Ada 95 is very, very good indeed. > but it sure has a problem selling itself with "reliability", etc. > That's why I've become > convinced that a new emphasis and new tools might do a better job of getting > Ada accepted. I'd be happy to be proven wrong - that all we really had to do > was change the name and use some more cosmetics - but I don't think that's > the case. Why do you care whether anyone adopts Ada, if "reliability, etc" is not the primary concern? I look at this the other way round. I want the general level of software quality to rise, and I believe that better understanding and wider adoption of Ada would promote this objective. I'm more than happy to make common cause with anyone, such as yourself, who has ideas about how to make that happen. But I do not think that it is Ada that is the barrier; and I do think that the barrier is fairly impenetrable. 8-( -- Bill-Findlay chez blue-yonder.co.uk ("-" => "") ^ permalink raw reply [flat|nested] 337+ messages in thread
* RE: Anybody in US using ADA ? One silly idea.. 2003-01-03 4:43 ` Bill Findlay @ 2003-01-03 6:01 ` Robert C. Leif 2003-01-07 17:47 ` Kevin Cline 2003-01-03 13:16 ` Marin David Condic 1 sibling, 1 reply; 337+ messages in thread From: Robert C. Leif @ 2003-01-03 6:01 UTC (permalink / raw) I have just spent a total of 12 of hours trying to open a file with Windows XP Professional. This file was created under Windows 98 and still opens under 98. The customers would flock to something that worked! In case this bug happens to anyone else, shorten the file names under an old version of Windows. Evidently XP has a constraint that does not exist in the older versions. Although XP has not crashed itself, many applications still crash including Windows Explorer. Rebooting once a day is a reasonable means of eliminating pointer garbage. Ada needs commercial products. Bob Leif -----Original Message----- From: comp.lang.ada-admin@ada.eu.org [mailto:comp.lang.ada-admin@ada.eu.org] On Behalf Of Bill Findlay Sent: Thursday, January 02, 2003 8:43 PM To: comp.lang.ada@ada.eu.org Subject: Re: Anybody in US using ADA ? One silly idea.. On 3/1/03 02:56, in article av2u64$qj$1@slb5.atl.mindspring.net, "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote: > Machismo may be interesting, but nobody is going to be fooled by empty, > shallow, marketing for very long. It was a joke, Marin. > Eventually, they open the box up and see the same old Ada and word gets out. "Same old Ada"? For all practical purposes Ada 95 is the same age as Java. "Word gets out"? What word is that? Are you saying that there are serious unacknowledged technical defects in Ada 95? Opposition to Ada in comp.arch fell into three categories, which I parody (grotesquely unfairly, I admit 8-) as follows: (1) "We don't care about software quality. We make money selling **** written in C, and that's fine with us." (2) "We do care about software quality. We write our software in C (or other, even less safe, languages) and ensure its quality by being faultless programmers and superior human beings. Ada is for talentless losers." (3) "Ada is too low-level. Our favourite language is Functional-Telepathy/1, which generates an optimal program for you while you are still thinking about the specification. It should be implemented real soon now." Depressingly, type (1) critics were in a majority. When shown evidence (the Rational data) that Ada could help them to make even more money, the response was "I don't believe it"; taken even to the point of suggesting that Rational had fabricated their figures. In other words: "I've no evidence of my own, so I'll find reasons to ignore yours". The intensity of denial was astonishing. Type (2) and type (3) critics tended to post from academic domains (no surprise 8-), although academia did not have a monopoly on false pride. It's interesting that essentially no-one objected to Ada on the grounds of technical or pragmatic issues such as are are openly discussed here. > I don't think Ada is *bad* - That's damming with faint praise. I think Ada 95 is very, very good indeed. > but it sure has a problem selling itself with "reliability", etc. > That's why I've become > convinced that a new emphasis and new tools might do a better job of getting > Ada accepted. I'd be happy to be proven wrong - that all we really had to do > was change the name and use some more cosmetics - but I don't think that's > the case. Why do you care whether anyone adopts Ada, if "reliability, etc" is not the primary concern? I look at this the other way round. I want the general level of software quality to rise, and I believe that better understanding and wider adoption of Ada would promote this objective. I'm more than happy to make common cause with anyone, such as yourself, who has ideas about how to make that happen. But I do not think that it is Ada that is the barrier; and I do think that the barrier is fairly impenetrable. 8-( -- Bill-Findlay chez blue-yonder.co.uk ("-" => "") ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 6:01 ` Robert C. Leif @ 2003-01-07 17:47 ` Kevin Cline 2003-01-07 19:49 ` tmoran 0 siblings, 1 reply; 337+ messages in thread From: Kevin Cline @ 2003-01-07 17:47 UTC (permalink / raw) "Robert C. Leif" <rleif@rleif.com> wrote in message news:<mailman.1041573722.6746.comp.lang.ada@ada.eu.org>... > I have just spent a total of 12 of hours trying to open a file with > Windows > XP Professional. This file was created under Windows 98 and still opens > under 98. The customers would flock to something that worked! > In case this bug happens to anyone else, shorten the file names under an > old > version of Windows. Evidently XP has a constraint that does not exist in > the > older versions. Although XP has not crashed itself, many applications > still > crash including Windows Explorer. Rebooting once a day is a reasonable > means > of eliminating pointer garbage. Ada needs commercial products. Given that few if any current Ada implementations provide garbage collection, the programmers would still have to manage memory via new/unchecked_deallocation And the same programmers who leak memory or create dangling pointers with new/delete/malloc/free would do the same thing with new/unchecked_deallocation. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-07 17:47 ` Kevin Cline @ 2003-01-07 19:49 ` tmoran 2003-01-09 5:15 ` Kevin Cline 0 siblings, 1 reply; 337+ messages in thread From: tmoran @ 2003-01-07 19:49 UTC (permalink / raw) > And the same programmers who leak memory or create dangling pointers > with new/delete/malloc/free would do the same thing with > new/unchecked_deallocation. "If there's a 'with Ada.Unchecked_Deallocation' on the body, there ought to be a 'with Ada.Finalization' on the spec." ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-07 19:49 ` tmoran @ 2003-01-09 5:15 ` Kevin Cline 0 siblings, 0 replies; 337+ messages in thread From: Kevin Cline @ 2003-01-09 5:15 UTC (permalink / raw) tmoran@acm.org wrote in message news:<VaGS9.672077$NH2.47101@sccrnsc01>... > > And the same programmers who leak memory or create dangling pointers > > with new/delete/malloc/free would do the same thing with > > new/unchecked_deallocation. > "If there's a 'with Ada.Unchecked_Deallocation' on the body, there > ought to be a 'with Ada.Finalization' on the spec." Right. There ought to be. The same programmers who leak memory with new/delete/malloc/free are the same programmers who wouldn't use Ada.Finalization. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 4:43 ` Bill Findlay 2003-01-03 6:01 ` Robert C. Leif @ 2003-01-03 13:16 ` Marin David Condic 2003-01-03 18:28 ` Bill Findlay ` (2 more replies) 1 sibling, 3 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-03 13:16 UTC (permalink / raw) Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message news:BA3AC562.17A7%yaldnifw@blueyonder.co.uk... > > It was a joke, Marin. > Ahhh, but a "joke" that's been seriously suggested here before. :-) > > Eventually, they open the box up and see the same old Ada and word gets out. > > "Same old Ada"? For all practical purposes Ada 95 is the same age as Java. > By which I meant that simply changing the terminology to be more "Macho" and/or just tinkering with the syntax a little to make it look different isn't going to fool anyone into thinking its something "new". > "Word gets out"? What word is that? Are you saying that there are serious > unacknowledged technical defects in Ada 95? > Nope. See above. > Opposition to Ada in comp.arch fell into three categories, which I parody > (grotesquely unfairly, I admit 8-) as follows: > (1) "We don't care about software quality. We make money selling **** > written in C, and that's fine with us." > (2) "We do care about software quality. We write our software in C (or > other, even less safe, languages) and ensure its quality by being faultless > programmers and superior human beings. Ada is for talentless losers." > (3) "Ada is too low-level. Our favourite language is Functional-Telepathy/1, > which generates an optimal program for you while you are still thinking > about the specification. It should be implemented real soon now." > > Depressingly, type (1) critics were in a majority. When shown evidence (the > Rational data) that Ada could help them to make even more money, the > response was "I don't believe it"; taken even to the point of suggesting > that Rational had fabricated their figures. In other words: "I've no > evidence of my own, so I'll find reasons to ignore yours". > > The intensity of denial was astonishing. > I understand and sympathize. The problem is that those are your potential customers for Ada and if you don't find a way to persuade them with *something* then you'd might as well just give up. I've had my own data showing how Ada can make more money and the problem is that this sort of data just doesn't seem to help people get interested in it. Mostly because it is "Life Cycle" money and most business efforts are driven by "Time To Market" money. They don't care if it costs more in the long run because if it doesn't get there first, it won't earn anything anyway, so better to spend more "in the long run" if whatever you do gets a product out the door quicker. So if we could find a way to show some segment of this market that Ada brought them some truckload of leverage that got them to market twice as fast, don't you think they'd perk up and be interested? I did a stint in the Cable TV Set Top Box world and if Ada had been there with a whole package of stuff that got the box delivered faster - and with fewer defects - it might have been given a serious shot. (And found a nice "emerging technology" to tie itself to.) There ought to be some segment of the developer world that Ada can address more effectively by listening to its concerns and providing it with leverage. > Type (2) and type (3) critics tended to post from academic domains (no > surprise 8-), although academia did not have a monopoly on false pride. > > It's interesting that essentially no-one objected to Ada on the grounds of > technical or pragmatic issues such as are are openly discussed here. > So if you want to sell to them, using technical arguments of superiority or pragmatic arguments of life cycle costs aren't going to work. (That shouldn't be news. Ada's been making that case for 20 years now and customers are ignoring it by the millions.) That means we ought to find out what the customer *would* buy and find a way to get that into Ada if it doesn't already exist. > > I don't think Ada is *bad* - > > That's damming with faint praise. I think Ada 95 is very, very good indeed. > Maybe. I've been an Ada advocate for a very long time, so I think I'm on record as saying nice things about it. My intent was to indicate that I didn't see some fundamental flaws in the language itself that were causing it to fail to be adopted. Syntactic or semantic changes are probably not necessary on any large scale - more an emphasis on what else Ada provides besides its syntax & semantics. > > Why do you care whether anyone adopts Ada, if "reliability, etc" is not the > primary concern? I look at this the other way round. I want the general > level of software quality to rise, and I believe that better understanding > and wider adoption of Ada would promote this objective. I'm more than happy > to make common cause with anyone, such as yourself, who has ideas about how > to make that happen. But I do not think that it is Ada that is the barrier; > and I do think that the barrier is fairly impenetrable. 8-( > -- O.K. I hope I can make myself crystal clear on this one: I am NOT opposed to reliability nor do I think it is irrelevant or should be taken out of the language or anything of that sort. What I'm saying is that Ada has been harping on "Reliability" for TWENTY YEARS and people are staying away from it in droves. Twenty more years of harping on reliability is not likely to change that. Hence, let's keep reliability in our back pocket to pull out when it makes sense to talk about it, but in the mean time, lets find something more appealing to put in front of the potential users that they might actually care about. Find out what some commercial developers in some sector might want in a programming language and fill that need. When they get reliability as a byproduct, then you can pull the "See??? I Told You So!!!" out of your back pocket and we can all brag about that. As someone who likes and uses Ada, I'd like to see the language grow and prosper. I think the best way to do that is to get Ada focused on providing something that some large segment of the developer population just can't resist using. If we give thought to that, maybe we can come up with the right changes and the right focus. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 13:16 ` Marin David Condic @ 2003-01-03 18:28 ` Bill Findlay 2003-01-04 15:17 ` Marin David Condic 2003-01-09 16:36 ` faust 2003-01-03 20:07 ` tmoran 2003-01-07 12:38 ` Richard Riehle 2 siblings, 2 replies; 337+ messages in thread From: Bill Findlay @ 2003-01-03 18:28 UTC (permalink / raw) On 3/1/03 13:16, in article av42f6$d5i$1@slb6.atl.mindspring.net, "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote: > Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message > news:BA3AC562.17A7%yaldnifw@blueyonder.co.uk... >> >> It was a joke, Marin. >> > Ahhh, but a "joke" that's been seriously suggested here before. :-) !!!! >> "Same old Ada"? For all practical purposes Ada 95 is the same age as Java. > By which I meant that simply changing the terminology to be more "Macho" > and/or just tinkering with the syntax a little to make it look different > isn't going to fool anyone into thinking its something "new". I agree, of course. [...] >> (1) "We don't care about software quality ..." >> (2) "We do care about software quality. ... Ada is for talentless losers." >> (3) "Ada is too low-level. ..." >> >> Depressingly, type (1) critics were in a majority. [...] >> > I understand and sympathize. The problem is that those are your potential > customers for Ada and if you don't find a way to persuade them with > *something* then you'd might as well just give up. I've had my own data > showing how Ada can make more money and the problem is that this sort of > data just doesn't seem to help people get interested in it. Mostly because > it is "Life Cycle" money and most business efforts are driven by "Time To > Market" money. They don't care if it costs more in the long run because if > it doesn't get there first, it won't earn anything anyway, so better to > spend more "in the long run" if whatever you do gets a product out the door > quicker. That pretty much sums up what type (1) critics said. Despite my making fun of them, I do think they have the makings of a point. But don�t you think that (other things being equal - and that is what you are emphasizing) Ada *would* get them to market sooner? I was even more depressed that type (2) critics, who did care about quality, had the perception that Ada was a crutch for the talentless. This is so contrary to my own perception that I find it bewildering. -- Bill-Findlay chez blue-yonder.co.uk ("-" => "") ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 18:28 ` Bill Findlay @ 2003-01-04 15:17 ` Marin David Condic 2003-01-09 16:36 ` faust 1 sibling, 0 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-04 15:17 UTC (permalink / raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 3023 bytes --] Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message news:BA3B86D9.17DB%yaldnifw@blueyonder.co.uk... > > That pretty much sums up what type (1) critics said. > Despite my making fun of them, I do think they have the makings of a point. > But don�t you think that (other things being equal - and that is what you > are emphasizing) Ada *would* get them to market sooner? > Well if they are saying exactly what I'm saying, then they're right. :-) They may be saying something else - or you're hearing something else, if you find disagreements here. Your problem is the "Other things being equal" part. They never are. Contemplating a project you want to take to market, you look at what is available to you and quite often with C or C++, you've got an OS, GUI, Database, etc. that are all written in C and can be interfaced/embedded/whatever rather readily as long as you use C/C++ to do the job. Sure you'll spend twice as long debugging the unholy mess, but you'll have something to show the customer *much* sooner than the guys who are working in Ada and spending the first 6 months developing the bindings, libraries, utilities, etc., they'll need to just get to where you are at when you open up the box and install the compiler. Sure your product will be a piece of crap - but it will be the only thing available to the customer, so he'll buy it and use it anyway and you'll have money in your pocket and a customer locked in to your product just about the time the Ada guys are going "Hey, we've got the bindings and libraries and tools now. Let's get started building the app." I don't think most companies build crap software because they *want* to. They do it because they're using tools/methods that result in crap, but crap that gets there quickly. Bringing them something that let them build solid-gold apps just as quickly might persuade them to switch. > I was even more depressed that type (2) critics, who did care about quality, > had the perception that Ada was a crutch for the talentless. > This is so contrary to my own perception that I find it bewildering. > I've always been disappointed by the "Any *competent* programmer..." argument, but not at all surprised. Back in the days of Shakespear there was the "Any *competent* carpenter can do his job with an axe and doesn't need that crutch you call a 'saw'..." Eventually, the crutch can win out because it is providing leverage to the developer, so I don't get discouraged. Its just that Ada's particular 'crutch' is not being perceived as a big enough deal to warrant switching to Ada. So maybe Ada just needs to come up with a bigger, better crutch? MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 18:28 ` Bill Findlay 2003-01-04 15:17 ` Marin David Condic @ 2003-01-09 16:36 ` faust [not found] ` <roliva.8b4.ln@beastie.ix.netcom.com> 1 sibling, 1 reply; 337+ messages in thread From: faust @ 2003-01-09 16:36 UTC (permalink / raw) Bill Findlay <yaldnifw@blueyonder.co.uk> , emitted these fragments: >I was even more depressed that type (2) critics, who did care about quality, >had the perception that Ada was a crutch for the talentless. >This is so contrary to my own perception that I find it bewildering. A talented analyst/programmer with Fujitsu once told me that Ada is "COBOL for the clueless". This was after I told him about the nifty default parameters that functions could be given. -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
[parent not found: <roliva.8b4.ln@beastie.ix.netcom.com>]
* Re: Anybody in US using ADA ? One silly idea.. [not found] ` <roliva.8b4.ln@beastie.ix.netcom.com> @ 2003-01-09 4:32 ` Hyman Rosen 0 siblings, 0 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-09 4:32 UTC (permalink / raw) Dennis Lee Bieber wrote: > What would you expect ACT folks to say if you were trying to sell them > on the benefits of COBOL? <G> That you are preaching to the choir? Robert Dewar is one of the creators of Realia COBOL. That compiler was written in itself. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 13:16 ` Marin David Condic 2003-01-03 18:28 ` Bill Findlay @ 2003-01-03 20:07 ` tmoran 2003-01-03 23:06 ` Martin Dowie 2003-01-04 7:07 ` Robert C. Leif 2003-01-07 12:38 ` Richard Riehle 2 siblings, 2 replies; 337+ messages in thread From: tmoran @ 2003-01-03 20:07 UTC (permalink / raw) >something that some large segment of the developer population just can't >resist using. Is there an Ada compiler targetted to the chips used by cell phones? PDAs? Consumer robots (beyond the Ada-subset => C for Lego)? Small, cheap, embedded gadgets in general? If so, are there bindings? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 20:07 ` tmoran @ 2003-01-03 23:06 ` Martin Dowie 2003-01-09 16:22 ` faust 2003-01-04 7:07 ` Robert C. Leif 1 sibling, 1 reply; 337+ messages in thread From: Martin Dowie @ 2003-01-03 23:06 UTC (permalink / raw) <tmoran@acm.org> wrote in message news:m4mR9.615001$QZ.89410@sccrnsc02... > >something that some large segment of the developer population just can't > >resist using. > Is there an Ada compiler targetted to the chips used by cell phones? > PDAs? Consumer robots (beyond the Ada-subset => C for Lego)? > Small, cheap, embedded gadgets in general? If so, are there bindings? The Symbian OS can use gcc, so GNAT shouldn't be outrageously difficult to port to that. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 23:06 ` Martin Dowie @ 2003-01-09 16:22 ` faust 0 siblings, 0 replies; 337+ messages in thread From: faust @ 2003-01-09 16:22 UTC (permalink / raw) "Martin Dowie" <martin.dowie@no.spam.btopenworld.com> , emitted these fragments: >> Is there an Ada compiler targetted to the chips used by cell phones? >> PDAs? Consumer robots (beyond the Ada-subset => C for Lego)? >> Small, cheap, embedded gadgets in general? If so, are there bindings? > >The Symbian OS can use gcc, so GNAT shouldn't be outrageously difficult to >port to that. ie: There is f*ing vapourware. -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* RE: Anybody in US using ADA ? One silly idea.. 2003-01-03 20:07 ` tmoran 2003-01-03 23:06 ` Martin Dowie @ 2003-01-04 7:07 ` Robert C. Leif 2003-01-04 17:49 ` Steve 1 sibling, 1 reply; 337+ messages in thread From: Robert C. Leif @ 2003-01-04 7:07 UTC (permalink / raw) If the target is based on Windows CE or Windows embedded.NET, then A# should work for all of the processors supported by these operating systems. Since ECMA is a legitimate standards organization, multiple chip vendors should be considering developing code generators specific for the ECMA intermediate language. If they are smart, they will hardwire the ECMA intermediate language in a manner similar to the J code processors. Bob Leif -----Original Message----- From: comp.lang.ada-admin@ada.eu.org [mailto:comp.lang.ada-admin@ada.eu.org] On Behalf Of tmoran@acm.org Sent: Friday, January 03, 2003 12:08 PM To: comp.lang.ada@ada.eu.org Subject: Re: Anybody in US using ADA ? One silly idea.. >something that some large segment of the developer population just can't >resist using. Is there an Ada compiler targetted to the chips used by cell phones? PDAs? Consumer robots (beyond the Ada-subset => C for Lego)? Small, cheap, embedded gadgets in general? If so, are there bindings? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-04 7:07 ` Robert C. Leif @ 2003-01-04 17:49 ` Steve 2003-01-05 3:07 ` Robert C. Leif 0 siblings, 1 reply; 337+ messages in thread From: Steve @ 2003-01-04 17:49 UTC (permalink / raw) "Robert C. Leif" <rleif@rleif.com> wrote in message news:mailman.1041664082.19130.comp.lang.ada@ada.eu.org... [snip] Is there an Ada compiler targetted to the chips used by cell phones? PDAs? Consumer robots (beyond the Ada-subset => C for Lego)? Small, cheap, embedded gadgets in general? If so, are there bindings? Funny you should ask. I just purchased a Handspring Visor Platinum (PDA) to replace my Day Timer. While I'm not planning on writing programs, I was curious as to what's available for development. It turns out the Visor uses a Motorola MC68VZ328 processor, one of the variants of the 68K. You can download a version of gcc that includes what is needed to program the visor, but the version referenced by handsprings site uses a version of GCC prior to 3.0 so Ada is not included in the kit. It may very well be possible to build a new version of GCC targeting PalmOS (m68k-palmos-gcc). I am not aware of any run-time library support, but it looks like building GNAT to target PalmOS may not be that difficult. Since I'm not that interested in programming PDAs I don't plan on pursuing it, but some ambitious soul might. I would be very suprised if ACT turned down a request from a paying customer. Steve (The Duck) ^ permalink raw reply [flat|nested] 337+ messages in thread
* RE: Anybody in US using ADA ? One silly idea.. 2003-01-04 17:49 ` Steve @ 2003-01-05 3:07 ` Robert C. Leif 0 siblings, 0 replies; 337+ messages in thread From: Robert C. Leif @ 2003-01-05 3:07 UTC (permalink / raw) I did not write that statement. I did state that the work-around was to use the ECMA intermediate language. This is how Java and before that UCSD Pascal facilitated hosting. Bob Leif -----Original Message----- From: comp.lang.ada-admin@ada.eu.org [mailto:comp.lang.ada-admin@ada.eu.org] On Behalf Of Steve Sent: Saturday, January 04, 2003 9:50 AM To: comp.lang.ada@ada.eu.org Subject: Re: Anybody in US using ADA ? One silly idea.. "Robert C. Leif" <rleif@rleif.com> wrote in message news:mailman.1041664082.19130.comp.lang.ada@ada.eu.org... [snip] Is there an Ada compiler targetted to the chips used by cell phones? PDAs? Consumer robots (beyond the Ada-subset => C for Lego)? Small, cheap, embedded gadgets in general? If so, are there bindings? Funny you should ask. I just purchased a Handspring Visor Platinum (PDA) to replace my Day Timer. While I'm not planning on writing programs, I was curious as to what's available for development. It turns out the Visor uses a Motorola MC68VZ328 processor, one of the variants of the 68K. You can download a version of gcc that includes what is needed to program the visor, but the version referenced by handsprings site uses a version of GCC prior to 3.0 so Ada is not included in the kit. It may very well be possible to build a new version of GCC targeting PalmOS (m68k-palmos-gcc). I am not aware of any run-time library support, but it looks like building GNAT to target PalmOS may not be that difficult. Since I'm not that interested in programming PDAs I don't plan on pursuing it, but some ambitious soul might. I would be very suprised if ACT turned down a request from a paying customer. Steve (The Duck) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 13:16 ` Marin David Condic 2003-01-03 18:28 ` Bill Findlay 2003-01-03 20:07 ` tmoran @ 2003-01-07 12:38 ` Richard Riehle 2003-01-09 16:36 ` faust 2003-01-09 16:37 ` Harness your own creativity to Ada (Re: Anybody in US using ADA ? One silly idea..) faust 2 siblings, 2 replies; 337+ messages in thread From: Richard Riehle @ 2003-01-07 12:38 UTC (permalink / raw) Marin David Condic wrote: > O.K. I hope I can make myself crystal clear on this one: I am NOT opposed to > reliability nor do I think it is irrelevant or should be taken out of the > language or anything of that sort. Programmers, most of them I know, don't care a whit about reliability. They care about convenience. Remember when we would teach Ada 83 and we had to show the students how to instantiate a generic package so they could do simple I/O? Remember how difficult it was, with Ada 83 to do simple file management? Remember how frustrating it was to format an MS-DOS screen using standard Ada? Remember how the students reacted when exposed to the visibility rules? Most of those new Ada programmers just wanted to write simple programs to get started. Many wanted to use Ada on their home machines to do little projects for fun. I recall the Meridian compiler had a DOS package that was pretty good, but still fell short of what we needed. For example, with the overpriced Alsys compiler, one could access any part of memory because the type Address allowed it. With the Meridian compiler the type Address was a type signed integer so one could not directly address the display address values in the upper 360KB of DOS space. Sounds silly. Maybe, but it prevented one of my customers from doing the kind of high-peformance graphics they could do with Alsys. We have the defined the language for technical people and made it almost inaccessible to those who simply want to do the kind of programming they usually do with Fortran. We have some libraries, finally, for doing GUI programming, but too late to inspire the ordinary programmer to take a second look. My students are at different levels of capability. Some love to program with John English's JEWL package since it so easy to do so many interesting Windows programs. Others love CLAW. At least one pair of students did a great M.S. thesis using GtkAda. One of the saddest things was the abandonment of the Java Byte Code initiative from GNAT. Yes, I realize there was insufficient commercial demand. However, I had generated a lot of interest in it at NPS until it turned out that the existing version was not up-to-date with the current JVM capabilities. My colleagues, at first enthusiastic, quickly lost interest. In the parlance of the "romance novel" this is known as "seduced and abandoned." Ada is, in my view, the best choice of programming languages for a wide range of applications, wider than reliabiility-oriented applications, and wider than most other languages. I was just reading my new copy of the Consolidated Ada Language Reference Manual at 2:00 AM this morning and found myself entertained by the improvement in language, explanation, and clarification. We need more literature explaining, in depth and with examples, how certain things work. For example, someone could do a good tutorial on the mathematical capabilities of the language using some examples from the Numerical Recipes Series. I tried to create a little booklet with my Ada Distilled to make the language more accessible. The responses I get from readers of Ada Distilled has been encouraging and I continue to update and expand it based on that feedback. We need more libraries similar to those created by Jerry Van Djik, such as his NT_Console package. In fact, that package needs a little enhancement, but is pretty good as it is. I have mentioned before, and re-emphasize again, those of us who want to promote Ada can do nothing better than create commercial applications using it. There is not end to the ideas for new applications and no end to what can be sold in the marketplace. Where are the games programmed in Ada and sold in shrink-wrap? Where are the database applications created in Ada and marketed to the business community? Where is the spreadsheet program written in Ada that makes Excel look like yesterday's stale bread? The best way to sell Ada is to use it for building applications that people use on their computers. CLAW is a great starting place for creating such applications for Windows. GtkAda is a great starting place to create the sorely needed applications for Linux, a platform where users are desperate for new applications. The path to commercial success for Ada is to use it for successful commercial products. Harness your own creativity to Ada. Build products. Don't tout them as Ada products but as products that solve a problem. Only after your product is wildly successful do you need to reveal that you used Ada. It is nearly impossible to convince a large corporation to change course in its choice of programming languages once the bureaucracy has made its decision. Such decisions are rarely made on technical grounds. They are usually made by people who have little knowledge of software and less knowledge of programming languages. They make incredibly stupid decisions, most often choosing something as disastrous as C++. I often suggest to my students that, if C++ is the best we can do in programming languages, this industry is in trouble for a long time to come. Ruby is achieving success because developers are choosing it. Python is successful for the same reason. Eiffel, which should be more successful, is not as widely received, in part, I suspect because it is viewed as an expensive commercial alternative. Ada is now available in free, downloadble versions similar to Ruby, Smalltalk, Scheme, and Python. That is a good start, but not quite enough. Go and make your fortune with a product created in Ada and you can walk away from that dour, windowless cubicle in which you have been imprisoned by some huge defense contractor. You can build as good or better products using what we now have available in the Ada language and its available libraries. Programmers of the world, choose Ada. You have nothing to lose but your chains. Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-07 12:38 ` Richard Riehle @ 2003-01-09 16:36 ` faust 2003-01-09 16:37 ` Harness your own creativity to Ada (Re: Anybody in US using ADA ? One silly idea..) faust 1 sibling, 0 replies; 337+ messages in thread From: faust @ 2003-01-09 16:36 UTC (permalink / raw) Richard Riehle <richard@adaworks.com> , emitted these fragments: > Harness your own creativity to Ada. ... ..... >Programmers of the world, choose Ada. You have nothing to lose but your chains. Or the productive years of your life. Do you really want to end up like the OS/2 advocates, forever whining on about how the bad bureaucrats wont let them use their technically superior solution ? -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Harness your own creativity to Ada (Re: Anybody in US using ADA ? One silly idea..) 2003-01-07 12:38 ` Richard Riehle 2003-01-09 16:36 ` faust @ 2003-01-09 16:37 ` faust 1 sibling, 0 replies; 337+ messages in thread From: faust @ 2003-01-09 16:37 UTC (permalink / raw) Richard Riehle <richard@adaworks.com> , emitted these fragments: > Harness your own creativity to Ada. ... ..... >Programmers of the world, choose Ada. You have nothing to lose but your chains. Or the productive years of your life. Do you really want to end up like the OS/2 advocates, forever whining on about how the bad bureaucrats wont let them use their technically superior solution ? -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-02 20:36 ` Bill Findlay 2003-01-03 2:56 ` Marin David Condic @ 2003-01-03 9:24 ` Kevin Cline 2003-01-03 10:11 ` John R. Strohm 2003-01-03 22:34 ` Ted Dennison [not found] ` <ujn2va.go3.ln@beastie.ix.netcom.com> 2 siblings, 2 replies; 337+ messages in thread From: Kevin Cline @ 2003-01-03 9:24 UTC (permalink / raw) Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message news:<BA3A535D.177F%yaldnifw@blueyonder.co.uk>... > On 2/1/03 17:57, in article 3E147D79.2070703@cogeco.ca, "Warren W. Gay > VE3WWG" <ve3wwg@cogeco.ca> wrote: > > > > Maybe what needs to be done is to form a brand new committee, to design > > a spashy new language that basically implements the same features, with > > similar syntax (but not too obviously). Then give it a splashy new name > > after a popular young female (no programmer experience required), and > > call it something like "Shania". > > In a language controversy on comp.arch a few weeks ago, some of us came to > the conclusion that a lot of the irrational antipathy to Ada was based on > unregenerate machismo. Not all the antipathy to Ada is irrational. Most of it comes from sad experience. Mine was trying to use Ada-83 to write Unix applications with a Motif UI. Regardless of any superiority in reliability, the scarcity of libraries and trained programmers makes Ada too expensive for most commercial software projects. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 9:24 ` Anybody in US using ADA ? One silly idea Kevin Cline @ 2003-01-03 10:11 ` John R. Strohm 2003-01-03 13:23 ` Marin David Condic 2003-01-03 19:40 ` Kevin Cline 2003-01-03 22:34 ` Ted Dennison 1 sibling, 2 replies; 337+ messages in thread From: John R. Strohm @ 2003-01-03 10:11 UTC (permalink / raw) "Kevin Cline" <kcline17@hotmail.com> wrote in message news:ba162549.0301030124.237c7a7e@posting.google.com... > Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message news:<BA3A535D.177F%yaldnifw@blueyonder.co.uk>... > > On 2/1/03 17:57, in article 3E147D79.2070703@cogeco.ca, "Warren W. Gay > > VE3WWG" <ve3wwg@cogeco.ca> wrote: > > > > > > Maybe what needs to be done is to form a brand new committee, to design > > > a spashy new language that basically implements the same features, with > > > similar syntax (but not too obviously). Then give it a splashy new name > > > after a popular young female (no programmer experience required), and > > > call it something like "Shania". > > > > In a language controversy on comp.arch a few weeks ago, some of us came to > > the conclusion that a lot of the irrational antipathy to Ada was based on > > unregenerate machismo. > > Not all the antipathy to Ada is irrational. Most of it comes > from sad experience. Mine was trying to use Ada-83 to write Unix > applications with a Motif UI. Regardless of any superiority in > reliability, the scarcity of libraries and trained > programmers makes Ada too expensive for most commercial software > projects. In the very early 1980s, General Dynamics / Fort Worth Division started the F-16C/D program. This was a MAJOR upgrade of the airplane, involving, among other things, all new computers and all new software. Ada wasn't there yet, so they chose JOVIAL J73. At that time, there existed precisely one J73 compiler, and it didn't target EITHER of the processors they were designing into the airplane (Zilog Z8002 and MIL-STD-1750A). They wound up having to let compiler development contracts to two (small) companies to develop toolsets. At that time, trained J73 programmers just plain didn't exist. GD/FW had to train every single programmer they hired for that project. Every time I hear someone grumbling about the scarcity of trained Ada programmers, I think about F-16C/D and JOVIAL, and I wonder how GD/FW ever managed to get that airplane off the ground, if training is so hard. I'm not even going to mention HAL/S, the Space Shuttle language, which to my (unclassified) knowledge was not used for anything else on the planet. Where does NASA (and the SEI Level 5 contractor) get trained HAL/S programmers? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 10:11 ` John R. Strohm @ 2003-01-03 13:23 ` Marin David Condic 2003-01-03 18:40 ` John R. Strohm 2003-01-03 19:40 ` Kevin Cline 1 sibling, 1 reply; 337+ messages in thread From: Marin David Condic @ 2003-01-03 13:23 UTC (permalink / raw) Problem: Those were big companies and the projects were very long lived where software development was not going to be the cost or schedule driver. How many commercial products are in that position? Your average garage-startup company is never going to be able to let out contracts to get a compiler retargeted and your average small business is never going to be able to wait until the retargeted compiler is ready to use before they can start development. Ada shot itself in the foot early on because it was A) Too expensive, B) Didn't work well and C) Wasn't available for the platforms people were developing on. It pretty much cured those problems by now - but too late to avoid all the damage and missed opportunities. Now it faces new problems and it has to address those if it hopes to avoid the same missed opportunities. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== John R. Strohm <strohm@airmail.net> wrote in message news:80F453381B124BF8.ACEC58777658C8DC.89DCAA63449DBB7B@lp.airnews.net... > > In the very early 1980s, General Dynamics / Fort Worth Division started the > F-16C/D program. This was a MAJOR upgrade of the airplane, involving, among > other things, all new computers and all new software. > > Ada wasn't there yet, so they chose JOVIAL J73. > > At that time, there existed precisely one J73 compiler, and it didn't target > EITHER of the processors they were designing into the airplane (Zilog Z8002 > and MIL-STD-1750A). They wound up having to let compiler development > contracts to two (small) companies to develop toolsets. > > At that time, trained J73 programmers just plain didn't exist. GD/FW had to > train every single programmer they hired for that project. > > Every time I hear someone grumbling about the scarcity of trained Ada > programmers, I think about F-16C/D and JOVIAL, and I wonder how GD/FW ever > managed to get that airplane off the ground, if training is so hard. > > I'm not even going to mention HAL/S, the Space Shuttle language, which to my > (unclassified) knowledge was not used for anything else on the planet. > Where does NASA (and the SEI Level 5 contractor) get trained HAL/S > programmers? > > > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 13:23 ` Marin David Condic @ 2003-01-03 18:40 ` John R. Strohm 2003-01-04 9:05 ` Kevin Cline 0 siblings, 1 reply; 337+ messages in thread From: John R. Strohm @ 2003-01-03 18:40 UTC (permalink / raw) I don't know whether I can use this as a counterexample or not. My recollection is that Silicon Graphics was using Ada internally VERY early in their life, and they were keeping this VERY quiet because it was helping them, a lot, and they didn't really want anyone else to know. Rational used Ada internally, and it helped them a lot. They published their numbers, but the reaction at GD/FW was that it just wasn't possible to get those kinds of numbers. McDonnell-Douglas had been using assembly language on F-15. For the IFFC/Firefly demonstration, they jumped into Ada with both feet, enthusiastically, and reported very good numbers, for a digital flight control application. (IFFC/Firefly was Integrated Flight and Fire Controls: the idea was to let the firecontrol computers cue the flight control system directly, to let the airplane help the pilot point the airplane and the weapons at the target. The demo pilot reportedly said, very enthusiastically, "I don't know if I fired the gun or the airplane did, but WE GOT HIM!") I do know that Silicon Graphics was unique among workstation manufacturers for having a solid Ada toolset long before anyone else did. Software development very much WAS the schedule driver on F-16C/D. First flight was a year late because the software came in a year behind schedule. You better believe that caused some ruffled feathers. (I was told by an old-timer there that it had something to do with a senior manager arbitrarily carving a year out of the development schedule estimates...) "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote in message news:av42sd$jje$1@slb6.atl.mindspring.net... > Problem: Those were big companies and the projects were very long lived > where software development was not going to be the cost or schedule driver. > How many commercial products are in that position? Your average > garage-startup company is never going to be able to let out contracts to get > a compiler retargeted and your average small business is never going to be > able to wait until the retargeted compiler is ready to use before they can > start development. > > Ada shot itself in the foot early on because it was A) Too expensive, B) > Didn't work well and C) Wasn't available for the platforms people were > developing on. It pretty much cured those problems by now - but too late to > avoid all the damage and missed opportunities. Now it faces new problems and > it has to address those if it hopes to avoid the same missed opportunities. > > MDC > -- > ====================================================================== > Marin David Condic > I work for: http://www.belcan.com/ > My project is: http://www.jast.mil/ > > Send Replies To: m c o n d i c @ a c m . o r g > > "I'd trade it all for just a little more" > -- Charles Montgomery Burns, [4F10] > ====================================================================== > > John R. Strohm <strohm@airmail.net> wrote in message > news:80F453381B124BF8.ACEC58777658C8DC.89DCAA63449DBB7B@lp.airnews.net... > > > > In the very early 1980s, General Dynamics / Fort Worth Division started > the > > F-16C/D program. This was a MAJOR upgrade of the airplane, involving, > among > > other things, all new computers and all new software. > > > > Ada wasn't there yet, so they chose JOVIAL J73. > > > > At that time, there existed precisely one J73 compiler, and it didn't > target > > EITHER of the processors they were designing into the airplane (Zilog > Z8002 > > and MIL-STD-1750A). They wound up having to let compiler development > > contracts to two (small) companies to develop toolsets. > > > > At that time, trained J73 programmers just plain didn't exist. GD/FW had > to > > train every single programmer they hired for that project. > > > > Every time I hear someone grumbling about the scarcity of trained Ada > > programmers, I think about F-16C/D and JOVIAL, and I wonder how GD/FW ever > > managed to get that airplane off the ground, if training is so hard. > > > > I'm not even going to mention HAL/S, the Space Shuttle language, which to > my > > (unclassified) knowledge was not used for anything else on the planet. > > Where does NASA (and the SEI Level 5 contractor) get trained HAL/S > > programmers? > > > > > > > > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 18:40 ` John R. Strohm @ 2003-01-04 9:05 ` Kevin Cline 2003-01-04 16:34 ` John R. Strohm 0 siblings, 1 reply; 337+ messages in thread From: Kevin Cline @ 2003-01-04 9:05 UTC (permalink / raw) "John R. Strohm" <strohm@airmail.net> wrote in message news:<694A0F8ED8C6BEE3.22D30132AB9CC656.F5BBD1A702580BDE@lp.airnews.net>... > I don't know whether I can use this as a counterexample or not. My > recollection is that Silicon Graphics was using Ada internally VERY early in > their life, and they were keeping this VERY quiet because it was helping > them, a lot, and they didn't really want anyone else to know. I'm skeptical that Ada was ever very widely used at SGI. > Rational used Ada internally, and it helped them a lot. They published > their numbers, but the reaction at GD/FW was that it just wasn't possible to > get those kinds of numbers. At the time, Rational had an Ada compiler to sell, and not much else, so their numbers are suspect. > McDonnell-Douglas had been using assembly language on F-15. For the > IFFC/Firefly demonstration, they jumped into Ada with both feet, > enthusiastically, and reported very good numbers, for a digital flight > control application. I would certainly expect programming in Ada to be much more productive than programming in assembly language! ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-04 9:05 ` Kevin Cline @ 2003-01-04 16:34 ` John R. Strohm 0 siblings, 0 replies; 337+ messages in thread From: John R. Strohm @ 2003-01-04 16:34 UTC (permalink / raw) "Kevin Cline" <kcline17@hotmail.com> wrote in message news:ba162549.0301040105.7d1a7ad6@posting.google.com... > "John R. Strohm" <strohm@airmail.net> wrote in message news:<694A0F8ED8C6BEE3.22D30132AB9CC656.F5BBD1A702580BDE@lp.airnews.net>... > > I don't know whether I can use this as a counterexample or not. My > > recollection is that Silicon Graphics was using Ada internally VERY early in > > their life, and they were keeping this VERY quiet because it was helping > > them, a lot, and they didn't really want anyone else to know. > > I'm skeptical that Ada was ever very widely used at SGI. I don't have any data one way or the other to prove it. I observe that SGI had a complete Ada toolset for their machines long before any of the other Unix workstation companies did. > > Rational used Ada internally, and it helped them a lot. They published > > their numbers, but the reaction at GD/FW was that it just wasn't possible to > > get those kinds of numbers. > > At the time, Rational had an Ada compiler to sell, and not much else, > so their numbers are suspect. A few reports trickled out that other people using the R1000 were getting similar numbers. Also, it is very easy to reality-check the Rational numbers, to a rough order of magnitude: Take the number of SLOC in the product, which they reported, divide by the number of years the company had been in existence, and you get SLOC/year. From there, it is utterly trivial to divide by trial values of SLOC/man/year to estimate the number of programmers involved, and then compare them to the company headcount and money burn rate. The short answer is that Rational's numbers stand up under reality checking. > > McDonnell-Douglas had been using assembly language on F-15. For the > > IFFC/Firefly demonstration, they jumped into Ada with both feet, > > enthusiastically, and reported very good numbers, for a digital flight > > control application. > > I would certainly expect programming in Ada to be much more productive > than programming in assembly language! Their numbers were good even for high-order language development. There is this, also. At the time, the conventional wisdom was that Ada would not EVER be suitable for "real" embedded work. Using it for digital flight controls *and* firecontrol, and doing a successful demonstration (gun shootdown of a QF-102 drone from a 90 degree aspect: something that is essentially impossible for a human pilot on his own), *AND* getting good productivity numbers to boot, was a very solid counter to that belief. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 10:11 ` John R. Strohm 2003-01-03 13:23 ` Marin David Condic @ 2003-01-03 19:40 ` Kevin Cline 1 sibling, 0 replies; 337+ messages in thread From: Kevin Cline @ 2003-01-03 19:40 UTC (permalink / raw) "John R. Strohm" <strohm@airmail.net> wrote in message news:<80F453381B124BF8.ACEC58777658C8DC.89DCAA63449DBB7B@lp.airnews.net>... > "Kevin Cline" <kcline17@hotmail.com> wrote in message > news:ba162549.0301030124.237c7a7e@posting.google.com... > > Not all the antipathy to Ada is irrational. Most of it comes > > from sad experience. Mine was trying to use Ada-83 to write Unix > > applications with a Motif UI. Regardless of any superiority in > > reliability, the scarcity of libraries and trained > > programmers makes Ada too expensive for most commercial software > > projects. > > In the very early 1980s, General Dynamics / Fort Worth Division started the > F-16C/D program. This was a MAJOR upgrade of the airplane, involving, among > other things, all new computers and all new software. > > Ada wasn't there yet, so they chose JOVIAL J73. > > At that time, there existed precisely one J73 compiler, and it didn't target > EITHER of the processors they were designing into the airplane (Zilog Z8002 > and MIL-STD-1750A). They wound up having to let compiler development > contracts to two (small) companies to develop toolsets. > > At that time, trained J73 programmers just plain didn't exist. GD/FW had to > train every single programmer they hired for that project. > > Every time I hear someone grumbling about the scarcity of trained Ada > programmers, I think about F-16C/D and JOVIAL, and I wonder how GD/FW ever > managed to get that airplane off the ground, if training is so hard. > > I'm not even going to mention HAL/S, the Space Shuttle language, which to my > (unclassified) knowledge was not used for anything else on the planet. > Where does NASA (and the SEI Level 5 contractor) get trained HAL/S > programmers? I said "commercial software projects" -- i.e. projects undertaken in the hope of making a profit, that have to be compatible with a large base of existing software and systems, and that have to be delivered within a few months of initiation. In other words, about 99% of the software work in the world. Ada is a poor fit for these projects, and is therefore unpopular. The projects you mentioned are taxpayer-supported with software budgets in the billions and initial delivery some years after project start. NASA spends about $500 for every line of shuttle code changed. With that kind of budget and timeline training costs can be absorbed. Most projects can't afford it. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 9:24 ` Anybody in US using ADA ? One silly idea Kevin Cline 2003-01-03 10:11 ` John R. Strohm @ 2003-01-03 22:34 ` Ted Dennison 2003-01-04 8:53 ` Kevin Cline 1 sibling, 1 reply; 337+ messages in thread From: Ted Dennison @ 2003-01-03 22:34 UTC (permalink / raw) kcline17@hotmail.com (Kevin Cline) wrote in message news:<ba162549.0301030124.237c7a7e@posting.google.com>... > Not all the antipathy to Ada is irrational. Most of it comes > from sad experience. Mine was trying to use Ada-83 to write Unix > applications with a Motif UI. Regardless of any superiority in > reliability, the scarcity of libraries and trained > programmers makes Ada too expensive for most commercial software > projects. Odd. That's one of the few domains where Ada (even 83) is almost ideal. I've done just that myself, and you can actually do Motif UI's in Ada way quicker than you can in C (counting debugging), even if you have *no* bindings to start with. UIL can do all the GUI work, and the Ada "glue" code only needs a few UIL, Motif, and X routines bound (3 to load and paste the UI, plus one for any widget class you interact with, if I remember correctly). The profusion of UIL GUI builders out there pretty handily negates Ada's usual disadvantages with library support. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 22:34 ` Ted Dennison @ 2003-01-04 8:53 ` Kevin Cline 2003-01-04 11:48 ` Dmitry A. Kazakov 2003-01-04 18:04 ` Ted Dennison 0 siblings, 2 replies; 337+ messages in thread From: Kevin Cline @ 2003-01-04 8:53 UTC (permalink / raw) dennison@telepath.com (Ted Dennison) wrote in message news:<4519e058.0301031434.51a0c880@posting.google.com>... > kcline17@hotmail.com (Kevin Cline) wrote in message news:<ba162549.0301030124.237c7a7e@posting.google.com>... > > Not all the antipathy to Ada is irrational. Most of it comes > > from sad experience. Mine was trying to use Ada-83 to write Unix > > applications with a Motif UI. Regardless of any superiority in > > reliability, the scarcity of libraries and trained > > programmers makes Ada too expensive for most commercial software > > projects. > > > Odd. That's one of the few domains where Ada (even 83) is almost > ideal. With no access to subprogram types, attaching Ada-83 subprograms to widget callbacks was a real puzzle for me. At the time I was doing the work (1988) I had two buggy compilers, Verdix for Solaris and TeleSoft for Silicon Graphics. Both were expensive, validated, and neither was anywhere near the quality of the free GNU C compiler. Within a week of starting to program in Ada I found legal code that one or the other compiler rejected. With no compiler supporting both the target architectures, I was left to deal with different pragmas for calling C functions, different bindings to POSIX, different bindings to X windows, and no bindings to Xt or Motif. Neither had a useful mapping of Ada tasks to POSIX threads, but instead simulated multitasking within a single kernel thread. This was useless for all practical purposes. We were fortunate enough to have the TeleSoft GUI builder, which in an indirect way allowed us to connect Ada subprograms to widget callbacks. After many years of C programming, it was nice to work in a language where I was fairly sure that any code that compiled would probably work. But most of the problems with C were solved by the introduction of C++. After a while I was comfortable with Ada. But the insular viewpoint of the original Ada community meant that Ada just wasn't helpful for the programs I needed to write. Today, the features that Ada provides have little value compared with the features that C++ provides and Ada lacks: the STL, automatic template function instantiation, smooth integration of user-defined and primitive datatypes, and bindings to every API in existence. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-04 8:53 ` Kevin Cline @ 2003-01-04 11:48 ` Dmitry A. Kazakov 2003-01-04 18:15 ` Robert A Duff ` (2 more replies) 2003-01-04 18:04 ` Ted Dennison 1 sibling, 3 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-04 11:48 UTC (permalink / raw) Kevin Cline wrote: > Today, the features that Ada provides have little value > compared with the features that C++ provides and Ada lacks: > the STL, automatic template function instantiation, Generics in any form is an illness of programming languages. > smooth integration of user-defined and primitive datatypes, Why do you think C++ is better in that respect? C++ OO model is badly flawed as compared with Ada's one. In any case both Ada and C++ have primitive types separated from user-defined types by a fire wall. The difference is that Ada's design potentially allows to mend this, while in C++ it is beyond repair. > and bindings to every API in existence. That's not language fault. This can be addressed to any language except C. Even C++ suffers from that: you might need 'extern "C" {}' to call most of API functions. You are unable to pass a class as a parameter etc. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-04 11:48 ` Dmitry A. Kazakov @ 2003-01-04 18:15 ` Robert A Duff 2003-01-04 20:18 ` Hillel Y. Sims 2003-01-06 4:20 ` Kevin Cline 2 siblings, 0 replies; 337+ messages in thread From: Robert A Duff @ 2003-01-04 18:15 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes: > Generics in any form is an illness of programming languages. Why? - Bob ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-04 11:48 ` Dmitry A. Kazakov 2003-01-04 18:15 ` Robert A Duff @ 2003-01-04 20:18 ` Hillel Y. Sims 2003-01-05 14:13 ` Dmitry A. Kazakov 2003-01-06 4:20 ` Kevin Cline 2 siblings, 1 reply; 337+ messages in thread From: Hillel Y. Sims @ 2003-01-04 20:18 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message news:av6hla$cggao$1@ID-77047.news.dfncis.de... > Kevin Cline wrote: > > > Today, the features that Ada provides have little value > > compared with the features that C++ provides and Ada lacks: > > the STL, automatic template function instantiation, > > Generics in any form is an illness of programming languages. As someone who uses C++ template functionality extensively, I find that a very odd statement and completely inconsistent with my own experience. Can you provide some rationale? thanks, hys -- (c) 2003 Hillel Y. Sims hsims AT factset.com ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-04 20:18 ` Hillel Y. Sims @ 2003-01-05 14:13 ` Dmitry A. Kazakov 2003-01-05 15:45 ` James S. Rogers ` (3 more replies) 0 siblings, 4 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-05 14:13 UTC (permalink / raw) Hillel Y. Sims wrote: > "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message > news:av6hla$cggao$1@ID-77047.news.dfncis.de... >> Kevin Cline wrote: >> >> > Today, the features that Ada provides have little value >> > compared with the features that C++ provides and Ada lacks: >> > the STL, automatic template function instantiation, >> >> Generics in any form is an illness of programming languages. > > As someone who uses C++ template functionality extensively, I find that a > very odd statement and completely inconsistent with my own experience. Can > you provide some rationale? In short generics is a meta language and no more than dressed macros used to patch the source code. More elaborated: 1. Generics are static. You cannot have an object or dynamic-link library of generics. 1.a. This kills code reuse at run-time. 1.b. You cannot have a true polymorphism with generics. [A fake, "static" polymorphism was invented to hide the truth.] 1.c. You have geometric code size explosion if you consequently use generics. 2. You have no ADT with generics. All generic types are hard-wired. In C++ you have only one generic type: "class". In Ada there are few: "private", "range <>" etc. This is Stone Age. Theoretically one could leverage generics to full ADT, but what for? It is much better to have a better ADT in the core language and abadon generics. 3. Generics are inconsistent with type relationships. When you instantiate something, this something is absolutely unrelated to everything else. A generic container instantiated with a subtype will never become a subtype of same container instantiated with the base type. 4. Generics are inconsistent with DbC. In C++ you just instantiate and pray. In Ada it is better, but still you have reemergence of predefined operations and other contract violations. The reason is clear, while the core language operates with types and their relations, generics are sort of: let's substitute one string for another and see if the result go through the compiler. I think it was Kernigan and Ritchie who said that preprocessor does not know C. Substitute generics for preprocessor and language X for C. 5. Generics are unstructured and too powerful. They are comparable with gotos. Gotos arbitrarely change control flow. Generics arbitrarely produce new language objects. You can have a generic type, subroutine, package, everything. The consequences of an instantiation is almost impossible to predict. As with gotos, you should admit, that a program with generics is very difficult to understand and maintain. [For C++ replace difficult to impossible, because of automated instantiation] 6. Generics completely fall out of the language, because in fact they form a meta-langauge. A generic object does not exist for the core language. What could be done with a generic object? The answer is: nothing. One cannot pass a generic function as a parameter to a normal function. Even a generic parameter cannot be generic (:-)), only instances [= objects of the core language] are allowed. So even as a meta-language, generics represent an inconsistent one. ------------------------ A little of bad philosophy as a conclusion. (:-)) If we consider the evolution of programming languages, we could note maybe unconscious, but constant and very successfull attempts to solve the problem of parametrization in a more civilized way than just by brute force of preprocessing = generics. A subroutine is parametrized by the values of the arguments [FORTRAN] A subroutine is a value which can be a parameter [?] A type is parametrized by the values of the discriminants [Ada 83] A type set (=class-wide type) is parametrized by a type (=type tag) [OOPL with dispatching] In the end of this process we will need generics as much as we need gotos now. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-05 14:13 ` Dmitry A. Kazakov @ 2003-01-05 15:45 ` James S. Rogers 2003-01-06 14:13 ` Dmitry A. Kazakov 2003-01-06 1:20 ` Hillel Y. Sims ` (2 subsequent siblings) 3 siblings, 1 reply; 337+ messages in thread From: James S. Rogers @ 2003-01-05 15:45 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message news:av9egl$dd34q$2@ID-77047.news.dfncis.de... > > 1. Generics are static. You cannot have an object or dynamic-link library of > generics. > > 1.a. This kills code reuse at run-time. > > 1.b. You cannot have a true polymorphism with generics. [A fake, "static" > polymorphism was invented to hide the truth.] > > 1.c. You have geometric code size explosion if you consequently use > generics. > > 2. You have no ADT with generics. All generic types are hard-wired. In C++ > you have only one generic type: "class". In Ada there are few: "private", > "range <>" etc. This is Stone Age. Theoretically one could leverage > generics to full ADT, but what for? It is much better to have a better ADT > in the core language and abadon generics. > > 3. Generics are inconsistent with type relationships. When you instantiate > something, this something is absolutely unrelated to everything else. A > generic container instantiated with a subtype will never become a subtype > of same container instantiated with the base type. > > 4. Generics are inconsistent with DbC. In C++ you just instantiate and pray. > In Ada it is better, but still you have reemergence of predefined > operations and other contract violations. The reason is clear, while the > core language operates with types and their relations, generics are sort > of: let's substitute one string for another and see if the result go > through the compiler. I think it was Kernigan and Ritchie who said that > preprocessor does not know C. Substitute generics for preprocessor and > language X for C. > > 5. Generics are unstructured and too powerful. They are comparable with > gotos. Gotos arbitrarely change control flow. Generics arbitrarely produce > new language objects. You can have a generic type, subroutine, package, > everything. The consequences of an instantiation is almost impossible to > predict. As with gotos, you should admit, that a program with generics is > very difficult to understand and maintain. [For C++ replace difficult to > impossible, because of automated instantiation] > > 6. Generics completely fall out of the language, because in fact they form a > meta-langauge. A generic object does not exist for the core language. What > could be done with a generic object? The answer is: nothing. One cannot > pass a generic function as a parameter to a normal function. Even a generic > parameter cannot be generic (:-)), only instances [= objects of the core > language] are allowed. So even as a meta-language, generics represent an > inconsistent one. > Are you also against the use of abstract tagged types? Jim Rogers ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-05 15:45 ` James S. Rogers @ 2003-01-06 14:13 ` Dmitry A. Kazakov 0 siblings, 0 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-06 14:13 UTC (permalink / raw) James S. Rogers wrote: > Are you also against the use of abstract tagged types? By no means. It would mean that I am against generic programming. I am against overusing generics in generic programming. In my view tagged types are a real alternative to generics. We have T'Class which denotes a set of types as "digits <>" or "private" does. But they need a long way to evolve before they will supersede generics in things like STL. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-05 14:13 ` Dmitry A. Kazakov 2003-01-05 15:45 ` James S. Rogers @ 2003-01-06 1:20 ` Hillel Y. Sims 2003-01-06 14:14 ` Dmitry A. Kazakov 2003-01-06 1:37 ` Robert C. Leif 2003-01-06 16:23 ` Wes Groleau 3 siblings, 1 reply; 337+ messages in thread From: Hillel Y. Sims @ 2003-01-06 1:20 UTC (permalink / raw) I can't really speak much for experience with generics in Ada, but since your original point was "Generics in any form is an illness of programming languages", let me try to address a few of your general issues w/r/t C++ templates at least.. "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message news:av9egl$dd34q$2@ID-77047.news.dfncis.de... > In short generics is a meta language and no more than dressed macros used to > patch the source code. They are much more than dressed macros; there is also a great deal of semantic context which is totally unavailable with macros. >More elaborated: > > 1. Generics are static. You cannot have an object or dynamic-link library of > generics. I have written and maintain a number of (large) dynamic-link libraries of instantiations of C++ templates. > > 1.a. This kills code reuse at run-time. This is therefore not necessarily true, based on the above. > > 1.b. You cannot have a true polymorphism with generics. [A fake, "static" > polymorphism was invented to hide the truth.] Depends on your definition of 'polymorphism'. I have done some interesting things with compile-time polymorphism (inheriting a class from a template base class of the derived type). Anyhow, I see compile-time static and run-time dynamic polymorphism as complementary techniques which can provide a greater amount of flexibility in combination than either alone. > > 1.c. You have geometric code size explosion if you consequently use > generics. I guess this depends on the instantiation model and a lot of other variables. It is not inherently true with C++ templates. > > 4. Generics are inconsistent with DbC. In C++ you just instantiate and pray. > In Ada it is better, but still you have reemergence of predefined > operations and other contract violations. The reason is clear, while the > core language operates with types and their relations, generics are sort > of: let's substitute one string for another and see if the result go > through the compiler. I think it was Kernigan and Ritchie who said that > preprocessor does not know C. Substitute generics for preprocessor and > language X for C. Sorry, I don't really follow this point at all. > > 5. Generics are unstructured and too powerful. They are comparable with > gotos. Gotos arbitrarely change control flow. Generics arbitrarely produce > new language objects. You can have a generic type, subroutine, package, > everything. The consequences of an instantiation is almost impossible to > predict. As with gotos, you should admit, that a program with generics is > very difficult to understand and maintain. [For C++ replace difficult to > impossible, because of automated instantiation] Again, I can't really speak of Ada generics, but I maintain several sizeable C++ libraries which make extensive use of templates. The amount of functionality provided is far greater with much fewer lines of code than the equivalent non-templated version would be. This complexity issue simply does not seem to be inherent in the manner in which you imply, at least with C++ templates. > 6. Generics completely fall out of the language, because in fact they form a > meta-langauge. A generic object does not exist for the core language. What > could be done with a generic object? The answer is: nothing. One cannot > pass a generic function as a parameter to a normal function. Even a generic > parameter cannot be generic (:-)), only instances [= objects of the core > language] are allowed. So even as a meta-language, generics represent an > inconsistent one. > The biggest research/growth area in C++ these days seems to be templates and meta-programming. It is true there are some inconsistencies in the meta-language, but they don't prevent a lot of interesting programming from being done. If you have never seen the Boost Meta-Programming Library (http://www.boost.org/libs/mpl/doc/), you might want to check it out briefly; it demonstrates that quite a great deal can be done at compile-time with uninstantiated generic meta-objects. Anyhow, I will acknowledge that there are issues which need to be addressed/understood for successful use of generics/templates, and some of your points may be more oriented toward Ada than any other language, but I remain fully unconvinced that true generics (not glorified macros) are inherently a bad idea in any particular programming language. hys -- (c) 2003 Hillel Y. Sims hsims AT factset.com ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 1:20 ` Hillel Y. Sims @ 2003-01-06 14:14 ` Dmitry A. Kazakov 2003-01-06 19:07 ` Randy Brukardt 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-06 14:14 UTC (permalink / raw) Hillel Y. Sims wrote: > I can't really speak much for experience with generics in Ada, but since > your original point was "Generics in any form is an illness of programming > languages", let me try to address a few of your general issues w/r/t C++ > templates at least.. > > "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message > news:av9egl$dd34q$2@ID-77047.news.dfncis.de... >> In short generics is a meta language and no more than dressed macros used > to >> patch the source code. > > They are much more than dressed macros; there is also a great deal of > semantic context which is totally unavailable with macros. > >>More elaborated: >> >> 1. Generics are static. You cannot have an object or dynamic-link library > of >> generics. > > I have written and maintain a number of (large) dynamic-link libraries of > instantiations of C++ templates. Note that "instantiations of" is not what follows "of". A library of instantiations is not a library of templates. >> 1.a. This kills code reuse at run-time. > > This is therefore not necessarily true, based on the above. No, you cannot reuse code across instantiations. Each of them is a macro expansion which has a separate body. Theoretically one could share generic bodies [at least in Ada it is sometimes possible], but practically it is not the case. >> 1.b. You cannot have a true polymorphism with generics. [A fake, "static" >> polymorphism was invented to hide the truth.] > > Depends on your definition of 'polymorphism'. I have done some interesting > things with compile-time polymorphism (inheriting a class from a template > base class of the derived type). Anyhow, I see compile-time static and > run-time dynamic polymorphism as complementary techniques which can > provide a greater amount of flexibility in combination than either alone. The time of binding (dispatch in a polymorphic call) is an *implementation* detail. If the type information is known at compile-time, then, at least in Ada, dispatch happens at compile time. >> 1.c. You have geometric code size explosion if you consequently use >> generics. > > I guess this depends on the instantiation model and a lot of other > variables. It is not inherently true with C++ templates. If you bind at compile time then this is just a consequence. >> 4. Generics are inconsistent with DbC. In C++ you just instantiate and > pray. >> In Ada it is better, but still you have reemergence of predefined >> operations and other contract violations. The reason is clear, while the >> core language operates with types and their relations, generics are sort >> of: let's substitute one string for another and see if the result go >> through the compiler. I think it was Kernigan and Ritchie who said that >> preprocessor does not know C. Substitute generics for preprocessor and >> language X for C. > > Sorry, I don't really follow this point at all. template <class X> class Y { public : X max (X A, X B) { if (A > B) return A; else return B; } }; What ensures that X has ">"? There is no word about a contract, because "class X" means anything. In FORTRAN-IV you also can pass an INTEGER*4 instead of REAL*4. I remember some people claiming that this is a very useful feature. >> 5. Generics are unstructured and too powerful. They are comparable with >> gotos. Gotos arbitrarely change control flow. Generics arbitrarely >> produce new language objects. You can have a generic type, subroutine, >> package, everything. The consequences of an instantiation is almost >> impossible to predict. As with gotos, you should admit, that a program >> with generics is very difficult to understand and maintain. [For C++ >> replace difficult to impossible, because of automated instantiation] > > Again, I can't really speak of Ada generics, but I maintain several > sizeable C++ libraries which make extensive use of templates. The amount > of functionality provided is far greater with much fewer lines of code > than the equivalent non-templated version would be. This complexity issue > simply does not seem to be inherent in the manner in which you imply, at > least with C++ templates. Code density and simplicity of language constructs do not imply maintainability. What could be simplier than "JMP $1034"? >> 6. Generics completely fall out of the language, because in fact they >> form > a >> meta-langauge. A generic object does not exist for the core language. >> What could be done with a generic object? The answer is: nothing. One >> cannot pass a generic function as a parameter to a normal function. Even >> a > generic >> parameter cannot be generic (:-)), only instances [= objects of the core >> language] are allowed. So even as a meta-language, generics represent an >> inconsistent one. > > The biggest research/growth area in C++ these days seems to be templates > and meta-programming. It is true there are some inconsistencies in the > meta-language, but they don't prevent a lot of interesting programming > from being done. If you have never seen the Boost Meta-Programming Library > (http://www.boost.org/libs/mpl/doc/), you might want to check it out > briefly; it demonstrates that quite a great deal can be done at > compile-time with uninstantiated generic meta-objects. > > Anyhow, I will acknowledge that there are issues which need to be > addressed/understood for successful use of generics/templates, and some of > your points may be more oriented toward Ada than any other language, but I > remain fully unconvinced that true generics (not glorified macros) are > inherently a bad idea in any particular programming language. A need in a meta language indicates that the core language is incomplete. Then the question is only whether this incompleteness is inherent or not. As long as the former is not proved I will claim that we do not need a meta language. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 14:14 ` Dmitry A. Kazakov @ 2003-01-06 19:07 ` Randy Brukardt 2003-01-07 12:33 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Randy Brukardt @ 2003-01-06 19:07 UTC (permalink / raw) Dmitry A. Kazakov wrote in message ... >>> 1.a. This kills code reuse at run-time. >> >> This is therefore not necessarily true, based on the above. > >No, you cannot reuse code across instantiations. Each of them is a macro >expansion which has a separate body. Theoretically one could share generic >bodies [at least in Ada it is sometimes possible], but practically it is >not the case. Bull. You just need to use a different compiler. Ada /= GNAT! Janus/Ada 95 shares all generic bodies. That's probably too aggressive, but it's too expensive to change. Dan Eilers will tell you that their compiler (ICC) shares generic bodies (I believe unless pragma Inline is used on the generic). Many Ada 83 compilers shared generic bodies, include DEC and Rational. It's harder in Ada 95, but if there was any significant demand, compilers would have it. Randy Brukardt. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 19:07 ` Randy Brukardt @ 2003-01-07 12:33 ` Dmitry A. Kazakov 2003-01-08 4:24 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-07 12:33 UTC (permalink / raw) On Mon, 6 Jan 2003 13:07:44 -0600, "Randy Brukardt" <randy@rrsoftware.com> wrote: >Dmitry A. Kazakov wrote in message ... >>>> 1.a. This kills code reuse at run-time. >>> >>> This is therefore not necessarily true, based on the above. >> >>No, you cannot reuse code across instantiations. Each of them is a >macro >>expansion which has a separate body. Theoretically one could share >generic >>bodies [at least in Ada it is sometimes possible], but practically it >is >>not the case. > >Bull. > >You just need to use a different compiler. Ada /= GNAT! GNAT becomes sort of MS VC++ for Ada. (:-)) >Janus/Ada 95 shares all generic bodies. That's probably too aggressive, >but it's too expensive to change. > >Dan Eilers will tell you that their compiler (ICC) shares generic bodies >(I believe unless pragma Inline is used on the generic). > >Many Ada 83 compilers shared generic bodies, include DEC and Rational. >It's harder in Ada 95, but if there was any significant demand, >compilers would have it. Yes, I know. Shared bodies are working against the C++'s myth about unbeatable efficience of templates. Then if we can share bodies, then why do we need to instantiate something at compile-time? Should we drop this limitation completely, then instead of a "generic type", we would have our well-known friend discriminated type. My point is that we could get rid of generics in most cases and Ada is much more fit for that than C++. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-07 12:33 ` Dmitry A. Kazakov @ 2003-01-08 4:24 ` Hyman Rosen 2003-01-08 13:55 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-08 4:24 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Shared bodies are working against the C++'s myth about unbeatable > efficience of templates. Do you have any evidence that this is a myth, rather than a fact? That is, in the C++ model of generics, the compiler has all the type information available at the point where it is compiling the code, so it's hard to see how any other model can be *more* efficient. So the best you can hope for is to be as efficient. I think of the canonical case as being std::sort, which can inline comparison between objects, so sorting an array of integers involves just doing an inline machine integer compare. Not only that, but the C++ model allows for specialization, so that the body of code in question does not all have to come from the same block of generic code - there can be completely different bodies for different types. This makes generic sharing even less likely there. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-08 4:24 ` Hyman Rosen @ 2003-01-08 13:55 ` Dmitry A. Kazakov 2003-01-08 18:43 ` Wes Groleau ` (2 more replies) 0 siblings, 3 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-08 13:55 UTC (permalink / raw) Hyman Rosen wrote: > Dmitry A. Kazakov wrote: >> Shared bodies are working against the C++'s myth about unbeatable >> efficience of templates. > > Do you have any evidence that this is a myth, rather than a fact? No study I know of. However, it is easy to imagine a case when a non-inlined subroutine could be more efficient [in terms of speed] than an inlined one. I do not care about the realism of the following example, but let we have a sort of applet which runs some simple algorithm for many different types. Each time you load it, only one branch for one selected type is executed. If the algorithm is an inlined instance, the time for loading, initialization of the paged memory, symbol relocation etc, could be longer than the time of all dereferences and dispatch. > That is, in the C++ model of generics, the compiler has all the type > information available at the point where it is compiling the code, > so it's hard to see how any other model can be *more* efficient. So > the best you can hope for is to be as efficient. Yes. Only "hope" is IMO a wrong word. I think it is indeed possible to make tagged types as efficient as fully inlined macro expansions, provided that the corresonding class-wide routines are also inlined. > I think of the > canonical case as being std::sort, which can inline comparison between > objects, so sorting an array of integers involves just doing an inline > machine integer compare. > Not only that, but the C++ model allows for specialization, so that the > body of code in question does not all have to come from the same block of > generic code - there can be completely different bodies for different > types. This makes generic sharing even less likely there. My point was: - either we implement generics as macro expansions and then have disadvantages XYZ; - or we share bodies, loosing some power of generics, so that a question arise, why generics and not tagged types? -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-08 13:55 ` Dmitry A. Kazakov @ 2003-01-08 18:43 ` Wes Groleau 2003-01-08 21:54 ` Ted Dennison 2003-01-09 5:05 ` Hyman Rosen 2 siblings, 0 replies; 337+ messages in thread From: Wes Groleau @ 2003-01-08 18:43 UTC (permalink / raw) There is at least one way that inlining of code or not sharing bodies can decrease efficiency: If we are alternating calls between two sections of identical machine code, we could be doing unnecessary paging. Which is sort of what you said, but I thought I'd emphasize it a little. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-08 13:55 ` Dmitry A. Kazakov 2003-01-08 18:43 ` Wes Groleau @ 2003-01-08 21:54 ` Ted Dennison 2003-01-09 5:05 ` Hyman Rosen 2 siblings, 0 replies; 337+ messages in thread From: Ted Dennison @ 2003-01-08 21:54 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message news:<avhak5$fbnqe$1@ID-77047.news.dfncis.de>... > Hyman Rosen wrote: > No study I know of. However, it is easy to imagine a case when a non-inlined > subroutine could be more efficient [in terms of speed] than an inlined one. > I do not care about the realism of the following example, but let we have a > sort of applet which runs some simple algorithm for many different types. > Each time you load it, only one branch for one selected type is executed. > If the algorithm is an inlined instance, the time for loading, > initialization of the paged memory, symbol relocation etc, could be longer > than the time of all dereferences and dispatch. Actually, an effect I would be even more worried about is the effect on CPU instruction caches. A non-inlined program is going to be smaller than an inlined program, perhaps significantly smaller if a lot of inlining is performed. If that causes an instruction cache miss where there would not have been one, you could find your 8 CPU-cyle "optimization" (less if you have a good Branch Prediction Unit, like most modern 32-bit processors do) actually *costing* you hundreds of CPU-cycles every time its executed. > > > That is, in the C++ model of generics, the compiler has all the type > > information available at the point where it is compiling the code, > > so it's hard to see how any other model can be *more* efficient. So > > the best you can hope for is to be as efficient. > > Yes. Only "hope" is IMO a wrong word. I think it is indeed possible to make > tagged types as efficient as fully inlined macro expansions, provided that > the corresonding class-wide routines are also inlined. > > > I think of the > > canonical case as being std::sort, which can inline comparison between > > objects, so sorting an array of integers involves just doing an inline > > machine integer compare. > > > Not only that, but the C++ model allows for specialization, so that the > > body of code in question does not all have to come from the same block of > > generic code - there can be completely different bodies for different > > types. This makes generic sharing even less likely there. > > My point was: > > - either we implement generics as macro expansions and then have > disadvantages XYZ; > > - or we share bodies, loosing some power of generics, so that a question > arise, why generics and not tagged types? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-08 13:55 ` Dmitry A. Kazakov 2003-01-08 18:43 ` Wes Groleau 2003-01-08 21:54 ` Ted Dennison @ 2003-01-09 5:05 ` Hyman Rosen 2 siblings, 0 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-09 5:05 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Yes. Only "hope" is IMO a wrong word. I think it is indeed possible to make > tagged types as efficient as fully inlined macro expansions, provided that > the corresonding class-wide routines are also inlined. I think that without generics, even using a clever compiler which does the equivalent of generic expansion when routines are called with known types, there's still lots of opportunity to lose type information. For example, lack of generics means that your container classes will not know what they're holding, and you're going to run into Java-like issues there. Frankly, I just don't see the point. What is it about a table of pointers to functions that's so almighty appealing that everything needs to be expressed in terms of it? ^ permalink raw reply [flat|nested] 337+ messages in thread
* RE: Anybody in US using ADA ? One silly idea.. 2003-01-05 14:13 ` Dmitry A. Kazakov 2003-01-05 15:45 ` James S. Rogers 2003-01-06 1:20 ` Hillel Y. Sims @ 2003-01-06 1:37 ` Robert C. Leif 2003-01-06 14:13 ` Dmitry A. Kazakov 2003-01-06 16:33 ` Georg Bauhaus 2003-01-06 16:23 ` Wes Groleau 3 siblings, 2 replies; 337+ messages in thread From: Robert C. Leif @ 2003-01-06 1:37 UTC (permalink / raw) I disagree! A very simple construct is a generic set of types and objects that are also part of a private tagged record. This structure can be extended and manipulated. For instance, when dealing with hardware, Intel input-output registers and memory locations can be 8, 16, and 32 bits. A generic is a simple way to model this. In fact if it were possible, I would greatly prefer generic constructs to pointers. I must note that generics can be instantiated at run-time and, I believe, still be located on the heap. No need for garbage collection. Oberon.NET, which is very new, has generics. Bob Leif -----Original Message----- From: comp.lang.ada-admin@ada.eu.org [mailto:comp.lang.ada-admin@ada.eu.org] On Behalf Of Dmitry A. Kazakov Sent: Sunday, January 05, 2003 6:13 AM To: comp.lang.ada@ada.eu.org Subject: Re: Anybody in US using ADA ? One silly idea.. Hillel Y. Sims wrote: > "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message > news:av6hla$cggao$1@ID-77047.news.dfncis.de... >> Kevin Cline wrote: >> >> > Today, the features that Ada provides have little value >> > compared with the features that C++ provides and Ada lacks: >> > the STL, automatic template function instantiation, >> >> Generics in any form is an illness of programming languages. > > As someone who uses C++ template functionality extensively, I find that a > very odd statement and completely inconsistent with my own experience. Can > you provide some rationale? In short generics is a meta language and no more than dressed macros used to patch the source code. More elaborated: 1. Generics are static. You cannot have an object or dynamic-link library of generics. 1.a. This kills code reuse at run-time. 1.b. You cannot have a true polymorphism with generics. [A fake, "static" polymorphism was invented to hide the truth.] 1.c. You have geometric code size explosion if you consequently use generics. 2. You have no ADT with generics. All generic types are hard-wired. In C++ you have only one generic type: "class". In Ada there are few: "private", "range <>" etc. This is Stone Age. Theoretically one could leverage generics to full ADT, but what for? It is much better to have a better ADT in the core language and abadon generics. 3. Generics are inconsistent with type relationships. When you instantiate something, this something is absolutely unrelated to everything else. A generic container instantiated with a subtype will never become a subtype of same container instantiated with the base type. 4. Generics are inconsistent with DbC. In C++ you just instantiate and pray. In Ada it is better, but still you have reemergence of predefined operations and other contract violations. The reason is clear, while the core language operates with types and their relations, generics are sort of: let's substitute one string for another and see if the result go through the compiler. I think it was Kernigan and Ritchie who said that preprocessor does not know C. Substitute generics for preprocessor and language X for C. 5. Generics are unstructured and too powerful. They are comparable with gotos. Gotos arbitrarely change control flow. Generics arbitrarely produce new language objects. You can have a generic type, subroutine, package, everything. The consequences of an instantiation is almost impossible to predict. As with gotos, you should admit, that a program with generics is very difficult to understand and maintain. [For C++ replace difficult to impossible, because of automated instantiation] 6. Generics completely fall out of the language, because in fact they form a meta-langauge. A generic object does not exist for the core language. What could be done with a generic object? The answer is: nothing. One cannot pass a generic function as a parameter to a normal function. Even a generic parameter cannot be generic (:-)), only instances [= objects of the core language] are allowed. So even as a meta-language, generics represent an inconsistent one. ------------------------ A little of bad philosophy as a conclusion. (:-)) If we consider the evolution of programming languages, we could note maybe unconscious, but constant and very successfull attempts to solve the problem of parametrization in a more civilized way than just by brute force of preprocessing = generics. A subroutine is parametrized by the values of the arguments [FORTRAN] A subroutine is a value which can be a parameter [?] A type is parametrized by the values of the discriminants [Ada 83] A type set (=class-wide type) is parametrized by a type (=type tag) [OOPL with dispatching] In the end of this process we will need generics as much as we need gotos now. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* RE: Anybody in US using ADA ? One silly idea.. 2003-01-06 1:37 ` Robert C. Leif @ 2003-01-06 14:13 ` Dmitry A. Kazakov 2003-01-06 19:13 ` Pascal Obry ` (2 more replies) 2003-01-06 16:33 ` Georg Bauhaus 1 sibling, 3 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-06 14:13 UTC (permalink / raw) Robert C. Leif wrote: > I disagree! A very simple construct is a generic set of types and objects > that are also part of a private tagged record. This structure can be > extended and manipulated. Why to put something into anything else? Why not to have the tagged record doing everything what you want from the start? > For instance, when dealing with hardware, Intel > input-output registers and memory locations can be 8, 16, and 32 bits. A > generic is a simple way to model this. An abstract integer type with three non-abstract descendants is even more simple model. My point is that almost everything you do with generics could be done with ADT. > In fact if it were possible, I > would greatly prefer generic constructs to pointers. I must note that > generics can be instantiated at run-time and, I believe, still be located > on the heap. No need for garbage collection. Oberon.NET, which is very > new, has generics. Bob Leif -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 14:13 ` Dmitry A. Kazakov @ 2003-01-06 19:13 ` Pascal Obry 2003-01-07 12:02 ` Dmitry A. Kazakov 2003-01-07 3:00 ` Hyman Rosen 2003-01-07 13:51 ` Richard Riehle 2 siblings, 1 reply; 337+ messages in thread From: Pascal Obry @ 2003-01-06 19:13 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes: > An abstract integer type with three non-abstract descendants is even more > simple model. My point is that almost everything you do with generics could > be done with ADT. I'm not sure what you have in mind, but ADT and generics are orthogonal notion. In fact a lot of generic components are designed as ADT. The fact that 'A' stand for abstract has nothing to do the "abstract" Ada keywords or OO feature. Pascal. -- --|------------------------------------------------------ --| Pascal Obry Team-Ada Member --| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE --|------------------------------------------------------ --| http://perso.wanadoo.fr/pascal.obry --| "The best way to travel is by means of imagination" --| --| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595 ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 19:13 ` Pascal Obry @ 2003-01-07 12:02 ` Dmitry A. Kazakov 0 siblings, 0 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-07 12:02 UTC (permalink / raw) On 06 Jan 2003 20:13:16 +0100, Pascal Obry <p.obry@wanadoo.fr> wrote: >"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes: > >> An abstract integer type with three non-abstract descendants is even more >> simple model. My point is that almost everything you do with generics could >> be done with ADT. > >I'm not sure what you have in mind, but ADT and generics are orthogonal >notion. In fact a lot of generic components are designed as ADT. The fact >that 'A' stand for abstract has nothing to do the "abstract" Ada keywords or >OO feature. I called it abstract in Ada sense, i.e. a type having no instances. Abstract integer type is thing with integer arithmetic operations defined on it. Whether it is a 64-bit machine integer or an array of characters is no matter. As for orthogonality, surely, generics are orthogonal [to everything]. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 14:13 ` Dmitry A. Kazakov 2003-01-06 19:13 ` Pascal Obry @ 2003-01-07 3:00 ` Hyman Rosen 2003-01-07 12:10 ` Dmitry A. Kazakov 2003-01-07 13:51 ` Richard Riehle 2 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-07 3:00 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Why to put something into anything else? Why not to have the tagged record > doing everything what you want from the start? I'm not sure what specific case we're talking about here, but in general, one uses generics (or templates) when complete type information is available at compile time, and tagged types when type information is available only at run time. Under typical compiler implementations, very large gains in efficiency become possible using generics, mainly because of inlining opportunities. You may not like this, but the Ada designers clearly saw generics as a benefit, and the C++ metaprogramming developers have sealed its fate - generics are here to stay, and will probably become more enhanced. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-07 3:00 ` Hyman Rosen @ 2003-01-07 12:10 ` Dmitry A. Kazakov 2003-01-08 3:41 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-07 12:10 UTC (permalink / raw) On Mon, 06 Jan 2003 22:00:22 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> Why to put something into anything else? Why not to have the tagged record >> doing everything what you want from the start? > >I'm not sure what specific case we're talking about here, >but in general, one uses generics (or templates) when >complete type information is available at compile time, >and tagged types when type information is available only >at run time. That's silly. Tagged types are good in static case. One may wish generics only if they offers something what tagged types cannot. >Under typical compiler implementations, very large gains in >efficiency become possible using generics, mainly because of >inlining opportunities. This is also possible with tagged types. You are free to make operations inline. The compiler may remove the type tag if it is statically known. Under these conditions a static dispatch would cost nothing. >You may not like this, but the Ada designers clearly saw generics >as a benefit, In 80s there were no alternative to generics. >and the C++ metaprogramming developers have sealed >its fate - generics are here to stay, and will probably become >more enhanced. I have no doubts about it. But the fate of C++ was decided much more earlier, when {} were chosen to indicate a block of statements. You know after that, everything else is just a consequence! (:-)) --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-07 12:10 ` Dmitry A. Kazakov @ 2003-01-08 3:41 ` Hyman Rosen 2003-01-08 13:19 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-08 3:41 UTC (permalink / raw) Dmitry A. Kazakov wrote: > This is also possible with tagged types. You are free to make > operations inline. The compiler may remove the type tag if it is > statically known. Under these conditions a static dispatch would cost > nothing. The point here is using your newly created types with libraries of existing code which are to operate on those types. If those libraries are generic, then it may be possible to get significant inlining benefits. If those libraries operate on tagged types, then it won't matter that *you* know the static type in your code, because the library won't. It's the difference, in C++ terms, between qsort and std::sort. The former takes a pointer to function which it must call for each comparison, while the latter can inline the comparison. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-08 3:41 ` Hyman Rosen @ 2003-01-08 13:19 ` Dmitry A. Kazakov 2003-01-09 4:23 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-08 13:19 UTC (permalink / raw) Hyman Rosen wrote: > Dmitry A. Kazakov wrote: >> This is also possible with tagged types. You are free to make >> operations inline. The compiler may remove the type tag if it is >> statically known. Under these conditions a static dispatch would cost >> nothing. > > The point here is using your newly created types with libraries of > existing code which are to operate on those types. If those libraries > are generic, then it may be possible to get significant inlining > benefits. If those libraries operate on tagged types, then it won't > matter that *you* know the static type in your code, because the > library won't. It's the difference, in C++ terms, between qsort and > std::sort. The former takes a pointer to function which it must call > for each comparison, while the latter can inline the comparison. But this is not generics vs. tagged, it is inlined vs. not. It is clear that an inlined subroutine cannot be put into a library. The difference is only that tagged types leave me a choice, while generics don't. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-08 13:19 ` Dmitry A. Kazakov @ 2003-01-09 4:23 ` Hyman Rosen 2003-01-10 13:51 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-09 4:23 UTC (permalink / raw) Dmitry A. Kazakov wrote: > But this is not generics vs. tagged, it is inlined vs. not. It is clear that > an inlined subroutine cannot be put into a library. The difference is only > that tagged types leave me a choice, while generics don't. The inlining in question here is bits of your new object's code getting inlined into the library code, rather than the usual direction of inlining library code into your code. While you are not wrong in the abstract, the facts of implementations are that libraries which receive tagged types on which to operate are shipped as compiled binaries, and the opportunities to inline are simply not there. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-09 4:23 ` Hyman Rosen @ 2003-01-10 13:51 ` Dmitry A. Kazakov 2003-01-13 17:05 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-10 13:51 UTC (permalink / raw) Hyman Rosen wrote: > Dmitry A. Kazakov wrote: >> But this is not generics vs. tagged, it is inlined vs. not. It is clear >> that an inlined subroutine cannot be put into a library. The difference >> is only that tagged types leave me a choice, while generics don't. > > The inlining in question here is bits of your new object's code > getting inlined into the library code, rather than the usual > direction of inlining library code into your code. While you > are not wrong in the abstract, the facts of implementations are > that libraries which receive tagged types on which to operate > are shipped as compiled binaries, and the opportunities to > inline are simply not there. I agree. As I said, it is a long way to go to get rid of generics. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-10 13:51 ` Dmitry A. Kazakov @ 2003-01-13 17:05 ` Hyman Rosen 2003-01-15 17:04 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-13 17:05 UTC (permalink / raw) Dmitry A. Kazakov wrote: > I agree. As I said, it is a long way to go to get rid of generics. And as I said, I have no idea why you would want to. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-13 17:05 ` Hyman Rosen @ 2003-01-15 17:04 ` Dmitry A. Kazakov 2003-01-15 17:23 ` Hyman Rosen ` (2 more replies) 0 siblings, 3 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-15 17:04 UTC (permalink / raw) Hyman Rosen wrote: > Dmitry A. Kazakov wrote: >> I agree. As I said, it is a long way to go to get rid of generics. > > And as I said, I have no idea why you would want to. I think I explained why. But to avoid that discussion again, just take the unit solution for C++ you mentioned and try to implement a calculator for dimensioned values using it. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 17:04 ` Dmitry A. Kazakov @ 2003-01-15 17:23 ` Hyman Rosen 2003-01-15 18:19 ` Bill Findlay ` (2 more replies) 2003-01-15 22:48 ` Robert A Duff 2003-01-25 16:05 ` Robert I. Eachus 2 siblings, 3 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-15 17:23 UTC (permalink / raw) Dmitry A. Kazakov wrote: > I think I explained why. But to avoid that discussion again, just take the > unit solution for C++ you mentioned and try to implement a calculator for > dimensioned values using it. No, I don't want to do that. If I did want to do that, my solution would be inappropriate, but so what? Part of designing a program is deciding what is fixed at compile-time and what is decided at run-time. Ada has ranged types where the ranges are fixed at compile-time, and records whose field names are fixed at compile-time, and procedures whose parameters are fixed at compile-time. Similarly, it has generics whose parameters are fixed at compile-time. When I know what I need at compile-time, why should I be required to funnel it through a mechanism which is designed for run-time variation? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 17:23 ` Hyman Rosen @ 2003-01-15 18:19 ` Bill Findlay 2003-01-15 19:02 ` Hyman Rosen 2003-01-16 0:19 ` Richard Riehle 2003-01-16 18:20 ` Dmitry A. Kazakov 2003-01-16 19:09 ` Larry Kilgallen 2 siblings, 2 replies; 337+ messages in thread From: Bill Findlay @ 2003-01-15 18:19 UTC (permalink / raw) On 15/1/03 17:23, in article 1042651417.215661@master.nyc.kbcfp.com, "Hyman Rosen" <hyrosen@mail.com> wrote: > Dmitry A. Kazakov wrote: >> I think I explained why. But to avoid that discussion again, just take the >> unit solution for C++ you mentioned and try to implement a calculator for >> dimensioned values using it. > > No, I don't want to do that. If I did want to do that, > my solution would be inappropriate, but so what? Part > of designing a program is deciding what is fixed at > compile-time and what is decided at run-time. Ada has > ranged types where the ranges are fixed at compile-time [...] I've noticed you say something like this before, Hyman, and I wonder if I'm mistaking your meaning. Ada ranged types are NOT fixed at compile-time, they may be fully dynamic. E.g. You can say: procedure try is function read return integer is n : integer; begin get(n); return n; end read; SUBTYPE S IS INTEGER RANGE READ .. READ; begin put_line(integer'image(s'first) & " .. " & integer'image(s'last)); end try; $ ./try 123 456 123 .. 456 (although you probably shouldn't) -- Bill-Findlay chez blue-yonder.co.uk ("-" => "") ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 18:19 ` Bill Findlay @ 2003-01-15 19:02 ` Hyman Rosen 2003-01-15 19:11 ` Bill Findlay 2003-01-16 0:19 ` Richard Riehle 1 sibling, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-15 19:02 UTC (permalink / raw) Bill Findlay wrote: > I've noticed you say something like this before, Hyman, and I wonder if I'm > mistaking your meaning. Ada ranged types are NOT fixed at compile-time, they > may be fully dynamic. Oh, that's interesting, I didn't know that. Can I then have arrays whose index type is this dynamic subtype? Can I have records which have such arrays as components? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 19:02 ` Hyman Rosen @ 2003-01-15 19:11 ` Bill Findlay 2003-01-15 22:51 ` chris.danx 0 siblings, 1 reply; 337+ messages in thread From: Bill Findlay @ 2003-01-15 19:11 UTC (permalink / raw) On 15/1/03 19:02, in article 1042657338.377677@master.nyc.kbcfp.com, "Hyman Rosen" <hyrosen@mail.com> wrote: > Bill Findlay wrote: >> I've noticed you say something like this before, Hyman, and I wonder if I'm >> mistaking your meaning. Ada ranged types are NOT fixed at compile-time, they >> may be fully dynamic. > > Oh, that's interesting, I didn't know that. > Can I then have arrays whose index type is > this dynamic subtype? Can I have records > which have such arrays as components? > Yes! In the record case, an array field bound can even be the value of another (discriminant) field of the same record. 8-) -- Bill-Findlay chez blue-yonder.co.uk ("-" => "") ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 19:11 ` Bill Findlay @ 2003-01-15 22:51 ` chris.danx 2003-01-15 23:39 ` Bill Findlay 0 siblings, 1 reply; 337+ messages in thread From: chris.danx @ 2003-01-15 22:51 UTC (permalink / raw) Bill Findlay wrote: > On 15/1/03 19:02, in article 1042657338.377677@master.nyc.kbcfp.com, "Hyman > Rosen" <hyrosen@mail.com> wrote: >>Oh, that's interesting, I didn't know that. >>Can I then have arrays whose index type is >>this dynamic subtype? Can I have records >>which have such arrays as components? > Yes! > In the record case, an array field bound can even be the value of another > (discriminant) field of the same record. > 8-) Pardon my stupidity but how do you do this? If this is what it sounds like, it might be an ideal solution to a problem I've encountered. -- for personal replies change spamoff to chris ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 22:51 ` chris.danx @ 2003-01-15 23:39 ` Bill Findlay 2003-01-15 23:57 ` chris.danx 0 siblings, 1 reply; 337+ messages in thread From: Bill Findlay @ 2003-01-15 23:39 UTC (permalink / raw) On 15/1/03 22:51, in article AAlV9.4495$K63.158061@newsfep1-gui.server.ntli.net, "chris.danx" <spamoff.danx@ntlworld.com> wrote: > Bill Findlay wrote: >> On 15/1/03 19:02, in article 1042657338.377677@master.nyc.kbcfp.com, "Hyman >> Rosen" <hyrosen@mail.com> wrote: > >>> Oh, that's interesting, I didn't know that. >>> Can I then have arrays whose index type is >>> this dynamic subtype? Can I have records >>> which have such arrays as components? > >> Yes! >> In the record case, an array field bound can even be the value of another >> (discriminant) field of the same record. >> 8-) > > Pardon my stupidity but how do you do this? If this is what it sounds > like, it might be an ideal solution to a problem I've encountered. I refer my learned friend to Cohen, "Ada as a second language", pp 379 et.seq. Here is the gist of the first example. (N.B. Untested code!): type Int_Array_Type is array(Positive range <>) of Integer; ... type Int_Stack_Type (Max : Positive) is record Top : Natural := 0; Data : Int_Array_Type (1..Max); -- N.B. Only "Max" is allowed, even "Max+1" is illegal here end record; ... N : Positive := Read; -- N.B. N's value is read in ... subtype Stack_Of_Ints is Int_Stack_Type (N*(N+1)/2); ... Illegal_Stack : Int_Stack_Type; -- ILLEGAL, Max has no value Legal_Stack_1 : Int_Stack_Type (N*(N+1)/2); Legal_Stack_2 : Stack_Of_Ints; -- Bill-Findlay chez blue-yonder.co.uk ("-" => "") ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 23:39 ` Bill Findlay @ 2003-01-15 23:57 ` chris.danx 2003-01-16 0:32 ` Bill Findlay 0 siblings, 1 reply; 337+ messages in thread From: chris.danx @ 2003-01-15 23:57 UTC (permalink / raw) Bill Findlay wrote: > > I refer my learned friend to Cohen, > "Ada as a second language", pp 379 et.seq. It's in the bible? Worse still, the minute I saw your code I realised I already knew how to do it and had used it before in places. I've been away from Ada too long, it's all evaporating! :( Chris -- for personal replies change spamoff to chris ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 23:57 ` chris.danx @ 2003-01-16 0:32 ` Bill Findlay 2003-01-16 5:23 ` Richard Riehle 0 siblings, 1 reply; 337+ messages in thread From: Bill Findlay @ 2003-01-16 0:32 UTC (permalink / raw) On 15/1/03 23:57, in article QymV9.4805$K63.171246@newsfep1-gui.server.ntli.net, "chris.danx" <spamoff.danx@ntlworld.com> wrote: > Bill Findlay wrote: > >> >> I refer my learned friend to Cohen, >> "Ada as a second language", pp 379 et.seq. > > It's in the bible? Worse still, the minute I saw your code I realised I > already knew how to do it and had used it before in places. I've been > away from Ada too long, it's all evaporating! :( It's the curly-bracket languages you've had foisted on you in CS3! They rot the brain! 8-) -- Bill-Findlay chez blue-yonder.co.uk ("-" => "") ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 0:32 ` Bill Findlay @ 2003-01-16 5:23 ` Richard Riehle 2003-01-16 16:33 ` One sillier idea Wes Groleau 2003-01-16 17:11 ` Anybody in US using ADA ? One silly idea Hyman Rosen 0 siblings, 2 replies; 337+ messages in thread From: Richard Riehle @ 2003-01-16 5:23 UTC (permalink / raw) Bill Findlay wrote: > It's the curly-bracket languages you've had foisted on you in CS3! > They rot the brain! Well, I've mentioned this before as a cautionary issue, but reports are coming in of an impending world-wide shortage of curly braces. Soon, languages that depend on curly braces will run out of this essential resource, and other languages will have to fill in the gap. :-) Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: One sillier idea.. 2003-01-16 5:23 ` Richard Riehle @ 2003-01-16 16:33 ` Wes Groleau 2003-01-16 17:17 ` sk 2003-01-16 17:11 ` Anybody in US using ADA ? One silly idea Hyman Rosen 1 sibling, 1 reply; 337+ messages in thread From: Wes Groleau @ 2003-01-16 16:33 UTC (permalink / raw) > Well, I've mentioned this before as a cautionary issue, but reports are > coming in of an impending world-wide shortage of curly braces. Soon, > languages that depend on curly braces will run out of this essential > resource, and other languages will have to fill in the gap. :-) A little-known story on how these languages came to be: When C was being invented, there was a shortage of letters. Naturally the marketing guys got first choice, and the programmers had to settle for mostly punctuation marks. It was difficult even getting approval to give the name "C" to the patriarch instead of "$" ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: One sillier idea.. 2003-01-16 16:33 ` One sillier idea Wes Groleau @ 2003-01-16 17:17 ` sk 0 siblings, 0 replies; 337+ messages in thread From: sk @ 2003-01-16 17:17 UTC (permalink / raw) ... which is why Ada allows string-literals to be specified with % instead of the quote. This is in case the coder exceeded the quota of quotes ... <drum-roll and groans ...> with Ada.Text_Io; procedure P_Test is Hello : constant String := %hello%; begin Ada.Text_Io.Put_Line (Hello); end P_Test; -- -- -- Merge vertically for real address -- ------------------------------------ -- s n p @ t . o -- k i e k c c m ------------------------------------ ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 5:23 ` Richard Riehle 2003-01-16 16:33 ` One sillier idea Wes Groleau @ 2003-01-16 17:11 ` Hyman Rosen 2003-01-16 17:50 ` Richard Riehle 2003-01-16 17:57 ` Frank J. Lhota 1 sibling, 2 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-16 17:11 UTC (permalink / raw) Richard Riehle wrote: > Well, I've mentioned this before as a cautionary issue, but reports are > coming in of an impending world-wide shortage of curly braces. Soon, > languages that depend on curly braces will run out of this essential > resource, and other languages will have to fill in the gap. :-) Ada had better watch out as well. Due to the popularity of template metaprogramming in C++, angle brackets will soon be in short supply, and Ada programmers will no longer be able to use "is <>" :-) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 17:11 ` Anybody in US using ADA ? One silly idea Hyman Rosen @ 2003-01-16 17:50 ` Richard Riehle 2003-01-16 17:57 ` Frank J. Lhota 1 sibling, 0 replies; 337+ messages in thread From: Richard Riehle @ 2003-01-16 17:50 UTC (permalink / raw) Hyman Rosen wrote: > Richard Riehle wrote: > > Well, I've mentioned this before as a cautionary issue, but reports are > > coming in of an impending world-wide shortage of curly braces. Soon, > > languages that depend on curly braces will run out of this essential > > resource, and other languages will have to fill in the gap. :-) > > Ada had better watch out as well. Due to the popularity of > template metaprogramming in C++, angle brackets will soon > be in short supply, and Ada programmers will no longer be > able to use "is <>" :-) Time for us all to rehabilitate our Smalltalk skills. :-) Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 17:11 ` Anybody in US using ADA ? One silly idea Hyman Rosen 2003-01-16 17:50 ` Richard Riehle @ 2003-01-16 17:57 ` Frank J. Lhota 2003-01-16 18:26 ` Wes Groleau 2003-01-17 17:31 ` Warren W. Gay VE3WWG 1 sibling, 2 replies; 337+ messages in thread From: Frank J. Lhota @ 2003-01-16 17:57 UTC (permalink / raw) "Hyman Rosen" <hyrosen@mail.com> wrote in message news:1042737099.670536@master.nyc.kbcfp.com... > Richard Riehle wrote: > > Well, I've mentioned this before as a cautionary issue, but reports are > > coming in of an impending world-wide shortage of curly braces. Soon, > > languages that depend on curly braces will run out of this essential > > resource, and other languages will have to fill in the gap. :-) > > Ada had better watch out as well. Due to the popularity of > template metaprogramming in C++, angle brackets will soon > be in short supply, and Ada programmers will no longer be > able to use "is <>" :-) Didn't Lisp suffer from a parentheses shortage? I always thought that one could write Lisp faster with one additional input device: left parenthese and right parenthese foot pedals. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 17:57 ` Frank J. Lhota @ 2003-01-16 18:26 ` Wes Groleau 2003-01-17 8:27 ` Anders Wirzenius [not found] ` <h0770b.5e3.ln@beastie.ix.netcom.com> 2003-01-17 17:31 ` Warren W. Gay VE3WWG 1 sibling, 2 replies; 337+ messages in thread From: Wes Groleau @ 2003-01-16 18:26 UTC (permalink / raw) > Didn't Lisp suffer from a parentheses shortage? I always thought that one > could write Lisp faster with one additional input device: left parenthese > and right parenthese foot pedals. Ooh, Repetitive Stress Injuries in the calf muscles! ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 18:26 ` Wes Groleau @ 2003-01-17 8:27 ` Anders Wirzenius [not found] ` <h0770b.5e3.ln@beastie.ix.netcom.com> 1 sibling, 0 replies; 337+ messages in thread From: Anders Wirzenius @ 2003-01-17 8:27 UTC (permalink / raw) "Wes Groleau" <wesgroleau@despammed.com> wrote in message news:iPCV9.2441$c6.2445@bos-service2.ext.raytheon.com... > > > Didn't Lisp suffer from a parentheses shortage? I always thought that one > > could write Lisp faster with one additional input device: left parenthese > > and right parenthese foot pedals. > > Ooh, Repetitive Stress Injuries in the calf muscles! > A pianist background and especially organist background could be an advantage. Anders ^ permalink raw reply [flat|nested] 337+ messages in thread
[parent not found: <h0770b.5e3.ln@beastie.ix.netcom.com>]
* Re: Anybody in US using ADA ? One silly idea.. [not found] ` <h0770b.5e3.ln@beastie.ix.netcom.com> @ 2003-01-17 17:32 ` Warren W. Gay VE3WWG 0 siblings, 0 replies; 337+ messages in thread From: Warren W. Gay VE3WWG @ 2003-01-17 17:32 UTC (permalink / raw) Dennis Lee Bieber wrote: > Wes Groleau fed this fish to the penguins on Thursday 16 January 2003 > 10:26 am: > >>>Didn't Lisp suffer from a parentheses shortage? I always thought that >>>one could write Lisp faster with one additional input device: left >>>parenthese and right parenthese foot pedals. >> >>Ooh, Repetitive Stress Injuries in the calf muscles! > > Now there is an idea -- I never use the M$ "windows" keys; maybe they > can be rebound for such punctuation. Hook up a 2nd serial mouse, but put it on the floor as your "foot pedal" ;-) -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 17:57 ` Frank J. Lhota 2003-01-16 18:26 ` Wes Groleau @ 2003-01-17 17:31 ` Warren W. Gay VE3WWG 1 sibling, 0 replies; 337+ messages in thread From: Warren W. Gay VE3WWG @ 2003-01-17 17:31 UTC (permalink / raw) Frank J. Lhota wrote: > "Hyman Rosen" <hyrosen@mail.com> wrote in message > news:1042737099.670536@master.nyc.kbcfp.com... > >>Richard Riehle wrote: >> >>>Well, I've mentioned this before as a cautionary issue, but reports are >>>coming in of an impending world-wide shortage of curly braces. Soon, >>>languages that depend on curly braces will run out of this essential >>>resource, and other languages will have to fill in the gap. :-) >> >>Ada had better watch out as well. Due to the popularity of >>template metaprogramming in C++, angle brackets will soon >>be in short supply, and Ada programmers will no longer be >>able to use "is <>" :-) > > Didn't Lisp suffer from a parentheses shortage? I always thought that one > could write Lisp faster with one additional input device: left parenthese > and right parenthese foot pedals. I like the "foot pedals" idea, LOL. It should also be pointed out that C did not want to use '(' and ')' more than necessary, since they like short function and variable names, and abbreviated operators etc. Therefore subscripting is done with '[' and ']' rather than parenthesis, because it does not require a shift key. But the curlies are easily had since it only requires a shift key added to the fingers already poised for action on the square bracket keys that they already use for subscripting ;-) -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 18:19 ` Bill Findlay 2003-01-15 19:02 ` Hyman Rosen @ 2003-01-16 0:19 ` Richard Riehle 2003-01-16 0:16 ` chris.danx 2003-01-16 0:24 ` Bill Findlay 1 sibling, 2 replies; 337+ messages in thread From: Richard Riehle @ 2003-01-16 0:19 UTC (permalink / raw) Bill Findlay wrote: > I've noticed you say something like this before, Hyman, and I wonder if I'm > mistaking your meaning. Ada ranged types are NOT fixed at compile-time, they > may be fully dynamic. Bill, Great example. I have modified it slightly to emphasize the point. Hope you don't mind. Here is the altered version. -- modified from example submitted to cla by Bill Findlay with Ada.Integer_Text_IO; with Ada.Text_IO; use Ada; procedure try is function read return integer is n : integer; begin Integer_Text_IO.get(n); return n; end read; begin -- Try loop Dynamic_Array: declare SUBTYPE S IS INTEGER RANGE READ .. READ; A : array(S) of Integer := (others => 0); begin -- Dynamic_Array exit when S'Last = S'First; for I in A'Range loop Integer_Text_IO.Get(A(I)); end loop; Text_IO.put_line(integer'image(s'first) & " .. " & integer'image(s'last)); end Dynamic_Array; end loop; end try; ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 0:19 ` Richard Riehle @ 2003-01-16 0:16 ` chris.danx 2003-01-16 0:46 ` Bill Findlay ` (2 more replies) 2003-01-16 0:24 ` Bill Findlay 1 sibling, 3 replies; 337+ messages in thread From: chris.danx @ 2003-01-16 0:16 UTC (permalink / raw) Richard Riehle wrote: > -- modified from example submitted to cla by Bill Findlay > with Ada.Integer_Text_IO; > with Ada.Text_IO; > use Ada; > procedure try is > > function read return integer is > n : integer; > begin > Integer_Text_IO.get(n); > return n; > end read; > > begin -- Try > loop > Dynamic_Array: > declare > SUBTYPE S IS INTEGER RANGE READ .. READ; > A : array(S) of Integer := (others => 0); > begin -- Dynamic_Array > exit when S'Last = S'First; > for I in A'Range > loop > Integer_Text_IO.Get(A(I)); > end loop; > Text_IO.put_line(integer'image(s'first) > & " .. " & integer'image(s'last)); > end Dynamic_Array; > end loop; > end try; Hey, that's nifty! Never knew you could do stuff like that. Chris -- for personal replies change spamoff to chris ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 0:16 ` chris.danx @ 2003-01-16 0:46 ` Bill Findlay 2003-01-16 1:19 ` Jeffrey Carter 2003-01-16 2:44 ` Richard Riehle 2 siblings, 0 replies; 337+ messages in thread From: Bill Findlay @ 2003-01-16 0:46 UTC (permalink / raw) On 16/1/03 00:16, in article AQmV9.4910$K63.170955@newsfep1-gui.server.ntli.net, "chris.danx" <spamoff.danx@ntlworld.com> wrote: > Richard Riehle wrote: > ... >> declare >> SUBTYPE S IS INTEGER RANGE READ .. READ; >> A : array(S) of Integer := (others => 0); >> begin -- Dynamic_Array ... >> for I in A'Range >> loop >> Integer_Text_IO.Get(A(I)); >> end loop; ... > > Hey, that's nifty! Never knew you could do stuff like that. (Not referring specifically to Chris.) Many who learned to program in 1970s languages and their satanic progeny (we all know what languages I mean) find it hard to credit the full dynamic power of Ada. 8-) Those who cut their teeth on Algols 60..68 have it easier in that respect. -- Bill-Findlay chez blue-yonder.co.uk ("-" => "") ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 0:16 ` chris.danx 2003-01-16 0:46 ` Bill Findlay @ 2003-01-16 1:19 ` Jeffrey Carter 2003-01-16 2:44 ` Richard Riehle 2 siblings, 0 replies; 337+ messages in thread From: Jeffrey Carter @ 2003-01-16 1:19 UTC (permalink / raw) chris.danx wrote: [example of dynamic subtype and array type deleted] > Hey, that's nifty! Never knew you could do stuff like that. Having become accustomed to the excellent expressive power of Ada, I find other languages cramped, uncomfortable, and difficult to use. -- Jeff Carter "Spam! Spam! Spam! Spam! Spam! Spam! Spam! Spam!" Monty Python's Flying Circus ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 0:16 ` chris.danx 2003-01-16 0:46 ` Bill Findlay 2003-01-16 1:19 ` Jeffrey Carter @ 2003-01-16 2:44 ` Richard Riehle 2 siblings, 0 replies; 337+ messages in thread From: Richard Riehle @ 2003-01-16 2:44 UTC (permalink / raw) "chris.danx" wrote: An appreciation. Unfortunately, even though this will work, I have an problem with my algorithm, as pointed out by several people. In my haste to illustrate the dynamic array, I created a sloppy algorithm. Try a better approach to getting out of the loop. Richard > Richard Riehle wrote: > > > -- modified from example submitted to cla by Bill Findlay > > with Ada.Integer_Text_IO; > > with Ada.Text_IO; > > use Ada; > > procedure try is > > > > function read return integer is > > n : integer; > > begin > > Integer_Text_IO.get(n); > > return n; > > end read; > > > > begin -- Try > > loop > > Dynamic_Array: > > declare > > SUBTYPE S IS INTEGER RANGE READ .. READ; > > A : array(S) of Integer := (others => 0); > > begin -- Dynamic_Array > > exit when S'Last = S'First; > > for I in A'Range > > loop > > Integer_Text_IO.Get(A(I)); > > end loop; > > Text_IO.put_line(integer'image(s'first) > > & " .. " & integer'image(s'last)); > > end Dynamic_Array; > > end loop; > > end try; > > Hey, that's nifty! Never knew you could do stuff like that. > > Chris > -- > for personal replies change spamoff to chris ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 0:19 ` Richard Riehle 2003-01-16 0:16 ` chris.danx @ 2003-01-16 0:24 ` Bill Findlay 2003-01-16 10:34 ` Jean-Pierre Rosen 1 sibling, 1 reply; 337+ messages in thread From: Bill Findlay @ 2003-01-16 0:24 UTC (permalink / raw) On 16/1/03 00:19, in article 3E25FA9A.2549C263@adaworks.com, "Richard Riehle" <richard@adaworks.com> wrote: > Bill Findlay wrote: > >> I've noticed you say something like this before, Hyman, and I wonder if I'm >> mistaking your meaning. Ada ranged types are NOT fixed at compile-time, they >> may be fully dynamic. > > Bill, Great example. I have modified it slightly to emphasize the point. > Hope you don't mind. Here is the altered version. Not at all, your amplification brings the point out more fully; but it should be said that: > SUBTYPE S IS INTEGER RANGE READ .. READ; is formally undefined, as the language does not specify the order in which the lower and upper bounds of the range are evaluated. (So don't try this at home, folks!) -- Bill-Findlay chez blue-yonder.co.uk ("-" => "") ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 0:24 ` Bill Findlay @ 2003-01-16 10:34 ` Jean-Pierre Rosen 0 siblings, 0 replies; 337+ messages in thread From: Jean-Pierre Rosen @ 2003-01-16 10:34 UTC (permalink / raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 785 bytes --] "Bill Findlay" <yaldnifw@blueyonder.co.uk> a �crit dans le message de news: BA4BAC1F.1C55%yaldnifw@blueyonder.co.uk... > Not at all, your amplification brings the point out more fully; but it > should be said that: > > > SUBTYPE S IS INTEGER RANGE READ .. READ; > > is formally undefined, as the language does not specify the order in which > the lower and upper bounds of the range are evaluated. > Which is easily solved by saying: Lower : constant Integer := Read; Upper : constant Integer := Read; subtype S is Integer range Lower..Upper; (Fortunately, declarations *are* elaborated in order :-) -- --------------------------------------------------------- J-P. Rosen (rosen@adalog.fr) Visit Adalog's web site at http://www.adalog.fr ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 17:23 ` Hyman Rosen 2003-01-15 18:19 ` Bill Findlay @ 2003-01-16 18:20 ` Dmitry A. Kazakov 2003-01-16 18:59 ` Hyman Rosen ` (2 more replies) 2003-01-16 19:09 ` Larry Kilgallen 2 siblings, 3 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-16 18:20 UTC (permalink / raw) Hyman Rosen wrote: > Dmitry A. Kazakov wrote: >> I think I explained why. But to avoid that discussion again, just take >> the unit solution for C++ you mentioned and try to implement a calculator >> for dimensioned values using it. > > No, I don't want to do that. If I did want to do that, > my solution would be inappropriate, but so what? It is not a universal solution. That's the point. A floating-point type is one for real logarithmic values. Are you sure that dimensioned values have no universal solution at all? > Part > of designing a program is deciding what is fixed at > compile-time and what is decided at run-time. Yes, but sometimes it is the language that forces you to decide. The question is again, is that a cruelty of the Universe or just an arbitrary defect of a particular language. > Ada has ranged types where the ranges are fixed at compile-time, They are not, up to some limit. But the problem is whether the language gives you an opportunity to define new numeric types without the restrictions you do not need and close enough to the theoretical performance limit for the remaining restrictions. Ada almost can this. [Almost, because one cannot make a private type "numeric" for the compiler.] > and records whose field names are fixed at compile-time, > and procedures whose parameters are fixed at compile-time. It is not very useful, I mean untyped containers if you point at that. What can you do with the elements of an "unknown" type? Only put them into another container. Ada is not Lisp. > Similarly, it has generics whose parameters are fixed at > compile-time. When I know what I need at compile-time, > why should I be required to funnel it through a mechanism > which is designed for run-time variation? No, this is wrong. This mechanism and generics are both designed *just* for variation. The nature of generics excludes run-time variation. This is a restriction. If you are trying to defend this restriction, then well, I admit that there are useful restrictions, but I see no advantages in this case. It is same as to claim that: generic Size : Natural; package ... is type My_String is record Text : String (1..Size); end record; is better than type My_String (Size : Natural) is record Text : String (1..Size); end record; Dispatching, discriminants, array bounds have no such restiriction. Moreover subtyping/subclassing enrich the structure of types, while generics just ignore types and relations between them. What's the use of a variation over a type set if you are unable to specify an element of the set? -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 18:20 ` Dmitry A. Kazakov @ 2003-01-16 18:59 ` Hyman Rosen 2003-01-17 4:09 ` Richard Riehle 2003-01-17 16:28 ` Dmitry A. Kazakov 2003-01-16 19:08 ` Anybody in US using ADA ? One silly idea Hyman Rosen 2003-01-17 4:03 ` Richard Riehle 2 siblings, 2 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-16 18:59 UTC (permalink / raw) Dmitry A. Kazakov wrote: > This mechanism and generics are both designed *just* for variation. The dispatching mechanism is designed for runtime variation. The generic mechanism is designed for compile-time variation. Just because you can occasionally track types well enough through dispatching code so that dispatches can be replaced with explicit calls doesn't change that. > I see no advantages in this case. The advantage is that more efficient (smaller/faster) code can be generated from generics, if not in theory then certainly in practice. Programming languages are not just abstract constructs, they are means for generating sequences of native machine code to perform some task. > It is same as to claim that (generic) > is better than (discriminated type) Yes, and that's a valid claim. Given a fixed size, it's likely that better code can be generated than when the size must be passed around as a variable. > What's the use of a variation over a type set if you are unable > to specify an element of the set? The use is to specify an operation on elements of the set a single time, and yet have that operation work for many elements. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 18:59 ` Hyman Rosen @ 2003-01-17 4:09 ` Richard Riehle 2003-01-17 14:36 ` Hyman Rosen 2003-01-17 16:28 ` Dmitry A. Kazakov 1 sibling, 1 reply; 337+ messages in thread From: Richard Riehle @ 2003-01-17 4:09 UTC (permalink / raw) Hyman Rosen wrote: > The advantage is that more efficient (smaller/faster) code > can be generated from generics, if not in theory then certainly > in practice. Programming languages are not just abstract > constructs, they are means for generating sequences of native > machine code to perform some task. Bill Findlay posted some code earlier, that I revised slightly to make a point in this conversation. Here is another example using generics. with Ada.Text_IO; with Ada.Integer_Text_IO; with System; use Ada; procedure Conditional_Instantiation is X : Character := ' '; type Large_Number is range System.Min_Int..System.Max_Int; Bound : Large_Number := Large_Number'Last; begin loop Text_IO.Put("Enter a Character: "); Text_IO.Get(X); Text_IO.New_Line; if X in 'A'..'Z' or X in 'a'..'z' then Text_IO.Put("Enter a number: "); Integer_Text_IO.Get(Integer(Bound)); declare type Number is new Large_Number range 1..Bound; package IIO is new Text_IO.Integer_IO(Num => Number); begin Text_IO.Put("Upper Bound - 1 = "); IIO.Put(Number'Last - 1); Text_IO.New_Line; end; else exit; end if; end loop; end Conditional_Instantiation; Note that the result of the IIO.Put statement will reflect the value of one less than whatever has been selected for the value of Bound in the type declaration. This will only work on derived types and subtypes, but that is good enough for most kind of applications. Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-17 4:09 ` Richard Riehle @ 2003-01-17 14:36 ` Hyman Rosen 0 siblings, 0 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-17 14:36 UTC (permalink / raw) Richard Riehle wrote: > Bill Findlay posted some code earlier, that I revised slightly > to make a point in this conversation. Here is another example > using generics. Yep. I already knew that the Ada generic model is different from the C++ one. Thanks for another example illustrating why this must be so. C++ types don't carry around little runtime bits to augment their static information, so a C++ template instantiation is much more of a "macro expansion" than is an Ada generic instantiation. I can also see why Dmitry Kazakov is dubious of the benefits of generics over dispatching, since Ada generics already seem to need to access runtime type information. It's quite different in C++. Very interesting. As another thread is saying, comparing different programming languages is a good thing. You have to be pretty expert in a language to see how apparent low-level design details spread throughout and affect seemingly unrelated areas. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 18:59 ` Hyman Rosen 2003-01-17 4:09 ` Richard Riehle @ 2003-01-17 16:28 ` Dmitry A. Kazakov 2003-01-17 17:23 ` Hyman Rosen 1 sibling, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-17 16:28 UTC (permalink / raw) Hyman Rosen wrote: > Dmitry A. Kazakov wrote: >> This mechanism and generics are both designed *just* for variation. > > The dispatching mechanism is designed for runtime variation. > The generic mechanism is designed for compile-time variation. > Just because you can occasionally track types well enough > through dispatching code so that dispatches can be replaced > with explicit calls doesn't change that. Not occasionaly, but when they are statically known. There is absolutely no difference with generics, which also "occasionally" work in this case. >> I see no advantages in this case. > > The advantage is that more efficient (smaller/faster) code > can be generated from generics, if not in theory then certainly > in practice. Programming languages are not just abstract > constructs, they are means for generating sequences of native > machine code to perform some task. I never argued this point, which actually sounds: we use them because there is nothing better. But this does not exclude that there could be something better than generics. >> It is same as to claim that (generic) > > is better than (discriminated type) > > Yes, and that's a valid claim. Given a fixed size, it's likely > that better code can be generated than when the size must be > passed around as a variable. Seems that you are summoning the ghost of Pascal-strings. (:-)) Leave them resting in peace, they are useless! > > What's the use of a variation over a type set if you are unable > > to specify an element of the set? > > The use is to specify an operation on elements of the set a > single time, and yet have that operation work for many elements. But because you cannot specify the set, you are very limited in which operation you can define. For instance, you cannot have an iterator of the set, you cannot have subsets, pointers, containers and many other things which make ADT so useful. This is the price of text substitution. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-17 16:28 ` Dmitry A. Kazakov @ 2003-01-17 17:23 ` Hyman Rosen 2003-01-17 19:02 ` Richard Riehle 2003-01-18 12:31 ` Dmitry A. Kazakov 0 siblings, 2 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-17 17:23 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Not occasionaly, but when they are statically known. > There is absolutely no difference with generics, > which also "occasionally" work in this case. There is certainly a difference. With generics, the type propogates through the code and can't be lost. With dispatching, the compiler has to be able to deduce that class wide objects and pointers are actually of a specific type. That may not always be possible, especially where containers are concerned. > we use them because there is nothing better. Well, in my opinion, they *are* better, but I guess that's just a matter of taste. > Seems that you are summoning the ghost of Pascal-strings. (:-)) > Leave them resting in peace, they are useless! They have their place. And in Pascal, there were no generics, so you would have to rewrite your code for each different size. Gnereics do that for you, and sometimes that may be exactly what you want. > But because you cannot specify the set, you are very limited in which > operation you can define. For instance, you cannot have an iterator of the > set, you cannot have subsets, pointers, containers and many other things > which make ADT so useful. This is the price of text substitution. No, that is the price of using Ada generics. In C++, because of specialization, you can have all of those things. Specialization means that you can have entirely different code for a generic instantiation based on the parameters; in Ada you cannot do this. Andrei Alexandrescu's _Modern C++ Design_ is the best exposition of these kind of techniques. The attitude in this kind of programming is that using a specifc type instead of a generic parameter is a lot like using a magic number in the code. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-17 17:23 ` Hyman Rosen @ 2003-01-17 19:02 ` Richard Riehle 2003-01-17 20:02 ` Hyman Rosen 2003-01-18 12:31 ` Dmitry A. Kazakov 1 sibling, 1 reply; 337+ messages in thread From: Richard Riehle @ 2003-01-17 19:02 UTC (permalink / raw) Hyman Rosen wrote: > No, that is the price of using Ada generics. In C++, because of > specialization, you can have all of those things. Specialization > means that you can have entirely different code for a generic > instantiation based on the parameters; in Ada you cannot do this. > Andrei Alexandrescu's _Modern C++ Design_ is the best exposition > of these kind of techniques. The attitude in this kind of > programming is that using a specifc type instead of a generic > parameter is a lot like using a magic number in the code. I have read Alexandrescu's discussion of this interesting feature of C++. His is probably the first good book on C++ design I have seen. It almost makes the language look reasonable. :-) Note the smiley, Hyman. Here is a generic in Ada, which while not identical to the C++ model, does permit combining specialization with genericity and which has turned out to be quite useful for certain kinds of problems. When combined with some of the other examples Mr. Findlay and I have posted, it becomes a powerful tool for designing complex solutions. ================================================ generic type Item is abstract tagged private; package Generic_Abstract_Type is type Starting_Type is abstract new Item with private; -- override inherited methods from Item procedure Make (The_Item : Starting_Type); -- extend with additional methods -- including, optionally, abstract methods private type Starting_Type is abstract new Item with null record; end Generic_Abstract_Type; ============================================== The generic formal parameter could also have been something such as, generic type Item is abstract new T with private; type Reference is access all Item'Class; package Generic_T_Derivation is ... end Generic_T_Derivation; Many more variations are possible. We can combine specialization with genericity. In this example, we also include a generic formal access type so we can do indirect access operations at the classwide level. Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-17 19:02 ` Richard Riehle @ 2003-01-17 20:02 ` Hyman Rosen 2003-01-25 1:40 ` Richard Riehle 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-17 20:02 UTC (permalink / raw) Richard Riehle wrote: > Here is a generic in Ada, which while not identical to the C++ model, > does permit combining specialization with genericity and which has > turned out to be quite useful for certain kinds of problems. This looks like something we would write in C++ like this: template <class Item> struct Starting_Type : public Item { void Make(); }; I agree - there are plenty or circumstances where this is useful and powerful. C++ template specialization is different though; it doesn't (necessarily) involve tagged types at all. Here's a simple example: // General case template<int N> struct Factorial { enum { Value = N * Factorial<N - 1>::Value } }; // Specialization for 0 template<> struct Factorial<0> { enum { Value = 1 } }; // Use it, as a compile-time constant expression int array[Factorial<5>::Value]; When you ask for Factorial<0>, the compiler uses the special case you provided, otherwise it uses the general case. Notice that the bodies of the specialization is completely different from the one in the general case. (They both define a Value enumerator, but in general, they could have been completely unrelated.) The same thing works for type parameters: // General case template <typename T> struct RemovePointers { typedef T type; }; // Specialize for pointers template <typename T> struct RemovePointers <T *> { typedef RemovePointers<T>::type type; }; RemovePointers<double *****>::type its_a_double = 17.29; When you ask for RemovePointers<SomeType>, the compiler matches SomeType against the specializatons. If it finds that one of them is a better match than the generic type (using rules defined by the language), it uses that one. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-17 20:02 ` Hyman Rosen @ 2003-01-25 1:40 ` Richard Riehle 2003-01-26 4:57 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Richard Riehle @ 2003-01-25 1:40 UTC (permalink / raw) Hyman Rosen wrote: > C++ template specialization is different though; it doesn't > (necessarily) involve tagged types at all. Here's a simple > example: > > // General case > template<int N> > struct Factorial { enum { Value = N * Factorial<N - 1>::Value } }; > > // Specialization for 0 > template<> > struct Factorial<0> { enum { Value = 1 } }; > > // Use it, as a compile-time constant expression > int array[Factorial<5>::Value]; > > When you ask for Factorial<0>, the compiler uses the special case > you provided, otherwise it uses the general case. This looks a lot like a form of overloading. Combine this with generic subprograms, or generic child library units, and we have a pretty close match in capability. Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-25 1:40 ` Richard Riehle @ 2003-01-26 4:57 ` Hyman Rosen 0 siblings, 0 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-26 4:57 UTC (permalink / raw) Richard Riehle wrote: > This looks a lot like a form of overloading. But with compile-time evaluation. I don't believe Ada has anything like it. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-17 17:23 ` Hyman Rosen 2003-01-17 19:02 ` Richard Riehle @ 2003-01-18 12:31 ` Dmitry A. Kazakov 2003-01-18 22:53 ` Hillel Y. Sims ` (2 more replies) 1 sibling, 3 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-18 12:31 UTC (permalink / raw) Hyman Rosen wrote: > Dmitry A. Kazakov wrote: >> Not occasionaly, but when they are statically known. > > There is absolutely no difference with generics, > > which also "occasionally" work in this case. > > There is certainly a difference. With generics, the type > propogates through the code and can't be lost. > With dispatching, the compiler has to be able to deduce > that class wide objects and pointers are actually of a > specific type. That may not always be possible, especially > where containers are concerned. If not possible, then it is not a case where generics may be applied. My point is, anywhere generics work, the specific type can be tacked down. >> we use them because there is nothing better. > > Well, in my opinion, they *are* better, but I guess > that's just a matter of taste. If they are better, then there should be a rationale for that. So far, there are only two arguments: 1. Efficiency [which is arguable and very often not an issue in a large system] 2. They can something, that other gears cannot [what if they could?] Compare this with gotos. They are extremely efficient and they do can [make a maintenance nightmare out of any program] >> Seems that you are summoning the ghost of Pascal-strings. (:-)) > > Leave them resting in peace, they are useless! > > They have their place. And in Pascal, there were no generics, > so you would have to rewrite your code for each different size. > Gnereics do that for you, and sometimes that may be exactly what > you want. > >> But because you cannot specify the set, you are very limited in which >> operation you can define. For instance, you cannot have an iterator of >> the set, you cannot have subsets, pointers, containers and many other >> things which make ADT so useful. This is the price of text substitution. > > No, that is the price of using Ada generics. In C++, because of > specialization, you can have all of those things. Specialization > means that you can have entirely different code for a generic > instantiation based on the parameters; in Ada you cannot do this. This changes nothing: template <class X> class Y ...; how a specialization could help to create a container for Y. Note missing <> after Y. There is simply no such thing as Y. There is only a bunch of instances of Y, which are absolutely *unrelated*! > Andrei Alexandrescu's _Modern C++ Design_ is the best exposition > of these kind of techniques. The attitude in this kind of > programming is that using a specifc type instead of a generic > parameter is a lot like using a magic number in the code. This statement will retain its meaning if you replace "generic parameter" with "class-wide". However, maybe not "modern", but rather *careful* design requires a precise consideration when a class-wide/generic and when a specific type is appropriate. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-18 12:31 ` Dmitry A. Kazakov @ 2003-01-18 22:53 ` Hillel Y. Sims 2003-01-19 6:18 ` Kevin Cline 2003-01-19 12:34 ` Dmitry A. Kazakov 2003-01-19 3:42 ` Hyman Rosen 2003-01-23 13:15 ` please, please, please, Wes Groleau 2 siblings, 2 replies; 337+ messages in thread From: Hillel Y. Sims @ 2003-01-18 22:53 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message news:b0bhef$ni0jk$1@ID-77047.news.dfncis.de... > If they are better, then there should be a rationale for that. So far, there > are only two arguments: > > 1. Efficiency [which is arguable and very often not an issue in a large > system] > Are you serious? Just a small example of potential efficiency, C++ templated std::sort() function is proven to be non-trivially faster than the mostly-equivalent C-based non-templated std::qsort() function which uses untyped void* parameters. On my system (HP Alphas running OpenVMS), templated std::sort() is more than 60% faster than std::qsort() for arrays of 500,000 integers or floats. Recent profiling of our system (financial data integration/analysis) indicated some sorting routines (really old fortran-based code) as potential relevant targets for efficiency improvement. I imagine similar kinds of efficiency improvement are possible in Ada using generics vs. untyped code? > 2. They can something, that other gears cannot [what if they could?] Has anyone suggested anything better yet? > > Compare this with gotos. They are extremely efficient and they do can [make > a maintenance nightmare out of any program] How do you compare gotos to generics? Generics do not destroy structured code. I just don't understand the analogy. > > This changes nothing: > > template <class X> class Y ...; > > how a specialization could help to create a container for Y. Note missing <> > after Y. There is simply no such thing as Y. There is only a bunch of > instances of Y, which are absolutely *unrelated*! It can actually help. For example, in the case of the standard C++ container class std::vector<T> -- there can be a specialization defined (I forget if it is mandated by the Standard, but it is possible anyhow) for all std::vector<T*> such that they are inherited from std::vector<void*> with just the necessary casts thrown in by the compiler (inline). This can eliminate a large amount of unnecessary code bloat for all instantiations of vectors of pointer types. hys -- (c) 2003 Hillel Y. Sims hsims AT factset.com ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-18 22:53 ` Hillel Y. Sims @ 2003-01-19 6:18 ` Kevin Cline 2003-01-19 12:34 ` Dmitry A. Kazakov 1 sibling, 0 replies; 337+ messages in thread From: Kevin Cline @ 2003-01-19 6:18 UTC (permalink / raw) "Hillel Y. Sims" <usenet@phatbasset.com> wrote in message news:<_VkW9.266404$FT6.43771824@news4.srv.hcvlny.cv.net>... > "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message > news:b0bhef$ni0jk$1@ID-77047.news.dfncis.de... > > If they are better, then there should be a rationale for that. So far, > there > > are only two arguments: > > > > 1. Efficiency [which is arguable and very often not an issue in a large > > system] > > > > Are you serious? Just a small example of potential efficiency, C++ templated > std::sort() function is proven to be non-trivially faster than the > mostly-equivalent C-based non-templated std::qsort() function which uses > untyped void* parameters. On my system (HP Alphas running OpenVMS), > templated std::sort() is more than 60% faster than std::qsort() for arrays > of 500,000 integers or floats. Recent profiling of our system (financial > data integration/analysis) indicated some sorting routines (really old > fortran-based code) as potential relevant targets for efficiency > improvement. I imagine similar kinds of efficiency improvement are possible > in Ada using generics vs. untyped code? > > > 2. They can something, that other gears cannot [what if they could?] > > Has anyone suggested anything better yet? > > > > > Compare this with gotos. They are extremely efficient and they do can > [make > > a maintenance nightmare out of any program] > > How do you compare gotos to generics? Generics do not destroy structured > code. I just don't understand the analogy. > > > > > This changes nothing: > > > > template <class X> class Y ...; > > > > how a specialization could help to create a container for Y. Note missing > <> > > after Y. There is simply no such thing as Y. There is only a bunch of > > instances of Y, which are absolutely *unrelated*! > > It can actually help. For example, in the case of the standard C++ container > class std::vector<T> -- there can be a specialization defined (I forget if > it is mandated by the Standard, but it is possible anyhow) for all > std::vector<T*> such that they are inherited from std::vector<void*> with > just the necessary casts thrown in by the compiler (inline). This can > eliminate a large amount of unnecessary code bloat for all instantiations of > vectors of pointer types. It's not mandated by the standard and it's generally not done. There's not much point since most of the standard container member functions are rather short, and are almost always compiled inline. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-18 22:53 ` Hillel Y. Sims 2003-01-19 6:18 ` Kevin Cline @ 2003-01-19 12:34 ` Dmitry A. Kazakov 2003-01-21 2:10 ` Hillel Y. Sims 1 sibling, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-19 12:34 UTC (permalink / raw) Hillel Y. Sims wrote: > "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message > news:b0bhef$ni0jk$1@ID-77047.news.dfncis.de... >> If they are better, then there should be a rationale for that. So far, > there >> are only two arguments: >> >> 1. Efficiency [which is arguable and very often not an issue in a large >> system] > > Are you serious? Just a small example of potential efficiency, C++ > templated std::sort() function is proven to be non-trivially faster than > the mostly-equivalent C-based non-templated std::qsort() function which > uses untyped void* parameters. On my system (HP Alphas running OpenVMS), > templated std::sort() is more than 60% faster than std::qsort() for arrays > of 500,000 integers or floats. Recent profiling of our system (financial > data integration/analysis) indicated some sorting routines (really old > fortran-based code) as potential relevant targets for efficiency > improvement. I imagine similar kinds of efficiency improvement are > possible in Ada using generics vs. untyped code? This is a wrong comparison. A correct one would be an instance of a generic subroutine vs. an inlined subroutine and, note, when the type is statically known. >> 2. They can something, that other gears cannot [what if they could?] > > Has anyone suggested anything better yet? Yes. type X is array (Integer range <>) of Y; is definitely better than a generic version with the array size as the parameter. type X (Param : Y) is ...; is also almost always better than generics. >> Compare this with gotos. They are extremely efficient and they do can > [make >> a maintenance nightmare out of any program] > > How do you compare gotos to generics? Generics do not destroy structured > code. I just don't understand the analogy. They are as chaotic as gotos. They destroy the type structure of the program as gotos do the control flow. Hyman Rosen gave us a brilliant example of generic code for handling dimensioned values. But get a programmer from street and ask him why and how it works. Programming should be as simple as tooth powder. (:-)) >> This changes nothing: >> >> template <class X> class Y ...; >> >> how a specialization could help to create a container for Y. Note missing > <> >> after Y. There is simply no such thing as Y. There is only a bunch of >> instances of Y, which are absolutely *unrelated*! > > It can actually help. For example, in the case of the standard C++ > container class std::vector<T> -- there can be a specialization defined (I > forget if it is mandated by the Standard, but it is possible anyhow) for > all std::vector<T*> such that they are inherited from std::vector<void*> > with just the necessary casts thrown in by the compiler (inline). This can > eliminate a large amount of unnecessary code bloat for all instantiations > of vectors of pointer types. With pointer types we do not need generics at all, because all pointers are of some predictable size. Then it is not the actual problem. The problem is that std::vector is not a type, so even std::vector* cannot exist. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-19 12:34 ` Dmitry A. Kazakov @ 2003-01-21 2:10 ` Hillel Y. Sims 2003-01-21 9:25 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hillel Y. Sims @ 2003-01-21 2:10 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message news:b0e5vu$ognn6$1@ID-77047.news.dfncis.de... > Hillel Y. Sims wrote: > [templated C++ sort() is faster than qsort()] > > This is a wrong comparison. A correct one would be an instance of a generic > subroutine vs. an inlined subroutine and, note, when the type is statically > known. sort<int>() vs. sort_ints()? In that case the performance should really be exactly the same (since as you say, it really *is* to a large extent just a bunch of text substitution :-). The benefit is that you don't need to rewrite or copy/paste the code over and over for each unique type, the compiler does it automatically (while maintaining full type safety, unlike dumb macros) -- and better yet, when you fix a bug in the generic version, it is immediately fixed for all instantiations automatically (vs. sort_ints(), sort_floats(), sort_strings(), sort_xyz()) > > How do you compare gotos to generics? Generics do not destroy structured > > code. I just don't understand the analogy. > > They are as chaotic as gotos. They destroy the type structure of the program > as gotos do the control flow. Hyman Rosen gave us a brilliant example of > generic code for handling dimensioned values. But get a programmer from > street and ask him why and how it works. Programming should be as simple as > tooth powder. (:-)) No argument that some crazy stuff can be done that is really difficult to interpret by humans. I'm not sure you've really made the case "generics considered harmful" though yet.. > > It can actually help. For example, in the case of the standard C++ > > container class std::vector<T> -- there can be a specialization defined (I > > forget if it is mandated by the Standard, but it is possible anyhow) for > > all std::vector<T*> such that they are inherited from std::vector<void*> > > with just the necessary casts thrown in by the compiler (inline). This can > > eliminate a large amount of unnecessary code bloat for all instantiations > > of vectors of pointer types. > > With pointer types we do not need generics at all, because all pointers are > of some predictable size. However, full type safety is maintained without requiring programmers to manually do (error-prone) casting. >Then it is not the actual problem. The problem is > that std::vector is not a type, so even std::vector* cannot exist. > Sure it can: template <typename T> void f(std::vector<T>* pVec) { pVec->clear(); //etc... } :-) hys -- (c) 2003 Hillel Y. Sims hsims AT factset.com ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-21 2:10 ` Hillel Y. Sims @ 2003-01-21 9:25 ` Dmitry A. Kazakov 2003-01-21 18:55 ` Kevin Cline 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-21 9:25 UTC (permalink / raw) On Tue, 21 Jan 2003 02:10:37 GMT, "Hillel Y. Sims" <usenet@phatbasset.com> wrote: >"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message >news:b0e5vu$ognn6$1@ID-77047.news.dfncis.de... >> Hillel Y. Sims wrote: >> >[templated C++ sort() is faster than qsort()] >> >> This is a wrong comparison. A correct one would be an instance of a >generic >> subroutine vs. an inlined subroutine and, note, when the type is >statically >> known. > >sort<int>() vs. sort_ints()? In that case the performance should really be >exactly the same (since as you say, it really *is* to a large extent just a >bunch of text substitution :-). The benefit is that you don't need to >rewrite or copy/paste the code over and over for each unique type, the >compiler does it automatically (while maintaining full type safety, unlike >dumb macros) -- and better yet, when you fix a bug in the generic version, >it is immediately fixed for all instantiations automatically (vs. >sort_ints(), sort_floats(), sort_strings(), sort_xyz()) This is an advantage of generics over blind preprocessing. The problem is whether same can be achieved without both. Consider class-wide sort written for all arrays derived from some abstract array of comparable elements. If that sort is inlined, then then compiler theoretically would have all necessary information to make code as efficient as generic sort could. Presently it is impossible in both Ada and C++. >> > How do you compare gotos to generics? Generics do not destroy structured >> > code. I just don't understand the analogy. >> >> They are as chaotic as gotos. They destroy the type structure of the >program >> as gotos do the control flow. Hyman Rosen gave us a brilliant example of >> generic code for handling dimensioned values. But get a programmer from >> street and ask him why and how it works. Programming should be as simple >as >> tooth powder. (:-)) > >No argument that some crazy stuff can be done that is really difficult to >interpret by humans. I'm not sure you've really made the case "generics >considered harmful" though yet.. > >> > It can actually help. For example, in the case of the standard C++ >> > container class std::vector<T> -- there can be a specialization defined >(I >> > forget if it is mandated by the Standard, but it is possible anyhow) for >> > all std::vector<T*> such that they are inherited from std::vector<void*> >> > with just the necessary casts thrown in by the compiler (inline). This >can >> > eliminate a large amount of unnecessary code bloat for all >instantiations >> > of vectors of pointer types. >> >> With pointer types we do not need generics at all, because all pointers >are >> of some predictable size. > >However, full type safety is maintained without requiring programmers to >manually do (error-prone) casting. > >>Then it is not the actual problem. The problem is >> that std::vector is not a type, so even std::vector* cannot exist. > >Sure it can: > >template <typename T> >void f(std::vector<T>* pVec) >{ > pVec->clear(); > //etc... >} This gives nothing because you just moved T from one place to another. It just highlights the problem. Once you made something generic, then everything using that becomes generic as well. That's alone is bad. Buf for inherently non-static things (like class-wide pointers in my example) it is catastrophic, because there cannot be solution for them. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-21 9:25 ` Dmitry A. Kazakov @ 2003-01-21 18:55 ` Kevin Cline 2003-01-23 11:00 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Kevin Cline @ 2003-01-21 18:55 UTC (permalink / raw) Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote in message news:<ga3q2vkds5akg0iaommdaniqp3ubo293pl@4ax.com>... > On Tue, 21 Jan 2003 02:10:37 GMT, "Hillel Y. Sims" > <usenet@phatbasset.com> wrote: > > >"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message > >news:b0e5vu$ognn6$1@ID-77047.news.dfncis.de... > >> Hillel Y. Sims wrote: > >> > [templated C++ sort() is faster than qsort()] > >> > >> This is a wrong comparison. A correct one would be an instance of a > generic > >> subroutine vs. an inlined subroutine and, note, when the type is > statically > >> known. > > > >sort<int>() vs. sort_ints()? In that case the performance should really be > >exactly the same (since as you say, it really *is* to a large extent just a > >bunch of text substitution :-). The benefit is that you don't need to > >rewrite or copy/paste the code over and over for each unique type, the > >compiler does it automatically (while maintaining full type safety, unlike > >dumb macros) -- and better yet, when you fix a bug in the generic version, > >it is immediately fixed for all instantiations automatically (vs. > >sort_ints(), sort_floats(), sort_strings(), sort_xyz()) > > This is an advantage of generics over blind preprocessing. The problem > is whether same can be achieved without both. > > Consider class-wide sort written for all arrays derived from some > abstract array of comparable elements. If that sort is inlined, then > then compiler theoretically would have all necessary information to > make code as efficient as generic sort could. Presently it is > impossible in both Ada and C++. But then to be sortable the element type would have be derived from some "Comparable" base type. And to be stored in a hash table, they would have to be derived from a "Hashable" base type. And to be used with some generic mathematical algorithm they would have to be derived from an "Arithmetic" base type... ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-21 18:55 ` Kevin Cline @ 2003-01-23 11:00 ` Dmitry A. Kazakov 2003-01-23 16:27 ` Hyman Rosen 2003-01-27 16:04 ` Kevin Cline 0 siblings, 2 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-23 11:00 UTC (permalink / raw) On 21 Jan 2003 10:55:36 -0800, kcline17@hotmail.com (Kevin Cline) wrote: >Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote in message news:<ga3q2vkds5akg0iaommdaniqp3ubo293pl@4ax.com>... >> On Tue, 21 Jan 2003 02:10:37 GMT, "Hillel Y. Sims" >> <usenet@phatbasset.com> wrote: >> >> >"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message >> >news:b0e5vu$ognn6$1@ID-77047.news.dfncis.de... >> >> Hillel Y. Sims wrote: >> >> >> [templated C++ sort() is faster than qsort()] >> >> >> >> This is a wrong comparison. A correct one would be an instance of a >> generic >> >> subroutine vs. an inlined subroutine and, note, when the type is >> statically >> >> known. >> > >> >sort<int>() vs. sort_ints()? In that case the performance should really be >> >exactly the same (since as you say, it really *is* to a large extent just a >> >bunch of text substitution :-). The benefit is that you don't need to >> >rewrite or copy/paste the code over and over for each unique type, the >> >compiler does it automatically (while maintaining full type safety, unlike >> >dumb macros) -- and better yet, when you fix a bug in the generic version, >> >it is immediately fixed for all instantiations automatically (vs. >> >sort_ints(), sort_floats(), sort_strings(), sort_xyz()) >> >> This is an advantage of generics over blind preprocessing. The problem >> is whether same can be achieved without both. >> >> Consider class-wide sort written for all arrays derived from some >> abstract array of comparable elements. If that sort is inlined, then >> then compiler theoretically would have all necessary information to >> make code as efficient as generic sort could. Presently it is >> impossible in both Ada and C++. > >But then to be sortable the element type would have be derived from >some "Comparable" base type. And to be stored in a hash table, >they would have to be derived from a "Hashable" base type. And to be >used with some generic mathematical algorithm they would have to >be derived from an "Arithmetic" base type... Yes of course. Derived here means only "implements interface of". It is also an advantage over generics, because with templates you never know if the actual type is "Hashable", until you instantiate all functions using all methods of "Hashable". And even so, nobody can say whether these methods really comprise a "Hashable" type or they just have similar names and the profiles appropriate to go through the compiler. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-23 11:00 ` Dmitry A. Kazakov @ 2003-01-23 16:27 ` Hyman Rosen 2003-01-25 11:53 ` Dmitry A. Kazakov 2003-01-27 16:04 ` Kevin Cline 1 sibling, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-23 16:27 UTC (permalink / raw) Dmitry A. Kazakov wrote: > with templates you never know if the actual type is "Hashable", > until you instantiate all functions using all methods of "Hashable". You also don't *care* if the actual type supports all methods of "Hashable" if you don't use them! > And even so, nobody can say whether these methods really comprise > a "Hashable" type or they just have similar names and the profiles > appropriate to go through the compiler. Nobody can say whether something that inherits from "Hashable" has implemented the methods correctly. For example, I could have a type that I think will never actually go into a hashtable but must be "Hashable" for some reason, so I implement its hashing method to just return zero. Then someone decides to put it into a table after all... By the way, you might find the following link interetsing. <http://spirit.sourceforge.net/index.php?doc=docs/v1_5/introduction.html> It's a recursive descent parsing system designed using C++ template metaprogramming. There are a few places where the code uses inheritance and virtual dispatch, but only to get around C++'s limitations in naming a type based on an expression. The author complains about how virtual methods get in the way of efficient code. The problem is that we want to abe able to say 'declare variable = expression' and have the type of the variable be the type of the expression. Because C++ instantiates generics automatically, and as you saw in the Unit code I posted, can synthesize return types, it's difficult to examine an expression and write out its type, even though the compiler has no trouble doing so. To work around this, you can create a placeholder type which can hold any kind of expression of interest, but then this forces you into dispatch mode instead of generic mode. It's especially annoying because all the facilities are already present in the language - if you declare template <typename T> void func(const T &) { }, and call func(expression), the compiler deduces the expression type, and it's available inside func. But there's no way to get it out, that is, to use the same type deduction to declare a variable of the appropriate type, outside of the function. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-23 16:27 ` Hyman Rosen @ 2003-01-25 11:53 ` Dmitry A. Kazakov 2003-01-26 6:32 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-25 11:53 UTC (permalink / raw) Hyman Rosen wrote: > Dmitry A. Kazakov wrote: >> with templates you never know if the actual type is "Hashable", > > until you instantiate all functions using all methods of "Hashable". > > You also don't *care* if the actual type supports all methods of > "Hashable" if you don't use them! What of I don't care now, might become a nightmare for somebody other 5 years later. What is [arguable] good for C++ is inacceptable for Ada. But the point is: you cannot rely on specifications in case of templates. There are no specifications [of the type set] at all. To verify the code using templates, you have to look into the bodies of the template functions. >> And even so, nobody can say whether these methods really comprise > > a "Hashable" type or they just have similar names and the profiles > > appropriate to go through the compiler. > > Nobody can say whether something that inherits from "Hashable" has > implemented the methods correctly. For example, I could have a type > that I think will never actually go into a hashtable but must be > "Hashable" for some reason, so I implement its hashing method to > just return zero. Then someone decides to put it into a table after > all... This is an intentionally made semantic fault, sabotage if you want. (:-)) If you do not plan to put a type into a hash table, why should it be "Hashable"? That is the crucial point. If someone, later decides that your type has to be "Hashable" it will be his responsibility to do so. My idea (rather a dream (:-)), is that he will be able to create a "bridge" type, which will be a subtype of "Hashable" and a supertype of your type. Doing so, he will be obliged to override the abstract hashing method of "Hashable". > By the way, you might find the following link interetsing. > <http://spirit.sourceforge.net/index.php?doc=docs/v1_5/introduction.html> > It's a recursive descent parsing system designed using C++ template > metaprogramming. There are a few places where the code uses inheritance > and virtual dispatch, but only to get around C++'s limitations in naming > a type based on an expression. The author complains about how virtual > methods get in the way of efficient code. The problem is that we want to > abe able to say 'declare variable = expression' and have the type of the > variable be the type of the expression. Because C++ instantiates generics > automatically, and as you saw in the Unit code I posted, can synthesize > return types, it's difficult to examine an expression and write out its > type, even though the compiler has no trouble doing so. To work around > this, you can create a placeholder type which can hold any kind of > expression of interest, but then this forces you into dispatch mode > instead of generic mode. It's especially annoying because all the > facilities are already present in the language - if you declare > template <typename T> void func(const T &) { }, and call func(expression), > the compiler deduces the expression type, and it's available inside func. > But there's no way to get it out, that is, to use the same type deduction > to declare a variable of the appropriate type, outside of the function. Thank you for the interesting reference. BTW another almost-have-it in C++. Let, we want subtypes having alternative representations, like in case Ellipse<-Cricle. C++ almost has it: class Ellipse { public : double X; double Y; Ellipse (double X, double Y) : X (X), Y (Y) {} }; class Circle // Not derived from Ellipse to get rid of X and Y { public : double Radius; Circle (double Radius) : Radius (Radius) {} Circle (const Circle& Object) : Radius (Object.Radius) {} Circle (const Ellipse& Object) : Radius (Object.X) { if (Radius != Object.Y) throw NotACircle; } operator Ellipse () const { return Ellipse (Radius, Radius); } }; Unfortunately in most cases Circle will never be converted to Ellipse and back, even though the compiler has everything for that. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-25 11:53 ` Dmitry A. Kazakov @ 2003-01-26 6:32 ` Hyman Rosen 2003-01-27 10:11 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-26 6:32 UTC (permalink / raw) Dmitry A. Kazakov wrote: > To verify the code using templates, you have to look into the > bodies of the template functions. You just have to read the documentation, just like any other function with preconditions. > If you do not plan to put a type into a hash table, why should it be > "Hashable"? Because in the absence of multiple inheritance, there is a tendency to "pile on" stuff that might be useful, because it's hard to add later? > Unfortunately in most cases Circle will never be converted to Ellipse and > back, even though the compiler has everything for that. Why? It looks like you wrote the code correctly to do just that. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-26 6:32 ` Hyman Rosen @ 2003-01-27 10:11 ` Dmitry A. Kazakov 2003-01-27 15:08 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-27 10:11 UTC (permalink / raw) On Sun, 26 Jan 2003 06:32:35 GMT, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> To verify the code using templates, you have to look into the > > bodies of the template functions. > >You just have to read the documentation, just like any other >function with preconditions. If nothing other helps, please, read the documentation! (:-)) Precondition is a part of the specification, not body. Let you change the body in a way that it will use an operation with was not used before. Then one should revise all the code that uses this body. With proper DbC you should check only the contracts and most of these checks does the compiler. In other words, "Hashable" has to be a type property, while with generics it is rather a property of the given compilation. >> If you do not plan to put a type into a hash table, why should it be >> "Hashable"? > >Because in the absence of multiple inheritance, there is a tendency >to "pile on" stuff that might be useful, because it's hard to add later? Yes and that is absolutely wrong. Thick base classes is an evil caused by absense of MI, lack of supertyping and overuse of representation inheritable. >> Unfortunately in most cases Circle will never be converted to Ellipse and >> back, even though the compiler has everything for that. > >Why? It looks like you wrote the code correctly to do just that. If I define a method or a free a procedure on Ellipse: void Foo (Ellipse& A); then the compiler will not substitute a Circle for Ellipse. Because it has first to convert Circle to Ellipse, then apply the procedure and then to convert the result back. It is similar to what Ada does with by-value parameters or when an in out parameter is explicitly converted like in: Get_Real (Float (Some_Integer)); --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-27 10:11 ` Dmitry A. Kazakov @ 2003-01-27 15:08 ` Hyman Rosen 2003-01-28 8:27 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-27 15:08 UTC (permalink / raw) Dmitry A. Kazakov wrote: > If I define a method or a free a procedure on Ellipse: > void Foo (Ellipse& A); > then the compiler will not substitute a Circle for Ellipse. Oh, You want to do *that* :-) It's an odd sort of thing to want to do, but if you did, you wouldn't do it with copy-in/ copy-out, at least in C++. If I had to, I would do it like this, in typical OO fashion: struct EllipseInterface { virtual void set(double x, double y) = 0; virtual void get(double &x, double &y) const = 0; }; class Ellipse : public EllipseInterface { double X, Y; public: Ellipse(double x, double y) : X(x), Y(y) { } void set(double x, double y) { X = x; Y = y; } void get(double &x, double &y) const { x = X; y = Y; } }; class Circle : public EllipseInterface { double R; public: struct NotCircle { }; Circle(double r) : R(r) { } void set(double x, double y) { R = x == y ? x : throw NotCircle(); } void get(double &x, double &y) const { x = R; y = R; } }; void Foo (EllipseInterface &A); ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-27 15:08 ` Hyman Rosen @ 2003-01-28 8:27 ` Dmitry A. Kazakov 2003-01-28 15:48 ` Kevin Cline 2003-01-28 17:11 ` Hyman Rosen 0 siblings, 2 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-28 8:27 UTC (permalink / raw) On Mon, 27 Jan 2003 10:08:17 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> If I define a method or a free a procedure on Ellipse: >> void Foo (Ellipse& A); >> then the compiler will not substitute a Circle for Ellipse. > >Oh, You want to do *that* :-) Surely, isn't Circle an Ellipse? (:-)) > It's an odd sort of thing to >want to do, but if you did, you wouldn't do it with copy-in/ >copy-out, at least in C++. If I had to, I would do it like this, >in typical OO fashion: > >struct EllipseInterface >{ > virtual void set(double x, double y) = 0; > virtual void get(double &x, double &y) const = 0; >}; > >class Ellipse : public EllipseInterface >{ > double X, Y; >public: > Ellipse(double x, double y) : X(x), Y(y) { } > void set(double x, double y) { X = x; Y = y; } > void get(double &x, double &y) const { x = X; y = Y; } >}; > >class Circle : public EllipseInterface >{ > double R; >public: > struct NotCircle { }; > Circle(double r) : R(r) { } > void set(double x, double y) { R = x == y ? x : throw NotCircle(); } > void get(double &x, double &y) const { x = R; y = R; } >}; > >void Foo (EllipseInterface &A); But that's another thing. Here, Circle cannot use (inherit) the methods of Ellipse. It inherits only the abstract methods of EliipseInterface and thus, have to implement all of them for scratch. This kills the whole idea of inheritance for code reuse. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-28 8:27 ` Dmitry A. Kazakov @ 2003-01-28 15:48 ` Kevin Cline 2003-01-28 16:29 ` Dmitry A. Kazakov 2003-01-28 17:11 ` Hyman Rosen 1 sibling, 1 reply; 337+ messages in thread From: Kevin Cline @ 2003-01-28 15:48 UTC (permalink / raw) Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote in message news:<3afc3v4uur2kvd53v4ul18b5npjfm188o3@4ax.com>... > But that's another thing. Here, Circle cannot use (inherit) the > methods of Ellipse. It inherits only the abstract methods of > EliipseInterface and thus, have to implement all of them for scratch. > This kills the whole idea of inheritance for code reuse. I thought that idea was dead many years ago, when it was discovered that failure to separate interface and implementation leads to a mess. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-28 15:48 ` Kevin Cline @ 2003-01-28 16:29 ` Dmitry A. Kazakov 2003-01-28 17:14 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-28 16:29 UTC (permalink / raw) On 28 Jan 2003 07:48:37 -0800, kcline17@hotmail.com (Kevin Cline) wrote: >Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote in message news:<3afc3v4uur2kvd53v4ul18b5npjfm188o3@4ax.com>... > >> But that's another thing. Here, Circle cannot use (inherit) the >> methods of Ellipse. It inherits only the abstract methods of >> EliipseInterface and thus, have to implement all of them for scratch. >> This kills the whole idea of inheritance for code reuse. > >I thought that idea was dead many years ago, when it was discovered >that failure to separate interface and implementation leads to a mess. Why do you think that making related types [Ellipse and Circle] siblings (i.e. in fact unrelated) should provide the separation? --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-28 16:29 ` Dmitry A. Kazakov @ 2003-01-28 17:14 ` Hyman Rosen 2003-01-29 8:28 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-28 17:14 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Why do you think that making related types [Ellipse and Circle] > siblings (i.e. in fact unrelated) should provide the separation? Why do you think that the program objects Ellipse and Circle are related (as opposed to the mathematical objects, that is)? After all, mathematical objects are immutable. You have a circle with a given radius, or an ellipse with given axes. They don't come with knobs. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-28 17:14 ` Hyman Rosen @ 2003-01-29 8:28 ` Dmitry A. Kazakov 0 siblings, 0 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-29 8:28 UTC (permalink / raw) On Tue, 28 Jan 2003 12:14:43 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> Why do you think that making related types [Ellipse and Circle] >> siblings (i.e. in fact unrelated) should provide the separation? > >Why do you think that the program objects Ellipse and Circle are >related (as opposed to the mathematical objects, that is)? Because program objects are used to model the mathematical ones. The mathematical fact that circle is an ellipse makes possible substitutability (limited of course) of the corresponding model objects in programming language, which in turn is the basis of code reuse. >After all, mathematical objects are immutable. So what? All values are immutable as well. If you think that immutability implies absolute substitutability, then you are wrong. It is a common delusion. >You have a circle with >a given radius, or an ellipse with given axes. They don't come >with knobs. If you do not like Circle and Ellipse, take int and float in C++. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-28 8:27 ` Dmitry A. Kazakov 2003-01-28 15:48 ` Kevin Cline @ 2003-01-28 17:11 ` Hyman Rosen 2003-01-29 8:37 ` Dmitry A. Kazakov 1 sibling, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-28 17:11 UTC (permalink / raw) Dmitry A. Kazakov wrote: > But that's another thing. Here, Circle cannot use (inherit) the > methods of Ellipse. It inherits only the abstract methods of > EliipseInterface and thus, have to implement all of them for scratch. > This kills the whole idea of inheritance for code reuse. It's just the way I wrote it here, because I figured Circle didn't need to store two doubles, just one. It could have inherited directly from Ellipse if I'd wanted it that way: class Circle : public Ellipse { public: struct NotCircle() { } Circle(double r) : Ellipse(r, r) { } void set(double x, double y) { if (x != y) throw NotCircle(); Ellipse::set(x, y); } }; Someone can sabotage this version though, by taking a Circle and calling its Ellipse::set method directly. In my other version, that couldn't happen. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-28 17:11 ` Hyman Rosen @ 2003-01-29 8:37 ` Dmitry A. Kazakov 2003-01-29 15:44 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-29 8:37 UTC (permalink / raw) On Tue, 28 Jan 2003 12:11:50 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> But that's another thing. Here, Circle cannot use (inherit) the >> methods of Ellipse. It inherits only the abstract methods of >> EliipseInterface and thus, have to implement all of them for scratch. >> This kills the whole idea of inheritance for code reuse. > >It's just the way I wrote it here, because I figured Circle >didn't need to store two doubles, just one. It could have >inherited directly from Ellipse if I'd wanted it that way: That's the whole point. We want to inherit from Ellipse (non-abstract) some of its methods, but we do not want to inherit the representation (two doubles). Of course, if you change the representation, you lose view conversions and thus an ability to pass Circle by-reference where an Ellipse is required. You have to pass it by-copy instead. C++ cannot this, it lacks in out parameters, but Ada well can. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-29 8:37 ` Dmitry A. Kazakov @ 2003-01-29 15:44 ` Hyman Rosen 2003-01-29 21:34 ` Mark Biggar 2003-01-30 8:09 ` Dmitry A. Kazakov 0 siblings, 2 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-29 15:44 UTC (permalink / raw) Dmitry A. Kazakov wrote: > That's the whole point. We want to inherit from Ellipse (non-abstract) > some of its methods, but we do not want to inherit the representation > (two doubles). I don't understand what you are trying to accomplish. If you want to inherit method implementation, how can this not be tied to object representation? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-29 15:44 ` Hyman Rosen @ 2003-01-29 21:34 ` Mark Biggar 2003-01-29 22:54 ` Hyman Rosen 2003-01-30 8:09 ` Dmitry A. Kazakov 1 sibling, 1 reply; 337+ messages in thread From: Mark Biggar @ 2003-01-29 21:34 UTC (permalink / raw) Hyman Rosen wrote: > Dmitry A. Kazakov wrote: > >> That's the whole point. We want to inherit from Ellipse (non-abstract) >> some of its methods, but we do not want to inherit the representation >> (two doubles). > > > I don't understand what you are trying to accomplish. > If you want to inherit method implementation, how can > this not be tied to object representation? > What is going on here is the fundamential paradox of OO systems. It often happens that the direction of substutibility inheritence and implementation inheritence are opposite to each other. For example, you would normally like class Integer to be a subclass of class Float because you want to be able to use an Integer anywhere you can use a Float. But, given methods in class Float like Get_Exponent you want to implement class Float using Class Integer. Oops, you can't do both. In general there are four ways two classes can be related to each other in an OO system. I. class A isa class B you can use a A anywhere you can use an B In Ada terms this is "type A is new B ..." II. class A is implemented as class B each instance of class A is implemeted under the covers as an instance of class B, but you have provided a completely different interface. E.G., class Stack is implemented using class Array, but you access it via push and pop instead of indexing. type A is private; private type A is new B ...; III. class A contains class B. Class A has a visible member of type class B plus some other stuff. type A is record B_mem: B; ... end record; 1V. class A is not related ot class B at all. included of completeness. Unfortunately I and II can be in conflict like Integer and Float above and you end up wiht an unresolvable circular dependency and so must give up one or the other. -- Mark Biggar mark.a.biggar@attbi.com ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-29 21:34 ` Mark Biggar @ 2003-01-29 22:54 ` Hyman Rosen 2003-01-30 9:03 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-29 22:54 UTC (permalink / raw) Mark Biggar wrote: > What is going on here is the fundamential paradox of OO systems. The OO lesson notwithstanding, I still don't see how anyone thinks they can inherit method implementations while not inheriting data representations. Aren't the methods inextricably tied to the data they manipulate? And this whole "isa" business is just a matter of what methods the classes implement. A Circle "isa" Ellipse as long as the interface doesn't include changing the axes. I think the main problem is that people are thinking instead of programming. What is going on here is the fundamental mistake of OO systems, which is imagining that these things that you are writing in order to get a computer program to produce a useful result have all the properties of the things whose names they bear, rather than the tiny subset which is implemented. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-29 22:54 ` Hyman Rosen @ 2003-01-30 9:03 ` Dmitry A. Kazakov 2003-01-30 14:59 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-30 9:03 UTC (permalink / raw) On Wed, 29 Jan 2003 17:54:02 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Mark Biggar wrote: >> What is going on here is the fundamential paradox of OO systems. > >The OO lesson notwithstanding, I still don't see how >anyone thinks they can inherit method implementations >while not inheriting data representations. Aren't the >methods inextricably tied to the data they manipulate? Yes. But if you inherit a method it does not necessarily mean that this is the *same* method. Even in case of "class Circle : public Ellipse", when you call Ellipse::Foo on a Circle, the compiler will *add* some code to convert view. This means, that even if not overridden Circle::Foo is not Ellipse::Foo. Now, consider that this additional code not just shifts a reference, but creates a new object (Ellipse). In this case the representation of Circle can be any. >And this whole "isa" business is just a matter of what >methods the classes implement. A Circle "isa" Ellipse >as long as the interface doesn't include changing the >axes. Circle is substitutable in all in-methods of Ellipse. But does it mean that we should not use out-methods? Consider: subtype Non_Negative is Float range 0.0..Float'Last; Would you reimplement "-" for Non_Negative just because Non_Negative is not "isa" Float? [the result of "-" is an out-parameter] Surely not, you would just catch Constraint_Error as necessary. >I think the main problem is that people are >thinking instead of programming. (:-)) IMO the main problem that people are programming without thinking! >What is going on here >is the fundamental mistake of OO systems, which is >imagining that these things that you are writing in >order to get a computer program to produce a useful >result have all the properties of the things whose >names they bear, rather than the tiny subset which is >implemented. Absolutely. LSP cannot be enforced in all contexts. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-30 9:03 ` Dmitry A. Kazakov @ 2003-01-30 14:59 ` Hyman Rosen 2003-01-30 16:32 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-30 14:59 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Now, consider that this additional code not just shifts > a reference, but creates a new object (Ellipse). I suppose a language could define this copy-in/copy-out stuff with conversions. I don't know how useful it would be, but I guess I could be convinced with a compelling example. I would point out that this is completely orthogonal to OO. That is, the only relationship that needs to exist between the two types is for them to be interconvertible. That you want this implies that you are a secret C++ programmer :-) > subtype Non_Negative is Float range 0.0..Float'Last; > > Would you reimplement "-" for Non_Negative just because Non_Negative > is not "isa" Float? I'm a little puzzled. I would try to arrange for "-" NN -> NN to be undefined, and for "-" NN -> Float to have its obvious meaning. I don't know what Ada allows in this case, but that's what I want. > Surely not, you would just catch Constraint_Error as necessary. Surely not, why would I want exceptions raised at run-time for errors that should be prevented at compile-time? > Absolutely. LSP cannot be enforced in all contexts. I don't think you grasped my meaning. I mean that LSP should be decided based on the implemented properties of the programmed objects, not on the abstract or real-world objects that they (partially) model. You can group your properties into subsets, which become interfaces, and then code which operates on these objects can choose to receive the smallest set of interfaces that it needs. I think this is why the C++ template model is so appealing. C++ template functions *automatically* require only the properties they actually use, so you don't need to do an a priori factorization of properties into subsets. I know you object to the fact that the set of used properties is specified only implicitly, and is therefore subject to accidental change, but the positive side is there as well. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-30 14:59 ` Hyman Rosen @ 2003-01-30 16:32 ` Dmitry A. Kazakov 2003-01-30 17:58 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-30 16:32 UTC (permalink / raw) On Thu, 30 Jan 2003 09:59:42 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> Now, consider that this additional code not just shifts >> a reference, but creates a new object (Ellipse). > >I suppose a language could define this copy-in/copy-out >stuff with conversions. I don't know how useful it would >be, but I guess I could be convinced with a compelling >example. Consider Unbounded_String, Bounded_String, String. Why one cannot be a subtype of another? In my view it is very reasonable, because all of them are in fact just different representation of the same concept of "array of characters". And a representation has to be no issue. >I would point out that this is completely >orthogonal to OO. No, it is an extension of OO and ADT. It is a simple consequence of the principle that interface and implementation have to be separated. >That is, the only relationship that >needs to exist between the two types is for them to be >interconvertible. This what you require by saying: class Circle : public Ellipse. namely that Circle is convertible to Ellipse and back. The conversions might be empty, but it is more general approach to think that they are always present. >That you want this implies that you >are a secret C++ programmer :-) C++ defines some conversion of this type, but it does not allow me to define my own type relations. The former is bad because, I do not want these conversions. The latter is just OO. >> subtype Non_Negative is Float range 0.0..Float'Last; >> >> Would you reimplement "-" for Non_Negative just because Non_Negative >> is not "isa" Float? > >I'm a little puzzled. I would try to arrange for "-" NN -> NN >to be undefined, and for "-" NN -> Float to have its obvious >meaning. I don't know what Ada allows in this case, but that's >what I want. Well, but "-" has covariant result, so either you immediately violate LSP with the consequence that NN will be unusable, or like Ada does, define "-": NN x NN -> NN in a most reasonable way. >> Surely not, you would just catch Constraint_Error as necessary. > >Surely not, why would I want exceptions raised at run-time for >errors that should be prevented at compile-time? Because, you cannot detect all substitutability violations at compile-time. You might well define "-" contravariant, but this medicine is even worse than the illnes. >> Absolutely. LSP cannot be enforced in all contexts. > >I don't think you grasped my meaning. I mean that LSP should be >decided based on the implemented properties of the programmed >objects, not on the abstract or real-world objects that they >(partially) model. You can group your properties into subsets, >which become interfaces, and then code which operates on these >objects can choose to receive the smallest set of interfaces >that it needs. I think this is why the C++ template model is so >appealing. C++ template functions *automatically* require only >the properties they actually use, so you don't need to do an >a priori factorization of properties into subsets. I know you >object to the fact that the set of used properties is specified >only implicitly, and is therefore subject to accidental change, >but the positive side is there as well. This could be an option if the software were never modified. In the real world you would like to have as much compile-time checks as possible, even for errors which will never occur in the given version of the program. You never know in which direction the code will evolve. And there is no better mechanism for compile-time checks than the type system. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-30 16:32 ` Dmitry A. Kazakov @ 2003-01-30 17:58 ` Hyman Rosen 2003-01-31 8:31 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-30 17:58 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Consider Unbounded_String, Bounded_String, String. Why one cannot be a > subtype of another? In my view it is very reasonable, because all of > them are in fact just different representation of the same concept of > "array of characters". And a representation has to be no issue. You see, that's exactly what I'm talking about. You get lost because you're thinking about "concepts" instead of the nuts and bolts of the string types themselves. Ada is not an OO language in its entirety, and some of those strings are just arrays, so you're not going to get subtyping in the way you want. If there are operations common to all types, you should be able to capture that in generics. > No, it is an extension of OO and ADT. It is a simple consequence of > the principle that interface and implementation have to be separated. I don't see that at all. You want language support for the notion that if an object of type A can be converted to an object of type B, and vice versa, than a function which operates on one should automatically operate on the other using convert-in/convert-out. I do not see at all what this has to do with any of OO, ADT, or separation. > This what you require by saying: > class Circle : public Ellipse. > namely that Circle is convertible to Ellipse and back. No one else thinks that this is what A : B means, though. You would be better off if you stopped trying to overload everyone's understanding of inheritance with a new concept that no one associates with that. > C++ does not allow me to define my own type relations. Well, not for convert-in/convert-out, but plenty else. To do what you want, you can do struct A { struct BehaveLikeB : B { A &object; BehaveLikeB(A &o) : object(o) { } // Implement B methods, affecting A object }; BehaveLikeB likeB; A() : likeB(*this) { } B &asB() { return likeB; } }; void foo(B &); A anA; foo(anA.asB()); > define "-": NN x NN -> NN in a most reasonable way. Oh, sorry about that. For some reason my brain was saying unary minus, not subtraction. Yes, for subtraction throwing a constraint error is the way to go. > This could be an option if the software were never modified. In the > real world you would like to have as much compile-time checks as > possible, even for errors which will never occur in the given version > of the program. You never know in which direction the code will > evolve. And there is no better mechanism for compile-time checks than > the type system. But the template system gives you complete type safety, and compile-time checks! If you modify the code to use an unavailable operation, the compiler will tell you. All your method does is add an additional set of things that the types must be able to do even though the code doesn't need those operations. It is no more future- proof than the template version, because you do not know for sure that you will never need to add methods to the interface. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-30 17:58 ` Hyman Rosen @ 2003-01-31 8:31 ` Dmitry A. Kazakov 2003-01-31 15:02 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-31 8:31 UTC (permalink / raw) On Thu, 30 Jan 2003 12:58:27 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> Consider Unbounded_String, Bounded_String, String. Why one cannot be a >> subtype of another? In my view it is very reasonable, because all of >> them are in fact just different representation of the same concept of >> "array of characters". And a representation has to be no issue. > >You see, that's exactly what I'm talking about. You get lost >because you're thinking about "concepts" instead of the nuts >and bolts of the string types themselves. Ada is not an OO >language in its entirety, and some of those strings are just >arrays, so you're not going to get subtyping in the way you >want. I never said that Ada can this. >If there are operations common to all types, you should >be able to capture that in generics. Of course no. Generics are unable to make String a subtype of Unbounded_String. >> No, it is an extension of OO and ADT. It is a simple consequence of >> the principle that interface and implementation have to be separated. > >I don't see that at all. You want language support for the >notion that if an object of type A can be converted to an >object of type B, and vice versa, Any OO language does this. > than a function which >operates on one should automatically operate on the other Only if it is inherited. >using convert-in/convert-out. Ada does this. >I do not see at all what this >has to do with any of OO, ADT, or separation. The point was that subtyping relation and substitutablity have nothing to do with the representation of the objects. As expected, if you separate interface and implementation. >> This what you require by saying: >> class Circle : public Ellipse. >> namely that Circle is convertible to Ellipse and back. > >No one else thinks that this is what A : B means, though. >You would be better off if you stopped trying to overload >everyone's understanding of inheritance with a new concept >that no one associates with that. Where you see a new concept? Circle and Ellise are two different types. So if you want make an Ellipse out of a Circle you must convert it. In Ada such conversions are called view-conversions. >> define "-": NN x NN -> NN in a most reasonable way. > >Oh, sorry about that. For some reason my brain was saying >unary minus, not subtraction. Yes, for subtraction throwing >a constraint error is the way to go. Now tell me why for SetAxis : Circle x R x R -> Circle it is not reasonable to throw an exception? Do not you see that NN vs. Float is same as Circle vs. Ellipse? In both cases you produce a new [sub]type by constraining the base type. This says nothing about the representation of both. >> This could be an option if the software were never modified. In the >> real world you would like to have as much compile-time checks as >> possible, even for errors which will never occur in the given version >> of the program. You never know in which direction the code will >> evolve. And there is no better mechanism for compile-time checks than >> the type system. > >But the template system gives you complete type safety, >and compile-time checks! If you modify the code to use >an unavailable operation, the compiler will tell you. >All your method does is add an additional set of things >that the types must be able to do even though the code >doesn't need those operations. It is no more future- >proof than the template version, because you do not know >for sure that you will never need to add methods to the >interface. Sort of: template <double X> double sine () { return X; } // // Works pretty well, as long X is close to zero // --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-31 8:31 ` Dmitry A. Kazakov @ 2003-01-31 15:02 ` Hyman Rosen 2003-01-31 16:12 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-31 15:02 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Of course no. Generics are unable to make String a subtype of > Unbounded_String. Ada generics, which labor under the restriction of needing to specify things about the types on which they operate, not C++ templates, which work as long as used operations are supported. > Any OO language does this. Ada does not, C++ does not, I don't know for sure but I think Eiffel does not. Smalltalk, maybe? > Only if it is inherited. Why? Since you're converting, what possible relevance is there to requiring that the operation be present in both types? > Ada does this. Really? It does convert-in/convert-out of different types? I've never seen that before. Can you show me sample code? > Where you see a new concept? Circle and Ellise are two different > types. So if you want make an Ellipse out of a Circle you must convert > it. In Ada such conversions are called view-conversions. As I said, no one else sees it this way. The normal OO view of things is that if type B inherits from type A, then an object of type B is also of type A. No conversion is required - the object is already all of its base types. > Now tell me why for SetAxis : Circle x R x R -> Circle it is not > reasonable to throw an exception? Do not you see that NN vs. Float > is same as Circle vs. Ellipse? It is reasonable to do so if you must have your Circle put into places that expect modifiable Ellipses. But I believe the general feeling is that having subtypes which restrict the legality of parent operations in this way is not good design. I suppose Eiffel fans will disagree with this, since they seem to love the idiom of inheriting operations but only allowing the new subtype as an argument. Shudder. Java uses this style as well, with all sorts of operations in subtypes throwing not-implemeneted exceptions. > Sort of: > template <double X> double sine () { return X; } > // Works pretty well, as long X is close to zero Actually, C++ template parameters can't be doubles, but why is this any worse, or different, than #include <iostream> #include <cmath> struct SineInterface { virtual double operator()(double) const = 0; }; struct SmallSine : SineInterface { double operator()(double x) const { return x; } }; struct RealSine : SineInterface { double operator()(double x) const { return std::sin(x); } }; void UsesSine(const SineInterface &si1, const SineInterface &si2) { for (double x = 0; x < 1e-5; x += 1e-7) std::cout << x << ' ' << si1(x) << ' ' << si2(x) << '\n'; } int main() { UsesSine(SmallSine(), RealSine()); } ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-31 15:02 ` Hyman Rosen @ 2003-01-31 16:12 ` Dmitry A. Kazakov 2003-01-31 17:11 ` Hyman Rosen 2003-02-04 7:04 ` AG 0 siblings, 2 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-31 16:12 UTC (permalink / raw) On Fri, 31 Jan 2003 10:02:15 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> Of course no. Generics are unable to make String a subtype of >> Unbounded_String. > >Ada generics, which labor under the restriction of needing to >specify things about the types on which they operate, not C++ >templates, which work as long as used operations are supported. I do not see how this would make one substitutable for another. >> Any OO language does this. > >Ada does not, C++ does not, I don't know for sure but I think >Eiffel does not. Smalltalk, maybe? Thunk code. >> Only if it is inherited. > >Why? Since you're converting, what possible relevance is there >to requiring that the operation be present in both types? I do not want flawed implicit type conversions. I want sub- and supertyping. If an implementation of sub-/supertyping is based on some conversions, I do not care. >> Ada does this. > >Really? It does convert-in/convert-out of different types? >I've never seen that before. Can you show me sample code? procedure Query (X : in out Float); -- The initial value is used as a default ... I : Integer := 10; begin Query (Float (I)); >> Where you see a new concept? Circle and Ellise are two different >> types. So if you want make an Ellipse out of a Circle you must convert >> it. In Ada such conversions are called view-conversions. > >As I said, no one else sees it this way. The normal OO view of >things is that if type B inherits from type A, then an object >of type B is also of type A. A given object may have only one type. >No conversion is required - the >object is already all of its base types. Sure? Try this: class A { public : int A_Field; }; class B { public : int B_Field; }; class C : public A, public B (}; A X; C Y; memcpy (&X, &Y, sizeof (Y)); If C is A why memcpy does not work? >> Now tell me why for SetAxis : Circle x R x R -> Circle it is not >> reasonable to throw an exception? Do not you see that NN vs. Float >> is same as Circle vs. Ellipse? > >It is reasonable to do so if you must have your Circle put into >places that expect modifiable Ellipses. But I believe the general >feeling is that having subtypes which restrict the legality of >parent operations in this way is not good design. I do not belive you, because the whole science is built using the principle of specialization by constraining. You could send a proposal to ARG to remove things like: subtype Positive is Integer range 0..Integer'Last; from Ada, but I do not think it will gain much support. (:-)) >I suppose >Eiffel fans will disagree with this, since they seem to love the >idiom of inheriting operations but only allowing the new subtype >as an argument. Shudder. Java uses this style as well, with all >sorts of operations in subtypes throwing not-implemeneted exceptions. Unfortunately there is no way out. An ability to constrain has its price. >> Sort of: >> template <double X> double sine () { return X; } >> // Works pretty well, as long X is close to zero > >Actually, C++ template parameters can't be doubles, but why is >this any worse, or different, than > >#include <iostream> >#include <cmath> > >struct SineInterface >{ virtual double operator()(double) const = 0; }; >struct SmallSine : SineInterface >{ double operator()(double x) const { return x; } }; >struct RealSine : SineInterface >{ double operator()(double x) const { return std::sin(x); } }; > >void UsesSine(const SineInterface &si1, const SineInterface &si2) >{ > for (double x = 0; x < 1e-5; x += 1e-7) > std::cout << x << ' ' << si1(x) << ' ' << si2(x) << '\n'; >} > >int main() >{ > UsesSine(SmallSine(), RealSine()); >} It is not better. My point was: we should check as much as possible at compile-time. Your point was: we should check only things actually used in the given program, as templates do. I gave you an example why it is a bad idea. You responded with another example. So the point stands. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-31 16:12 ` Dmitry A. Kazakov @ 2003-01-31 17:11 ` Hyman Rosen 2003-02-03 9:59 ` Dmitry A. Kazakov 2003-02-04 7:04 ` AG 1 sibling, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-31 17:11 UTC (permalink / raw) Dmitry A. Kazakov wrote: > I do not see how this would make one substitutable for another. This makes it possible to write code that works seamlessly with the different kinds of string, as long as the operations used are common to all of them. In C++ you just write your generic method, and the compiler instantiates it for the types you supply, without you having to tell it anything. > Thunk code. Huh? What does this mean? That thunk code needs to be generated to do what you want? I know that. But things don't work this way in Ada, C++, or Java, at least as far as I know about Ada. > I do not want flawed implicit type conversions. I want sub- and > supertyping. If an implementation of sub-/supertyping is based > on some conversions, I do not care. But as I keep repeating, your concept of sub/supertyping is at odds with the general understanding of this. When you describe what you want, it looks like two-way type conversion is the only thing that is necessaery, so it is natural to ask why inheritance should be involved in this at all. > procedure Query (X : in out Float); > -- The initial value is used as a default > ... > I : Integer := 10; > begin > Query (Float (I)); Cool. More stuff I didn't know about Ada. But to quote from the Ada RM, "If the target type is tagged, then an assignment to the view assigns to the corresponding part of the object denoted by the operand;" so as I've been saying, Ada follows the conventional view that an object is its base type(s), without any conversions needed. The view conversion for a tagged type just winds up pointing at the appropriate subobject. Hmm. the same section continues "otherwise, an assignment to the view assigns to the object, after converting the assigned value to the subtype of the object (which might raise Constraint_Error);" Ada experts - does this mean that each time the Query routine above assigns a value to X it has to know that X is really a view conversion of I, and check for error? Or can it just do the check once at copy-out time? The former would seem to add draconian complexity to subroutines. > A given object may have only one type. Says who? > If C is A why memcpy does not work? Because memcpy yields undefined behavior when copying C++ objects around. On the other hand, X = Y will work perfectly fine. > subtype Positive is Integer range 0..Integer'Last; You know, I used to think that C++ could benefit from having Ada-like subranges. Thanks for opening my eyes :-) > It is not better. My point was: we should check as much as possible at > compile-time. Your point was: we should check only things actually > used in the given program, as templates do. I gave you an example why > it is a bad idea. You responded with another example. So the point > stands. I think I failed to understand your example, then. You say that we should check as much as possible at compile-time, but what does that mean? Perhaps I should require that my types all be able to dance a soft-shoe number, in case I have to give a demo of my code to executives? You claim that there is benefit in requiring that types support unused operations. I don't see what that benefit is, or where you cut off the infinite list of possible operations that a type could conceivably support. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-31 17:11 ` Hyman Rosen @ 2003-02-03 9:59 ` Dmitry A. Kazakov 2003-02-03 13:26 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-03 9:59 UTC (permalink / raw) On Fri, 31 Jan 2003 12:11:03 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> I do not see how this would make one substitutable for another. > >This makes it possible to write code that works seamlessly with >the different kinds of string, as long as the operations used >are common to all of them. In C++ you just write your generic >method, and the compiler instantiates it for the types you >supply, without you having to tell it anything. In this case the types a siblings, not subtypes. BTW generics give us an example of substituatability independent on the type representation. Consider a generic function: generic type X is private; procedure Foo (Arg : X); Here, any "private" is substitutable for Arg. I can be Integer, Float, almost everything. >> Thunk code. > >Huh? What does this mean? That thunk code needs to be generated >to do what you want? To make view conversion when an inherited method is called. > I know that. But things don't work this >way in Ada, C++, or Java, at least as far as I know about Ada. > >> I do not want flawed implicit type conversions. I want sub- and >> supertyping. If an implementation of sub-/supertyping is based > > on some conversions, I do not care. > >But as I keep repeating, your concept of sub/supertyping is at odds >with the general understanding of this. When you describe what you >want, it looks like two-way type conversion is the only thing that >is necessaery, so it is natural to ask why inheritance should be >involved in this at all. It is inheritance in my view. If there are two things present for a method and a type: 1) substitutability (conversions is a way to provide it) 2) automatic substitution [by the compiler] then I say that the method is inherited by the type. >> procedure Query (X : in out Float); >> -- The initial value is used as a default >> ... >> I : Integer := 10; >> begin >> Query (Float (I)); > >Cool. More stuff I didn't know about Ada. But to quote from the Ada RM, > "If the target type is tagged, then an assignment to the view > assigns to the corresponding part of the object denoted by > the operand;" >so as I've been saying, Ada follows the conventional view that an >object is its base type(s), without any conversions needed. The >view conversion for a tagged type just winds up pointing at the >appropriate subobject. "just winds up pointing" *is* a conversion. Imagine that other sorts were allowed too! >Hmm. the same section continues > "otherwise, an assignment to the view assigns to the object, > after converting the assigned value to the subtype of the > object (which might raise Constraint_Error);" > >Ada experts - does this mean that each time the Query routine >above assigns a value to X it has to know that X is really a >view conversion of I, and check for error? Or can it just do >the check once at copy-out time? The former would seem to add >draconian complexity to subroutines. You can do conversions at a call point. That is the whole idea of substitutability. The "inherited" method remains same. You just compose it with apporipriate conversions to and back. >> A given object may have only one type. > >Says who? Me, is that matter? (:-)) There could be many type theories, but the simpliest one is to require that there is only one type of a given value. >> If C is A why memcpy does not work? > >Because memcpy yields undefined behavior when copying >C++ objects around. On the other hand, X = Y will work >perfectly fine. Then you should explain what "is a" does mean. It is definitely not mathematical =, as memcpy shows. It is rather a sort of equivalence. Equivalence in OO is defined as substitutability, which does not necessarily imply equality. So C is not A, C is only substitutable for A, i.e. it is an equivalent to A. >> subtype Positive is Integer range 0..Integer'Last; > >You know, I used to think that C++ could benefit from having >Ada-like subranges. Thanks for opening my eyes :-) > >> It is not better. My point was: we should check as much as possible at >> compile-time. Your point was: we should check only things actually >> used in the given program, as templates do. I gave you an example why >> it is a bad idea. You responded with another example. So the point >> stands. > >I think I failed to understand your example, then. >You say that we should check as much as possible at >compile-time, but what does that mean? Perhaps I >should require that my types all be able to dance a >soft-shoe number, in case I have to give a demo of >my code to executives? You claim that there is benefit >in requiring that types support unused operations. I >don't see what that benefit is, or where you cut off >the infinite list of possible operations that a type >could conceivably support. If you define a type, say, "field". Then you should implement all operations of the field. Otherwise, it is not a field, but a group or something else. So the users of your type would have no delusions about it. If it has interface of a group, why to present it as field? It is just DbC. Ada gives an example of this approach: when you derive from an abstract type, the derived non-abstract type has to implement all abstract operations, no matter whether some of them will never be used. Failure to do that is a *compile-time* error. Same thing with C++ templates produces a "valid" program! (Ada generics are safer in this respect) --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-03 9:59 ` Dmitry A. Kazakov @ 2003-02-03 13:26 ` Hyman Rosen 2003-02-03 16:12 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-02-03 13:26 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Then you should explain what "is a" does mean. It is definitely not > mathematical =, as memcpy shows. Memcpy is not a "mathematical =" but a procedure which copies a bunch of bytes in memory. You won't like my explanation of "is a" becuase it's purely practical - "B is a A" means that a pointer or reference to A may hold a pointer or reference to an object of type B (or a type which "is a B") and may call methods of A using that pointer or reference. > If you define a type, say, "field". But we are not talking about defining a type, but about defining a procedure. This procedure defines an interface implicitly by virtue of the operations it uses. You then claim that this implicit interface needs to be augmented with operations that the procedure doesn't need, and then that types upon which the procedure operates need to have these useless operations, and that this somehow achieves safety! I am just baffled. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-03 13:26 ` Hyman Rosen @ 2003-02-03 16:12 ` Dmitry A. Kazakov 2003-02-03 17:00 ` Hyman Rosen ` (2 more replies) 0 siblings, 3 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-03 16:12 UTC (permalink / raw) On Mon, 03 Feb 2003 08:26:33 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> Then you should explain what "is a" does mean. It is definitely not >> mathematical =, as memcpy shows. > >Memcpy is not a "mathematical =" but a procedure which copies >a bunch of bytes in memory. You won't like my explanation of >"is a" becuase it's purely practical - "B is a A" means that >a pointer or reference to A may hold a pointer or reference to >an object of type B (or a type which "is a B") and may call >methods of A using that pointer or reference. But this is an unsatisfactory definition. It involves pointers and references, you have to define what they are. You have to admit that your "is a" does not work if there are no pointers. Is an integer in a register "is a" an integer in the memory, on a remote host? What does it mean "may call". In FORTRAN-IV you may call a function passing INTEGER*4 instead of REAL.*4! It is much simplier just to say an instance of B is substitutable for a parameter where A is required. With further clarification what "substitutable" means. >> If you define a type, say, "field". > >But we are not talking about defining a type, but about >defining a procedure. But each procedure is related to the type of its parameters. Then a type is a set of values and operations on them. So to define a type is to define these operations as well. >This procedure defines an interface >implicitly by virtue of the operations it uses. This clearly violates DbC principle. The only contract of the procedure is that it takes an object of some known type [+ possibly pre- and postconditions]. The type of the object determines all operations the procedure may use. If you restrict this set of operation and want to expose this fact, then it is *another* type. >You then >claim that this implicit interface needs to be augmented >with operations that the procedure doesn't need, and then >that types upon which the procedure operates need to have >these useless operations, and that this somehow achieves >safety! I am just baffled. They are not useless, they constitute the type. That's the point. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-03 16:12 ` Dmitry A. Kazakov @ 2003-02-03 17:00 ` Hyman Rosen 2003-02-04 9:54 ` Dmitry A. Kazakov [not found] ` <en04h-1k4.ln1@beastie.ix.netcom.com> 2003-02-04 10:10 ` Colin Paul Gloster 2 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-02-03 17:00 UTC (permalink / raw) Dmitry A. Kazakov wrote: > But this is an unsatisfactory definition. It satisfies me, so it is not unsatisfactory for everyone. > It involves pointers and references, you have to define what they are. A (data) pointer is an object which holds the address of another object, where "address" is an implementation-defined value which identifies one particular object and no other. A reference is an alternate name for an object. References and pointers are declared with a type which limits the objects to which they may refer. > You have to admit that your "is a" does not work if there are no pointers. Fortunately, the programming language which I use has pointers. > Is an integer in a register "is a" an integer in the memory, on a remote host? I don't care, as C++ regards integers as primitive types. I have no interest at all in philosophical "is a", only in methods of programming. > What does it mean "may call". In C++, it means that the pointer may appear to the left of a '->' and the reference to the left of a '.', with the right-hand side looking like a call - that is, a method name defined in the class which is the static type of the pointer or reference or one of its base classes, followed by parenthesized arguments. > In FORTRAN-IV you may call a function passing > INTEGER*4 instead of REAL.*4! How nice for FORTRAN-IV. > It is much simplier just to say an instance of B is substitutable for > a parameter where A is required. With further clarification what > "substitutable" means. If it was much simpler we wouldn't be having this little chat. > But each procedure is related to the type of its parameters. Not for generics. > This clearly violates DbC principle. If I attempt to instantiate a generic procedure with a type which does not support the operations used, the code will not even compile. How in the world can this be construed as violating DbC? > The only contract of the procedure is that it takes > an object of some known type Who made you God of what a contract is? Why is a set of required operations a worse contract than a type? > If you restrict this set of operation and want to expose > this fact, then it is *another* type. Correct. But it would be mind-numbingly tedious to have to name these types, and modify all the used types to adopt the new interface, and to make adapters for the fundamental types, and fortunately C++ doesn't require it. In Ada, because of lack of MI, it wouldn't work at all. > They are not useless, they constitute the type. That's the point. They are useless because the procedure doesn't need them. Why must the procedure specify that its parameters are required to have operations that won't be used? What is to limit this infinite set of possible but unused operations? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-03 17:00 ` Hyman Rosen @ 2003-02-04 9:54 ` Dmitry A. Kazakov 2003-02-04 14:50 ` Colin Paul Gloster ` (2 more replies) 0 siblings, 3 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-04 9:54 UTC (permalink / raw) On Mon, 03 Feb 2003 12:00:55 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> But this is an unsatisfactory definition. > >It satisfies me, so it is not unsatisfactory for everyone. OK, I knew people who made global weather simulation assuming that the planet Earth is flat. (:-)) >> It involves pointers and references, you have to define what they are. > >A (data) pointer is an object which holds the address of another object, >where "address" is an implementation-defined value which identifies one >particular object and no other. A reference is an alternate name for >an object. References and pointers are declared with a type which limits >the objects to which they may refer. What is the type of a pointer/reference? You have just started and already you have two sorts of citizens: objects that are pointers and objects that are not. How your definition would answer a very simple question whether a pointer to A is a subtype of A? In Ada an access type of an array is very much a subtype of the array, because it inherits the indexing operation: type A is array (Integer range <>) of Element_Type; type A_Ptr is access A; X : A_Ptr := ...; X (3..6) -- This is legal in Ada. What if some new language or even Ada, would push this idea further and make all type operations transparent for pointers? >> You have to admit that your "is a" does not work if there are no pointers. > >Fortunately, the programming language which I use has pointers. Not every object can be accessed through a pointer. Your definition is inconsistent with that. If I did not define an access type, then I loose subtyping relation? If the object is a bit in a packed array, then it is no more object? >> Is an integer in a register "is a" an integer in the memory, on a remote host? > >I don't care, as C++ regards integers as primitive types. >I have no interest at all in philosophical "is a", only >in methods of programming. Integer is a type. It is no matter whether it is primitive or not. To be "practical", your theory should work for all types. >> What does it mean "may call". > >In C++, it means that the pointer may appear to the left of a '->' >and the reference to the left of a '.', with the right-hand side >looking like a call - that is, a method name defined in the class >which is the static type of the pointer or reference or one of its >base classes, followed by parenthesized arguments. X * Ptr = 0; Ptr->Foo (); Here we may call, hence that incredible thing, which a null-pointer points to, is a subtype of X? >> In FORTRAN-IV you may call a function passing >> INTEGER*4 instead of REAL.*4! > >How nice for FORTRAN-IV. But not for your theory. FORTRAN-IV does no type checks. So you may call, but the result is nonsense. May call /= substitutable. >> It is much simplier just to say an instance of B is substitutable for >> a parameter where A is required. With further clarification what >> "substitutable" means. > >If it was much simpler we wouldn't be having this little chat. > >> But each procedure is related to the type of its parameters. > >Not for generics. Wrong. A generic procedure is polymorphic, so the type of its parameter (if it is a formal generic type) is not a specific type, but a type type. In C++ it is <class X> which denotes "set of any types which would go through the compiler", in Ada there are "private", "mod <>, "range <>" etc. >> This clearly violates DbC principle. > >If I attempt to instantiate a generic procedure with a type >which does not support the operations used, the code will >not even compile. How in the world can this be construed as >violating DbC? I didn't say that. I said that the idea that a type could be defined by a set of operations used in some [generic] body, is a bad one, and then it contradics to DbC, separating interface and implementation and number of other principles considered valuable for software development. >> The only contract of the procedure is that it takes > > an object of some known type > >Who made you God of what a contract is? Why is a set of >required operations a worse contract than a type? It is not worse it is same. A set of required operations defines a type. This type has to be *explicitly* specified. You propose to do this *implicitly* by the fact of using some of the operations in some bodies. It is no more a contract, if implementation details get involved. It is not a contract because no specification even exists. Moreover if you would still claim that this a contract, you would be unable to verify this "contract", because to check whether an operation is required is a halting problem. This is typical for C++, to use very simple, "practical" [at first look] ideas, which lead to a mess if you dig just a bit deeper. >> If you restrict this set of operation and want to expose > > this fact, then it is *another* type. > >Correct. But it would be mind-numbingly tedious to have to >name these types, and modify all the used types to adopt >the new interface, and to make adapters for the fundamental >types, and fortunately C++ doesn't require it. Huh, I remeber people claiming that it is tedious to declare an object, because the compiler has a nice rule that everything that has a name starting with I, J, K, L, M is an INTEGER. >In Ada, because of lack of MI, it wouldn't work at all. MI is nice to have, but it would not solve this. Operation disallowing could. However in most cases, one need just a careful software design instead of usual quick'n'dirty, which would be better to call "no more quick, but still dirty". >> They are not useless, they constitute the type. That's the point. > >They are useless because the procedure doesn't need them. >Why must the procedure specify that its parameters are >required to have operations that won't be used? What is >to limit this infinite set of possible but unused operations? --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-04 9:54 ` Dmitry A. Kazakov @ 2003-02-04 14:50 ` Colin Paul Gloster 2003-02-04 15:56 ` Hyman Rosen 2003-02-05 7:02 ` Amir Yantimirov 2 siblings, 0 replies; 337+ messages in thread From: Colin Paul Gloster @ 2003-02-04 14:50 UTC (permalink / raw) Dmitry A. Kazakov wrote: "On Mon, 03 Feb 2003 12:00:55 -0500, Hyman Rosen <hyrosen@mail.com> wrote: [..] >In Ada, because of lack of MI, it wouldn't work at all. MI is nice to have, but it would not solve this. Operation disallowing could. However in most cases, one need just a careful software design instead of usual quick'n'dirty, which would be better to call "no more quick, but still dirty". Or 'not quicker but dirtier'. (: ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-04 9:54 ` Dmitry A. Kazakov 2003-02-04 14:50 ` Colin Paul Gloster @ 2003-02-04 15:56 ` Hyman Rosen 2003-02-05 12:53 ` Dmitry A. Kazakov 2003-02-05 7:02 ` Amir Yantimirov 2 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-02-04 15:56 UTC (permalink / raw) Dmitry A. Kazakov wrote: > What is the type of a pointer/reference? "Pointer to OtherType"/"Reference to OtherType" > You have just started and already you have two sorts of citizens: > objects that are pointers and objects that are not. Yes, so? Obviously, as soon as you define any static type, you will have objects which are of that type and objects which are not. > How your definition would answer a very simple question whether a > pointer to A is a subtype of A? It will answer "no"? Pointers are never (OO) subtypes of anything. > What if some new language or even Ada, would push this idea further > and make all type operations transparent for pointers? Then there would be an implicit dereference of the pointer before the operation is applied. There is no reason to impute all of the operations to the pointer itself. > Not every object can be accessed through a pointer. Correct for the usual definition of pointer on typical hardware. > Your definition is inconsistent with that. No. > If I did not define an access type, then I lose subtyping relation? Not exactly. If you are not using a pointer or reference to an object, then you are simply using the object itself. Then you know its actual most-derived type, and its full set of available operations. If you invoke an operation of one of its base classes, then when the compiler calls that method, it will pass in a pointer to the base subobject and then you are back in pointer-land. In C++, you get your pointers for free :-) > If the object is a bit in a packed array, then it is no more object? Correct. In fact, the C++ standard library specifies a specialization for vector<bool> that works that way, giving sub-byte access. This is universally considered to be a mistake. The reason to consider such bits as second-class citizens is for simplicity of implementation. You could force the definition of bit-level pointers, and classes that took only four bits of space and so forth, but that doesn't map neatly onto typical hardware, so the C and C++ approach is not to do that. If it messes up someone's abstract ideas, too bad. > Integer is a type. It is no matter whether it is primitive or not. To > be "practical", your theory should work for all types. I don't have a theory. If I write code that does operations on an integer, the compiler generates assembly language that does the work. > X * Ptr = 0; > Ptr->Foo (); There are semantic restrictions on pointers that make the above illegal. I can quote C++ standardese at you about when a pointer is derefernceable, but I don't see what that has to do with anything. > But not for your theory. FORTRAN-IV does no type checks. So you may > call, but the result is nonsense. May call /= substitutable. That's nice. Why am I supposed to care about FORTRAN? I don't have a theory. I haven't defined substitutable. > I didn't say that. I said that the idea that a type could be defined > by a set of operations used in some [generic] body, is a bad one, and > then it contradics to DbC, separating interface and implementation and > number of other principles considered valuable for software > development. That's a matter of opinion. The clear utility of this approach in C++ is an argument against your claim. I don't use DbC, it's not clear to me that meaningful contracts can be specified for complex tasks, and I don't care at all about abstract theories of how to program. I think that contracts have exactly the same problems as correctness proofs and similar ideas, namely that the statement of what you want is exactly as complex as the problem you're trying to solve, and therefore is exactly as likely to be incorrect as the program itself. > Huh, I remeber people claiming that it is tedious to declare an object In C++ there would also be the additional complexity of defining how a set of operations could be defined, because of all the overloading and implicit conversion rules. A simple "a + b" can mean a large number of different things depending oon the types involved. Whether that's good or bad, it is nevertheless an additional obstacle which prevents such "operation contracts" (C++ gurus call them "concept checks") from being required. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-04 15:56 ` Hyman Rosen @ 2003-02-05 12:53 ` Dmitry A. Kazakov 2003-02-05 15:22 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-05 12:53 UTC (permalink / raw) On Tue, 04 Feb 2003 10:56:30 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> What is the type of a pointer/reference? > >"Pointer to OtherType"/"Reference to OtherType" Is pointer to other type a type? If yes, then your definition has to define what does it mean to be a subtype of a pointer object. Which would produce pointers to pointers. The next round will give us pointers to pointers to pointers. Etc. >> You have just started and already you have two sorts of citizens: > > objects that are pointers and objects that are not. > >Yes, so? Obviously, as soon as you define any static type, you will >have objects which are of that type and objects which are not. But staticness has no impact on my definition of subtyping. While according to your definition, static objects cannot be subtypes, because there cannot be pointers to most of them, especially to ones eliminated by the compiler. >> How your definition would answer a very simple question whether a >> pointer to A is a subtype of A? > >It will answer "no"? Pointers are never (OO) subtypes of anything. Really? In Ada: type A is access all B; subtype Sub_A is A; Now you will say that this is not OO. (:-)) Fine, here is OO: type A is access all B'Class; type Sub_A is access all B; >> What if some new language or even Ada, would push this idea further >> and make all type operations transparent for pointers? > >Then there would be an implicit dereference of the pointer before >the operation is applied. There is no reason to impute all of the >operations to the pointer itself. I see no difference. If an operation can be applied to the pointer then it is an operation on the pointer, then pointer is a subtype. >> Not every object can be accessed through a pointer. > >Correct for the usual definition of pointer on typical hardware. > >> Your definition is inconsistent with that. > >No. ? >> If I did not define an access type, then I lose subtyping relation? > >Not exactly. If you are not using a pointer or reference to an object, >then you are simply using the object itself. Unlike C++, Ada can class-wide objects on the stack. So one can have dispatch even for "objects itself": declare X : A'Class := Read; begin Foo (X); -- This dispatches >Then you know its actual >most-derived type, and its full set of available operations. If you >invoke an operation of one of its base classes, then when the compiler >calls that method, it will pass in a pointer to the base subobject and >then you are back in pointer-land. In C++, you get your pointers for >free :-) > >> If the object is a bit in a packed array, then it is no more object? > >Correct. In fact, the C++ standard library specifies a specialization >for vector<bool> that works that way, giving sub-byte access. This is >universally considered to be a mistake. The reason to consider such >bits as second-class citizens is for simplicity of implementation. You >could force the definition of bit-level pointers, and classes that took >only four bits of space and so forth, but that doesn't map neatly onto >typical hardware, so the C and C++ approach is not to do that. If it >messes up someone's abstract ideas, too bad. The source of the problem above is not abstract ideas, but rather lack of them. Which leads to two very non-abstract mistakes: 1. OO has something to do with pointers and references 2. The language (C++) has no by-copy in out parameters >> Integer is a type. It is no matter whether it is primitive or not. To >> be "practical", your theory should work for all types. > >I don't have a theory. If I write code that does operations on an >integer, the compiler generates assembly language that does the >work. OK, but one should have a theory to develop a language and a compiler for it. Even C++ is based on some theory (I suppose on a wrong one (:-)) >> X * Ptr = 0; >> Ptr->Foo (); > >There are semantic restrictions on pointers that make the above illegal. Even better, should this mean that your definition involves program semantics? It would be indeed very "practical" to have same code either having subtypes or not depending on the program application area! >I can quote C++ standardese at you about when a pointer is derefernceable, >but I don't see what that has to do with anything. > >> But not for your theory. FORTRAN-IV does no type checks. So you may >> call, but the result is nonsense. May call /= substitutable. > >That's nice. Why am I supposed to care about FORTRAN? I don't have a >theory. I haven't defined substitutable. Thus your definition is limited by some number of chosen languages. I suppose the set includes C++. Which language else? >> I didn't say that. I said that the idea that a type could be defined >> by a set of operations used in some [generic] body, is a bad one, and >> then it contradics to DbC, separating interface and implementation and >> number of other principles considered valuable for software >> development. > >That's a matter of opinion. The clear utility of this approach in C++ >is an argument against your claim. I don't use DbC, it's not clear to >me that meaningful contracts can be specified for complex tasks, and >I don't care at all about abstract theories of how to program. I think >that contracts have exactly the same problems as correctness proofs and >similar ideas, namely that the statement of what you want is exactly as >complex as the problem you're trying to solve, and therefore is exactly >as likely to be incorrect as the program itself. Fairly enough. >> Huh, I remeber people claiming that it is tedious to declare an object > >In C++ there would also be the additional complexity of defining how >a set of operations could be defined, because of all the overloading >and implicit conversion rules. A simple "a + b" can mean a large number >of different things depending oon the types involved. Whether that's >good or bad, it is nevertheless an additional obstacle which prevents >such "operation contracts" (C++ gurus call them "concept checks") from >being required. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-05 12:53 ` Dmitry A. Kazakov @ 2003-02-05 15:22 ` Hyman Rosen 0 siblings, 0 replies; 337+ messages in thread From: Hyman Rosen @ 2003-02-05 15:22 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Is pointer to other type a type? Yes. > what does it mean to be a subtype of a pointer object To the extent that it means anything at all, it reflects the subtyping of class types. But generally, nothing. > two very non-abstract mistakes: > 1. OO has something to do with pointers and references > 2. The language (C++) has no by-copy in out parameters They are mistakes in your view, not in mine. I don't think anything more productive will come out of this exchange. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-04 9:54 ` Dmitry A. Kazakov 2003-02-04 14:50 ` Colin Paul Gloster 2003-02-04 15:56 ` Hyman Rosen @ 2003-02-05 7:02 ` Amir Yantimirov 2 siblings, 0 replies; 337+ messages in thread From: Amir Yantimirov @ 2003-02-05 7:02 UTC (permalink / raw) Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote in message news:<mevu3v04int4alno6fms6llom6vnhlaq0i@4ax.com>... > I didn't say that. I said that the idea that a type could be defined > by a set of operations used in some [generic] body, is a bad one, and > then it contradics to DbC, separating interface and implementation and > number of other principles considered valuable for software > development. Agreed with that. I always see 'class X' in template specification as sort of forward declaration. :) One of my paragraphs: http://www174.pair.com/yamir/programming/interfaces.htm is written directly from your discussion. And I agreed with Hyman Rosen in a sense that C++ is perfectly consistent in it's behaviour here. Amir Yantimirov ^ permalink raw reply [flat|nested] 337+ messages in thread
[parent not found: <en04h-1k4.ln1@beastie.ix.netcom.com>]
* Re: Anybody in US using ADA ? One silly idea.. [not found] ` <en04h-1k4.ln1@beastie.ix.netcom.com> @ 2003-02-04 9:48 ` Dmitry A. Kazakov 0 siblings, 0 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-04 9:48 UTC (permalink / raw) On Mon, 03 Feb 2003 21:46:53 -0800, Dennis Lee Bieber <wlfraed@ix.netcom.com> wrote: >Dmitry A. Kazakov fed this fish to the penguins on Monday 03 February >2003 08:12 am: > >> it mean "may call". In FORTRAN-IV you may call a function passing >> INTEGER*4 instead of REAL.*4! >> > Every FORTRAN compiler I've worked with will give incorrect results if >you do that -- the internal representation of the passed integer does >not match that of the expected real. Yes, this is what I meant. FORTRAN-IV did not check types, it allowed to call everything for anything. > Now... practically all FORTRAN compilers supply overloaded definitions >for the /intrinsic/ functions, so for them you can safely pass such >types. The return value is not a factor as FORTRAN will implicitly >convert types to the highest format within the equation, and convert >down in needed for the assignment to the final result variable. It is no more that FORTRAN given us by heavens! (:-)) > User defined functions do NOT support such overloading. > >> It is much simplier just to say an instance of B is substitutable for >> a parameter where A is required. With further clarification what >> "substitutable" means. >> > My paraphrase: "An instance of B supports the full defined /interface/ >of A, allowing it to be used where ever an A is valid." --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-03 16:12 ` Dmitry A. Kazakov 2003-02-03 17:00 ` Hyman Rosen [not found] ` <en04h-1k4.ln1@beastie.ix.netcom.com> @ 2003-02-04 10:10 ` Colin Paul Gloster 2003-02-04 13:12 ` Dmitry A. Kazakov 2 siblings, 1 reply; 337+ messages in thread From: Colin Paul Gloster @ 2003-02-04 10:10 UTC (permalink / raw) Timestamped Mon, 03 Feb 2003 10:59:39 +0100, news:2b9s3vo3bbnaikqd6d4jpppfflfq2kbgfu@4ax.com by Dmitry A. Kazakov <mailbox@Dmitry-Kazakov.De> contains: "On Fri, 31 Jan 2003 12:11:03 -0500, Hyman Rosen <hyrosen@mail.com> wrote: [..] >[..] You claim that there is benefit >in requiring that types support unused operations. I >don't see what that benefit is, or where you cut off >the infinite list of possible operations that a type >could conceivably support. If you define a type, say, "field". Then you should implement all operations of the field." Yes. "Otherwise, it is not a field, but a group or something else." Yes. "So the users of your type would have no delusions about it. If it has interface of a group, why to present it as field?" Indeed. And why if it has operations you do not need, are you defining this type and using it? "It is just DbC. Ada gives an example of this approach: when you derive from an abstract type, the derived non-abstract type has to implement all abstract operations, no matter whether some of them will never be used. Failure to do that is a *compile-time* error. Same thing with C++ templates produces a "valid" program! (Ada generics are safer in this respect)" Having unused procedures (of unknown quality) is not safe. Timestamped Mon, 03 Feb 2003 17:12:24 +0100, news:lats3vchsfmpaqiid539c8l7q0293eelcf@4ax.com by Dmitry A. Kazakov has: "On Mon, 03 Feb 2003 08:26:33 -0500, Hyman Rosen <hyrosen@mail.com> wrote: [..] >You then >claim that this implicit interface needs to be augmented >with operations that the procedure doesn't need, and then >that types upon which the procedure operates need to have >these useless operations, and that this somehow achieves >safety! I am just baffled. They are not useless, they constitute the type. [..]" There are not used therefore they are useless. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-04 10:10 ` Colin Paul Gloster @ 2003-02-04 13:12 ` Dmitry A. Kazakov 2003-02-04 14:33 ` Colin Paul Gloster 2003-02-04 15:10 ` Hyman Rosen 0 siblings, 2 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-04 13:12 UTC (permalink / raw) On 04 Feb 2003 10:10:25 GMT, Colin_Paul_Gloster@ACM.org (Colin Paul Gloster) wrote: >Timestamped Mon, 03 Feb 2003 10:59:39 +0100, >news:2b9s3vo3bbnaikqd6d4jpppfflfq2kbgfu@4ax.com by >Dmitry A. Kazakov <mailbox@Dmitry-Kazakov.De> contains: > >"On Fri, 31 Jan 2003 12:11:03 -0500, Hyman Rosen <hyrosen@mail.com> >wrote: > >[..] >>[..] You claim that there is benefit >>in requiring that types support unused operations. I >>don't see what that benefit is, or where you cut off >>the infinite list of possible operations that a type >>could conceivably support. > >If you define a type, say, "field". Then you should implement all >operations of the field." > >Yes. > >"Otherwise, it is not a field, but a group or >something else." > >Yes. > >"So the users of your type would have no delusions >about it. If it has interface of a group, why to present it as field?" > >Indeed. And why if it has operations you do not need, are you >defining this type and using it? > >"It is just DbC. Ada gives an example of this approach: when you derive >from an abstract type, the derived non-abstract type has to implement >all abstract operations, no matter whether some of them will never be >used. Failure to do that is a *compile-time* error. Same thing with >C++ templates produces a "valid" program! (Ada generics are safer in >this respect)" > >Having unused procedures (of unknown quality) is not safe. Any procedure of unknown quality is unsafe. A fact that a procedure is called somewhere will not make it more or less safe. However using stronger preconditions than necessary [i.e. requiring a type to be a field, where just a group would be OK] is indeed a bad design and in the end unsafe. >Timestamped Mon, 03 Feb 2003 17:12:24 +0100, >news:lats3vchsfmpaqiid539c8l7q0293eelcf@4ax.com by >Dmitry A. Kazakov has: > >"On Mon, 03 Feb 2003 08:26:33 -0500, Hyman Rosen <hyrosen@mail.com> >wrote: > >[..] > >>You then >>claim that this implicit interface needs to be augmented >>with operations that the procedure doesn't need, and then >>that types upon which the procedure operates need to have >>these useless operations, and that this somehow achieves >>safety! I am just baffled. > >They are not useless, they constitute the type. [..]" > >There are not used therefore they are useless. Do you remember the last time you used Arccoth? Is it useless? Should an Ada compiler implement it as exp, because the program I am writing at the moment does not use it? Useless for a particular program /= useless for any possible program. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-04 13:12 ` Dmitry A. Kazakov @ 2003-02-04 14:33 ` Colin Paul Gloster 2003-02-04 15:22 ` Dmitry A. Kazakov 2003-02-04 15:10 ` Hyman Rosen 1 sibling, 1 reply; 337+ messages in thread From: Colin Paul Gloster @ 2003-02-04 14:33 UTC (permalink / raw) In news:e2ev3vop3gm2gi7q3m0k3eunsluf0i4v95@4ax.com , Dmitry A. Kazakov wrote: "Any procedure of unknown quality is unsafe. A fact that a procedure is called somewhere will not make it more or less safe. [..]" Inventing a datatype when you are writing/designing a program and using just some of its procedures (which you have just invented) does not make them safe, but you are more likely to notice if they are incorrect than the unused procedures. "[..] >There are not used therefore they are useless. Do you remember the last time you used Arccoth? Is it useless? Should an Ada compiler implement it as exp, because the program I am writing at the moment does not use it?" Irrelevant. I am not advocating inventing datatypes whose subprograms I know I will definitely not all use for the problem I am trying to solve, but which I might use in a future program. "Useless for a particular program /= useless for any possible program." Agreed. But if some of the subprograms are never ever used, they were a waste of effort. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-04 14:33 ` Colin Paul Gloster @ 2003-02-04 15:22 ` Dmitry A. Kazakov 2003-02-04 16:47 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-04 15:22 UTC (permalink / raw) On 04 Feb 2003 14:33:31 GMT, Colin_Paul_Gloster@ACM.org (Colin Paul Gloster) wrote: >In news:e2ev3vop3gm2gi7q3m0k3eunsluf0i4v95@4ax.com , Dmitry A. Kazakov >wrote: >"Any procedure of unknown quality is unsafe. A fact that a procedure is >called somewhere will not make it more or less safe. [..]" > >Inventing a datatype when you are writing/designing a program and using >just some of its procedures (which you have just invented) does not make >them safe, but you are more likely to notice if they are incorrect than >the unused procedures. > >"[..] >>There are not used therefore they are useless. > >Do you remember the last time you used Arccoth? Is it useless? Should >an Ada compiler implement it as exp, because the program I am writing >at the moment does not use it?" > >Irrelevant. I am not advocating inventing datatypes whose subprograms I >know I will definitely not all use for the problem I am trying to solve, >but which I might use in a future program. > >"Useless for a particular program /= useless for any possible program." > >Agreed. But if some of the subprograms are never ever used, they were a >waste of effort. Yes, but the problem is that we never know for sure. So it is always better to stay on the safe side. If the type represents some well-known thing, then it is better to fully implement it. Alternatively, [what I actually always wished to see in Ada], one could make this type abstract and implement only a part of the operations [which you will definitely use]. Then you would derive from it an non-abstract type and disallow all the operations you do not want. So the type will explicitly indicate the fact that some operations are not supported. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-04 15:22 ` Dmitry A. Kazakov @ 2003-02-04 16:47 ` Hyman Rosen 0 siblings, 0 replies; 337+ messages in thread From: Hyman Rosen @ 2003-02-04 16:47 UTC (permalink / raw) Dmitry A. Kazakov wrote: > If the type represents some well-known thing, > then it is better to fully implement it. Again. I am not building a type but an operation. If I am building a vector template, the things that it holds are of type "thing that can be held in a vector". Fully implementing it menas that it has the things needed for being held in a vector. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-04 13:12 ` Dmitry A. Kazakov 2003-02-04 14:33 ` Colin Paul Gloster @ 2003-02-04 15:10 ` Hyman Rosen 2003-02-05 12:53 ` Dmitry A. Kazakov 1 sibling, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-02-04 15:10 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Do you remember the last time you used Arccoth? Is it useless? Should > an Ada compiler implement it as exp, because the program I am writing > at the moment does not use it? > > Useless for a particular program /= useless for any possible program. I repeat - I am writing a procedure, not a type. That procedure takes a parameter, and the procedure requires that the parameter supports a certain set of operations. You want me to force that parameter to have more operations than the procedure needs. I *still* don't understand why. To answer your question, I have never created a type that was required to have an Arccoth operation. I would be annoyed if, for example, the vector class template that I use required that the type of the held object must support Arccoth. This does not make the Arccoth operation useless. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-04 15:10 ` Hyman Rosen @ 2003-02-05 12:53 ` Dmitry A. Kazakov 2003-02-05 15:35 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-05 12:53 UTC (permalink / raw) On Tue, 04 Feb 2003 10:10:24 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> Do you remember the last time you used Arccoth? Is it useless? Should >> an Ada compiler implement it as exp, because the program I am writing >> at the moment does not use it? >> >> Useless for a particular program /= useless for any possible program. > >I repeat - I am writing a procedure, not a type. That procedure takes >a parameter, and the procedure requires that the parameter supports a >certain set of operations. That's called precondition. However the above statement is partially incomplete and partially wrong. It is incomplete, because it should be "the procedure takes a parameter of the type X". It is wrong, because parameters support no operations. It is the type X which has a set of operations, which can be applied to parameters of the type. Returning to the precondition, to require a subset of operations of X <= to require X. So your precondition is automatically satisfied by the requirement that the parameter is of X. >You want me to force that parameter to have >more operations than the procedure needs. The parameter can be used in the operations of its type. No more no less. It is irrelevant which particular operations or values of the type the procedure uses. >I *still* don't understand why. >To answer your question, I have never created a type that was >required to have an Arccoth operation. I would be annoyed if, for >example, the vector class template that I use required that the type >of the held object must support Arccoth. This does not make the >Arccoth operation useless. Right, unused operations are still useful. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-05 12:53 ` Dmitry A. Kazakov @ 2003-02-05 15:35 ` Hyman Rosen 0 siblings, 0 replies; 337+ messages in thread From: Hyman Rosen @ 2003-02-05 15:35 UTC (permalink / raw) Dmitry A. Kazakov wrote: >>I repeat - I am writing a procedure, not a type. That procedure takes >>a parameter, and the procedure requires that the parameter supports a >>certain set of operations. > > That's called precondition. Again, not in the same sense that most people use for this term. When I've seen precondition used, it's always referred to a runtime property of the object, such as "> 5" or "is sorted". > It is incomplete, because it should be > "the procedure takes a parameter of the type X". But I am writing a generic procedure, so the procedure does not specify the type of its parameter in any way other than by a "placeholder" type name. > It is wrong, because parameters support no operations. > It is the type X which has a set of operations, which > can be applied to parameters of the type. I find this to be a completely vacuous distinction. > to require a subset of operations of X <= to require X. > So your precondition is automatically satisfied by the requirement > that the parameter is of X. You seem to refuse to face the fact that there is no "X" other than as a placeholder name. There is no "subset of operations of X", and there is no "set of operations of X" other than that specified by the implementation of the procedure. When the generic is instantiated with an actual type, the compiler compares the set of operations required by the procedure with the set of operations supported by the type, and if they conform, the instantiation succeeds. If they do not, the compiler issues an error message and fails to compile the code. > Right, unused operations are still useful. So you are saying that the vector *should* require that any object type that it can hold must support an Arccoth operation? You are making absolutely no sense. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-31 16:12 ` Dmitry A. Kazakov 2003-01-31 17:11 ` Hyman Rosen @ 2003-02-04 7:04 ` AG 2003-02-03 12:34 ` Dmitry A. Kazakov 1 sibling, 1 reply; 337+ messages in thread From: AG @ 2003-02-04 7:04 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message news:h96l3vsrtf76akihqdu61r9edeav442eig@4ax.com... > On Fri, 31 Jan 2003 10:02:15 -0500, Hyman Rosen <hyrosen@mail.com> > wrote: > >Why? Since you're converting, what possible relevance is there > >to requiring that the operation be present in both types? > > I do not want flawed implicit type conversions. I want sub- and > supertyping. If an implementation of sub-/supertyping is based on some > conversions, I do not care. > > >> Ada does this. > > > >Really? It does convert-in/convert-out of different types? > >I've never seen that before. Can you show me sample code? > > procedure Query (X : in out Float); > -- The initial value is used as a default > ... > I : Integer := 10; > begin > Query (Float (I)); A bit of an unfortunate example that. A quick twiddle of the code produced this: with ada.text_io; procedure tes is procedure Query (X : in out Float) is begin x := x - 0.5; end; I : Integer := 10; begin Query (Float (I)); ada.text_io.put_line(integer'image(i)); end; The output is "10" of course which isn't surprising but seems to sort of contradict the example's purpose. Not much point in having a conversion like that ... ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-04 7:04 ` AG @ 2003-02-03 12:34 ` Dmitry A. Kazakov 2003-02-05 4:38 ` AG 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-03 12:34 UTC (permalink / raw) On Mon, 3 Feb 2003 23:04:39 -0800, "AG" <ang@xtra.co.nz> wrote: >"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message >news:h96l3vsrtf76akihqdu61r9edeav442eig@4ax.com... >> On Fri, 31 Jan 2003 10:02:15 -0500, Hyman Rosen <hyrosen@mail.com> >> wrote: > >> >Why? Since you're converting, what possible relevance is there >> >to requiring that the operation be present in both types? >> >> I do not want flawed implicit type conversions. I want sub- and >> supertyping. If an implementation of sub-/supertyping is based on some >> conversions, I do not care. >> >> >> Ada does this. >> > >> >Really? It does convert-in/convert-out of different types? >> >I've never seen that before. Can you show me sample code? >> >> procedure Query (X : in out Float); >> -- The initial value is used as a default >> ... >> I : Integer := 10; >> begin >> Query (Float (I)); > >A bit of an unfortunate example that. A quick twiddle of the code >produced this: > >with ada.text_io; > >procedure tes is > >procedure Query (X : in out Float) is > >begin > >x := x - 0.5; > >end; > >I : Integer := 10; > >begin > >Query (Float (I)); > >ada.text_io.put_line(integer'image(i)); > >end; > >The output is "10" of course which isn't surprising >but seems to sort of contradict the example's purpose. >Not much point in having a conversion like that ... The purpose of the example was only to show that Ada indeed have convert-copy-in-copy-out-convert. What your example shows is that in case of specialization (integers is a subset), one will always have potential problems with out-parameters. But technicaly there is no much difference between: subtype Positive is Float 0.0...Float'Last; and subtype Integer is Float with only whole values; -- Not Ada! In both cases there is no ideal way to define the backward conversion. Sometimes raising Constraint_Error is OK. Sometimes rounding is better. [For example, when coordinates of graphical objects have to be mapped to pixels.] --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-03 12:34 ` Dmitry A. Kazakov @ 2003-02-05 4:38 ` AG 2003-02-04 10:08 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: AG @ 2003-02-05 4:38 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message news:r4ns3vsbjo61opm62v8ugcogk4s96tiogs@4ax.com... > What your example shows is that in case of specialization (integers is > a subset), one will always have potential problems with > out-parameters. But technicaly there is no much difference between: > > subtype Positive is Float 0.0...Float'Last; > > and > > subtype Integer is Float with only whole values; -- Not Ada! > > In both cases there is no ideal way to define the backward conversion. Well, the difference between the two is that, in the first case, you only introduce a scalar range restriction. That is, any valid value of float in this range is also a valid value for positive if derived in this way. This is not the case for the second definition (and I suspect that's exactly the reason it's not Ada). The backward conversion in the first case only needs to check the range and raise an exception or whatever handling is appropiate if the final result is out of range (you can even ignore intermediates - maybe). No other properties of the type are involved so everything withing that range should be ok. In the second case, the backward conversion is pretty much doomed unless you are using it in a very specialized case and implementation that knows how to handle that. In which case it becomes quite a bit more than a simple subtype since it would have to have lots of additional logic about rounding, redefining operations that no longer make sense etc etc. > Sometimes raising Constraint_Error is OK. Sometimes rounding is > better. [For example, when coordinates of graphical objects have to be > mapped to pixels.] > > --- > Regards, > Dmitry Kazakov > www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-05 4:38 ` AG @ 2003-02-04 10:08 ` Dmitry A. Kazakov 0 siblings, 0 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-04 10:08 UTC (permalink / raw) On Tue, 4 Feb 2003 20:38:41 -0800, "AG" <ang@xtra.co.nz> wrote: >"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message >news:r4ns3vsbjo61opm62v8ugcogk4s96tiogs@4ax.com... > >> What your example shows is that in case of specialization (integers is >> a subset), one will always have potential problems with >> out-parameters. But technicaly there is no much difference between: >> >> subtype Positive is Float 0.0...Float'Last; >> >> and >> >> subtype Integer is Float with only whole values; -- Not Ada! >> >> In both cases there is no ideal way to define the backward conversion. > >Well, the difference between the two is that, in the first case, >you only introduce a scalar range restriction. That is, any valid >value of float in this range is also a valid value for positive if >derived in this way. This is not the case for the second definition >(and I suspect that's exactly the reason it's not Ada). > >The backward conversion in the first case only needs to check >the range and raise an exception or whatever handling is >appropiate if the final result is out of range (you can even ignore >intermediates - maybe). No other properties of the type are >involved so everything withing that range should be ok. > > In the second case, the backward conversion is pretty much >doomed unless you are using it in a very specialized case and >implementation that knows how to handle that. In which case >it becomes quite a bit more than a simple subtype since it >would have to have lots of additional logic about rounding, >redefining operations that no longer make sense etc etc. I did not mean here that Integer is Standard.Integer. I meant just a Float subtype called Integer (having Float representation as Ada requires), with the constraint imposed not by a range, but by requirement to be whole. In this case the backward conversion is as straightforward as range check, i.e. check if whole, if not, raise Constraint_Error. A similar example: type Day is (Su, Mo, Tu, We, Th, Fr, Sa); subtype Weekend is Day (Su, Sa); -- This also not Ada --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-29 15:44 ` Hyman Rosen 2003-01-29 21:34 ` Mark Biggar @ 2003-01-30 8:09 ` Dmitry A. Kazakov 2003-01-30 15:01 ` Hyman Rosen 1 sibling, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-30 8:09 UTC (permalink / raw) On Wed, 29 Jan 2003 10:44:27 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> That's the whole point. We want to inherit from Ellipse (non-abstract) >> some of its methods, but we do not want to inherit the representation >> (two doubles). > >I don't understand what you are trying to accomplish. >If you want to inherit method implementation, how can >this not be tied to object representation? Why should it be? When you do fabs (-100), do you care whether -100 has same represenation as a double? --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-30 8:09 ` Dmitry A. Kazakov @ 2003-01-30 15:01 ` Hyman Rosen 2003-01-30 16:33 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-30 15:01 UTC (permalink / raw) Dmitry A. Kazakov wrote: > On Wed, 29 Jan 2003 10:44:27 -0500, Hyman Rosen <hyrosen@mail.com> > wrote: >>If you want to inherit method implementation, how can >>this not be tied to object representation? > > Why should it be? When you do fabs (-100), do you care whether -100 > has same represenation as a double? When I *implement* fabs, I most certainly care about the data representation! ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-30 15:01 ` Hyman Rosen @ 2003-01-30 16:33 ` Dmitry A. Kazakov 2003-01-30 17:12 ` Stephen Leake 2003-01-30 18:01 ` Hyman Rosen 0 siblings, 2 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-30 16:33 UTC (permalink / raw) On Thu, 30 Jan 2003 10:01:18 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> On Wed, 29 Jan 2003 10:44:27 -0500, Hyman Rosen <hyrosen@mail.com> >> wrote: >>>If you want to inherit method implementation, how can >>>this not be tied to object representation? >> >> Why should it be? When you do fabs (-100), do you care whether -100 >> has same represenation as a double? > >When I *implement* fabs, I most certainly care about the >data representation! But you don't. It is already here. You just reuse it, because int is to some extent a subtype of double. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-30 16:33 ` Dmitry A. Kazakov @ 2003-01-30 17:12 ` Stephen Leake 2003-01-31 8:51 ` Dmitry A. Kazakov 2003-01-30 18:01 ` Hyman Rosen 1 sibling, 1 reply; 337+ messages in thread From: Stephen Leake @ 2003-01-30 17:12 UTC (permalink / raw) Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> writes: > On Thu, 30 Jan 2003 10:01:18 -0500, Hyman Rosen <hyrosen@mail.com> > wrote: > > >Dmitry A. Kazakov wrote: > >> On Wed, 29 Jan 2003 10:44:27 -0500, Hyman Rosen <hyrosen@mail.com> > >> wrote: > >>>If you want to inherit method implementation, how can > >>>this not be tied to object representation? > >> > >> Why should it be? When you do fabs (-100), do you care whether -100 > >> has same represenation as a double? > > > >When I *implement* fabs, I most certainly care about the > >data representation! > > But you don't. It is already here. You just reuse it, because int is > to some extent a subtype of double. He said "implement", not "reuse". Please don't confuse the issue. To _implement_ fabs, you need to know the format of a floating point number, so you know which bit to flip. To _implement_ "area" for a circle, you need to know whether it is a special case of ellipse (so the 'radius' is named 'minor_axis') or is a separate type (so the 'radius' is named 'radius'). Perhaps you can show some code that demonstrates what you are talking about. -- -- Stephe ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-30 17:12 ` Stephen Leake @ 2003-01-31 8:51 ` Dmitry A. Kazakov 2003-01-31 15:04 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-31 8:51 UTC (permalink / raw) On 30 Jan 2003 12:12:01 -0500, Stephen Leake <Stephen.A.Leake@nasa.gov> wrote: >Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> writes: > >> On Thu, 30 Jan 2003 10:01:18 -0500, Hyman Rosen <hyrosen@mail.com> >> wrote: >> >> >Dmitry A. Kazakov wrote: >> >> On Wed, 29 Jan 2003 10:44:27 -0500, Hyman Rosen <hyrosen@mail.com> >> >> wrote: >> >>>If you want to inherit method implementation, how can >> >>>this not be tied to object representation? >> >> >> >> Why should it be? When you do fabs (-100), do you care whether -100 >> >> has same represenation as a double? >> > >> >When I *implement* fabs, I most certainly care about the >> >data representation! >> >> But you don't. It is already here. You just reuse it, because int is >> to some extent a subtype of double. > >He said "implement", not "reuse". Please don't confuse the issue. But in my example it was not implementation, but reuse. fabs is defined on double. >To _implement_ fabs, you need to know the format of a floating point >number, so you know which bit to flip. [ In fact no, because fabs can be implemented in terms of other operations ] >To _implement_ "area" for a circle, you need to know whether it is a >special case of ellipse (so the 'radius' is named 'minor_axis') or is >a separate type (so the 'radius' is named 'radius'). I can *either* implement Circle.Area *or* inherit (so, reuse) it from Ellipse. In the latter case I have to know nothing, because Circle is substitutable in Ellipse.Area. >Perhaps you can show some code that demonstrates what you are talking >about. The question was: do we [programmers] need to know the representation when we inherit a method? The answer is NO. [Of course, the way the compiler implements inheritance of a method depends on the representations of both types, but the programmer should not care about it.] --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-31 8:51 ` Dmitry A. Kazakov @ 2003-01-31 15:04 ` Hyman Rosen 0 siblings, 0 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-31 15:04 UTC (permalink / raw) Dmitry A. Kazakov wrote: > The question was: do we [programmers] need to know the representation > when we inherit a method? The answer is NO. If you are also inheriting the representation, correct. If you are not, then the answer is YES. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-30 16:33 ` Dmitry A. Kazakov 2003-01-30 17:12 ` Stephen Leake @ 2003-01-30 18:01 ` Hyman Rosen 2003-01-31 8:38 ` Dmitry A. Kazakov 1 sibling, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-30 18:01 UTC (permalink / raw) Dmitry A. Kazakov wrote: > But you don't. It is already here. But someone does. > You just reuse it, because int is to some extent a subtype of double. No, because int is convertible to double. Besides you, I haven't heard anyone else who would consider that to be subtyping. Indeed, any time I encounter such type lattices they always seem enshrouded in confusion. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-30 18:01 ` Hyman Rosen @ 2003-01-31 8:38 ` Dmitry A. Kazakov 2003-01-31 15:11 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-31 8:38 UTC (permalink / raw) On Thu, 30 Jan 2003 13:01:17 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> But you don't. It is already here. > >But someone does. > >> You just reuse it, because int is to some extent a subtype of double. > >No, because int is convertible to double. > >Besides you, I haven't heard anyone else >who would consider that to be subtyping. >Indeed, any time I encounter such type >lattices they always seem enshrouded in >confusion. There is no agreement on definition of subtyping. Most widely used is LSP-subtyping defined in terms of substitutability. In the spirit of this definition int is an in-subtype of double, because int is substitutable for double in in-mode [as my example with fabs shows]. Further, the compiler makes this substitution automatically (no matter how), so one can say that int inherits, imports [whatsoever] fabs from double. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-31 8:38 ` Dmitry A. Kazakov @ 2003-01-31 15:11 ` Hyman Rosen 2003-01-31 16:27 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-31 15:11 UTC (permalink / raw) Dmitry A. Kazakov wrote: > In the spirit of this definition int is an in-subtype of double No, it is not, assuming the universe of allowed operations on doubles. The compiler converts the int to a double, but the int itself is not a double. As I have been saying in my other messages, in the conventional OO view, a subtype is simultaneously its own type and all of its base types, and no conversion is required when viewing it as a base type. This is manifestly not the case for int and double. You persist in using your own definitions for these terms, which will cause confusion for people who are not immersed in this thread. Most importantly, Ada, C++, and Java don't share your view, so people familiar with those languages and unfamiliar with you will not kknow what's going on. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-31 15:11 ` Hyman Rosen @ 2003-01-31 16:27 ` Dmitry A. Kazakov 2003-01-31 17:25 ` Hyman Rosen 2003-02-04 6:34 ` AG 0 siblings, 2 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-31 16:27 UTC (permalink / raw) On Fri, 31 Jan 2003 10:11:44 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> In the spirit of this definition int is an in-subtype of double > >No, it is not, assuming the universe of allowed operations on >doubles. The compiler converts the int to a double, but the int >itself is not a double. Do you know, an integer is definitely a real number. So you should clarify whether you are talking about mathematical objects or their computer models. Note also that the same mathematical (or any other object) can be modelled by many different ways in the same program. This why the representation of a particular type should be no issue, when subtyping is considered. >As I have been saying in my other messages, >in the conventional OO view, a subtype is simultaneously its own >type and all of its base types, and no conversion is required when >viewing it as a base type. This is manifestly not the case for int >and double. There is no conventional view on this issue. But if you want to see objects with several types, OK, substitute everywhere "most specific type" for "type". And you will again have *different* [most specific] types. >You persist in using your own definitions for these terms, >which will cause confusion for people who are not immersed >in this thread. Most importantly, Ada, C++, and Java don't >share your view, so people familiar with those languages >and unfamiliar with you will not kknow what's going on. ARM: 3.2 Types and Subtypes: "A type is characterized by a set of values, and a set of primitive operations which implement the fundamental aspects of its semantics. An object of a given type is a run-time entity that contains (has) a value of the type." However I see no sense in appealing to authority. If in your view to say that an object has a type is not feasible, then please, show why. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-31 16:27 ` Dmitry A. Kazakov @ 2003-01-31 17:25 ` Hyman Rosen 2003-02-03 9:59 ` Dmitry A. Kazakov 2003-02-04 6:34 ` AG 1 sibling, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-31 17:25 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Do you know, an integer is definitely a real number. So you should > clarify whether you are talking about mathematical objects or their > computer models. Computer models. As I said, the main mistake of OO is confusing the computer objects with the things they are partially modelling. > This why the representation of a particular type should be no issue, > when subtyping is considered. Perhaps for your concept of subtyping, but not for mine. If you want Ada-style view conversions, that does not have anything to do with subtyping, just interconvertability. To quote the Ada RM: "In a view conversion for an untagged type, the target type shall be convertible (back) to the operand type." > However I see no sense in appealing to authority. If in your view to > say that an object has a type is not feasible, then please, show why. I should apologize for my unfamiliarity with Ada. An Ada subtype is a restricted subset of its parent type. But the conventional OO term subtype used for derived types is not such a restriction, and indeed Ada calls that a derived type, not a subtype. Anyway, I don't say that an object doesn't have a type, but that it can simultaneously have many types. Applying the Ada definition works perfectly well in this context. If my object is simultaneously an A and a B and a C, then it is a run-time entity which contains a value of the set of values of A, and a value of the set of values of B, and a value of the set of values of C. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-31 17:25 ` Hyman Rosen @ 2003-02-03 9:59 ` Dmitry A. Kazakov 2003-02-03 13:11 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-03 9:59 UTC (permalink / raw) On Fri, 31 Jan 2003 12:25:16 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> Do you know, an integer is definitely a real number. So you should >> clarify whether you are talking about mathematical objects or their >> computer models. > >Computer models. As I said, the main mistake of OO is confusing >the computer objects with the things they are partially modelling. People make mistakes. It is a result of trying to find a philosophy behind OO. >> This why the representation of a particular type should be no issue, >> when subtyping is considered. > >Perhaps for your concept of subtyping, but not for mine. But why? Why do you want to fix reperesentations, instead of letting a programmer to say what he wants. Note, I am not against inheriting representations when it is feasible, but sometimes it is not. >If you want Ada-style view conversions, that does not have >anything to do with subtyping, just interconvertability. >To quote the Ada RM: > "In a view conversion for an untagged type, the target type > shall be convertible (back) to the operand type." > >> However I see no sense in appealing to authority. If in your view to >> say that an object has a type is not feasible, then please, show why. > >I should apologize for my unfamiliarity with Ada. An Ada subtype >is a restricted subset of its parent type. [+ having exactly same representation as the parent] >But the conventional >OO term subtype used for derived types is not such a restriction, >and indeed Ada calls that a derived type, not a subtype. Yes, but in my why all this is same thing. Whether I write subtype X is Y <constraint>; or type X is new Y with <extension>; I produce a new type Y substitutable for X. How do we call it is no matter. Also no matter is how the substitutability is ensured: either by preserving the representation, or by inheriting the representation or by replacing the representation. Observe similarity in how new methods are constructed. You can 1. inherit a method as-is [same representation] 2. extend a method (constructors, destructors in C++, aggregates in Ada) [extended representation] 3. override a method [replace representation] Isn't it strange, that 3 is available for methods, but not for data? >Anyway, I don't say that an object doesn't have a type, but that >it can simultaneously have many types. Applying the Ada definition >works perfectly well in this context. If my object is simultaneously >an A and a B and a C, then it is a run-time entity which contains a >value of the set of values of A, and a value of the set of values of >B, and a value of the set of values of C. Consider a simplier approach. An object has exactly one [specific] type. Either A, B or C. If you want an object looking as if it had several specific types, then its type is none of them. Its type is a *set* of types {A, B, C}. This is *another* type and its representation may differ form one of A, B, C. For example it may consist of a type tag to distinguish which specific object it mimics right now + the specific object value. In Ada such types are called class-wide. One could pack the tag into the specific objects (as C++ does), but this would conceptually change nothing. I can always say that a given object as a type [exactly one]. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-03 9:59 ` Dmitry A. Kazakov @ 2003-02-03 13:11 ` Hyman Rosen 2003-02-03 14:40 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-02-03 13:11 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Yes, but in my why all this is same thing. Whether I write > subtype X is Y <constraint>; > or > type X is new Y with <extension>; > I produce a new type Y substitutable for X. As your view conversion example showed, in the subtype case we don't have a substitution but a two-way conversion. It reminds me of school; the derived type is like a teacher who has gone to graduate school and has come back with new degrees while the subtype is like a substitute who fills in but doesn't know very much. > Isn't it strange, that 3 is available for methods, but not for data? I still don't understand how you propose to inherit method implementations while changing data representations. > Consider a simplier approach. I understand other approaches are possible, but as I keep saying, those are not the approaches used in the conventional languages which support OO, namely Ada, Java, C++, and probably Eiffel. Ada experts do often use a style where an object containing subobjects of type A, B, and C takes on the role of A, B, or C as needed, in order to simulate multiple inheritance. Maybe you can use something like that to do what you want? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-03 13:11 ` Hyman Rosen @ 2003-02-03 14:40 ` Hyman Rosen 2003-02-04 10:11 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-02-03 14:40 UTC (permalink / raw) Hyman Rosen wrote: > I still don't understand how you propose to inherit method > implementations while changing data representations. Oh, wait, I guess I do understand. It's the conversion thing again. The method will operate on the original representation with convert-in/convert-out taking care of the new one. This is DK-inheritance of methods, which apply to DK-subtypes :-) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-03 14:40 ` Hyman Rosen @ 2003-02-04 10:11 ` Dmitry A. Kazakov 0 siblings, 0 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-04 10:11 UTC (permalink / raw) On Mon, 03 Feb 2003 09:40:29 -0500, Hyman Rosen <hyrosen@mail.com> wrote: >Hyman Rosen wrote: >> I still don't understand how you propose to inherit method >> implementations while changing data representations. > >Oh, wait, I guess I do understand. It's the conversion thing >again. The method will operate on the original representation >with convert-in/convert-out taking care of the new one. This >is DK-inheritance of methods, which apply to DK-subtypes :-) Yea! (:-)) --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-31 16:27 ` Dmitry A. Kazakov 2003-01-31 17:25 ` Hyman Rosen @ 2003-02-04 6:34 ` AG 2003-02-03 12:58 ` Dmitry A. Kazakov 1 sibling, 1 reply; 337+ messages in thread From: AG @ 2003-02-04 6:34 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message news:qb6l3vglt4ur5svph1dn11o7dfmp8gl8c5@4ax.com... > On Fri, 31 Jan 2003 10:11:44 -0500, Hyman Rosen <hyrosen@mail.com> > wrote: > > >No, it is not, assuming the universe of allowed operations on > >doubles. The compiler converts the int to a double, but the int > >itself is not a double. > > Do you know, an integer is definitely a real number. You sure? How about a simple theorem that any two distinct real numbers have another real number between them? Either this theorem doesn't hold (and the whole math goes out the window) or the integers are most definitely not reals. Which will it be? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-02-04 6:34 ` AG @ 2003-02-03 12:58 ` Dmitry A. Kazakov 0 siblings, 0 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-02-03 12:58 UTC (permalink / raw) On Mon, 3 Feb 2003 22:34:42 -0800, "AG" <ang@xtra.co.nz> wrote: >"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message >news:qb6l3vglt4ur5svph1dn11o7dfmp8gl8c5@4ax.com... >> On Fri, 31 Jan 2003 10:11:44 -0500, Hyman Rosen <hyrosen@mail.com> >> wrote: >> >> >No, it is not, assuming the universe of allowed operations on >> >doubles. The compiler converts the int to a double, but the int >> >itself is not a double. >> >> Do you know, an integer is definitely a real number. > >You sure? How about a simple theorem that any two distinct >real numbers have another real number between them? Either >this theorem doesn't hold (and the whole math goes out >the window) or the integers are most definitely not reals. Exactly. There are two different statements: 1. The set of integers is a subset of the set of reals. 2. The set of the statements valid for the set of integers is a subset of the statements valid for the set of reals. 1. does not imply 2. Moreover, 2 is false. One could also put it otherwise: 1a. integer is a real 2a. integers is not reals => Integer is not a LSP-subtype of Float. N.B. Float is also not a LSP-subtype of real, and there cannot be such. However in most cases it is not an issue. Similarly, there might be contexts where Integer could be considered as a subtype of Float. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-23 11:00 ` Dmitry A. Kazakov 2003-01-23 16:27 ` Hyman Rosen @ 2003-01-27 16:04 ` Kevin Cline 1 sibling, 0 replies; 337+ messages in thread From: Kevin Cline @ 2003-01-27 16:04 UTC (permalink / raw) Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote in message news:<gqiv2vgsto8tm9mbi0flii4vr594ui06fo@4ax.com>... > On 21 Jan 2003 10:55:36 -0800, kcline17@hotmail.com (Kevin Cline) > wrote: > > >Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote in message news:<ga3q2vkds5akg0iaommdaniqp3ubo293pl@4ax.com>... > >> On Tue, 21 Jan 2003 02:10:37 GMT, "Hillel Y. Sims" > >> <usenet@phatbasset.com> wrote: > >> > >> >"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message > >> >news:b0e5vu$ognn6$1@ID-77047.news.dfncis.de... > >> >> Hillel Y. Sims wrote: > >> >> > [templated C++ sort() is faster than qsort()] > >> >> > >> >> This is a wrong comparison. A correct one would be an instance of a > generic > >> >> subroutine vs. an inlined subroutine and, note, when the type is > statically > >> >> known. > >> > > >> >sort<int>() vs. sort_ints()? In that case the performance should really be > >> >exactly the same (since as you say, it really *is* to a large extent just a > >> >bunch of text substitution :-). The benefit is that you don't need to > >> >rewrite or copy/paste the code over and over for each unique type, the > >> >compiler does it automatically (while maintaining full type safety, unlike > >> >dumb macros) -- and better yet, when you fix a bug in the generic version, > >> >it is immediately fixed for all instantiations automatically (vs. > >> >sort_ints(), sort_floats(), sort_strings(), sort_xyz()) > >> > >> This is an advantage of generics over blind preprocessing. The problem > >> is whether same can be achieved without both. > >> > >> Consider class-wide sort written for all arrays derived from some > >> abstract array of comparable elements. If that sort is inlined, then > >> then compiler theoretically would have all necessary information to > >> make code as efficient as generic sort could. Presently it is > >> impossible in both Ada and C++. > > > >But then to be sortable the element type would have be derived from > >some "Comparable" base type. And to be stored in a hash table, > >they would have to be derived from a "Hashable" base type. And to be > >used with some generic mathematical algorithm they would have to > >be derived from an "Arithmetic" base type... > > Yes of course. Derived here means only "implements interface of". It > is also an advantage over generics, because with templates you never > know if the actual type is "Hashable", until you instantiate all > functions using all methods of "Hashable". And even so, nobody can say > whether these methods really comprise a "Hashable" type or they just > have similar names and the profiles appropriate to go through the > compiler. This would prevent the instantiation of generics on any built-in types, or on any type defined in a library. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-18 12:31 ` Dmitry A. Kazakov 2003-01-18 22:53 ` Hillel Y. Sims @ 2003-01-19 3:42 ` Hyman Rosen 2003-01-19 12:34 ` Dmitry A. Kazakov 2003-01-23 13:15 ` please, please, please, Wes Groleau 2 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-19 3:42 UTC (permalink / raw) Dmitry A. Kazakov wrote: > If not possible, then it is not a case where generics may be applied. My > point is, anywhere generics work, the specific type can be tacked down. That doesn't seem correct to me. With generics, I can declare a container that holds a specific type, and then pas sthat container around to other (generic) routines, and they all know the type of the container's contents. Without generics, all I have is a container that holds some base type. How is the compiler to know that this container holds only a certain specific type of object? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-19 3:42 ` Hyman Rosen @ 2003-01-19 12:34 ` Dmitry A. Kazakov 2003-01-19 14:13 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-19 12:34 UTC (permalink / raw) Hyman Rosen wrote: > Dmitry A. Kazakov wrote: >> If not possible, then it is not a case where generics may be applied. My >> point is, anywhere generics work, the specific type can be tacked down. > > That doesn't seem correct to me. With generics, I can declare a container > that holds a specific type, and then pas sthat container around to other > (generic) routines, and they all know the type of the container's > contents. > > Without generics, all I have is a container that holds some base type. How > is the compiler to know that this container holds only a certain specific > type of object? I see your point. Well, this is another story. I meant containers of class-wide objects. What you meant is the containers of specific types like arrays are. Though it looks like a simplier problem, it is unsolvable in the way I proposed. Here generics or built-in container types are the only options. Anyway array types solve this for one particular case without generics. Maybe, there is a more general way to deal with the containers of all kinds without generics. I do not know. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-19 12:34 ` Dmitry A. Kazakov @ 2003-01-19 14:13 ` Hyman Rosen 2003-01-20 8:43 ` Dmitry A. Kazakov 0 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-19 14:13 UTC (permalink / raw) Dmitry A. Kazakov wrote: > Here generics or built-in container types are the only options. Well, yes, that's what we've been trying to tell you :-) > Anyway array types solve this for one particular case without generics. Well, the genericity is there, it's just that the compiler does it for you without you having to specify it yourself. > Maybe, there is a more general way to deal with the containers of > all kinds without generics. I do not know. The way it's handled in Java is to hide away the container inside a class, then cut-and-paste code that does a cast to the desired type whenever an object is extracted from the container. Horrible. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-19 14:13 ` Hyman Rosen @ 2003-01-20 8:43 ` Dmitry A. Kazakov 0 siblings, 0 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-20 8:43 UTC (permalink / raw) On Sun, 19 Jan 2003 14:13:17 GMT, Hyman Rosen <hyrosen@mail.com> wrote: >Dmitry A. Kazakov wrote: >> Here generics or built-in container types are the only options. > >Well, yes, that's what we've been trying to tell you :-) > >> Anyway array types solve this for one particular case without generics. > >Well, the genericity is there, it's just that the compiler does it for >you without you having to specify it yourself. Generics cannot solve the problem of related containers. The compiler could treat arrays of characters as a subtype of arrays of wide-characters. With generic it is impossible. >> Maybe, there is a more general way to deal with the containers of >> all kinds without generics. I do not know. > >The way it's handled in Java is to hide away the container inside a >class, then cut-and-paste code that does a cast to the desired type >whenever an object is extracted from the container. Horrible. I didn't mean that (:-)) There is an automated cut-and-paste called generics. However, if we could tie the tag of the element with the container's tag, we could solve the problem of specific containers, by deriving a new container type *statically* constrained by the element type. In this case the compiler would know the type of the elements. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: please, please, please, ... 2003-01-18 12:31 ` Dmitry A. Kazakov 2003-01-18 22:53 ` Hillel Y. Sims 2003-01-19 3:42 ` Hyman Rosen @ 2003-01-23 13:15 ` Wes Groleau 2 siblings, 0 replies; 337+ messages in thread From: Wes Groleau @ 2003-01-23 13:15 UTC (permalink / raw) .... I beg of you all: Limit what you quote. My scrolling finger is begging me to ignore this thread. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 18:20 ` Dmitry A. Kazakov 2003-01-16 18:59 ` Hyman Rosen @ 2003-01-16 19:08 ` Hyman Rosen 2003-01-17 16:28 ` Dmitry A. Kazakov 2003-01-17 4:03 ` Richard Riehle 2 siblings, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-16 19:08 UTC (permalink / raw) Dmitry A. Kazakov wrote: > What's the use of a variation over > a type set if you are unable to specify an element of the set? I forgot to add that an additional benefit of generics is type-safety, enforced at compile-time. Such as the Unit code. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 19:08 ` Anybody in US using ADA ? One silly idea Hyman Rosen @ 2003-01-17 16:28 ` Dmitry A. Kazakov 0 siblings, 0 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-17 16:28 UTC (permalink / raw) Hyman Rosen wrote: > Dmitry A. Kazakov wrote: >> What's the use of a variation over >> a type set if you are unable to specify an element of the set? > > I forgot to add that an additional benefit of generics is > type-safety, enforced at compile-time. Such as the Unit code. Hey, in Ada everything is type-safe! (:-)) -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-16 18:20 ` Dmitry A. Kazakov 2003-01-16 18:59 ` Hyman Rosen 2003-01-16 19:08 ` Anybody in US using ADA ? One silly idea Hyman Rosen @ 2003-01-17 4:03 ` Richard Riehle 2003-01-17 16:28 ` Dmitry A. Kazakov 2 siblings, 1 reply; 337+ messages in thread From: Richard Riehle @ 2003-01-17 4:03 UTC (permalink / raw) "Dmitry A. Kazakov" wrote: > They are not, up to some limit. But the problem is whether the language > gives you an opportunity to define new numeric types without the > restrictions you do not need and close enough to the theoretical > performance limit for the remaining restrictions. Ada almost can this. > [Almost, because one cannot make a private type "numeric" for the > compiler.] In fact, I have a generic package, for creating generic formal package parameters that looks like this: generic type Item is private; with function "+" (L, R : Item) return Item is <>; with function "-" (L, R : Item) return Item is <>; with function "*" (L, R : Item) return Item is <>; with function "/" (L, R : Item) return Item is <>; with function "=" (L, R : Item) return Boolean is <>; with function "<" (L, R : Item) return Boolean is <>; with function ">" (L, R : Item) return Boolean is <>; with function "<=" (L, R : Item) return Boolean is <>; with function ">=" (L, R : Item) return Boolean is <>; with function Zero_Equivalent return Item; -- with some additional generic formal subprogram parameters package Generic_Operators is end Generic_Operators; This can be used in some other package as a generic formal package parameter. generic with package Operators is new Generic_Operators<>; package Generic_Statistics is -- Any data type here end Generic_Statistics; I published an article with the details for this in an old issue of Ada Letters. Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-17 4:03 ` Richard Riehle @ 2003-01-17 16:28 ` Dmitry A. Kazakov 2003-01-21 5:53 ` Richard Riehle 0 siblings, 1 reply; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-17 16:28 UTC (permalink / raw) Richard Riehle wrote: > "Dmitry A. Kazakov" wrote: > >> They are not, up to some limit. But the problem is whether the language >> gives you an opportunity to define new numeric types without the >> restrictions you do not need and close enough to the theoretical >> performance limit for the remaining restrictions. Ada almost can this. >> [Almost, because one cannot make a private type "numeric" for the >> compiler.] > > In fact, I have a generic package, for creating generic formal package > parameters that looks like this: > > generic > type Item is private; > with function "+" (L, R : Item) return Item is <>; > with function "-" (L, R : Item) return Item is <>; > with function "*" (L, R : Item) return Item is <>; > with function "/" (L, R : Item) return Item is <>; > with function "=" (L, R : Item) return Boolean is <>; > with function "<" (L, R : Item) return Boolean is <>; > with function ">" (L, R : Item) return Boolean is <>; > with function "<=" (L, R : Item) return Boolean is <>; > with function ">=" (L, R : Item) return Boolean is <>; > with function Zero_Equivalent return Item; > -- with some additional generic formal subprogram parameters > package Generic_Operators is end Generic_Operators; > > This can be used in some other package as a generic formal package > parameter. > > generic > with package Operators is new Generic_Operators<>; > package Generic_Statistics is > > -- Any data type here > > end Generic_Statistics; > > I published an article with the details for this in an old issue of > Ada Letters. BTW, did you compare generic with package Operators is new Generic_Operators <>; package Generic_Statistics is ... with a child package variant: generic package Generic_Operators.Generic_Statistics is ... It would be interesting to do it in depth. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-17 16:28 ` Dmitry A. Kazakov @ 2003-01-21 5:53 ` Richard Riehle 2003-01-21 6:24 ` tmoran 0 siblings, 1 reply; 337+ messages in thread From: Richard Riehle @ 2003-01-21 5:53 UTC (permalink / raw) "Dmitry A. Kazakov" wrote: > BTW, did you compare > > generic > with package Operators is new Generic_Operators <>; > package Generic_Statistics is ... > > with a child package variant: > > generic > package Generic_Operators.Generic_Statistics is ... > > It would be interesting to do it in depth. I'm sure it would be interesting. However, it changes nothing with regard to the valuable contribution of generics as one approach to software reuse. Bertrand Meyer's observations, in his early paper about genericity versus inheritance have always made sense to me. The two approaches have their own unique benefits. Sometimes a design is best as a generic component. Other times, inheritance is that proper choice. In these times, inheritance and genericity are no longer the only choices. True delegation, as represented by the Ada keyword, requeue, is another excellent choice. Child library units open the door to Aspect_Oriented Programming in Ada. Also, Child Library Units make it easier to decompose a set of methods into specifications that more closely correspond to high-cohesion. The object model is just beginning to open itself to a broader range of collaboration options. Newer language designs, that is newer than C++, Ada, Java, or C#, are being developed to more easily accomodate this broader range of options. At present, Ada is pretty good, but it will eventually become as obsolete as I believe C++ already is. Even though something is obsolete, people will continue to use it. This will be true of Jovial, Ada, C++, and even PL/I. Yet, the new range of options demonstrated by the new language designs will slowly find their way into day-to-day practice. Some of the features of these languages will come from C++, some from Ada, and some from other languages. Perhaps, someone will adopt the EVALUATE statement from COBOL in one of these new language designs. The COBOL EVLUATE statement is one of the most powerful and linguistically consistent statements ever designed for any programming language, yet only COBOL has it. Even so, COBOL falls far far short of being the ideal programming language. I don't expect to see the perfect programming language in my lifetime. The tone has been set for designing such a language, but few have accomplished it so far. Also, as long as those who have learned one language take a xenophobic attitude toward any other language that comes on the scene, we will likely make very little progress. So, at present, those of us who do write computer programs can benefit from knowing more than one language and being able to use each of them for the job where they seem appropriate. The DoD tried, and failed, to introduce a single-language policy into their software projects. Very likely other such attempts, by anyone, will also fail. Even IBM, when it still owned the computer industry, could not force everyone to adopt PL/I. Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-21 5:53 ` Richard Riehle @ 2003-01-21 6:24 ` tmoran 0 siblings, 0 replies; 337+ messages in thread From: tmoran @ 2003-01-21 6:24 UTC (permalink / raw) There's an interesting article "On Type Systems for Object-Oriented Database Programming Languages" in the current ACM Computing Surveys. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 17:23 ` Hyman Rosen 2003-01-15 18:19 ` Bill Findlay 2003-01-16 18:20 ` Dmitry A. Kazakov @ 2003-01-16 19:09 ` Larry Kilgallen 2 siblings, 0 replies; 337+ messages in thread From: Larry Kilgallen @ 2003-01-16 19:09 UTC (permalink / raw) In article <iPCV9.2441$c6.2445@bos-service2.ext.raytheon.com>, Wes Groleau <wesgroleau@despammed.com> writes: > >> Didn't Lisp suffer from a parentheses shortage? I always thought that one >> could write Lisp faster with one additional input device: left parenthese >> and right parenthese foot pedals. > > Ooh, Repetitive Stress Injuries in the calf muscles! Oh, coding errors when a left-footed person has interchanged the pedals. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 17:04 ` Dmitry A. Kazakov 2003-01-15 17:23 ` Hyman Rosen @ 2003-01-15 22:48 ` Robert A Duff 2003-01-16 18:20 ` Dmitry A. Kazakov 2003-01-25 16:05 ` Robert I. Eachus 2 siblings, 1 reply; 337+ messages in thread From: Robert A Duff @ 2003-01-15 22:48 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes: > Hyman Rosen wrote: > > > Dmitry A. Kazakov wrote: > >> I agree. As I said, it is a long way to go to get rid of generics. > > > > And as I said, I have no idea why you would want to. > > I think I explained why. You explained why, but I didn't see any explanation of what you would like to do instead. Clearly, I should be able to write a "stack" abstraction (or other data structure) that takes any type as element. And I shouldn't have to write it more than once. And I should be able to constrain any particular stack to have a particular element type, with this type checked at compile time. (Or, I can use a class-wide type as the element, if I want any type in a class.) I'd be interested to know if you have something in mind that meets these criteria. Tagged types in Ada (or the corresponding feature in most other languages) don't give you the compile-time checking. It seems to me that if the feature is not generics or templates, then it would at least have to share some properties with those features. - Bob ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 22:48 ` Robert A Duff @ 2003-01-16 18:20 ` Dmitry A. Kazakov 0 siblings, 0 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-16 18:20 UTC (permalink / raw) Robert A Duff wrote: > "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes: > >> Hyman Rosen wrote: >> >> > Dmitry A. Kazakov wrote: >> >> I agree. As I said, it is a long way to go to get rid of generics. >> > >> > And as I said, I have no idea why you would want to. >> >> I think I explained why. > > You explained why, but I didn't see any explanation of what you would > like to do instead. You are the first who asks. (:-)) > Clearly, I should be able to write a "stack" abstraction (or other data > structure) that takes any type as element. And I shouldn't have to > write it more than once. And I should be able to constrain any > particular stack to have a particular element type, with this type > checked at compile time. (Or, I can use a class-wide type as the > element, if I want any type in a class.) > > I'd be interested to know if you have something in mind that meets these > criteria. Tagged types in Ada (or the corresponding feature in most > other languages) don't give you the compile-time checking. > > It seems to me that if the feature is not generics or templates, > then it would at least have to share some properties with those > features. OK, here is my program of how containers could be made non-generic. I haven't worked out all details and I do not even know if it is possible. This is a program, not a solution or proposal for Ada2005. --- If we consider stack (container) then the first question is what is the class of types which can be used with it. We want to 1. have an ability to specify the class as a type 2. have it open (extensible) 3. clone the class (typed containers) The minimal requirement is an ability to copy the element (sort of "type X is private"). type Element is abstract tagged null record; Here the first deviation from Ada comes. All types have to be tagged [in the sense of existing T'Class] and there should be a way to explicity say that a type has [or has to have] copy-constructor: type Element is abstract; ?function? (Source : Element) return Element is abstract; The stack could be defined as an array of Element'Class. It is impossible in Ada for many reasons, but the major is that the size of Element'Class is unknown. A thinkable way could be to make a constrant for it a discriminant of the array. Clearly there should be a way to bind Element and Stack as an array type and its element are bound. Frankly, I do not know yet. type Stack (?) is private; procedure Push (...); That multiple inheritance is inevitable is clear. We definitely want no more problems like with Root_Stream_Type. Now if we want a new type to be used with the stack, we just derive it from Stack'Element as a subtype. The crucial point is what to do with already existing types. There is a solution for this. The language should allow not only subtyping, but also supertyping. Let we want to put Integer into the stack. Then we could create a new "bridge" type which is *both* a subtype of Stack'Element and a supertype of Integer. This would have an effect of making Integer a subtype of Element. By the way this feature would also solve many other problems. This also should mean that deriving should no more determine the representation of the new type, if not explicitly specified. Typed (=>compile-time checkable) containers should be no problem if Element and Stack are bound. One could use sort of "type X is new Y;" to clone them into a new pair and then derive from new Stack'Element. Performance should not be an issue, if Push and Pop are inlined and types (=tags) are statically known. So it should be as efficient as generics are. However this also requires some rework. The language should require [if programmer wants] absence of discriminants and tags in specific objects (statically known constraints). I belive it is already the case for array bounds, correct me if I am wrong. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-15 17:04 ` Dmitry A. Kazakov 2003-01-15 17:23 ` Hyman Rosen 2003-01-15 22:48 ` Robert A Duff @ 2003-01-25 16:05 ` Robert I. Eachus 2003-01-25 20:33 ` Richard Riehle ` (2 more replies) 2 siblings, 3 replies; 337+ messages in thread From: Robert I. Eachus @ 2003-01-25 16:05 UTC (permalink / raw) As I read through this thread, I noticed widespread ignorance on both sides of the way Ada generics actually work. This is not surprising, as the essential magic is "hidden" in plain sight in what seems like a textual substitution shorthand. But as anyone who actually implements Ada generics can tell you, it is anything but textual substitution. Ada generics have four places where binding of parameters occurs. At the point of the generic declaration, any bindings that occur are compile time bindings with respect to names, and can be to static or dynamic values: generic function Foo(X: in Integer := Read) return Integer is... The second set of bindings occurs in the body. Although it is possible for the binding in the body of a generic to be to a different instance of a name than in the specification, good programming practice strongly deprecates that possibility. However, it is common for new names to be visible in the body, and to be used. The third set of bindings occurs at the point of instantiation. This is where the generic parameters are bound. A classic example of using this binding occurs with sorts: generic type Element is private; type Element_Array is array (Integer range <>) of Element; function ">" (L,R: Element) return Boolean; procedure Sort(EA: in out Element_Array); Now an instantiation of Sort passing "<" instead of ">" will sort in descending instead of ascending order. Of course for convenience, the specification above is normally written as: generic type Element is private; type Element_Array is array (Integer range <>) of Element; function ">" (L,R: Element) return Boolean is <>; procedure Sort(EA: in out Element_Array); The 'is <>' allows the function ">" to be defaulted and left out of the instantiation. This is where the magic--or snakepit--occurs, depending on whether you are a user or implementor. Instead of 'is <>' I could have written 'is Standard.">"' and insured that the default would be to the predefined greater than operation for Integer. But with the 'is <>', I get the ">" function for Integer visible at the point of instantiation. This can be in a nested call, and the binding can actually be to some ">" in a (run-time) enclosing declarative part. In other words, implementing the 'is <>' notation correctly requires support for upward closures. But there is worse (from an implementors point of view) to come. The fourth point of binding is at the call. This is where the names of the formal parameters are bound to the actuals. But notice that the environment of the call need not be that of instantiation, in fact, quite often it is not. This means that if you try to implement Ada using displays, generics sometimes require passing multiple displays as implicit parameters. (Ouch! Ask Randy Brukardt for details, he has actually implemented it.) Should you use this Lisp style richness of closures when programming in Ada? I have found very few cases where the power was worth the documentation effort to make sure any maintainers understood what was going on. The one exception has been in displaying appropriate error messages during debugging of parsers. ;-) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-25 16:05 ` Robert I. Eachus @ 2003-01-25 20:33 ` Richard Riehle 2003-01-27 13:29 ` Wes Groleau 2003-01-27 16:29 ` Hyman Rosen 2 siblings, 0 replies; 337+ messages in thread From: Richard Riehle @ 2003-01-25 20:33 UTC (permalink / raw) "Robert I. Eachus" wrote: > Robert, In your haste to provide an example, you have done what I so often do. Note the syntax error in your generic formal parameters. The function ">" should be, with function ">" (L, R : element) return Boolean; > generic > type Element is private; > type Element_Array is array (Integer range <>) of Element; > function ">" (L,R: Element) return Boolean; > procedure Sort(EA: in out Element_Array); > > generic > type Element is private; > type Element_Array is array (Integer range <>) of Element; > function ">" (L,R: Element) return Boolean is <>; > procedure Sort(EA: in out Element_Array); Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-25 16:05 ` Robert I. Eachus 2003-01-25 20:33 ` Richard Riehle @ 2003-01-27 13:29 ` Wes Groleau 2003-01-27 16:29 ` Hyman Rosen 2 siblings, 0 replies; 337+ messages in thread From: Wes Groleau @ 2003-01-27 13:29 UTC (permalink / raw) > ..... A classic example of using this > binding occurs with sorts: > > [snip] > > generic > type Element is private; > type Element_Array is array (Integer range <>) of Element; > function ">" (L,R: Element) return Boolean is <>; > procedure Sort(EA: in out Element_Array); > > The 'is <>' allows the function ">" to be defaulted and left out of the > instantiation. This is where the magic--or snakepit--occurs, depending > on whether you are a user or implementor. Instead of 'is <>' I could > have written 'is Standard.">"' and ensured that the default would be to > the predefined greater than operation for Integer. Well, almost. You'd have to change "private" to "range <>" to avoid a message like: Standard.">" has no definition that matches function ">" (L, R : Element) return Boolean [RM_95 8.5.4(4)] > > Now an instantiation of Sort passing "<" instead of ">" will sort in > descending instead of ascending order. Of course for convenience, the > specification above is normally written as: > > But with the 'is <>', I get the ">" function for Integer visible at the > point of instantiation. This can be in a nested call, and the binding > can actually be to some ">" in a (run-time) enclosing declarative part. > In other words, implementing the 'is <>' notation correctly requires > support for upward closures. But there is worse (from an implementors > point of view) to come. > > The fourth point of binding is at the call. This is where the names of > the formal parameters are bound to the actuals. But notice that the > environment of the call need not be that of instantiation, in fact, > quite often it is not. This means that if you try to implement Ada > using displays, generics sometimes require passing multiple displays as > implicit parameters. (Ouch! Ask Randy Brukardt for details, he has > actually implemented it.) > > Should you use this Lisp style richness of closures when programming in > Ada? I have found very few cases where the power was worth the > documentation effort to make sure any maintainers understood what was > going on. The one exception has been in displaying appropriate error > messages during debugging of parsers. ;-) > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-25 16:05 ` Robert I. Eachus 2003-01-25 20:33 ` Richard Riehle 2003-01-27 13:29 ` Wes Groleau @ 2003-01-27 16:29 ` Hyman Rosen 2003-01-28 13:24 ` Robert A Duff 2003-01-28 18:44 ` Robert A Duff 2 siblings, 2 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-27 16:29 UTC (permalink / raw) Robert I. Eachus wrote: > This means that if you try to implement Ada using displays, > generics sometimes require passing multiple displays as > implicit parameters. Is this any different than if the subprogram was not generic? That is, suppose I just wrote a subprogram instead of an instantiation: type Element_Array is array(Integer range <>) of Element; procedure Sort(EA: in out Element_Array) is begin -- uses EA(i) > EA(j) end and then I pass a pointer to Sort to another procedure. Doesn't the same sort of thing have to be done as for the generic? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-27 16:29 ` Hyman Rosen @ 2003-01-28 13:24 ` Robert A Duff 2003-01-28 17:16 ` Hyman Rosen 2003-01-28 18:44 ` Robert A Duff 1 sibling, 1 reply; 337+ messages in thread From: Robert A Duff @ 2003-01-28 13:24 UTC (permalink / raw) Hyman Rosen <hyrosen@mail.com> writes: > Is this any different than if the subprogram was not generic? > That is, suppose I just wrote a subprogram instead of an > instantiation: > type Element_Array is array(Integer range <>) of Element; > procedure Sort(EA: in out Element_Array) is > begin > -- uses EA(i) > EA(j) > end > and then I pass a pointer to Sort to another procedure. > Doesn't the same sort of thing have to be done as for the > generic? No, because you can't pass a nested procedure to a less-nested procedure. So in a display implementation, you can always pass just the address of the code. In a static-link implementation, you can pass just the address of the code for unnested procedures, and for procedures nested one level deep, but you need a static link for deeper ones. - Bob ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-28 13:24 ` Robert A Duff @ 2003-01-28 17:16 ` Hyman Rosen 0 siblings, 0 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-28 17:16 UTC (permalink / raw) Robert A Duff wrote: > No, because you can't pass a nested procedure to a less-nested > procedure. So you can instantiate a generic procedure and pass its address to a less-nested procedure, even though the generic uses procedures defined at a more-nested level? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-27 16:29 ` Hyman Rosen 2003-01-28 13:24 ` Robert A Duff @ 2003-01-28 18:44 ` Robert A Duff 2003-01-28 20:04 ` Hyman Rosen 1 sibling, 1 reply; 337+ messages in thread From: Robert A Duff @ 2003-01-28 18:44 UTC (permalink / raw) Hyman Rosen <hyrosen@mail.com> writes: > Robert A Duff wrote: > > No, because you can't pass a nested procedure to a less-nested > > procedure. > > So you can instantiate a generic procedure and pass its address > to a less-nested procedure, even though the generic uses procedures > defined at a more-nested level? No. You can pass a nested procedure to a less-nested generic during instantiation. You cannot pass the 'Access of a nested procedure to a less-nested procedure. generic with procedure Action(Item: Element); procedure Iterate(X: Data_Structure); -- Calls Action once for each Item in the data structure. function Count(X: Data_Structure) return Natural is Result: Natural := 0; procedure Incr_Result(Item: Element) is begin Result := Result + 1; end; procedure Iter is new Iterate(Incr_Result); begin Iter(X); return Result; end Count; The above works fine (barring typos -- I didn't compile it). But if you try to do the same thing using access-to-procedure, it won't work: type Action_Proc is access procedure(Item: Element); procedure Iterate(X: Data_Structure; Action: Action_Proc); function Count(X: Data_Structure) return Natural is Result: Natural := 0; procedure Incr_Result(Item: Element) is begin Result := Result + 1; end; begin Iterate(X, Incr_Result'Access); -- Illegal! return Result; end Count; - Bob ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-28 18:44 ` Robert A Duff @ 2003-01-28 20:04 ` Hyman Rosen 0 siblings, 0 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-28 20:04 UTC (permalink / raw) Robert A Duff wrote: > You can pass a nested procedure to a less-nested generic during > instantiation. You cannot pass the 'Access of a nested procedure to a > less-nested procedure. This makes perfect sense to me. In my naive, C++ style of thinking about generics, I see the instantiation as doing textual substitution at that point, and so while the generic itself has been declared at a less nested level, its instantiation is not. I don't think of the instantiation as "passing" the parameters. But I guess the idea is that the generic can also pull in names from its own context that would be different from the names that would be found if the code was just written in place at the instantiation point, and those can be local functions as well, and that's where some of the complexity sets in. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 14:13 ` Dmitry A. Kazakov 2003-01-06 19:13 ` Pascal Obry 2003-01-07 3:00 ` Hyman Rosen @ 2003-01-07 13:51 ` Richard Riehle 2003-01-08 3:51 ` Hyman Rosen 2 siblings, 1 reply; 337+ messages in thread From: Richard Riehle @ 2003-01-07 13:51 UTC (permalink / raw) The debate over generics versus inheritance is quite old. Bertrand Meyer wrote an essay on this which he included in his book, "Object Oriented Software Construction." The general conclusion was that genericity could be emulated with inheritance, but inheritance could not be emulated with genericity. For some the objective of both concepts is software reuse. I seen that as a short-sighted view, but it is certainly one valid objective. Ada has taken this a little further. We have genericity, inheritance, and child library units. All three are useful tools when used for the correct purpose. All three provide a powerful combination of approaches to software reuse. Randy Brukhardt has correctly noted that Ada /= GNAT. Many compilers, one that I recall quite well was TLD Ada, did not use full code expansion for generics. Some have suggested the C++ model for generics is slightly better than that in Ada. I respectfully suggest that the improved flexibility also results in a degradation of reliability. But reliability has been widely deprecated as less important that ease of development. Ada generics, as well as Eiffel and C++ generics, do make the creation of extensible containers more sensible. In my experience, combining genericity with inheritance in Ada is quite useful. It is also helpful that we can dispatch on the result of a function when designing such containers. Child library units have turned out to be more powerful than I originally expected. I now use the package body to implement only the declarations in the specification. All supporting code within a body is now promoted to a child library unit. This has provided support for creating aspects, something we could not do easily with Ada 83, and something I see as more challenging in C++ than in Ada (though not impossible). As as consequence, I see Ada as quite friendly to the new model of Aspect-Oriented Programming, while still enforcing a strong model of encapsulation. Any tool, used unwisely, is a fool's tool. Genericity, when used intelligently, continues to be a valuable component of the Ada language. The addition of generic formal package parameters in Ada 95 has proven to be an excellent addition, even though a great many programmers are confused by it because the ALRM does not provide a simple and fully coded example. I do provide such a example in "Ada Distilled." I just returned from presenting a two week software engineering seminar in Asia. I used Ada to demonstrate my programming examples. The students, none of whom had seen Ada before, found the examples easy to read, understand, and ask questions about. If I had been using C++ for a similar audience, one that had never seen C++ before, I suspect I would have had a classroom full of confused students. Even my example using an Ada generic component was easy to follow for these students, even though English was not their native language. Some of them plan to download GNAT and experiment with Ada. Everyone of them agreed that C++ is so confusing that they spend a huge amount of time correcting errors that they wish had been caught by the compiler. Many had already rejected C++ in favor of Java, Python, and other languages because they found C++ so difficult. Ada can be made accessible to new students. We simply need to learn how to present what the students need when they need it, and to show them simple solutions they can use to work out their own problems. Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-07 13:51 ` Richard Riehle @ 2003-01-08 3:51 ` Hyman Rosen 0 siblings, 0 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-08 3:51 UTC (permalink / raw) Richard Riehle wrote: > Some have suggested the C++ model for generics is slightly better > than that in Ada. I respectfully suggest that the improved flexibility > also results in a degradation of reliability. Since generics are "expanded" at compile-time, you cannot mean the usual things that reliability means with respect to C++, such as indexing out of array bounds, or using bad pointers, or overflowing arithmetic. So I assume that you mean instead that the C++ model makes it more difficult to see, at the point of use, exactly which piece of code is being invoked. As I recall, it was exactly this concern which led to the tragic lack of pointers to functions in Ada83. I suppose some lessons need to be learned over and over again. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 1:37 ` Robert C. Leif 2003-01-06 14:13 ` Dmitry A. Kazakov @ 2003-01-06 16:33 ` Georg Bauhaus 1 sibling, 0 replies; 337+ messages in thread From: Georg Bauhaus @ 2003-01-06 16:33 UTC (permalink / raw) Robert C. Leif <rleif@rleif.com> wrote: : Oberon.NET, which is very new, has generics. of a different sort. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-05 14:13 ` Dmitry A. Kazakov ` (2 preceding siblings ...) 2003-01-06 1:37 ` Robert C. Leif @ 2003-01-06 16:23 ` Wes Groleau 3 siblings, 0 replies; 337+ messages in thread From: Wes Groleau @ 2003-01-06 16:23 UTC (permalink / raw) > 1. Generics are static. You cannot have an object or dynamic-link library of > generics. > > 1.a. This kills code reuse at run-time. Weakens it, but does not "kill" it. I can instantiate a generic at run-time. And that generic can instantiate another generic or give actuals to another generic. Where is the body code for the following instantiations? -- Admittedly, this is a pretty unlikely scenario! procedure Demo (First : Natural) is type Weird_Num is range First .. Last_Function (First); type Weird_Record is record Field_That : .....; Did_Not : Weird_Num; Exist_Before : .....; end record; This_Is_It : Weird_Record; package Temporary is new Wierd_Thing (Weird_Num, Weird_Record); function Make_Weird is new Oddball (Weird_Num, Temporary.Weird_Function); begin ....; -- Generate the contents of This_Is_It. Ada.Text_IO.Put_Line (Temporary.Image_Of (Make_Weird (This_Is_It)); ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-04 11:48 ` Dmitry A. Kazakov 2003-01-04 18:15 ` Robert A Duff 2003-01-04 20:18 ` Hillel Y. Sims @ 2003-01-06 4:20 ` Kevin Cline 2003-01-06 14:16 ` Dmitry A. Kazakov 2003-01-06 16:08 ` Wes Groleau 2 siblings, 2 replies; 337+ messages in thread From: Kevin Cline @ 2003-01-06 4:20 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message news:<av6hla$cggao$1@ID-77047.news.dfncis.de>... > Kevin Cline wrote: > > > Today, the features that Ada provides have little value > > compared with the features that C++ provides and Ada lacks: > > the STL, automatic template function instantiation, > > Generics in any form is an illness of programming languages. > > > smooth integration of user-defined and primitive datatypes, > > Why do you think C++ is better in that respect? Because all operations applicable to C++ fundamental types can be made to work for user-defined types. Ada's fundamental types have attributes, but those attributes can not be provided for user-defined types. This makes generic programming in Ada more difficult than generic programming in C++. > C++ OO model is badly flawed > as compared with Ada's one. In any case both Ada and C++ have primitive > types separated from user-defined types by a fire wall. The difference is > that Ada's design potentially allows to mend this, while in C++ it is > beyond repair. You need to substantiate this claim; I have found the opposite to be true. > > > and bindings to every API in existence. > > That's not language fault. I didn't say that it was a language flaw. But it makes Ada more difficult to integrate with existing APIs. > This can be addressed to any language except C. > Even C++ suffers from that: you might need 'extern "C" {}' to call most of > API functions. Generally I don't have to supply "extern C ... " because the most header files handle the problem. Even if they don't, I can simply say: extern "C" { #include "someAPI.h" } rather than redeclaring every one of the functions needed. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 4:20 ` Kevin Cline @ 2003-01-06 14:16 ` Dmitry A. Kazakov 2003-01-06 16:08 ` Wes Groleau 1 sibling, 0 replies; 337+ messages in thread From: Dmitry A. Kazakov @ 2003-01-06 14:16 UTC (permalink / raw) Kevin Cline wrote: > "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message > news:<av6hla$cggao$1@ID-77047.news.dfncis.de>... >> Kevin Cline wrote: >> >> > Today, the features that Ada provides have little value >> > compared with the features that C++ provides and Ada lacks: >> > the STL, automatic template function instantiation, >> >> Generics in any form is an illness of programming languages. >> >> > smooth integration of user-defined and primitive datatypes, >> >> Why do you think C++ is better in that respect? > > Because all operations applicable to C++ fundamental types can be made > to work for user-defined types. Ada's fundamental types have > attributes, but those attributes can not be provided for user-defined > types. Some of them, to be correct. There are overridable attributes. Note also that Ada offers much more "standard" operations than C++. I agree that every of them has to be a primitive overridable operation, but the burden of Ada 83 is heavy. Then some of things are difficult to make. Consider aggregates. Can C++ override them? Consider indefinite types. Does C++ have them? Consider short circuit operations. In C++ you can override it but you loose its property. > This makes generic programming in Ada more difficult than > generic programming in C++. I disagree. Generic programming is not equal to programming with generics. It is programming for type sets. Ada's class-wide types are much more consistent and powerful that flawed C++ OO model. >> C++ OO model is badly flawed >> as compared with Ada's one. In any case both Ada and C++ have primitive >> types separated from user-defined types by a fire wall. The difference is >> that Ada's design potentially allows to mend this, while in C++ it is >> beyond repair. > > You need to substantiate this claim; I have found the opposite to be > true. 1. C++ does not distingush a specific type from a types set. 2. In C++ you can dispatch on exactly one parameter 3. The dispatching parameter cannot be result. So all functions are contravariant 4. In C++ you cannot return a class-wide parameter otherwise than through a pointer 5. Because of 1. there is no way to deal with ALL types in same way. For instance, int is not a class and will never be one. 6. Because of 2. you cannot implement binary operations properly >> > and bindings to every API in existence. >> >> That's not language fault. > > I didn't say that it was a language flaw. But it makes Ada more > difficult > to integrate with existing APIs. > >> This can be addressed to any language except C. > >> Even C++ suffers from that: you might need 'extern "C" {}' to call most >> of API functions. > > Generally I don't have to supply "extern C ... " because the most > header > files handle the problem. Even if they don't, I can simply say: > > extern "C" { > #include "someAPI.h" > } > > rather than redeclaring every one of the functions needed. Really? And what about stdcall vs. cdecl? Parameter passing conventions could be well different from what extern "C" does. I would agree with you, should you say: many API are written in C which allows a smooth integration into a C program provided that the compiler and linker are of same vendor as API, or a sort of standard was involved. Then because MS is a monopolist and all poor programmers have to use MS VC++, then ... -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 4:20 ` Kevin Cline 2003-01-06 14:16 ` Dmitry A. Kazakov @ 2003-01-06 16:08 ` Wes Groleau 2003-01-06 17:26 ` James S. Rogers 2003-01-07 3:14 ` Hyman Rosen 1 sibling, 2 replies; 337+ messages in thread From: Wes Groleau @ 2003-01-06 16:08 UTC (permalink / raw) >>>smooth integration of user-defined and primitive datatypes, >> >>Why do you think C++ is better in that respect? > > Because all operations applicable to C++ fundamental types can be made > to work for user-defined types. Ada's fundamental types have > attributes, but those attributes can not be provided for user-defined > types. This makes generic programming in Ada more difficult than > generic programming in C++. I don't know C++ very well, but this complaint about Ada is true--at least partially. I do understand C and Java, so I'll risk interpolating to C++ .... Does C++ have subtypes and derived types? The lack of such in Java is really a pain. And these DO inherit attributes from parent types. But I wish I could define things like 'First and 'Last when I create a private type for which they are meaningful. It would also be nice to be able to redefine 'Size for an access type or record containing an access type. But these are minor issues. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 16:08 ` Wes Groleau @ 2003-01-06 17:26 ` James S. Rogers 2003-01-07 13:36 ` Wes Groleau 2003-01-07 18:40 ` David C. Hoos 2003-01-07 3:14 ` Hyman Rosen 1 sibling, 2 replies; 337+ messages in thread From: James S. Rogers @ 2003-01-06 17:26 UTC (permalink / raw) "Wes Groleau" <wesgroleau@despammed.com> wrote in message news:YRhS9.215$Z74.921@dfw-service2.ext.raytheon.com... > > I don't know C++ very well, but this complaint > about Ada is true--at least partially. I do > understand C and Java, so I'll risk interpolating > to C++ .... > > Does C++ have subtypes and derived types? The lack Not in the Ada sense. C++, supporting OOP, does allow you to create your own classes and inherit from those classes. It does not allow you to create your own primitive types or derive directly from primitive types. C++ does not support anything like type Voltages is digits 15 range -4.0..40.; type Strange is new Integer range -123..1024; Nor does it support anything like subtype Natural is Integer range 0..Integer'Last; > of such in Java is really a pain. And these DO inherit > attributes from parent types. But I wish I could > define things like 'First and 'Last when I create a > private type for which they are meaningful. Of course, 'First and 'Last imply a range. Ranges imply discrete values. How would you describe the range for a type that is not discrete? This would imply the ability to define discontinuous ranges. Although that ability seems convenient for the programmer, I have no idea how it could be implemented by the compiler writer in an efficient and general manner. > It would also be nice to be able to redefine 'Size > for an access type or record containing an access type. > But these are minor issues. Defining 'Size for an access type would require a consistent implementation of access types across all compilers. Remember that an access type need not be implemented as a pointer. Ada makes a strong distinction between an access type and a value of type System.Address. Jim Rogers ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 17:26 ` James S. Rogers @ 2003-01-07 13:36 ` Wes Groleau 2003-01-07 18:40 ` David C. Hoos 1 sibling, 0 replies; 337+ messages in thread From: Wes Groleau @ 2003-01-07 13:36 UTC (permalink / raw) > Of course, 'First and 'Last imply a range. Ranges imply > discrete values. How would you describe the range for > a type that is not discrete? This would imply the ability to > define discontinuous ranges. Although that ability seems > convenient for the programmer, I have no idea how it could > be implemented by the compiler writer in an efficient and > general manner. The compiler writer would not need to implement it. Just the ability for the USER to define it. The application is a type that conceptually has a range, but is for some reason private. >>It would also be nice to be able to redefine 'Size >>for an access type or record containing an access type. > > Defining 'Size for an access type would require a consistent > implementation of access types across all compilers. Remember No, the USER wants to redefine it so that it is somehow related to the value pointed to. The implementation is irrelevant. It's to would support the abstraction, not the implementation. But, I repeat, these are _minor_ issues. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 17:26 ` James S. Rogers 2003-01-07 13:36 ` Wes Groleau @ 2003-01-07 18:40 ` David C. Hoos 2003-01-07 21:29 ` James S. Rogers 1 sibling, 1 reply; 337+ messages in thread From: David C. Hoos @ 2003-01-07 18:40 UTC (permalink / raw) ----- Original Message ----- From: "James S. Rogers" <jimmaureenrogers@worldnet.att.net> Newsgroups: comp.lang.ada To: <comp.lang.ada@ada.eu.org> Sent: Monday, January 06, 2003 11:26 AM Subject: Re: Anybody in US using ADA ? One silly idea.. <snip> > Of course, 'First and 'Last imply a range. Ranges imply > discrete values. How would you describe the range for > a type that is not discrete? Did you mean "scalar" where you said discrete? <snip> ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-07 18:40 ` David C. Hoos @ 2003-01-07 21:29 ` James S. Rogers 0 siblings, 0 replies; 337+ messages in thread From: James S. Rogers @ 2003-01-07 21:29 UTC (permalink / raw) "David C. Hoos" <david.c.hoos.sr@ada95.com> wrote in message news:mailman.1041964863.13971.comp.lang.ada@ada.eu.org... > > ----- Original Message ----- > From: "James S. Rogers" <jimmaureenrogers@worldnet.att.net> > Newsgroups: comp.lang.ada > To: <comp.lang.ada@ada.eu.org> > Sent: Monday, January 06, 2003 11:26 AM > Subject: Re: Anybody in US using ADA ? One silly idea.. > > > <snip> > > Of course, 'First and 'Last imply a range. Ranges imply > > discrete values. How would you describe the range for > > a type that is not discrete? > Did you mean "scalar" where you said discrete? Yes, thank you. Jim Rogers ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 16:08 ` Wes Groleau 2003-01-06 17:26 ` James S. Rogers @ 2003-01-07 3:14 ` Hyman Rosen 2003-01-07 13:40 ` Wes Groleau 1 sibling, 1 reply; 337+ messages in thread From: Hyman Rosen @ 2003-01-07 3:14 UTC (permalink / raw) Wes Groleau wrote: > Does C++ have subtypes and derived types? No. The only thing of this type available is class inheritance. > But I wish I could > define things like 'First and 'Last when I create a > private type for which they are meaningful. In C++, you can set up arbitrary "attributes" of this sort by using a technique called traits. You define a class template, and then specialize it for your type. Whether to have a common fallback value or not is up to you. Eg., template<typename T> struct DoesIt; struct Dog; struct Cat; struct AEIOU; template<> struct DoesIt<Dog> { enum { Howl = 1, Yowl = 0, Vowel = 0 }; }; template<> struct DoesIt<Cat> { enum { Howl = 0, Yowl = 1, Vowel = 0 }; }; template<> struct DoesIt<AEIOU> { enum { Howl = 0, Yowl = 0, Vowel = 1 }; }; ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-07 3:14 ` Hyman Rosen @ 2003-01-07 13:40 ` Wes Groleau 2003-01-08 4:30 ` Hyman Rosen 0 siblings, 1 reply; 337+ messages in thread From: Wes Groleau @ 2003-01-07 13:40 UTC (permalink / raw) > > But I wish I could >> define things like 'First and 'Last when I create a >> private type for which they are meaningful. > > In C++, you can set up arbitrary "attributes" of this > sort by using a technique called traits. You define a I'm not interested in "arbitrary" attributes. I'm interesting in creating an abstraction that has the attributes of being some kind of "number" but is still user-defined. In Ada and C++, we can overload operators so that the abstraction is supported. But if we have a legitimate reason to "hide" the implementation with "private" we give up the ability to query the attributes. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-07 13:40 ` Wes Groleau @ 2003-01-08 4:30 ` Hyman Rosen 0 siblings, 0 replies; 337+ messages in thread From: Hyman Rosen @ 2003-01-08 4:30 UTC (permalink / raw) Wes Groleau wrote: > I'm not interested in "arbitrary" attributes. > I'm interesting in creating an abstraction that > has the attributes of being some kind of "number" > but is still user-defined. Well, "arbitrary" includes your case. > But if we have a legitimate reason > to "hide" the implementation with "private" we > give up the ability to query the attributes. Not in C++. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-04 8:53 ` Kevin Cline 2003-01-04 11:48 ` Dmitry A. Kazakov @ 2003-01-04 18:04 ` Ted Dennison 2003-01-04 20:20 ` Hillel Y. Sims 2003-01-06 4:39 ` Kevin Cline 1 sibling, 2 replies; 337+ messages in thread From: Ted Dennison @ 2003-01-04 18:04 UTC (permalink / raw) Kevin Cline wrote: > With no access to subprogram types, attaching Ada-83 subprograms to > widget callbacks was a real puzzle for me. At the time I was doing Damn near every compiler realised that fairly early on, and provided a (non-standard) way to do that, documented in Appendex F (if I remember correctly). However, 1988 is before my time, so I don't know if it counts as "fairly early on". > near the quality of the free GNU C compiler. Within a week of > starting > to program in Ada I found legal code that one or the other compiler > rejected. That's hardly anything you wouldn't have to deal with using C though. I believe there *was* a C standard in 88, but you wouldn't have known it to look at the compilers available. The same goes today for C++. The most commonly used C++ compiler today (MSVC++ 6.0) is just barely over 60% compliant, which means its barely more of a C++ compiler than not. I can tell you from sad experience that trying anything more than the most basic of the STL examples in Stroustrup's book will fail miserably with it. > work. But most > of the problems with C were solved by the introduction of C++. Having worked with both, I'd say that is just true. However, 60% less of C's language-induced problems is not near enough. Plus, C++ adds several new ones of its own, and even makes some of C's existing problems far worse. (eg: Now unexpected implicit type casts can happen with *any* type, not just the numeric ones) > Today, the features that Ada provides have little value > compared with the features that C++ provides and Ada lacks: > the STL, automatic template function instantiation, smooth I'd agree a bit with that. However, MSVC++ 6 doesn't really have this feature either. A large amount of the compilers that do have it, do it differently from each other. That effectively means you can't count on it in portable code. That's why rule #1 in the Mozilla C++ portability guide is "Don't use C++ templates". (see http://www.mozilla.org/hacking/portable-cpp.htmll#dont_use_templates) > integration of user-defined and primitive datatypes, and > bindings to every API in existence. I don't really consider this an issue. Bindings to anything that has a C interface are almost trivial to generate. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-04 18:04 ` Ted Dennison @ 2003-01-04 20:20 ` Hillel Y. Sims 2003-01-05 2:47 ` Ted Dennison 2003-01-06 4:39 ` Kevin Cline 1 sibling, 1 reply; 337+ messages in thread From: Hillel Y. Sims @ 2003-01-04 20:20 UTC (permalink / raw) "Ted Dennison" <dennison@telepath.com> wrote in message news:wmFR9.111225$Y86.101474@news2.central.cox.net... >That's why rule #1 in the Mozilla C++ portability > guide is "Don't use C++ templates". (see > http://www.mozilla.org/hacking/portable-cpp.htmll#dont_use_templates) > Why should anyone care about coding guidelines from a failed project though? :-) hys -- (c) 2003 Hillel Y. Sims hsims AT factset.com ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-04 20:20 ` Hillel Y. Sims @ 2003-01-05 2:47 ` Ted Dennison 2003-01-05 23:58 ` [OT] Mozilla filtering " chris.danx ` (2 more replies) 0 siblings, 3 replies; 337+ messages in thread From: Ted Dennison @ 2003-01-05 2:47 UTC (permalink / raw) Hillel Y. Sims wrote: > "Ted Dennison" <dennison@telepath.com> wrote in message > news:wmFR9.111225$Y86.101474@news2.central.cox.net... > >>That's why rule #1 in the Mozilla C++ portability >>guide is "Don't use C++ templates". (see >>http://www.mozilla.org/hacking/portable-cpp.htmll#dont_use_templates) >> > > > Why should anyone care about coding guidelines from a failed project though? > :-) A good point, but I'm not sure how it relates to Mozilla. I've been using it for my main browser for over a year now, and personally think its about the best thing since sliced bread. If you don't have the latest alpha with the baesean spam filtering, you are really missing out too. I get about 10-20 spams a day at this address, since I don't believe in email address munging. That's *after* the filtering my ISP does which catches about 40 a day (I'm *not* joking. My ISP caught 37 for January 3). But I almost never have to look at a spam any more. I think in the last week Mozilla let about 2 slip through, and hit one false positive. ^ permalink raw reply [flat|nested] 337+ messages in thread
* [OT] Mozilla filtering Re: Anybody in US using ADA ? One silly idea.. 2003-01-05 2:47 ` Ted Dennison @ 2003-01-05 23:58 ` chris.danx 2003-01-06 4:12 ` Ted Dennison 2003-01-06 16:31 ` [off-topic] spam-filters Wes Groleau 2003-01-09 16:24 ` Anybody in US using ADA ? One silly idea faust 2 siblings, 1 reply; 337+ messages in thread From: chris.danx @ 2003-01-05 23:58 UTC (permalink / raw) Ted Dennison wrote: > A good point, but I'm not sure how it relates to Mozilla. I've been > using it for my main browser for over a year now, and personally think > its about the best thing since sliced bread. Couldn't agree more. Every release just keeps getting better - type ahead find is quite useful and just one of the many things in Mozilla - and suprisingly faster. Initially on Windows it was quite slow without quicklaunch but last time I downloaded a release it was a little faster. Haven't tried 1.3a on Windows yet, how is it? > If you don't have the latest alpha with the baesean spam filtering, you > are really missing out too. Your post intrigued me so I've turned it on. Even if it knocks a few of these (mostly Korean - oh to be an NTLWorld account holder is such a joy...) spams on the head it'd be worth it. How do you get it to send junk to a junk mail folder? The options are there but they're greyed out so I don't know if it'll delete them or "junk folder" them. I would like to keep an eye on it to see what it classifies as junk, so I've turned on the log but can't see how to control where it send junk mail to. > I get about 10-20 spams a day at this > address, since I don't believe in email address munging. That's *after* > the filtering my ISP does which catches about 40 a day (I'm *not* > joking. My ISP caught 37 for January 3). Is that all? I get 100+ spam a day and my ISP does no filtering :( I get around 300emails a day in total, so spam accounts for 1/3 of emails I recieve with the rest mostly mailing lists - gcc, gtkada, lfs, etc. That is quite a lot of spam!!! :((((((((((( > But I almost never have to look > at a spam any more. I think in the last week Mozilla let about 2 slip > through, and hit one false positive. And that's just the prototype... <crosses fingers> :) Cheers, Chris -- for personal replies change spamoff to chris ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: [OT] Mozilla filtering Re: Anybody in US using ADA ? One silly idea.. 2003-01-05 23:58 ` [OT] Mozilla filtering " chris.danx @ 2003-01-06 4:12 ` Ted Dennison 2003-01-06 16:54 ` chris.danx 0 siblings, 1 reply; 337+ messages in thread From: Ted Dennison @ 2003-01-06 4:12 UTC (permalink / raw) chris.danx wrote: > joy...) spams on the head it'd be worth it. How do you get it to send > junk to a junk mail folder? The options are there but they're greyed > out so I don't know if it'll delete them or "junk folder" them. I would > like to keep an eye on it to see what it classifies as junk, so I've > turned on the log but can't see how to control where it send junk mail to. Well...it is just an alpha right now. Presumably all that stuff will be turned on by the final release of 1.3. What I do for now is make my own "Junk" filter that moves all messages marked as junk into a junk folder. Unfortunately, it appears to run the baesean marker *after* rules, so I have to do an "<alt>t r" to get it to run the rules again. Clearly that's not as nice as it will be once the ghosted options get turned on. Still, 2 keystrokes to separate out all the chaff is way better having to deal with each message individually. You don't want to actually *delete* all the junk, as the filter uses your past junk to recognise future junk. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: [OT] Mozilla filtering Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 4:12 ` Ted Dennison @ 2003-01-06 16:54 ` chris.danx 0 siblings, 0 replies; 337+ messages in thread From: chris.danx @ 2003-01-06 16:54 UTC (permalink / raw) Ted Dennison wrote: > Well...it is just an alpha right now. Presumably all that stuff will be > turned on by the final release of 1.3. What I do for now is make my own > "Junk" filter that moves all messages marked as junk into a junk folder. > Unfortunately, it appears to run the baesean marker *after* rules, so I > have to do an "<alt>t r" to get it to run the rules again. Clearly > that's not as nice as it will be once the ghosted options get turned on. > Still, 2 keystrokes to separate out all the chaff is way better having > to deal with each message individually. Nice tip, thanks Ted. Hey... they changed the filter dialogues. It's much easier to select and create folders now! :) > You don't want to actually *delete* all the junk, as the filter uses > your past junk to recognise future junk. I wasn't suggesting to delete them, I want it to move them just incase there's an important false positive, but wasn't entirely sure how the junkmail filter worked - if it deleted, flagged or moved them. After reading up a bit, it flags them which is good! Like you say it would be better if it applied the spam filter prior to applying rules, and this is my only quibble with it - it's picking up junk already and being trained on the rest! Chris -- for personal replies change spamoff to chris ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: [off-topic] spam-filters 2003-01-05 2:47 ` Ted Dennison 2003-01-05 23:58 ` [OT] Mozilla filtering " chris.danx @ 2003-01-06 16:31 ` Wes Groleau 2003-01-06 19:23 ` Randy Brukardt 2003-01-07 1:19 ` Ted Dennison 2003-01-09 16:24 ` Anybody in US using ADA ? One silly idea faust 2 siblings, 2 replies; 337+ messages in thread From: Wes Groleau @ 2003-01-06 16:31 UTC (permalink / raw) > joking. My ISP caught 37 for January 3). But I almost never have to look > at a spam any more. I think in the last week Mozilla let about 2 slip > through, and hit one false positive. Can it catch them just by headers, or does it evaluate for spam AFTER it downloads the entire piece of crap, complete with HTML bloat (generated by Microsoft Word or some equally lame thing that toggles styles on and off multiple times on every line) and all the stupid graphic attachments? I just route my mail through despammed.com - a free forwarding service. I see one or two spams per month. There are other such services. One is myrealbox.com. Another is mailircuit.com (although I haven't seen it in a year, and it might have become a pay service). Can Mozilla spam-check the mail and then hand it off to the mail-reader I prefer? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: [off-topic] spam-filters 2003-01-06 16:31 ` [off-topic] spam-filters Wes Groleau @ 2003-01-06 19:23 ` Randy Brukardt 2003-01-07 2:59 ` Ted Dennison 2003-01-07 1:19 ` Ted Dennison 1 sibling, 1 reply; 337+ messages in thread From: Randy Brukardt @ 2003-01-06 19:23 UTC (permalink / raw) Wes Groleau wrote in message <1ciS9.217$Z74.1099@dfw-service2.ext.raytheon.com>... > >> joking. My ISP caught 37 for January 3). But I almost never have to look >> at a spam any more. I think in the last week Mozilla let about 2 slip >> through, and hit one false positive. > >Can it catch them just by headers, or does it evaluate >for spam AFTER it downloads the entire piece of crap, >complete with HTML bloat (generated by Microsoft Word >or some equally lame thing that toggles styles on and >off multiple times on every line) and all the stupid >graphic attachments? Actually, most spam these days are short HTML messages with little or no text. There isn't much load on the server from them. Simply blocking HTML graphics gets rid of many of them. Also, a lot of spam is now encoded in various ways so that simple text filters can't find them. The big messages tend to be real or are viruses. (I'm seeing 3-5 viruses a day in the various filters; most are sent to the public webmaster and mailing list addresses we support.) I know this well, because I wrote a spam-filtering plug-in for our mailserver (in Ada, of course). Our mail server is receiving about 150 messages per day, of which the filter passes only about 15%. About 30% are so frequent and obvious that I'm able to match them and autodelete them. And many of those get caught by the (old) blacklist filtering, which runs after my filter. Randy Brukardt ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: [off-topic] spam-filters 2003-01-06 19:23 ` Randy Brukardt @ 2003-01-07 2:59 ` Ted Dennison 2003-01-07 18:49 ` Randy Brukardt 0 siblings, 1 reply; 337+ messages in thread From: Ted Dennison @ 2003-01-07 2:59 UTC (permalink / raw) Randy Brukardt wrote: > Actually, most spam these days are short HTML messages with little or no > text. There isn't much load on the server from them. Simply blocking > HTML graphics gets rid of many of them. That's right. So are many of the newer email viruses. One nasty thing about the HTML messages is that they often contain 1 pixel images, whose only purpose is to serve as a trojan to get your email tool to hit their website, so that they know they've got a good address. Another really nice thing about the Mozilla mail tool is that it lets you disable picture references in email, along with Java and Javascript (all of which I've done). If you want, you can also set the browser to not fetch pictures from separate servers, or from your own blacklist of servers, which can get rid of a lot of banner adds. I don't do that (my favorite websites have to pay the bills, after all), but some folk do. The option's yours. > Also, a lot of spam is now > encoded in various ways so that simple text filters can't find them. A baesean filter would almost certianly catch such things, unless its somehow worded to look exactly like your normal correspondence (in which case, *you'd* have trouble noticing the difference too). However, because of the need for personal guidance, it isn't really appropriate for server-side filtering like you were talking about (unless you have a 1 person server, or don't mind someone reading everyone else's mail). See http://www.paulgraham.com/spam.html for details on how it works. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: [off-topic] spam-filters 2003-01-07 2:59 ` Ted Dennison @ 2003-01-07 18:49 ` Randy Brukardt 2003-01-07 20:38 ` tmoran 2003-01-07 21:01 ` Wes Groleau 0 siblings, 2 replies; 337+ messages in thread From: Randy Brukardt @ 2003-01-07 18:49 UTC (permalink / raw) Ted Dennison wrote in message ... >Randy Brukardt wrote: >> Actually, most spam these days are short HTML messages with little or no >> text. There isn't much load on the server from them. Simply blocking >> HTML graphics gets rid of many of them. > >That's right. So are many of the newer email viruses. One nasty thing >about the HTML messages is that they often contain 1 pixel images, whose >only purpose is to serve as a trojan to get your email tool to hit their >website, so that they know they've got a good address. Another really >nice thing about the Mozilla mail tool is that it lets you disable >picture references in email, along with Java and Javascript (all of >which I've done). Better still is to block all HTML out-of-mail references at the server. Then stuff like the Outlook preview pane can be used safely. I block all mail with scripts, images, frames, applets, and the like at the server. It goes into a quantine folder, which I periodically forward the occassional message I have to see. The folder is browsed by a text-only tool, so it's safe to look at the messages. >If you want, you can also set the browser to not fetch pictures from >separate servers, or from your own blacklist of servers, which can get >rid of a lot of banner adds. I don't do that (my favorite websites have >to pay the bills, after all), but some folk do. The option's yours. Yes, that would be helpful sometimes. I'd really like to be able to block Flash and crap like that at the browser. However, I'm purposely sticking to an old browser in order to be able to compatibility test pages we create. So changing the browser is not an option. >> Also, a lot of spam is now >> encoded in various ways so that simple text filters can't find them. >A baesean filter would almost certianly catch such things, unless its >somehow worded to look exactly like your normal correspondence (in which >case, *you'd* have trouble noticing the difference too). However, >because of the need for personal guidance, it isn't really appropriate >for server-side filtering like you were talking about (unless you have a >1 person server, or don't mind someone reading everyone else's mail). >See http://www.paulgraham.com/spam.html for details on how it works. A baesean filter wouldn't even see the mail, unless it knows how to decode the messages. Blocking all encoded mail also would block all e-mail attachments, which would be going too far. In any case, I know how baesean filters work; I've been collecting spam mail specifically to use to initialize such a filter for our server. I just haven't had time to write it. You're right that it wouldn't be appropriate for every server, but it could be used on the sort of small mail servers that I run. First of all, e-mail is like a postcard, and you have to assume that other people are reading it. Sysops can and sometimes have to look at the mail going through their server. Similarly, it is much easier (and cheaper) to insure that virii are trapped at the server rather than trying to insure that no desktop machine ever reads a dangerous message. In my case, I have to prevent the public mailing lists I manage from ever sending out a virus or spam. Since those are automated, and a virus is likely to come from a trusted sender, aggresive scanning at the server is the only answer. In any case, multiple layers of defense are the only option. And the more of those layers that are written in Ada or other reliable programming languages, the more likely that they actually will work and not cause additional problems. Randy Brukardt. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: [off-topic] spam-filters 2003-01-07 18:49 ` Randy Brukardt @ 2003-01-07 20:38 ` tmoran 2003-01-07 21:01 ` Wes Groleau 1 sibling, 0 replies; 337+ messages in thread From: tmoran @ 2003-01-07 20:38 UTC (permalink / raw) >A baesean filter wouldn't even see the mail, unless it knows how to ------- I've been assuming this was "Bayesian", no? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: [off-topic] spam-filters 2003-01-07 18:49 ` Randy Brukardt 2003-01-07 20:38 ` tmoran @ 2003-01-07 21:01 ` Wes Groleau 1 sibling, 0 replies; 337+ messages in thread From: Wes Groleau @ 2003-01-07 21:01 UTC (permalink / raw) > the mail going through their server. Similarly, it is much easier (and > cheaper) to insure that virii are trapped at the server rather than > trying to insure that no desktop machine ever reads a dangerous message. Not to mention that if a virus can get to a desktop machine, at least half of those machines will pass it on. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: [off-topic] spam-filters 2003-01-06 16:31 ` [off-topic] spam-filters Wes Groleau 2003-01-06 19:23 ` Randy Brukardt @ 2003-01-07 1:19 ` Ted Dennison 2003-01-07 13:46 ` Wes Groleau 1 sibling, 1 reply; 337+ messages in thread From: Ted Dennison @ 2003-01-07 1:19 UTC (permalink / raw) Wes Groleau wrote: > >> joking. My ISP caught 37 for January 3). But I almost never have to >> look at a spam any more. I think in the last week Mozilla let about 2 >> slip through, and hit one false positive. > > > Can it catch them just by headers, or does it evaluate > for spam AFTER it downloads the entire piece of crap, > complete with HTML bloat (generated by Microsoft Word > or some equally lame thing that toggles styles on and > off multiple times on every line) and all the stupid > graphic attachments? Its the contents. Mozilla downloads your email (through pop3 or smtp or whatever), then examines the contents. That's obviously not as ideal as some kind of server-side filtering, but if you would have been downloading that email anyway without it, it doesn't hurt you any either. > I just route my mail through despammed.com - a free > forwarding service. I see one or two spams per month. To do that, you have to use only the despammed address. The Mozilla software works with the same address that I've been using for 6 years (and I don't want to change, lest some old friends loose me). > > There are other such services. One is myrealbox.com. > Another is mailircuit.com (although I haven't seen it > in a year, and it might have become a pay service). The filtering I said my ISP does is provided by BrightMail. I don't know how much better Despammed is than BrightMail, but I suspect they use mostly the same methods. Typically a combination of matching against known bad senders, looking for header munging, and checking contents against blacklists. The first two methods are hardly exhaustive, and the last is always one step behind the spammers. The nice thing about the Baesean filtering method is that you train it yourself to recognise what *you* consider to be spam. Once its got a reasonably good sample size of your email and spam to work with, its damn tough to fool. A spam would have to be worded quite unlike your typical spams, and quite like normal correspondence. It'd be tough to squeeze a sales-pitch through that. > Can Mozilla spam-check the mail and then hand it off > to the mail-reader I prefer? I haven't played around with the rules enough to see if there's something like that in there. Probably not. This is a feature that's built into the Mozilla mail reader. However, I do know that there are several other baesean filter projects out there, some that work as straight filters. If your email tool of choice can import stuff in the method one of those uses (and I suspect at least one somewhere acts as a pop3 proxy), then you'd be in business. I think when last I looked I found several, but none that worked on Windows and were Free. The nice deal about Mozilla is that its built right into the mail tool. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: [off-topic] spam-filters 2003-01-07 1:19 ` Ted Dennison @ 2003-01-07 13:46 ` Wes Groleau 0 siblings, 0 replies; 337+ messages in thread From: Wes Groleau @ 2003-01-07 13:46 UTC (permalink / raw) >> I just route my mail through despammed.com - a free >> forwarding service. I see one or two spams per month. > > To do that, you have to use only the despammed address. The Mozilla > software works with the same address that I've been using for 6 years > (and I don't want to change, lest some old friends loose me). Good point. But actually, this allows me to change ISPs without changing my "public" address. > However, I do know that there are several other baesean filter projects > out there, some that work as straight filters. If your email tool of > choice can import stuff in the method one of those uses (and I suspect Actually, when I stop being too cheap to buy it, something similar is built-in to the latest version of my e-mail client. Plus, being on Unix (Mac OS X), I can shift to SMTP/procmail anytime I feel like doing the necessary setup. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-05 2:47 ` Ted Dennison 2003-01-05 23:58 ` [OT] Mozilla filtering " chris.danx 2003-01-06 16:31 ` [off-topic] spam-filters Wes Groleau @ 2003-01-09 16:24 ` faust 2003-01-09 15:04 ` Ted Dennison 2 siblings, 1 reply; 337+ messages in thread From: faust @ 2003-01-09 16:24 UTC (permalink / raw) Ted Dennison <dennison@telepath.com> , emitted these fragments: >If you don't have the latest alpha with the baesean spam filtering, you >are really missing out too. I get about 10-20 spams a day at this >address, since I don't believe in email address munging. That's *after* >the filtering my ISP does which catches about 40 a day (I'm *not* >joking. My ISP caught 37 for January 3). But I almost never have to look >at a spam any more. I think in the last week Mozilla let about 2 slip >through, and hit one false positive. Old technology. Try Gnus with adaptive scoring. -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-09 16:24 ` Anybody in US using ADA ? One silly idea faust @ 2003-01-09 15:04 ` Ted Dennison 2003-01-10 14:23 ` faust 0 siblings, 1 reply; 337+ messages in thread From: Ted Dennison @ 2003-01-09 15:04 UTC (permalink / raw) faust <urfaust@optushome.com.au> wrote in message news:<dg8r1v04moq9bq8skl49lg5bepqbid2i0g@4ax.com>... > Ted Dennison <dennison@telepath.com> , emitted these fragments: > > >If you don't have the latest alpha with the baesean spam filtering, you > Old technology. > > Try Gnus with adaptive scoring. (Chortle) Errr, no. That feature has been in Gnus since at least version 5.3. That makes it at *least* 6 years old. The copyright in the lisp source file for it dates back to '95, which indicates it may be as much as 8 years old. Either way, I'm guessing it wasn't a new idea back then either. The Bayesian(sorry for the bad spellings before) method is, in part, a *reaction* to the percieved problems with the various scoring methods. I'm not closed-minded enough to think "old technology" is nessecarily inferior. Hey, if it works for you, then great! But the fact is that adaptive scoring is the "older technology". I'd ask that anyone who feels impelled to go on about how inferior one method is to the other (even against some useless yardstick like age) at least learn a *little* about both methods first. I know that's not traditional for Usenet posters, but I'm going to ask anyway. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-09 15:04 ` Ted Dennison @ 2003-01-10 14:23 ` faust 2003-01-11 5:44 ` Ted Dennison 0 siblings, 1 reply; 337+ messages in thread From: faust @ 2003-01-10 14:23 UTC (permalink / raw) dennison@telepath.com (Ted Dennison) , emitted these fragments: >The Bayesian(sorry for the bad spellings before) method is, in part, a >*reaction* to the percieved problems with the various scoring methods. Thomas Bayes was born in 1702. He pioneered what is now referred to as Bayesian statistics and Bayesian inference. Paul Graham's spamfilter is just an application of three century old techniques. http://www.paulgraham.com/spam.html -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-10 14:23 ` faust @ 2003-01-11 5:44 ` Ted Dennison 2003-01-11 5:48 ` Ted Dennison 0 siblings, 1 reply; 337+ messages in thread From: Ted Dennison @ 2003-01-11 5:44 UTC (permalink / raw) faust wrote: > dennison@telepath.com (Ted Dennison) , emitted these fragments: >>The Bayesian(sorry for the bad spellings before) method is, in part, a >>*reaction* to the percieved problems with the various scoring methods. > > > Thomas Bayes was born in 1702. > He pioneered what is now referred to as Bayesian statistics and > Bayesian inference. > > Paul Graham's spamfilter is just an application of three century old > techniques. You know, your right! Also, all of Bayes' work is really ultimately built on the work done by Euclid and the other ancient Greek mathematicians. When you look at it that way, Paul Graham's spamfilter is really just an application of two *millenia* old techniques. I can't believe I even considered using software that old! ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-11 5:44 ` Ted Dennison @ 2003-01-11 5:48 ` Ted Dennison 0 siblings, 0 replies; 337+ messages in thread From: Ted Dennison @ 2003-01-11 5:48 UTC (permalink / raw) Ted Dennison wrote: > built on the work done by Euclid and the other ancient Greek > mathematicians. When you look at it that way, Paul Graham's spamfilter > is really just an application of two *millenia* old techniques. I can't Whoops! My bad. Its actually 2 and a half millenia old... ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-04 18:04 ` Ted Dennison 2003-01-04 20:20 ` Hillel Y. Sims @ 2003-01-06 4:39 ` Kevin Cline 2003-01-06 9:49 ` Ted Dennison 1 sibling, 1 reply; 337+ messages in thread From: Kevin Cline @ 2003-01-06 4:39 UTC (permalink / raw) Ted Dennison <dennison@telepath.com> wrote in message news:<wmFR9.111225$Y86.101474@news2.central.cox.net>... > Kevin Cline wrote: > > With no access to subprogram types, attaching Ada-83 subprograms to > > widget callbacks was a real puzzle for me. At the time I was doing > > Damn near every compiler realised that fairly early on, and provided a > (non-standard) way to do that, documented in Appendex F (if I remember > correctly). However, 1988 is before my time, so I don't know if it > counts as "fairly early on". > > > > near the quality of the free GNU C compiler. Within a week of > > starting > > to program in Ada I found legal code that one or the other compiler > > rejected. > > That's hardly anything you wouldn't have to deal with using C though. I > believe there *was* a C standard in 88, but you wouldn't have known it > to look at the compilers available. The same goes today for C++. The > most commonly used C++ compiler today (MSVC++ 6.0) is just barely over > 60% compliant, which means its barely more of a C++ compiler than not. I > can tell you from sad experience that trying anything more than the most > basic of the STL examples in Stroustrup's book will fail miserably with it. > > > > work. But most > > of the problems with C were solved by the introduction of C++. > > Having worked with both, I'd say that is just true. However, 60% less of > C's language-induced problems is not near enough. Plus, C++ adds several > new ones of its own, and even makes some of C's existing problems far > worse. (eg: Now unexpected implicit type casts can happen with *any* > type, not just the numeric ones) > > > Today, the features that Ada provides have little value > > compared with the features that C++ provides and Ada lacks: > > the STL, automatic template function instantiation, smooth > > I'd agree a bit with that. However, MSVC++ 6 doesn't really have this > feature either. A large amount of the compilers that do have it, do it > differently from each other. That effectively means you can't count on > it in portable code. That's why rule #1 in the Mozilla C++ portability > guide is "Don't use C++ templates". (see > http://www.mozilla.org/hacking/portable-cpp.htmll#dont_use_templates) That document is now almost five years old. Two years before that I was working on template code that compiled on HP/UX, IBM AIX, Solaris, and MSVC 5.0. Today most template code is portable, except for a couple of features not implemented by MSVC 6.0. I think that Microsoft Ada supports an even smaller subset of the Ada language. > > integration of user-defined and primitive datatypes, and > > bindings to every API in existence. > > I don't really consider this an issue. Bindings to anything that has a C > interface are almost trivial to generate. Do you mean they can be generated automatically? ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-06 4:39 ` Kevin Cline @ 2003-01-06 9:49 ` Ted Dennison 0 siblings, 0 replies; 337+ messages in thread From: Ted Dennison @ 2003-01-06 9:49 UTC (permalink / raw) Kevin Cline wrote: >That document is now almost five years old. Two years before that I ...and yet is still linked to on the main programming page. That's becase nothing in there has needed changing. That is *still* the policy at Mozilla. > and MSVC 5.0. Today most template code is portable, except for a > couple of > features not implemented by MSVC 6.0. More than a couple. None of the function generators work at all (try using a "for all" or "for each" template to insert something into or delete something from a container based on a predicate, which is pretty much what they were created for. It doesn't work.), and automatic instantiation doesn't work except in trivial cases. Large portions of boost are unusable too. Lots of the stuff that *is* usable requires you to manually specify the template parameters (because its auto-instantiation sucks). The only way you could possibly make any reasonably complicated template code "portable" is with conditional compliation, or by going out of your way to use the least-common denominator. With 2 or 3 platforms that you know about ahead of time you might be able to do that. Mozilla has to work with so many different sucky C++ compilers that the least common denominator is no templates at all. > I think that Microsoft Ada > supports an even smaller subset of the Ada language. That's a very good way of describing Microsoft C++ too. :-) >>I don't really consider this an issue. Bindings to anything that has a C >>interface are almost trivial to generate. > > > Do you mean they can be generated automatically? Well...yes there are such generators about, but no, that's not what I meant. I typically prefer to create my *own* bindings by hand, and have no compunction about doing so, even when good bindings are already available. That's what I mean by "almost trivial". Its about the same amount of work as writing external funtion prototypes in C. ^ permalink raw reply [flat|nested] 337+ messages in thread
[parent not found: <ujn2va.go3.ln@beastie.ix.netcom.com>]
* Re: Anybody in US using ADA ? One silly idea.. [not found] ` <ujn2va.go3.ln@beastie.ix.netcom.com> @ 2003-01-03 1:44 ` Bill Findlay 2003-01-09 2:21 ` faust 1 sibling, 0 replies; 337+ messages in thread From: Bill Findlay @ 2003-01-03 1:44 UTC (permalink / raw) On 3/1/03 01:05, in article ujn2va.go3.ln@beastie.ix.netcom.com, "Dennis Lee Bieber" <wlfraed@ix.netcom.com> wrote: > Well, keeping concurrent with Ada's period, we could go to last names: > Byron (and thence to friends of the family -- Shelley). > I don't think poets are macho enough. We need something really violent, like names of famous prizefighters, or extreme weather events (Tornado? Cyclone? Hurricane?). > Pity Frankenstein is the name of the "doctor" and not the proper name > of the monster... Then again, being built from odd parts is more the > domain of PL/1, is it not? > 8-) -- Bill-Findlay chez blue-yonder.co.uk ("-" => "") ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. [not found] ` <ujn2va.go3.ln@beastie.ix.netcom.com> 2003-01-03 1:44 ` Bill Findlay @ 2003-01-09 2:21 ` faust 1 sibling, 0 replies; 337+ messages in thread From: faust @ 2003-01-09 2:21 UTC (permalink / raw) Dennis Lee Bieber <wlfraed@ix.netcom.com> , emitted these fragments: >Byron (and thence to friends of the family -- Shelley). Too wimpy. -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* RE: Anybody in US using ADA ? One silly idea.. 2003-01-02 17:57 ` Anybody in US using ADA ? One silly idea Warren W. Gay VE3WWG 2003-01-02 18:29 ` Vinzent Hoefler 2003-01-02 20:36 ` Bill Findlay @ 2003-01-03 0:07 ` Robert C. Leif 2003-01-03 2:51 ` Marin David Condic 2003-01-08 19:46 ` Remarketing the language ( was Re: ....ADA ? One silly idea..) faust 4 siblings, 0 replies; 337+ messages in thread From: Robert C. Leif @ 2003-01-03 0:07 UTC (permalink / raw) This is what Microsoft would do. All one needs to do is to employ XML syntax and Ada semantics. It will be both very verbose and sexy. If we model it after SPARK, we can hype it as a new marvel of software engineering. A good name would be XML#. Bob Leif -----Original Message----- From: comp.lang.ada-admin@ada.eu.org [mailto:comp.lang.ada-admin@ada.eu.org] On Behalf Of Warren W. Gay VE3WWG Sent: Thursday, January 02, 2003 9:57 AM To: comp.lang.ada@ada.eu.org Subject: Re: Anybody in US using ADA ? One silly idea.. Marin David Condic wrote: > I believe Pratt & Whitney is still using Ada for engine controls. At least > some of them. As one who is working on the engines for the JSF, I can tell > you that those controls are still in Ada - for the time being. (Don't know > what will happen when they go into full scale development.) > > Its a shame to see that many in the DoD arena are abandoning Ada because > "Everybody else is using C++". In this area, Ada does not tend to suffer so > much from lack of large libraries or other development enhancers since > hardware is often custom built and/or software development is not the long > pole in the tent. Here Ada's faster development time and reduced defect > characteristics can truly stand out. I'm afraid I don't know how to overcome > the "follow the crowd" mentality here. ... Maybe what needs to be done is to form a brand new committee, to design a spashy new language that basically implements the same features, with similar syntax (but not too obviously). Then give it a splashy new name after a popular young female (no programmer experience required), and call it something like "Shania". Make sure it gets included in .Net, and have the Universities preach about it and.. world domination! ;-) Just a thought. -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-02 17:57 ` Anybody in US using ADA ? One silly idea Warren W. Gay VE3WWG ` (2 preceding siblings ...) 2003-01-03 0:07 ` Robert C. Leif @ 2003-01-03 2:51 ` Marin David Condic 2003-01-03 18:13 ` Warren W. Gay VE3WWG 2003-01-07 12:58 ` Richard Riehle 2003-01-08 19:46 ` Remarketing the language ( was Re: ....ADA ? One silly idea..) faust 4 siblings, 2 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-03 2:51 UTC (permalink / raw) It might not hurt to start over again with a new name and a new language that patterned itself on Ada - just to get away from the negative impressions and bad press. But if all we've got is another language, it won't do any better. It has to offer the developer something he can't get elsewhere and it has to address a real need that's not being satisfied. I think "Reliability" etc. are all good points, but any language or language revision needs to consider what will help get it adopted by a larger crowd - and "Reliability" just isn't cutting it. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== Warren W. Gay VE3WWG <ve3wwg@cogeco.ca> wrote in message news:3E147D79.2070703@cogeco.ca... > > Maybe what needs to be done is to form a brand new committee, to design > a spashy new language that basically implements the same features, with > similar syntax (but not too obviously). Then give it a splashy new name > after a popular young female (no programmer experience required), and > call it something like "Shania". Make sure it gets included in .Net, and > have the Universities preach about it and.. world domination! > > ;-) > > Just a thought. > > -- > Warren W. Gay VE3WWG > http://home.cogeco.ca/~ve3wwg > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 2:51 ` Marin David Condic @ 2003-01-03 18:13 ` Warren W. Gay VE3WWG 2003-01-04 15:30 ` Marin David Condic 2003-01-07 12:58 ` Richard Riehle 1 sibling, 1 reply; 337+ messages in thread From: Warren W. Gay VE3WWG @ 2003-01-03 18:13 UTC (permalink / raw) Marin David Condic wrote: > It might not hurt to start over again with a new name and a new language > that patterned itself on Ada - just to get away from the negative > impressions and bad press. But if all we've got is another language, it > won't do any better. It has to offer the developer something he can't get > elsewhere and it has to address a real need that's not being satisfied. I > think "Reliability" etc. are all good points, but any language or language > revision needs to consider what will help get it adopted by a larger crowd - > and "Reliability" just isn't cutting it. > > MDC While I just finished harping on library/binding support in an earlier post in reply to you, I just realized something reading this reply. Java has had (at least initially) the same binding/library challenges that Ada95 has in the current general purpose world. Yet everyone and their grandmother has come out with bindings to databases etc. to make Java work within an application framework with great enthusiasm. Q. So why is the enthusiasm so different for Ada, than it is/has been for Java? The overwhelming difference (I think) is simply that Java is new and is seen as (or was) "cutting edge". Ada is seen simply as "old and big". You don't find Borland (for example) thrilled about selling support for Ada, but they might be enthused over selling Java support. Could there be more substance to the "new" suggestion after all? Maybe the Ada way must distance itself from: - the Military association - the US assocation(?) - the committee association - the being "old" asociation - the being "big and clumsy" association and maybe it just needs to be resold as : - the latest new computer science theory of "reliable computing" (even though the solution was well understood in ages past ;-) Just like in science where the theory is often not well accepted until the author of it passes away, we may need to have Ada reborn to have it gain acceptance. ;-) -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 18:13 ` Warren W. Gay VE3WWG @ 2003-01-04 15:30 ` Marin David Condic 0 siblings, 0 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-04 15:30 UTC (permalink / raw) Sure, there are a lot of "impression" issues, but lets look at what it was that Sun did right with Java. They spent a truckload of money advertizing Java when it first came out so that people had a favorable impression of it and a willingness to look at it. They actually made some improvements over C/C++ that eliminated some of the worst syntactic & semantic problems. They provided truckloads of library code that leveraged development of GUI based applications. They promised and mostly delivered the ability to develop on one platform and run on many. They made the compiler available for the cost of a download so that anybody could play the game. They targeted a market with a real need (Internet apps) that wasn't being addressed well by other languages. In other words, they made it easy and desirable for people to try Java and they delivered real development leverage over its nearest competitor. They found a real need out there and filled it. Ada *could* do the same, but not by trying to play a "me too" game or by trying to be all things to all developers. Find a market with a real need and start giving them real advantages and I think you'd see that market start to move to Ada. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== Warren W. Gay VE3WWG <ve3wwg@cogeco.ca> wrote in message news:3E15D2E2.9040807@cogeco.ca... > > While I just finished harping on library/binding support in an earlier > post in reply to you, I just realized something reading this reply. Java > has had (at least initially) the same binding/library challenges that > Ada95 has in the current general purpose world. Yet everyone and their > grandmother has come out with bindings to databases etc. to make Java > work within an application framework with great enthusiasm. > > Q. So why is the enthusiasm so different for Ada, than it is/has been > for Java? > > The overwhelming difference (I think) is simply that Java is new and is > seen as (or was) "cutting edge". Ada is seen simply as "old and big". > > You don't find Borland (for example) thrilled about selling support > for Ada, but they might be enthused over selling Java support. > > Could there be more substance to the "new" suggestion after all? > > Maybe the Ada way must distance itself from: > > - the Military association > - the US assocation(?) > - the committee association > - the being "old" asociation > - the being "big and clumsy" association > > and maybe it just needs to be resold as : > > - the latest new computer science theory of "reliable computing" > (even though the solution was well understood in ages past ;-) > > Just like in science where the theory is often not well accepted > until the author of it passes away, we may need to have Ada > reborn to have it gain acceptance. ;-) > > -- > Warren W. Gay VE3WWG > http://home.cogeco.ca/~ve3wwg > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? One silly idea.. 2003-01-03 2:51 ` Marin David Condic 2003-01-03 18:13 ` Warren W. Gay VE3WWG @ 2003-01-07 12:58 ` Richard Riehle 1 sibling, 0 replies; 337+ messages in thread From: Richard Riehle @ 2003-01-07 12:58 UTC (permalink / raw) Marin David Condic wrote: > It might not hurt to start over again with a new name and a new language > that patterned itself on Ada When Ada 95 came on the scene, I suggested to quite a few people that we call it "Tucker." Someone suggested that this was too reminiscent of the failed automobile of the 1950's, which was too far ahead of its time to be appreciated, The Tucker. Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Remarketing the language ( was Re: ....ADA ? One silly idea..) 2003-01-02 17:57 ` Anybody in US using ADA ? One silly idea Warren W. Gay VE3WWG ` (3 preceding siblings ...) 2003-01-03 2:51 ` Marin David Condic @ 2003-01-08 19:46 ` faust 2003-01-08 18:24 ` Warren W. Gay VE3WWG 4 siblings, 1 reply; 337+ messages in thread From: faust @ 2003-01-08 19:46 UTC (permalink / raw) "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca> , emitted these fragments: >Maybe what needs to be done is to form a brand new committee, to design >a spashy new language that basically implements the same features, with >similar syntax (but not too obviously). Arc is trying that now. Paul Graham is redesigning lisp . >Then give it a splashy new name >after a popular young female (no programmer experience required), and >call it something like "Shania". From a brief search on google ( I must apologize for my shocking ignorance of celebrities, female or male ) "Echo and the Bunnymen" and "Dusty Vladimir Horowitz " sound like excellent candidates :-) -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..) 2003-01-08 19:46 ` Remarketing the language ( was Re: ....ADA ? One silly idea..) faust @ 2003-01-08 18:24 ` Warren W. Gay VE3WWG 2003-01-08 18:42 ` Edi Weitz 2003-01-09 16:30 ` faust 0 siblings, 2 replies; 337+ messages in thread From: Warren W. Gay VE3WWG @ 2003-01-08 18:24 UTC (permalink / raw) faust wrote: > "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca> , emitted these fragments: >>Maybe what needs to be done is to form a brand new committee, to design >>a spashy new language that basically implements the same features, with >>similar syntax (but not too obviously). > > Arc is trying that now. > Paul Graham is redesigning lisp . This doesn't sound like a good start to me, if it is based upon lisp, (but keeping an open mind), do you have a link for this? >>Then give it a splashy new name >>after a popular young female (no programmer experience required), and >>call it something like "Shania". > > From a brief search on google ( I must apologize for my shocking > ignorance of celebrities, female or male ) "Echo and the Bunnymen" and > "Dusty Vladimir Horowitz " sound like excellent candidates :-) Well, I don't much pay attention to "popular stuff", but the following link might explain what first came to my mind ;-) http://www.shania-twain.com/ I can't say I know anything about "Dusty", and don't really get the connection to "Echo and the Bunnymen". Perhaps I'm showing my own cultural ignorance ;-) -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..) 2003-01-08 18:24 ` Warren W. Gay VE3WWG @ 2003-01-08 18:42 ` Edi Weitz 2003-01-09 16:30 ` faust 1 sibling, 0 replies; 337+ messages in thread From: Edi Weitz @ 2003-01-08 18:42 UTC (permalink / raw) "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca> writes: > faust wrote: > > "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca> , emitted these fragments: > >>Maybe what needs to be done is to form a brand new committee, to design > >>a spashy new language that basically implements the same features, with > >> similar syntax (but not too obviously). > > Arc is trying that now. > > Paul Graham is redesigning lisp . > > This doesn't sound like a good start to me, if it is based upon > lisp, (but keeping an open mind), do you have a link for this? <http://www.paulgraham.com/arc.html> ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..) 2003-01-08 18:24 ` Warren W. Gay VE3WWG 2003-01-08 18:42 ` Edi Weitz @ 2003-01-09 16:30 ` faust 2003-01-10 7:00 ` Fraser Wilson 1 sibling, 1 reply; 337+ messages in thread From: faust @ 2003-01-09 16:30 UTC (permalink / raw) "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca> , emitted these fragments: >> From a brief search on google ( I must apologize for my shocking >> ignorance of celebrities, female or male ) "Echo and the Bunnymen" and >> "Dusty Vladimir Horowitz " sound like excellent candidates :-) > >Well, I don't much pay attention to "popular stuff", but the following >link might explain what first came to my mind ;-) > >http://www.shania-twain.com/ A Twain driver ? >I can't say I know anything about "Dusty", and don't really get the >connection to "Echo and the Bunnymen". I am not sure who they are either. They just sounded like the most unmarketable names :-) Ada is such a wimpy name. Old eighteenth century woman.... -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..) 2003-01-09 16:30 ` faust @ 2003-01-10 7:00 ` Fraser Wilson 2003-01-10 8:06 ` Geoffrey Summerhayes 0 siblings, 1 reply; 337+ messages in thread From: Fraser Wilson @ 2003-01-10 7:00 UTC (permalink / raw) faust <urfaust@optushome.com.au> writes: > Ada is such a wimpy name. > Old eighteenth century woman.... I don't follow. Fraser. (but just in case, my new language is going to be called Butch, after a twenty-first century truck driver) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..) 2003-01-10 7:00 ` Fraser Wilson @ 2003-01-10 8:06 ` Geoffrey Summerhayes 2003-01-10 10:17 ` Fraser Wilson 0 siblings, 1 reply; 337+ messages in thread From: Geoffrey Summerhayes @ 2003-01-10 8:06 UTC (permalink / raw) "Fraser Wilson" <newsfraser@blancolioni.org> wrote in message news:u1y3lmqud.fsf@FWILSON.i-did-not-set--mail-host-address--so-shoot-me... > faust <urfaust@optushome.com.au> writes: > > > Ada is such a wimpy name. > > Old eighteenth century woman.... > > I don't follow. > The first programmer to suffer from major hardware problems :-) http://www.mathnews.uwaterloo.ca/BestOf/WomenInMath7103.html --- Geoff ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..) 2003-01-10 8:06 ` Geoffrey Summerhayes @ 2003-01-10 10:17 ` Fraser Wilson 0 siblings, 0 replies; 337+ messages in thread From: Fraser Wilson @ 2003-01-10 10:17 UTC (permalink / raw) "Geoffrey Summerhayes" <sumNOSPAMrnot@hotmail.com> writes: > The first programmer to suffer from major hardware problems :-) Oh, I know that, but I couldn't follow the logic from eighteenth [sic] century woman to wimpy. An anonymous troll with a wanky pseudonym, that's wimpy. Fraser. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-01 3:20 ` Marin David Condic 2003-01-01 7:11 ` tmoran 2003-01-02 17:57 ` Anybody in US using ADA ? One silly idea Warren W. Gay VE3WWG @ 2003-01-02 18:29 ` Mike Silva 2003-01-03 0:41 ` David Emery 2 siblings, 1 reply; 337+ messages in thread From: Mike Silva @ 2003-01-02 18:29 UTC (permalink / raw) "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote in message news:<autmq3$4oe$1@slb6.atl.mindspring.net>... > > Its a shame to see that many in the DoD arena are abandoning Ada because > "Everybody else is using C++". Seems like we should be seeing some results of the "DoD arena" rush to C++ by now. As the data comes in, we should either see that indeed C++ introduced problems and added costs that Ada would have avoided (my expectation), or that it didn't (in which case, time to re-examine assumptions). So, where are the C++ disaster coverups, and/or the shining successes? Mike ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-02 18:29 ` Anybody in US using ADA ? Mike Silva @ 2003-01-03 0:41 ` David Emery 2003-01-03 6:44 ` Mike Silva 0 siblings, 1 reply; 337+ messages in thread From: David Emery @ 2003-01-03 0:41 UTC (permalink / raw) Mike Silva wrote: > "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote in message news:<autmq3$4oe$1@slb6.atl.mindspring.net>... > >>Its a shame to see that many in the DoD arena are abandoning Ada because >>"Everybody else is using C++". > > > Seems like we should be seeing some results of the "DoD arena" rush to > C++ by now. As the data comes in, we should either see that indeed > C++ introduced problems and added costs that Ada would have avoided > (my expectation), or that it didn't (in which case, time to re-examine > assumptions). So, where are the C++ disaster coverups, and/or the > shining successes? In 1990 MITRE did an internal study based on then available data saying that the cost to maintain Ada was -LINEAR- on SLOC, not exponental as Barry Boehm says. If you think about this, it's a radical conclusion. And it wasn't done by the Ada people at MITRE, but by our cost center's statisticians and cost analysts Back when Emmett Paige was ASD-C3I, he held a series of Ada Dual-Use summits. At each, my position was: DoD has the data available to show if Ada has the value we claim. Let's collect the data and let the facts speak for themselves. Two results from this experience: 1. DoD didn't want to gather and then hear facts 2. Language decisions are generally not made on the basis of -any facts- but rather management perception of "acceptability", "training costs", etc. dave (been there, done that, forgot my T-shirt) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-03 0:41 ` David Emery @ 2003-01-03 6:44 ` Mike Silva 2003-01-03 10:16 ` John R. Strohm 0 siblings, 1 reply; 337+ messages in thread From: Mike Silva @ 2003-01-03 6:44 UTC (permalink / raw) David Emery <demery@cox.net> wrote in message news:<J_4R9.114758$pe.4406969@news2.east.cox.net>... > Mike Silva wrote: > > "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote in message news:<autmq3$4oe$1@slb6.atl.mindspring.net>... > > > >>Its a shame to see that many in the DoD arena are abandoning Ada because > >>"Everybody else is using C++". > > > > > > Seems like we should be seeing some results of the "DoD arena" rush to > > C++ by now. As the data comes in, we should either see that indeed > > C++ introduced problems and added costs that Ada would have avoided > > (my expectation), or that it didn't (in which case, time to re-examine > > assumptions). So, where are the C++ disaster coverups, and/or the > > shining successes? > > In 1990 MITRE did an internal study based on then available data > saying that the cost to maintain Ada was -LINEAR- on SLOC, not > exponental as Barry Boehm says. If you think about this, it's a > radical conclusion. And it wasn't done by the Ada people at MITRE, but > by our cost center's statisticians and cost analysts > > Back when Emmett Paige was ASD-C3I, he held a series of Ada Dual-Use > summits. At each, my position was: DoD has the data available to show > if Ada has the value we claim. Let's collect the data and let the facts > speak for themselves. > > Two results from this experience: > 1. DoD didn't want to gather and then hear facts > 2. Language decisions are generally not made on the > basis of -any facts- but rather management perception of > "acceptability", "training costs", etc. > > dave > (been there, done that, forgot my T-shirt) The only reason things *may* be different this time is that the amount, and cost of writing, software is so much greater today than 10-20 years ago that the risk of failure (or gross overrun) may be too great to ignore or sweep under the carpet anymore, or, inverting, the potential savings from using the right tools may be too great to ignore.... Mike ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-03 6:44 ` Mike Silva @ 2003-01-03 10:16 ` John R. Strohm 2003-01-03 20:02 ` Mike Silva 0 siblings, 1 reply; 337+ messages in thread From: John R. Strohm @ 2003-01-03 10:16 UTC (permalink / raw) Uh, excuse me? Cost per SLOC, in constant dollars, has declined SIGNIFICANTLY over the last 20 years. This was one of the big findings in the SEI CMM stuff, that it really is significantly cheaper to do things right the first time. At one point, I was informally putting together a business case for Ada and Rational R1000s at GD/FW, based on (a) Rational's productivity numbers and "force multiplier" effects, (b) the known size of F-16C/D operational flight software, (c) the expected size of the next airplane's software, (d) the size of the parking lots at GD/FW (which were ALREADY overflowing). "Mike Silva" <snarflemike@yahoo.com> wrote in message news:20619edc.0301022244.2c16c563@posting.google.com... > David Emery <demery@cox.net> wrote in message news:<J_4R9.114758$pe.4406969@news2.east.cox.net>... > > Mike Silva wrote: > > > "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote in message news:<autmq3$4oe$1@slb6.atl.mindspring.net>... > > > > > >>Its a shame to see that many in the DoD arena are abandoning Ada because > > >>"Everybody else is using C++". > > > > > > > > > Seems like we should be seeing some results of the "DoD arena" rush to > > > C++ by now. As the data comes in, we should either see that indeed > > > C++ introduced problems and added costs that Ada would have avoided > > > (my expectation), or that it didn't (in which case, time to re-examine > > > assumptions). So, where are the C++ disaster coverups, and/or the > > > shining successes? > > > > In 1990 MITRE did an internal study based on then available data > > saying that the cost to maintain Ada was -LINEAR- on SLOC, not > > exponental as Barry Boehm says. If you think about this, it's a > > radical conclusion. And it wasn't done by the Ada people at MITRE, but > > by our cost center's statisticians and cost analysts > > > > Back when Emmett Paige was ASD-C3I, he held a series of Ada Dual-Use > > summits. At each, my position was: DoD has the data available to show > > if Ada has the value we claim. Let's collect the data and let the facts > > speak for themselves. > > > > Two results from this experience: > > 1. DoD didn't want to gather and then hear facts > > 2. Language decisions are generally not made on the > > basis of -any facts- but rather management perception of > > "acceptability", "training costs", etc. > > > > dave > > (been there, done that, forgot my T-shirt) > > The only reason things *may* be different this time is that the > amount, and cost of writing, software is so much greater today than > 10-20 years ago that the risk of failure (or gross overrun) may be too > great to ignore or sweep under the carpet anymore, or, inverting, the > potential savings from using the right tools may be too great to > ignore.... > > Mike ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-03 10:16 ` John R. Strohm @ 2003-01-03 20:02 ` Mike Silva 2003-01-03 22:16 ` John R. Strohm 0 siblings, 1 reply; 337+ messages in thread From: Mike Silva @ 2003-01-03 20:02 UTC (permalink / raw) But isn't it the case that the amount of software in the "DoD arena", as well as in general in the areas where Ada would excel, is increasing much faster than such per-sloc reductions, so that total software budgets (and overruns) are becoming larger, and significantly so? Does anybody know of DoD numbers that show the total amount they spend, directly and indirectly, on software development per year? Mike "John R. Strohm" <strohm@airmail.net> wrote in message news:<CF4C46E154A483BD.B6BD906CB33FF02E.7A1A1669738DB3A6@lp.airnews.net>... > Uh, excuse me? > > Cost per SLOC, in constant dollars, has declined SIGNIFICANTLY over the last > 20 years. This was one of the big findings in the SEI CMM stuff, that it > really is significantly cheaper to do things right the first time. > > At one point, I was informally putting together a business case for Ada and > Rational R1000s at GD/FW, based on (a) Rational's productivity numbers and > "force multiplier" effects, (b) the known size of F-16C/D operational flight > software, (c) the expected size of the next airplane's software, (d) the > size of the parking lots at GD/FW (which were ALREADY overflowing). > > "Mike Silva" <snarflemike@yahoo.com> wrote in message > news:20619edc.0301022244.2c16c563@posting.google.com... > > David Emery <demery@cox.net> wrote in message > news:<J_4R9.114758$pe.4406969@news2.east.cox.net>... > > > Mike Silva wrote: > > > > "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote in message > news:<autmq3$4oe$1@slb6.atl.mindspring.net>... > > > > > > > >>Its a shame to see that many in the DoD arena are abandoning Ada > because > > > >>"Everybody else is using C++". > > > > > > > > > > > > Seems like we should be seeing some results of the "DoD arena" rush to > > > > C++ by now. As the data comes in, we should either see that indeed > > > > C++ introduced problems and added costs that Ada would have avoided > > > > (my expectation), or that it didn't (in which case, time to re-examine > > > > assumptions). So, where are the C++ disaster coverups, and/or the > > > > shining successes? > > > > > > In 1990 MITRE did an internal study based on then available data > > > saying that the cost to maintain Ada was -LINEAR- on SLOC, not > > > exponental as Barry Boehm says. If you think about this, it's a > > > radical conclusion. And it wasn't done by the Ada people at MITRE, but > > > by our cost center's statisticians and cost analysts > > > > > > Back when Emmett Paige was ASD-C3I, he held a series of Ada Dual-Use > > > summits. At each, my position was: DoD has the data available to show > > > if Ada has the value we claim. Let's collect the data and let the facts > > > speak for themselves. > > > > > > Two results from this experience: > > > 1. DoD didn't want to gather and then hear facts > > > 2. Language decisions are generally not made on the > > > basis of -any facts- but rather management perception of > > > "acceptability", "training costs", etc. > > > > > > dave > > > (been there, done that, forgot my T-shirt) > > > > The only reason things *may* be different this time is that the > > amount, and cost of writing, software is so much greater today than > > 10-20 years ago that the risk of failure (or gross overrun) may be too > > great to ignore or sweep under the carpet anymore, or, inverting, the > > potential savings from using the right tools may be too great to > > ignore.... > > > > Mike ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-03 20:02 ` Mike Silva @ 2003-01-03 22:16 ` John R. Strohm 2003-01-04 8:31 ` Mike Silva 0 siblings, 1 reply; 337+ messages in thread From: John R. Strohm @ 2003-01-03 22:16 UTC (permalink / raw) Red herring. Software budgets in ALL arenas are increasing, not just DoD, not just Ada-advantaged. Compare the bloat in MS-DOS to the BLOAT in Windoze XP, and in Windoze applications. Budget overrurns happen for two reasons: 1) the problem is harder than they thought, 2) the budget estimators estimated too low. Usually, problem 2) occurs because management ORDERED the estimates trimmed for political reasons. "Mike Silva" <snarflemike@yahoo.com> wrote in message news:20619edc.0301031202.1d0d8c1a@posting.google.com... > But isn't it the case that the amount of software in the "DoD arena", > as well as in general in the areas where Ada would excel, is > increasing much faster than such per-sloc reductions, so that total > software budgets (and overruns) are becoming larger, and significantly > so? > > Does anybody know of DoD numbers that show the total amount they > spend, directly and indirectly, on software development per year? > > Mike > > "John R. Strohm" <strohm@airmail.net> wrote in message news:<CF4C46E154A483BD.B6BD906CB33FF02E.7A1A1669738DB3A6@lp.airnews.net>... > > Uh, excuse me? > > > > Cost per SLOC, in constant dollars, has declined SIGNIFICANTLY over the last > > 20 years. This was one of the big findings in the SEI CMM stuff, that it > > really is significantly cheaper to do things right the first time. > > > > At one point, I was informally putting together a business case for Ada and > > Rational R1000s at GD/FW, based on (a) Rational's productivity numbers and > > "force multiplier" effects, (b) the known size of F-16C/D operational flight > > software, (c) the expected size of the next airplane's software, (d) the > > size of the parking lots at GD/FW (which were ALREADY overflowing). > > > > "Mike Silva" <snarflemike@yahoo.com> wrote in message > > news:20619edc.0301022244.2c16c563@posting.google.com... > > > David Emery <demery@cox.net> wrote in message > > news:<J_4R9.114758$pe.4406969@news2.east.cox.net>... > > > > Mike Silva wrote: > > > > > "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote in message > > news:<autmq3$4oe$1@slb6.atl.mindspring.net>... > > > > > > > > > >>Its a shame to see that many in the DoD arena are abandoning Ada > > because > > > > >>"Everybody else is using C++". > > > > > > > > > > > > > > > Seems like we should be seeing some results of the "DoD arena" rush to > > > > > C++ by now. As the data comes in, we should either see that indeed > > > > > C++ introduced problems and added costs that Ada would have avoided > > > > > (my expectation), or that it didn't (in which case, time to re-examine > > > > > assumptions). So, where are the C++ disaster coverups, and/or the > > > > > shining successes? > > > > > > > > In 1990 MITRE did an internal study based on then available data > > > > saying that the cost to maintain Ada was -LINEAR- on SLOC, not > > > > exponental as Barry Boehm says. If you think about this, it's a > > > > radical conclusion. And it wasn't done by the Ada people at MITRE, but > > > > by our cost center's statisticians and cost analysts > > > > > > > > Back when Emmett Paige was ASD-C3I, he held a series of Ada Dual-Use > > > > summits. At each, my position was: DoD has the data available to show > > > > if Ada has the value we claim. Let's collect the data and let the facts > > > > speak for themselves. > > > > > > > > Two results from this experience: > > > > 1. DoD didn't want to gather and then hear facts > > > > 2. Language decisions are generally not made on the > > > > basis of -any facts- but rather management perception of > > > > "acceptability", "training costs", etc. > > > > > > > > dave > > > > (been there, done that, forgot my T-shirt) > > > > > > The only reason things *may* be different this time is that the > > > amount, and cost of writing, software is so much greater today than > > > 10-20 years ago that the risk of failure (or gross overrun) may be too > > > great to ignore or sweep under the carpet anymore, or, inverting, the > > > potential savings from using the right tools may be too great to > > > ignore.... > > > > > > Mike ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-03 22:16 ` John R. Strohm @ 2003-01-04 8:31 ` Mike Silva 0 siblings, 0 replies; 337+ messages in thread From: Mike Silva @ 2003-01-04 8:31 UTC (permalink / raw) Why is this a red herring? I simply said that maybe there will be another look at ways to get more bang for the software buck, including Ada (?, for skeptics) because the cost of software is going up. Surely this is not a controversial, or even particularly insightful, opinion :) True, it's not only DoD, but my comment doesn't rise or fall on that fact -- it's only that DoD was mentioned in the message I replied to, in particular: > Two results from this experience: > 1. DoD didn't want to gather and then hear facts > 2. Language decisions are generally not made on the > basis of -any facts- but rather management perception of > "acceptability", "training costs", etc. Mike "John R. Strohm" <strohm@airmail.net> wrote in message news:<277C0E266C8E20F4.834E70430320EB29.32074AEA42CE9212@lp.airnews.net>... > Red herring. > > Software budgets in ALL arenas are increasing, not just DoD, not just > Ada-advantaged. Compare the bloat in MS-DOS to the BLOAT in Windoze XP, and > in Windoze applications. > > Budget overrurns happen for two reasons: 1) the problem is harder than they > thought, 2) the budget estimators estimated too low. Usually, problem 2) > occurs because management ORDERED the estimates trimmed for political > reasons. > > "Mike Silva" <snarflemike@yahoo.com> wrote in message > news:20619edc.0301031202.1d0d8c1a@posting.google.com... > > But isn't it the case that the amount of software in the "DoD arena", > > as well as in general in the areas where Ada would excel, is > > increasing much faster than such per-sloc reductions, so that total > > software budgets (and overruns) are becoming larger, and significantly > > so? > > > > Does anybody know of DoD numbers that show the total amount they > > spend, directly and indirectly, on software development per year? > > > > Mike > > > > "John R. Strohm" <strohm@airmail.net> wrote in message > news:<CF4C46E154A483BD.B6BD906CB33FF02E.7A1A1669738DB3A6@lp.airnews.net>... > > > Uh, excuse me? > > > > > > Cost per SLOC, in constant dollars, has declined SIGNIFICANTLY over the > last > > > 20 years. This was one of the big findings in the SEI CMM stuff, that > it > > > really is significantly cheaper to do things right the first time. > > > > > > At one point, I was informally putting together a business case for Ada > and > > > Rational R1000s at GD/FW, based on (a) Rational's productivity numbers > and > > > "force multiplier" effects, (b) the known size of F-16C/D operational > flight > > > software, (c) the expected size of the next airplane's software, (d) the > > > size of the parking lots at GD/FW (which were ALREADY overflowing). > > > > > > "Mike Silva" <snarflemike@yahoo.com> wrote in message > > > news:20619edc.0301022244.2c16c563@posting.google.com... > > > > David Emery <demery@cox.net> wrote in message > news:<J_4R9.114758$pe.4406969@news2.east.cox.net>... > > > > > Mike Silva wrote: > > > > > > "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote in > message > news:<autmq3$4oe$1@slb6.atl.mindspring.net>... > > > > > > > > > > > >>Its a shame to see that many in the DoD arena are abandoning Ada > because > > > > > >>"Everybody else is using C++". > > > > > > > > > > > > > > > > > > Seems like we should be seeing some results of the "DoD arena" > rush to > > > > > > C++ by now. As the data comes in, we should either see that > indeed > > > > > > C++ introduced problems and added costs that Ada would have > avoided > > > > > > (my expectation), or that it didn't (in which case, time to > re-examine > > > > > > assumptions). So, where are the C++ disaster coverups, and/or the > > > > > > shining successes? > > > > > > > > > > In 1990 MITRE did an internal study based on then available data > > > > > saying that the cost to maintain Ada was -LINEAR- on SLOC, not > > > > > exponental as Barry Boehm says. If you think about this, it's a > > > > > radical conclusion. And it wasn't done by the Ada people at MITRE, > but > > > > > by our cost center's statisticians and cost analysts > > > > > > > > > > Back when Emmett Paige was ASD-C3I, he held a series of Ada Dual-Use > > > > > summits. At each, my position was: DoD has the data available to > show > > > > > if Ada has the value we claim. Let's collect the data and let the > facts > > > > > speak for themselves. > > > > > > > > > > Two results from this experience: > > > > > 1. DoD didn't want to gather and then hear facts > > > > > 2. Language decisions are generally not made on the > > > > > basis of -any facts- but rather management perception of > > > > > "acceptability", "training costs", etc. > > > > > > > > > > dave > > > > > (been there, done that, forgot my T-shirt) > > > > > > > > The only reason things *may* be different this time is that the > > > > amount, and cost of writing, software is so much greater today than > > > > 10-20 years ago that the risk of failure (or gross overrun) may be too > > > > great to ignore or sweep under the carpet anymore, or, inverting, the > > > > > potential savings from using the right tools may be too great to > > > > ignore.... > > > > > > > > Mike ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2002-12-31 18:55 ` John R. Strohm 2003-01-01 3:20 ` Marin David Condic @ 2003-01-06 22:24 ` Richard Riehle 2003-01-06 23:45 ` Jerry van Dijk ` (3 more replies) 1 sibling, 4 replies; 337+ messages in thread From: Richard Riehle @ 2003-01-06 22:24 UTC (permalink / raw) "John R. Strohm" wrote: > I *THINK* that Lockheed-Martin Fort Worth is using Ada for F-22 and F-16. > You might try looking at their web sight (http://www.lmco.com) and seeing > what they are looking to hire. (Most of their effort appears to be trawling > for resumes for Joint Strike Fighter, which is in C++. This will eventually turn out to be one of the all time stupid software engineering decisions, one that will end up with lots of people blaming each other for a series of cost-overruns, buggy software, and probably a lot of regrets. However, it is a decision that needs to be experienced so the managers can learn just how hideous C++ is for this kind of software. One can only hope they do learn that lesson and no one will get killed due to a software accident because of it. Richard Riehle ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-06 22:24 ` Richard Riehle @ 2003-01-06 23:45 ` Jerry van Dijk 2003-01-07 18:35 ` Mike Silva ` (2 subsequent siblings) 3 siblings, 0 replies; 337+ messages in thread From: Jerry van Dijk @ 2003-01-06 23:45 UTC (permalink / raw) Richard Riehle <richard@adaworks.com> writes: [on C++ for the JSF] > However, > it is a decision that needs to be experienced so the managers can learn just how > > hideous C++ is for this kind of software. One can only hope they do learn that > > lesson and no one will get killed due to a software accident because of it. Right. And I am paying for that experience... Ugh. (Dutch government is going to invest half a billion of our tax money in JSF development) -- -- Jerry van Dijk | email: jvandyk@attglobal.net -- Leiden, Holland | web: users.ncrvnet.nl/gmvdijk ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-06 22:24 ` Richard Riehle 2003-01-06 23:45 ` Jerry van Dijk @ 2003-01-07 18:35 ` Mike Silva 2003-01-07 20:34 ` Jerry Petrey 2003-01-09 2:14 ` faust 2003-01-09 2:15 ` C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in US using ADA ?) faust 3 siblings, 1 reply; 337+ messages in thread From: Mike Silva @ 2003-01-07 18:35 UTC (permalink / raw) Richard Riehle <richard@adaworks.com> wrote in message news:<3E1A020F.8BD6EB6B@adaworks.com>... > "John R. Strohm" wrote: > > > I *THINK* that Lockheed-Martin Fort Worth is using Ada for F-22 and F-16. > > You might try looking at their web sight (http://www.lmco.com) and seeing > > what they are looking to hire. (Most of their effort appears to be trawling > > for resumes for Joint Strike Fighter, which is in C++. > > This will eventually turn out to be one of the all time stupid software > engineering > decisions, one that will end up with lots of people blaming each other for a > series of cost-overruns, buggy software, and probably a lot of regrets. > However, > it is a decision that needs to be experienced so the managers can learn just how > > hideous C++ is for this kind of software. One can only hope they do learn that > > lesson and no one will get killed due to a software accident because of it. > > Richard Riehle I have a number of questions about this: 1) How is such a decision (choosing the language for a major project) made, especially when the language chosen has not been proven in such applications? 2) Is there any sign yet of cost-overruns, buggy software, or regrets? 3) How does C++ compare, safety-wise and reliability-wise, with earlier languages used in such applications, e.g. Jovial? (I *know* how it compares with Ada!) To put it another way, how big a leap backwards is the use of C++ for these applications? Mike ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-07 18:35 ` Mike Silva @ 2003-01-07 20:34 ` Jerry Petrey 2003-01-07 21:07 ` Dead Fred the Head Red 0 siblings, 1 reply; 337+ messages in thread From: Jerry Petrey @ 2003-01-07 20:34 UTC (permalink / raw) Mike Silva wrote: > Richard Riehle wrote:. > > "John R. Strohm" wrote: > > > > > I *THINK* that Lockheed-Martin Fort Worth is using Ada for F-22 and F-16. > > > You might try looking at their web sight (http://www.lmco.com) and seeing > > > what they are looking to hire. (Most of their effort appears to be trawling > > > for resumes for Joint Strike Fighter, which is in C++. > > > > This will eventually turn out to be one of the all time stupid software engineering > > decisions, one that will end up with lots of people blaming each other for a > > series of cost-overruns, buggy software, and probably a lot of regrets. > > However, it is a decision that needs to be experienced so the managers can learn just how > > hideous C++ is for this kind of software. One can only hope they do learn that > > lesson and no one will get killed due to a software accident because of it. > > > > Richard Riehle > > I have a number of questions about this: > > 1) How is such a decision (choosing the language for a major project) > made, especially when the language chosen has not been proven in such > applications? > > 2) Is there any sign yet of cost-overruns, buggy software, or regrets? > > 3) How does C++ compare, safety-wise and reliability-wise, with > earlier languages used in such applications, e.g. Jovial? (I *know* > how it compares with Ada!) To put it another way, how big a leap > backwards is the use of C++ for these applications? > > Mike Having worked for Lockheed and a number of other defense companies in the past, I can comment on question 1. Usually the managers who make the decisions on such things as languages, tools, processors, etc. don't have a clue what is the best choice. They are not particularly interested in things like reliability, maintainability, safety, or quality; rather, what they think will be fast and cheap and make them look good in the short term (the old �You guys start coding, while I go upstairs and see want they want us to build�). They tend to listen to the engineers they perceive as being knowledgeable (in many cases these are relatively young engineers who have done a good job of kissing up and winning the favor of the managers). These engineers, in turn, are thinking of what will be the best for their career and what they are most familiar with. These are the guys we have to convince that Ada is the right choice, but it is very difficult to do since they are often ignorant of Ada and firmly believe that due to the popularity of C++, it is the right choice for new applications. Many previous posts have suggested ideas for improving Ada�s acceptance - cheaper and better compilers and tools, bindings, etc. These are all good, but most of all we need to get Ada more into the education system and promote the successes of Ada applications that are done. And, of course, do more Ada applications where we have the control to do so � at work or at home. Having Ada available on more commonly used platforms would certainly be a big step as well. Jerry -- ------------------------------------------------------------------------------------- -- Jerry Petrey -- Senior Principal Systems Engineer - Navigation (GPS/INS), Guidance, & Control -- Raytheon Missile Systems - Member Team Ada & Team Forth -- NOTE: please remove <NOSPAM> in email address to reply -------------------------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-07 20:34 ` Jerry Petrey @ 2003-01-07 21:07 ` Dead Fred the Head Red 0 siblings, 0 replies; 337+ messages in thread From: Dead Fred the Head Red @ 2003-01-07 21:07 UTC (permalink / raw) >>1) How is such a decision (choosing the language for a major project) >>made, especially when the language chosen has not been proven in such >>applications? > > Usually the managers .... tend to listen to the engineers they perceive as being > knowledgeable ..... These engineers, in turn, are thinking of what > will be the best for their career and what they are most familiar with. [snip comments about them picking C++ because they know it] OR they are familiar with Ada and know it's the best choice, but they believe that getting Java on their r�sum�s is a good career move. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2003-01-06 22:24 ` Richard Riehle 2003-01-06 23:45 ` Jerry van Dijk 2003-01-07 18:35 ` Mike Silva @ 2003-01-09 2:14 ` faust 2003-01-09 2:15 ` C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in US using ADA ?) faust 3 siblings, 0 replies; 337+ messages in thread From: faust @ 2003-01-09 2:14 UTC (permalink / raw) Richard Riehle <richard@adaworks.com> , emitted these fragments: >> what they are looking to hire. (Most of their effort appears to >>be trawling >> for resumes for Joint Strike Fighter, which is in C++. >hideous C++ is for this kind of software. One can only hope they do learn that >lesson and no one will get killed due to a software accident because of it. Better to have a few pilots killed due to soiftware accidents than to have the JSF actually work and help to kill innocent civilians in their thousands. -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in US using ADA ?) 2003-01-06 22:24 ` Richard Riehle ` (2 preceding siblings ...) 2003-01-09 2:14 ` faust @ 2003-01-09 2:15 ` faust 2003-01-08 13:21 ` Ted Dennison 3 siblings, 1 reply; 337+ messages in thread From: faust @ 2003-01-09 2:15 UTC (permalink / raw) Richard Riehle <richard@adaworks.com> , emitted these fragments: >> what they are looking to hire. (Most of their effort appears to >>be trawling >> for resumes for Joint Strike Fighter, which is in C++. >hideous C++ is for this kind of software. One can only hope they do learn that >lesson and no one will get killed due to a software accident because of it. Better to have a few pilots killed due to soiftware accidents than to have the JSF actually work and help to kill innocent civilians in their thousands. -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in US using ADA ?) 2003-01-09 2:15 ` C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in US using ADA ?) faust @ 2003-01-08 13:21 ` Ted Dennison 2003-01-08 13:51 ` C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in USusing " Marin David Condic 0 siblings, 1 reply; 337+ messages in thread From: Ted Dennison @ 2003-01-08 13:21 UTC (permalink / raw) faust wrote: > Better to have a few pilots killed due to soiftware accidents than to > have the JSF actually work and help to kill innocent civilians in > their thousands. Innocent my ass. ;-) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in USusing ADA ?) 2003-01-08 13:21 ` Ted Dennison @ 2003-01-08 13:51 ` Marin David Condic 2003-01-08 21:42 ` Ted Dennison 2003-01-09 16:27 ` faust 0 siblings, 2 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-08 13:51 UTC (permalink / raw) Ted: There's no reasoning with this sort of willful ignorance. Noting that the JSF (which I work on) has absolutely *no* design features in it to attack civilians and that the military in general maintains (and generally succeeds in) a policy of not targeting civilians is never going to change the minds of those who maintain an irrational and unthinking hatred of the military. Perhaps if the military were to simply stop protecting this crowd and let nature take its course, they might discover that they actually *like* having a military standing on a wall, putting their lives at risk and saying "Nobody is going to hurt you on *my* watch". And now (having fanned the flames myself) lets make a pitch to once again *NOT* start political debates on C.L.A. Its quite obvious that all of us here are going to have different political ideas and that this is *NOT* the place to start discussing them. I'd suggest that we should avoid whatever temptations there are to throw out provocative statements aimed at insulting a fair number of people here (remember that many of us *do* work for the military and don't think that we're a bunch of baby-killers and resent being labeled that way). If anyone out there "loathes" the military, please go into your closet and shout "I LOATHE THE MILITARY" until you are hoarse and get it out of your system and then come back here to discuss Ada. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== Ted Dennison <dennison@telepath.com> wrote in message news:sBVS9.7505$E83.785@news2.central.cox.net... > faust wrote: > > Better to have a few pilots killed due to soiftware accidents than to > > have the JSF actually work and help to kill innocent civilians in > > their thousands. > > > Innocent my ass. > > > > ;-) > ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in USusing ADA ?) 2003-01-08 13:51 ` C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in USusing " Marin David Condic @ 2003-01-08 21:42 ` Ted Dennison 2003-01-09 16:27 ` faust 1 sibling, 0 replies; 337+ messages in thread From: Ted Dennison @ 2003-01-08 21:42 UTC (permalink / raw) "Marin David Condic" <mcondic.auntie.spam@acm.org> wrote in message news:<avhaec$fi1$1@slb3.atl.mindspring.net>... > Ted: There's no reasoning with this sort of willful ignorance. Noting that Yeah, that's why I played up the militaristic ogre angle. Sometimes it flummoxes such folk when you give them what they expect. :-) > the JSF (which I work on) has absolutely *no* design features in it to > attack civilians and that the military in general maintains (and generally You'd think the "Fighter" in the name would have been a clue. But you know he'd just argue about all those innocent civilians hurt by falling parts from the planes that attacked the fighter... ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in USusing ADA ?) 2003-01-08 13:51 ` C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in USusing " Marin David Condic 2003-01-08 21:42 ` Ted Dennison @ 2003-01-09 16:27 ` faust 2003-01-08 21:44 ` C++ , ADA and the Joint Strike Fighter Vinzent Hoefler 2003-01-09 12:34 ` C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in USusing ADA ?) Marin David Condic 1 sibling, 2 replies; 337+ messages in thread From: faust @ 2003-01-09 16:27 UTC (permalink / raw) "Marin David Condic" <mcondic.auntie.spam@acm.org> , emitted these fragments: > > have the JSF actually work and help to kill innocent civilians in > > their thousands. >the JSF (which I work on) Nice to see that you are so disinterested. >has absolutely *no* design features in it to >attack civilians and that the military in general maintains (and generally Protecting a bomber on its way to bomb the local wedding party counts as "helping to kill innocent civilians" This is one major reason that Ada gave everyone a bad taste in the mouth. -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter 2003-01-09 16:27 ` faust @ 2003-01-08 21:44 ` Vinzent Hoefler 2003-01-10 7:58 ` faust 2003-01-09 12:34 ` C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in USusing ADA ?) Marin David Condic 1 sibling, 1 reply; 337+ messages in thread From: Vinzent Hoefler @ 2003-01-08 21:44 UTC (permalink / raw) faust wrote: > Protecting a bomber on its way to bomb the local wedding party counts > as "helping to kill innocent civilians" It's the man who kills, not the weapon. Consider the same type of aircraft might be used to *bomb* food packets. Consider the same type of explosive could be used to build a bridge. Consider ... Vinzent. -- If you think sex is a pain in the ass, try different position. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter 2003-01-08 21:44 ` C++ , ADA and the Joint Strike Fighter Vinzent Hoefler @ 2003-01-10 7:58 ` faust 2003-01-09 14:34 ` Vinzent Hoefler 0 siblings, 1 reply; 337+ messages in thread From: faust @ 2003-01-10 7:58 UTC (permalink / raw) Vinzent Hoefler <ada.rocks@jlfencey.com> , emitted these fragments: >faust wrote: > >> Protecting a bomber on its way to bomb the local wedding party counts >> as "helping to kill innocent civilians" > >It's the man who kills, not the weapon. Well then, let us encourage the North Koreans to build H-bombs since weapons are so harmless. -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter 2003-01-10 7:58 ` faust @ 2003-01-09 14:34 ` Vinzent Hoefler 2003-01-09 14:57 ` C++ , ADA and the Joint Strike Fighter (Off-topic) Larry Kilgallen ` (2 more replies) 0 siblings, 3 replies; 337+ messages in thread From: Vinzent Hoefler @ 2003-01-09 14:34 UTC (permalink / raw) faust wrote: > Vinzent Hoefler <ada.rocks@jlfencey.com> , emitted these fragments: > >>It's the man who kills, not the weapon. > > Well then, let us encourage the North Koreans to build H-bombs since > weapons are so harmless. Would you blame the scientist, who invented and developed the H-bomb or rather the f*** politician who uses it? Vinzent. -- Real Time, adj.: Here and now, as opposed to fake time, which only occurs there and then. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter (Off-topic) 2003-01-09 14:34 ` Vinzent Hoefler @ 2003-01-09 14:57 ` Larry Kilgallen 2003-01-09 17:10 ` C++ , ADA and the Joint Strike Fighter Pascal Obry 2003-01-10 14:18 ` faust 2 siblings, 0 replies; 337+ messages in thread From: Larry Kilgallen @ 2003-01-09 14:57 UTC (permalink / raw) In article <l91kva.gd1.ln@jellix.jlfencey.com>, Vinzent Hoefler <ada.rocks@jlfencey.com> writes: > faust wrote: > >> Vinzent Hoefler <ada.rocks@jlfencey.com> , emitted these fragments: >> >>>It's the man who kills, not the weapon. >> >> Well then, let us encourage the North Koreans to build H-bombs since >> weapons are so harmless. > > Would you blame the scientist, who invented and developed the H-bomb or > rather the f*** politician who uses it? I would blame the one who disobeyed the conventions of his discipline, in this case, the one who failed to cease the OFF TOPIC POSTS !!! ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter 2003-01-09 14:34 ` Vinzent Hoefler 2003-01-09 14:57 ` C++ , ADA and the Joint Strike Fighter (Off-topic) Larry Kilgallen @ 2003-01-09 17:10 ` Pascal Obry 2003-01-10 14:18 ` faust 2 siblings, 0 replies; 337+ messages in thread From: Pascal Obry @ 2003-01-09 17:10 UTC (permalink / raw) Vinzent Hoefler <ada.rocks@jlfencey.com> writes: > Would you blame the scientist, who invented and developed the H-bomb or > rather the f*** politician who uses it? I agree with Larry, please stop this thread. It has nothing to do with Ada. You are just polluting this forum. Thanks, Pascal. -- --|------------------------------------------------------ --| Pascal Obry Team-Ada Member --| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE --|------------------------------------------------------ --| http://perso.wanadoo.fr/pascal.obry --| "The best way to travel is by means of imagination" --| --| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595 ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter 2003-01-09 14:34 ` Vinzent Hoefler 2003-01-09 14:57 ` C++ , ADA and the Joint Strike Fighter (Off-topic) Larry Kilgallen 2003-01-09 17:10 ` C++ , ADA and the Joint Strike Fighter Pascal Obry @ 2003-01-10 14:18 ` faust 2003-01-09 19:29 ` C++ , ADA and the Joint Strike Fighter (Off-topic) Larry Kilgallen ` (2 more replies) 2 siblings, 3 replies; 337+ messages in thread From: faust @ 2003-01-10 14:18 UTC (permalink / raw) Vinzent Hoefler <ada.rocks@jlfencey.com> , emitted these fragments: >Would you blame the scientist, who invented and developed the H-bomb or >rather the f*** politician who uses it? Those were the arguments used by the torturers and collaborators. " We were only following orders" How are you different from those who support and help Al Queda ? -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter (Off-topic) 2003-01-10 14:18 ` faust @ 2003-01-09 19:29 ` Larry Kilgallen 2003-01-11 19:31 ` chris.danx 2003-01-11 22:10 ` Larry Kilgallen [not found] ` <H01kDjtzy1$7@eisneOrganization: LJK Software <oK$dhQDJBSHL@eisner.encompasserve.org> 2 siblings, 1 reply; 337+ messages in thread From: Larry Kilgallen @ 2003-01-09 19:29 UTC (permalink / raw) In article <5alt1vgcj5usfi5348dm038ogmtoccp5o4@4ax.com>, faust <urfaust@optushome.com.au> writes: > How are you different from those who support and help Al Queda ? They don't make off-topic post in this newsgroup. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter (Off-topic) 2003-01-09 19:29 ` C++ , ADA and the Joint Strike Fighter (Off-topic) Larry Kilgallen @ 2003-01-11 19:31 ` chris.danx 2003-01-12 22:22 ` u.r. faust 0 siblings, 1 reply; 337+ messages in thread From: chris.danx @ 2003-01-11 19:31 UTC (permalink / raw) Larry Kilgallen wrote: > In article <5alt1vgcj5usfi5348dm038ogmtoccp5o4@4ax.com>, faust <urfaust@optushome.com.au> writes: > >>How are you different from those who support and help Al Queda ? > > They don't make off-topic post in this newsgroup. How do you know? ;) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter (Off-topic) 2003-01-11 19:31 ` chris.danx @ 2003-01-12 22:22 ` u.r. faust 2003-01-12 9:07 ` tmoran 2003-01-13 13:25 ` Marin David Condic 0 siblings, 2 replies; 337+ messages in thread From: u.r. faust @ 2003-01-12 22:22 UTC (permalink / raw) > > >>How are you different from those who support and help Al Queda ? > > They don't make off-topic post in this newsgroup. > How do you know? ;) In another thread, there was a statement that Ada is popular in Pakistan and Iraq. So look out, there could be Al Queda members reading your messages :-) -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter (Off-topic) 2003-01-12 22:22 ` u.r. faust @ 2003-01-12 9:07 ` tmoran 2003-01-13 4:20 ` u.r. faust 2003-01-13 13:25 ` Marin David Condic 1 sibling, 1 reply; 337+ messages in thread From: tmoran @ 2003-01-12 9:07 UTC (permalink / raw) > So look out, there could be Al Queda members reading your messages :-) Thanks to the prophetic vision of true leaders, Ada was, and will be, a treasure bin laden with explosively revolutionary programming language ideas. We pray misguided souls will convert to the true faith and, instead of "programming rage" from crashing all the time, will achieve enlightenment and dedicate their efforts to developing sophisticated computer programs that contribute towards a veritable heaven on earth. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter (Off-topic) 2003-01-12 9:07 ` tmoran @ 2003-01-13 4:20 ` u.r. faust 0 siblings, 0 replies; 337+ messages in thread From: u.r. faust @ 2003-01-13 4:20 UTC (permalink / raw) tmoran@acm.org writes: >> So look out, there could be Al Queda members reading your messages :-) > Thanks to the prophetic vision of true leaders, Ada was, and will be, > a treasure bin laden with explosively revolutionary programming language > ideas. We pray misguided souls will convert to the true faith and, > instead of "programming rage" from crashing all the time, will achieve > enlightenment and dedicate their efforts to developing sophisticated > computer programs that contribute towards a veritable heaven on earth. There is no God but Ada and Ichibiah is her prophet. -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter (Off-topic) 2003-01-12 22:22 ` u.r. faust 2003-01-12 9:07 ` tmoran @ 2003-01-13 13:25 ` Marin David Condic 1 sibling, 0 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-13 13:25 UTC (permalink / raw) Repeated efforts to discourage off-topic political posts don't seem to be taken seriously. Looks like its time to puit someone in the kill file..... MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== u.r. faust <urfaust@optushome.com.au> wrote in message news:r8bic8kw.fsf@optushome.com.au... > > > > >>How are you different from those who support and help Al Queda ? > > > They don't make off-topic post in this newsgroup. > > > How do you know? ;) > > In another thread, there was a statement that Ada is popular in Pakistan > and Iraq. > > So look out, there could be Al Queda members reading your messages :-) > > -- > natsu-gusa ya / tsuwamono-domo-ga / yume no ato > summer grasses / strong ones / dreams site > > Summer grasses, > All that remains > Of soldier's dreams > (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter (Off-topic) 2003-01-10 14:18 ` faust 2003-01-09 19:29 ` C++ , ADA and the Joint Strike Fighter (Off-topic) Larry Kilgallen @ 2003-01-11 22:10 ` Larry Kilgallen [not found] ` <H01kDjtzy1$7@eisneOrganization: LJK Software <oK$dhQDJBSHL@eisner.encompasserve.org> 2 siblings, 0 replies; 337+ messages in thread From: Larry Kilgallen @ 2003-01-11 22:10 UTC (permalink / raw) In article <bh_T9.70$bG2.179@news13-win.server.ntlworld.com>, "chris.danx" <spamoff.danx@ntlworld.com> writes: > Larry Kilgallen wrote: >> In article <5alt1vgcj5usfi5348dm038ogmtoccp5o4@4ax.com>, faust <urfaust@optushome.com.au> writes: >> >>>How are you different from those who support and help Al Queda ? >> >> They don't make off-topic post in this newsgroup. > > > How do you know? ;) I have ways of knowing, but discussing them would be off-topic :-) ^ permalink raw reply [flat|nested] 337+ messages in thread
[parent not found: <H01kDjtzy1$7@eisneOrganization: LJK Software <oK$dhQDJBSHL@eisner.encompasserve.org>]
* Re: C++ , ADA and the Joint Strike Fighter (Off-topic) [not found] ` <H01kDjtzy1$7@eisneOrganization: LJK Software <oK$dhQDJBSHL@eisner.encompasserve.org> @ 2003-01-12 22:23 ` u.r. faust 0 siblings, 0 replies; 337+ messages in thread From: u.r. faust @ 2003-01-12 22:23 UTC (permalink / raw) > I have ways of knowing, but discussing them would be off-topic :-) Larry has just let slip his secret. he is the point man for Echelon :-) -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in USusing ADA ?) 2003-01-09 16:27 ` faust 2003-01-08 21:44 ` C++ , ADA and the Joint Strike Fighter Vinzent Hoefler @ 2003-01-09 12:34 ` Marin David Condic 1 sibling, 0 replies; 337+ messages in thread From: Marin David Condic @ 2003-01-09 12:34 UTC (permalink / raw) If you wish to insult those of us who are either in the military, actively work in support of the military or simply respect the military, that is your right. Stand on any street corner you like and scream "BABY KILLER!!!" at everyone in uniform that passes by if you wish. Just keep it out of this newsgroup because it is a) offensive and b) completely off topic. MDC -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jast.mil/ Send Replies To: m c o n d i c @ a c m . o r g "I'd trade it all for just a little more" -- Charles Montgomery Burns, [4F10] ====================================================================== faust <urfaust@optushome.com.au> wrote in message news:0k8r1vodhicr0bvqr8v9g3t40g8humrv7l@4ax.com... > "Marin David Condic" <mcondic.auntie.spam@acm.org> , emitted these > fragments: > > > > have the JSF actually work and help to kill innocent civilians in > > > their thousands. > > >the JSF (which I work on) > > Nice to see that you are so disinterested. > > >has absolutely *no* design features in it to > >attack civilians and that the military in general maintains (and generally > > Protecting a bomber on its way to bomb the local wedding party counts > as "helping to kill innocent civilians" > > This is one major reason that Ada gave everyone a bad taste in the > mouth. > > -- > natsu-gusa ya / tsuwamono-domo-ga / yume no ato > summer grasses / strong ones / dreams site > > Summer grasses, > All that remains > Of soldier's dreams > (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Anybody in US using ADA ? 2002-12-31 18:37 Anybody in US using ADA ? Mr Bill 2002-12-31 18:55 ` John R. Strohm @ 2002-12-31 22:38 ` Britt Snodgrass 1 sibling, 0 replies; 337+ messages in thread From: Britt Snodgrass @ 2002-12-31 22:38 UTC (permalink / raw) "Mr Bill" <nospam@nospam.com> wrote in message news:<VtlQ9.42144$%3.10762066@twister.neo.rr.com>... > It seems to have fallen out of favor with everybody I know. > > Thanks, > Bill Rockwell Collins still uses Ada 83 or Ada 95 in many new avionics products. Many products use a mixture of Ada and C. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..)
@ 2003-01-10 7:02 Grein, Christoph
2003-01-10 15:58 ` Wes Groleau
0 siblings, 1 reply; 337+ messages in thread
From: Grein, Christoph @ 2003-01-10 7:02 UTC (permalink / raw)
faust <urfaust@optushome.com.au> writes:
> Ada is such a wimpy name.
> Old eighteenth century woman....
1815 is in the 19th century...
^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..) 2003-01-10 7:02 Remarketing the language ( was Re: ....ADA ? One silly idea..) Grein, Christoph @ 2003-01-10 15:58 ` Wes Groleau 2003-01-11 9:51 ` David Wright 0 siblings, 1 reply; 337+ messages in thread From: Wes Groleau @ 2003-01-10 15:58 UTC (permalink / raw) >>Ada is such a wimpy name. >>Old eighteenth century woman.... > > 1815 is in the 19th century... And she never got a chance to be old. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..) 2003-01-10 15:58 ` Wes Groleau @ 2003-01-11 9:51 ` David Wright [not found] ` <qg5qva.3d3.ln@beastie.ix.netcom.com> 2003-01-17 2:20 ` Kaz Kylheku 0 siblings, 2 replies; 337+ messages in thread From: David Wright @ 2003-01-11 9:51 UTC (permalink / raw) "Wes Groleau" <wesgroleau@despammed.com> wrote in message news:L4CT9.2393$c6.2552@bos-service2.ext.raytheon.com.. . : : >>Ada is such a wimpy name. : >>Old eighteenth century woman.... : > : > 1815 is in the 19th century... : : And she never got a chance to be old. : Yes, but you've got to admit that ADA 'sounds' old; either that or conjures up some milk producing barnyard animal. Why not MADONNA or VANESSA (Amarosi*) ;-) The only reason I ever looked at Euphoria was because of it's name. Just kidding. *Dubious spelling D.W. ^ permalink raw reply [flat|nested] 337+ messages in thread
[parent not found: <qg5qva.3d3.ln@beastie.ix.netcom.com>]
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..) [not found] ` <qg5qva.3d3.ln@beastie.ix.netcom.com> @ 2003-01-13 2:06 ` u.r. faust 2003-01-12 10:50 ` David Wright [not found] ` <ucpsva.q73.ln@beastie.ix.netcom.com> 0 siblings, 2 replies; 337+ messages in thread From: u.r. faust @ 2003-01-13 2:06 UTC (permalink / raw) > > Yes, but you've got to admit that ADA 'sounds' old; > > either that or conjures up some milk producing barnyard > > > animal. Why not MADONNA or VANESSA (Amarosi*) ;-) The > > only reason I ever looked at Euphoria was because of > > it's name. > > > Well, I don't think Grace would have been accepted at the time Too tame. Sounds too much like grace, hope and charity... SLUT or NETBITCH would have been better. -- natsu-gusa ya / tsuwamono-domo-ga / yume no ato summer grasses / strong ones / dreams site Summer grasses, All that remains Of soldier's dreams (Basho trans. Stryk) ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..) 2003-01-13 2:06 ` u.r. faust @ 2003-01-12 10:50 ` David Wright [not found] ` <ucpsva.q73.ln@beastie.ix.netcom.com> 1 sibling, 0 replies; 337+ messages in thread From: David Wright @ 2003-01-12 10:50 UTC (permalink / raw) "u.r. faust" <urfaust@optushome.com.au> wrote in message news:bs2lyfai.fsf@optushome.com.au... : : > > Yes, but you've got to admit that ADA 'sounds' old; : > > either that or conjures up some milk producing barnyard : > : > > animal. Why not MADONNA or VANESSA (Amarosi*) ;-) The : > > only reason I ever looked at Euphoria was because of : > > it's name. : > > : > Well, I don't think Grace would have been accepted at the time : : Too tame. Sounds too much like grace, hope and charity... : : SLUT or NETBITCH would have been better. : Nah... why would you want to immortalize my girlfriend? ^_^ D.W. ^ permalink raw reply [flat|nested] 337+ messages in thread
[parent not found: <ucpsva.q73.ln@beastie.ix.netcom.com>]
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..) [not found] ` <ucpsva.q73.ln@beastie.ix.netcom.com> @ 2003-01-14 2:57 ` Randy Brukardt 0 siblings, 0 replies; 337+ messages in thread From: Randy Brukardt @ 2003-01-14 2:57 UTC (permalink / raw) Dennis Lee Bieber wrote in message ... > Well, we do seem to be hoping for a charitable market <G> When we first were starting out, way back in 1980, we had the problem of naming our compiler. I wanted to call it "Newspeak", because of the connection with the government. I was talked out it, and we named it "Janus" instead. Randy Brukardt. ^ permalink raw reply [flat|nested] 337+ messages in thread
* Re: Remarketing the language ( was Re: ....ADA ? One silly idea..) 2003-01-11 9:51 ` David Wright [not found] ` <qg5qva.3d3.ln@beastie.ix.netcom.com> @ 2003-01-17 2:20 ` Kaz Kylheku 1 sibling, 0 replies; 337+ messages in thread From: Kaz Kylheku @ 2003-01-17 2:20 UTC (permalink / raw) "David Wright" <davidw@uq.net.au> wrote in message news:<avopcn$q6g$1@bunyip.cc.uq.edu.au>... > "Wes Groleau" <wesgroleau@despammed.com> wrote in > message > news:L4CT9.2393$c6.2552@bos-service2.ext.raytheon.com.. > . > : > : >>Ada is such a wimpy name. > : >>Old eighteenth century woman.... > : > > : > 1815 is in the 19th century... > : > : And she never got a chance to be old. > : > > Yes, but you've got to admit that ADA 'sounds' old; > either that or conjures up some milk producing barnyard > animal. Why not MADONNA or VANESSA (Amarosi*) ;-) The > only reason I ever looked at Euphoria was because of > it's name. Note that the name Vanessa was invented by Jonathan Swift, who lived from 1667 to 1745. ^ permalink raw reply [flat|nested] 337+ messages in thread
end of thread, other threads:[~2003-02-05 15:35 UTC | newest] Thread overview: 337+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2002-12-31 18:37 Anybody in US using ADA ? Mr Bill 2002-12-31 18:55 ` John R. Strohm 2003-01-01 3:20 ` Marin David Condic 2003-01-01 7:11 ` tmoran 2003-01-01 14:31 ` Marin David Condic 2003-01-01 22:49 ` tmoran 2003-01-02 12:45 ` Marin David Condic 2003-01-02 18:08 ` Anybody in US using ADA ? New language competition? Warren W. Gay VE3WWG 2003-01-03 2:47 ` Marin David Condic 2003-01-03 6:01 ` Robert C. Leif 2003-01-03 17:58 ` Anybody in US using ADA ? New language competition? (long) Warren W. Gay VE3WWG 2003-01-04 14:57 ` Marin David Condic 2003-01-06 15:53 ` Wes Groleau 2003-01-06 16:36 ` Larry Kilgallen 2003-01-06 20:47 ` Randy Brukardt 2003-01-07 13:15 ` Wes Groleau 2003-01-07 19:05 ` Randy Brukardt 2003-01-07 19:37 ` Larry Kilgallen 2003-01-07 20:52 ` Wes Groleau 2003-01-08 20:05 ` Randy Brukardt 2003-01-07 21:23 ` Georg Bauhaus 2003-01-08 0:30 ` Richard Riehle 2003-01-08 20:12 ` Randy Brukardt 2003-01-07 13:11 ` Marin David Condic 2003-01-06 18:22 ` Warren W. Gay VE3WWG 2003-01-06 20:52 ` Randy Brukardt 2003-01-07 13:56 ` Marin David Condic 2003-01-07 19:15 ` Randy Brukardt 2003-01-08 13:14 ` Marin David Condic 2003-01-08 18:04 ` tmoran 2003-01-08 18:05 ` Warren W. Gay VE3WWG 2003-01-08 20:20 ` Larry Kilgallen 2003-01-09 13:21 ` Marin David Condic 2003-01-08 20:24 ` Randy Brukardt 2003-01-09 13:34 ` Marin David Condic 2003-01-07 13:50 ` Marin David Condic 2003-01-07 17:48 ` Warren W. Gay VE3WWG 2003-01-08 13:34 ` Marin David Condic 2003-01-08 18:04 ` tmoran 2003-01-08 18:16 ` Warren W. Gay VE3WWG 2003-01-09 13:22 ` chris.danx 2003-01-09 13:53 ` Marin David Condic 2003-01-09 15:09 ` Raster graphics [was Anybody in US using ADA ? New language competition? (long)] Chad R. Meiners 2003-01-11 19:23 ` chris.danx 2003-01-03 9:57 ` Anybody in US using ADA ? Kevin Cline 2003-01-03 12:37 ` Marin David Condic 2003-01-03 15:32 ` Anybody in US using ADA ? | for interrest Mark 2003-01-09 0:59 ` Anybody in US using ADA ? faust 2003-01-08 12:53 ` Marin David Condic 2003-01-05 17:04 ` Adrian Hoe 2003-01-06 20:06 ` Randy Brukardt 2003-01-07 2:07 ` Jeffrey Creem 2003-01-07 3:22 ` Jeffrey Creem 2003-01-05 17:06 ` Adrian Hoe 2003-01-02 3:05 ` faust 2003-01-02 3:07 ` faust 2003-01-02 22:09 ` Robert C. Leif 2003-01-02 17:57 ` Anybody in US using ADA ? One silly idea Warren W. Gay VE3WWG 2003-01-02 18:29 ` Vinzent Hoefler 2003-01-02 22:02 ` Warren W. Gay VE3WWG 2003-01-02 20:36 ` Bill Findlay 2003-01-03 2:56 ` Marin David Condic 2003-01-03 4:11 ` sk 2003-01-03 4:43 ` Bill Findlay 2003-01-03 6:01 ` Robert C. Leif 2003-01-07 17:47 ` Kevin Cline 2003-01-07 19:49 ` tmoran 2003-01-09 5:15 ` Kevin Cline 2003-01-03 13:16 ` Marin David Condic 2003-01-03 18:28 ` Bill Findlay 2003-01-04 15:17 ` Marin David Condic 2003-01-09 16:36 ` faust [not found] ` <roliva.8b4.ln@beastie.ix.netcom.com> 2003-01-09 4:32 ` Hyman Rosen 2003-01-03 20:07 ` tmoran 2003-01-03 23:06 ` Martin Dowie 2003-01-09 16:22 ` faust 2003-01-04 7:07 ` Robert C. Leif 2003-01-04 17:49 ` Steve 2003-01-05 3:07 ` Robert C. Leif 2003-01-07 12:38 ` Richard Riehle 2003-01-09 16:36 ` faust 2003-01-09 16:37 ` Harness your own creativity to Ada (Re: Anybody in US using ADA ? One silly idea..) faust 2003-01-03 9:24 ` Anybody in US using ADA ? One silly idea Kevin Cline 2003-01-03 10:11 ` John R. Strohm 2003-01-03 13:23 ` Marin David Condic 2003-01-03 18:40 ` John R. Strohm 2003-01-04 9:05 ` Kevin Cline 2003-01-04 16:34 ` John R. Strohm 2003-01-03 19:40 ` Kevin Cline 2003-01-03 22:34 ` Ted Dennison 2003-01-04 8:53 ` Kevin Cline 2003-01-04 11:48 ` Dmitry A. Kazakov 2003-01-04 18:15 ` Robert A Duff 2003-01-04 20:18 ` Hillel Y. Sims 2003-01-05 14:13 ` Dmitry A. Kazakov 2003-01-05 15:45 ` James S. Rogers 2003-01-06 14:13 ` Dmitry A. Kazakov 2003-01-06 1:20 ` Hillel Y. Sims 2003-01-06 14:14 ` Dmitry A. Kazakov 2003-01-06 19:07 ` Randy Brukardt 2003-01-07 12:33 ` Dmitry A. Kazakov 2003-01-08 4:24 ` Hyman Rosen 2003-01-08 13:55 ` Dmitry A. Kazakov 2003-01-08 18:43 ` Wes Groleau 2003-01-08 21:54 ` Ted Dennison 2003-01-09 5:05 ` Hyman Rosen 2003-01-06 1:37 ` Robert C. Leif 2003-01-06 14:13 ` Dmitry A. Kazakov 2003-01-06 19:13 ` Pascal Obry 2003-01-07 12:02 ` Dmitry A. Kazakov 2003-01-07 3:00 ` Hyman Rosen 2003-01-07 12:10 ` Dmitry A. Kazakov 2003-01-08 3:41 ` Hyman Rosen 2003-01-08 13:19 ` Dmitry A. Kazakov 2003-01-09 4:23 ` Hyman Rosen 2003-01-10 13:51 ` Dmitry A. Kazakov 2003-01-13 17:05 ` Hyman Rosen 2003-01-15 17:04 ` Dmitry A. Kazakov 2003-01-15 17:23 ` Hyman Rosen 2003-01-15 18:19 ` Bill Findlay 2003-01-15 19:02 ` Hyman Rosen 2003-01-15 19:11 ` Bill Findlay 2003-01-15 22:51 ` chris.danx 2003-01-15 23:39 ` Bill Findlay 2003-01-15 23:57 ` chris.danx 2003-01-16 0:32 ` Bill Findlay 2003-01-16 5:23 ` Richard Riehle 2003-01-16 16:33 ` One sillier idea Wes Groleau 2003-01-16 17:17 ` sk 2003-01-16 17:11 ` Anybody in US using ADA ? One silly idea Hyman Rosen 2003-01-16 17:50 ` Richard Riehle 2003-01-16 17:57 ` Frank J. Lhota 2003-01-16 18:26 ` Wes Groleau 2003-01-17 8:27 ` Anders Wirzenius [not found] ` <h0770b.5e3.ln@beastie.ix.netcom.com> 2003-01-17 17:32 ` Warren W. Gay VE3WWG 2003-01-17 17:31 ` Warren W. Gay VE3WWG 2003-01-16 0:19 ` Richard Riehle 2003-01-16 0:16 ` chris.danx 2003-01-16 0:46 ` Bill Findlay 2003-01-16 1:19 ` Jeffrey Carter 2003-01-16 2:44 ` Richard Riehle 2003-01-16 0:24 ` Bill Findlay 2003-01-16 10:34 ` Jean-Pierre Rosen 2003-01-16 18:20 ` Dmitry A. Kazakov 2003-01-16 18:59 ` Hyman Rosen 2003-01-17 4:09 ` Richard Riehle 2003-01-17 14:36 ` Hyman Rosen 2003-01-17 16:28 ` Dmitry A. Kazakov 2003-01-17 17:23 ` Hyman Rosen 2003-01-17 19:02 ` Richard Riehle 2003-01-17 20:02 ` Hyman Rosen 2003-01-25 1:40 ` Richard Riehle 2003-01-26 4:57 ` Hyman Rosen 2003-01-18 12:31 ` Dmitry A. Kazakov 2003-01-18 22:53 ` Hillel Y. Sims 2003-01-19 6:18 ` Kevin Cline 2003-01-19 12:34 ` Dmitry A. Kazakov 2003-01-21 2:10 ` Hillel Y. Sims 2003-01-21 9:25 ` Dmitry A. Kazakov 2003-01-21 18:55 ` Kevin Cline 2003-01-23 11:00 ` Dmitry A. Kazakov 2003-01-23 16:27 ` Hyman Rosen 2003-01-25 11:53 ` Dmitry A. Kazakov 2003-01-26 6:32 ` Hyman Rosen 2003-01-27 10:11 ` Dmitry A. Kazakov 2003-01-27 15:08 ` Hyman Rosen 2003-01-28 8:27 ` Dmitry A. Kazakov 2003-01-28 15:48 ` Kevin Cline 2003-01-28 16:29 ` Dmitry A. Kazakov 2003-01-28 17:14 ` Hyman Rosen 2003-01-29 8:28 ` Dmitry A. Kazakov 2003-01-28 17:11 ` Hyman Rosen 2003-01-29 8:37 ` Dmitry A. Kazakov 2003-01-29 15:44 ` Hyman Rosen 2003-01-29 21:34 ` Mark Biggar 2003-01-29 22:54 ` Hyman Rosen 2003-01-30 9:03 ` Dmitry A. Kazakov 2003-01-30 14:59 ` Hyman Rosen 2003-01-30 16:32 ` Dmitry A. Kazakov 2003-01-30 17:58 ` Hyman Rosen 2003-01-31 8:31 ` Dmitry A. Kazakov 2003-01-31 15:02 ` Hyman Rosen 2003-01-31 16:12 ` Dmitry A. Kazakov 2003-01-31 17:11 ` Hyman Rosen 2003-02-03 9:59 ` Dmitry A. Kazakov 2003-02-03 13:26 ` Hyman Rosen 2003-02-03 16:12 ` Dmitry A. Kazakov 2003-02-03 17:00 ` Hyman Rosen 2003-02-04 9:54 ` Dmitry A. Kazakov 2003-02-04 14:50 ` Colin Paul Gloster 2003-02-04 15:56 ` Hyman Rosen 2003-02-05 12:53 ` Dmitry A. Kazakov 2003-02-05 15:22 ` Hyman Rosen 2003-02-05 7:02 ` Amir Yantimirov [not found] ` <en04h-1k4.ln1@beastie.ix.netcom.com> 2003-02-04 9:48 ` Dmitry A. Kazakov 2003-02-04 10:10 ` Colin Paul Gloster 2003-02-04 13:12 ` Dmitry A. Kazakov 2003-02-04 14:33 ` Colin Paul Gloster 2003-02-04 15:22 ` Dmitry A. Kazakov 2003-02-04 16:47 ` Hyman Rosen 2003-02-04 15:10 ` Hyman Rosen 2003-02-05 12:53 ` Dmitry A. Kazakov 2003-02-05 15:35 ` Hyman Rosen 2003-02-04 7:04 ` AG 2003-02-03 12:34 ` Dmitry A. Kazakov 2003-02-05 4:38 ` AG 2003-02-04 10:08 ` Dmitry A. Kazakov 2003-01-30 8:09 ` Dmitry A. Kazakov 2003-01-30 15:01 ` Hyman Rosen 2003-01-30 16:33 ` Dmitry A. Kazakov 2003-01-30 17:12 ` Stephen Leake 2003-01-31 8:51 ` Dmitry A. Kazakov 2003-01-31 15:04 ` Hyman Rosen 2003-01-30 18:01 ` Hyman Rosen 2003-01-31 8:38 ` Dmitry A. Kazakov 2003-01-31 15:11 ` Hyman Rosen 2003-01-31 16:27 ` Dmitry A. Kazakov 2003-01-31 17:25 ` Hyman Rosen 2003-02-03 9:59 ` Dmitry A. Kazakov 2003-02-03 13:11 ` Hyman Rosen 2003-02-03 14:40 ` Hyman Rosen 2003-02-04 10:11 ` Dmitry A. Kazakov 2003-02-04 6:34 ` AG 2003-02-03 12:58 ` Dmitry A. Kazakov 2003-01-27 16:04 ` Kevin Cline 2003-01-19 3:42 ` Hyman Rosen 2003-01-19 12:34 ` Dmitry A. Kazakov 2003-01-19 14:13 ` Hyman Rosen 2003-01-20 8:43 ` Dmitry A. Kazakov 2003-01-23 13:15 ` please, please, please, Wes Groleau 2003-01-16 19:08 ` Anybody in US using ADA ? One silly idea Hyman Rosen 2003-01-17 16:28 ` Dmitry A. Kazakov 2003-01-17 4:03 ` Richard Riehle 2003-01-17 16:28 ` Dmitry A. Kazakov 2003-01-21 5:53 ` Richard Riehle 2003-01-21 6:24 ` tmoran 2003-01-16 19:09 ` Larry Kilgallen 2003-01-15 22:48 ` Robert A Duff 2003-01-16 18:20 ` Dmitry A. Kazakov 2003-01-25 16:05 ` Robert I. Eachus 2003-01-25 20:33 ` Richard Riehle 2003-01-27 13:29 ` Wes Groleau 2003-01-27 16:29 ` Hyman Rosen 2003-01-28 13:24 ` Robert A Duff 2003-01-28 17:16 ` Hyman Rosen 2003-01-28 18:44 ` Robert A Duff 2003-01-28 20:04 ` Hyman Rosen 2003-01-07 13:51 ` Richard Riehle 2003-01-08 3:51 ` Hyman Rosen 2003-01-06 16:33 ` Georg Bauhaus 2003-01-06 16:23 ` Wes Groleau 2003-01-06 4:20 ` Kevin Cline 2003-01-06 14:16 ` Dmitry A. Kazakov 2003-01-06 16:08 ` Wes Groleau 2003-01-06 17:26 ` James S. Rogers 2003-01-07 13:36 ` Wes Groleau 2003-01-07 18:40 ` David C. Hoos 2003-01-07 21:29 ` James S. Rogers 2003-01-07 3:14 ` Hyman Rosen 2003-01-07 13:40 ` Wes Groleau 2003-01-08 4:30 ` Hyman Rosen 2003-01-04 18:04 ` Ted Dennison 2003-01-04 20:20 ` Hillel Y. Sims 2003-01-05 2:47 ` Ted Dennison 2003-01-05 23:58 ` [OT] Mozilla filtering " chris.danx 2003-01-06 4:12 ` Ted Dennison 2003-01-06 16:54 ` chris.danx 2003-01-06 16:31 ` [off-topic] spam-filters Wes Groleau 2003-01-06 19:23 ` Randy Brukardt 2003-01-07 2:59 ` Ted Dennison 2003-01-07 18:49 ` Randy Brukardt 2003-01-07 20:38 ` tmoran 2003-01-07 21:01 ` Wes Groleau 2003-01-07 1:19 ` Ted Dennison 2003-01-07 13:46 ` Wes Groleau 2003-01-09 16:24 ` Anybody in US using ADA ? One silly idea faust 2003-01-09 15:04 ` Ted Dennison 2003-01-10 14:23 ` faust 2003-01-11 5:44 ` Ted Dennison 2003-01-11 5:48 ` Ted Dennison 2003-01-06 4:39 ` Kevin Cline 2003-01-06 9:49 ` Ted Dennison [not found] ` <ujn2va.go3.ln@beastie.ix.netcom.com> 2003-01-03 1:44 ` Bill Findlay 2003-01-09 2:21 ` faust 2003-01-03 0:07 ` Robert C. Leif 2003-01-03 2:51 ` Marin David Condic 2003-01-03 18:13 ` Warren W. Gay VE3WWG 2003-01-04 15:30 ` Marin David Condic 2003-01-07 12:58 ` Richard Riehle 2003-01-08 19:46 ` Remarketing the language ( was Re: ....ADA ? One silly idea..) faust 2003-01-08 18:24 ` Warren W. Gay VE3WWG 2003-01-08 18:42 ` Edi Weitz 2003-01-09 16:30 ` faust 2003-01-10 7:00 ` Fraser Wilson 2003-01-10 8:06 ` Geoffrey Summerhayes 2003-01-10 10:17 ` Fraser Wilson 2003-01-02 18:29 ` Anybody in US using ADA ? Mike Silva 2003-01-03 0:41 ` David Emery 2003-01-03 6:44 ` Mike Silva 2003-01-03 10:16 ` John R. Strohm 2003-01-03 20:02 ` Mike Silva 2003-01-03 22:16 ` John R. Strohm 2003-01-04 8:31 ` Mike Silva 2003-01-06 22:24 ` Richard Riehle 2003-01-06 23:45 ` Jerry van Dijk 2003-01-07 18:35 ` Mike Silva 2003-01-07 20:34 ` Jerry Petrey 2003-01-07 21:07 ` Dead Fred the Head Red 2003-01-09 2:14 ` faust 2003-01-09 2:15 ` C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in US using ADA ?) faust 2003-01-08 13:21 ` Ted Dennison 2003-01-08 13:51 ` C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in USusing " Marin David Condic 2003-01-08 21:42 ` Ted Dennison 2003-01-09 16:27 ` faust 2003-01-08 21:44 ` C++ , ADA and the Joint Strike Fighter Vinzent Hoefler 2003-01-10 7:58 ` faust 2003-01-09 14:34 ` Vinzent Hoefler 2003-01-09 14:57 ` C++ , ADA and the Joint Strike Fighter (Off-topic) Larry Kilgallen 2003-01-09 17:10 ` C++ , ADA and the Joint Strike Fighter Pascal Obry 2003-01-10 14:18 ` faust 2003-01-09 19:29 ` C++ , ADA and the Joint Strike Fighter (Off-topic) Larry Kilgallen 2003-01-11 19:31 ` chris.danx 2003-01-12 22:22 ` u.r. faust 2003-01-12 9:07 ` tmoran 2003-01-13 4:20 ` u.r. faust 2003-01-13 13:25 ` Marin David Condic 2003-01-11 22:10 ` Larry Kilgallen [not found] ` <H01kDjtzy1$7@eisneOrganization: LJK Software <oK$dhQDJBSHL@eisner.encompasserve.org> 2003-01-12 22:23 ` u.r. faust 2003-01-09 12:34 ` C++ , ADA and the Joint Strike Fighter ( was Re: Anybody in USusing ADA ?) Marin David Condic 2002-12-31 22:38 ` Anybody in US using ADA ? Britt Snodgrass -- strict thread matches above, loose matches on Subject: below -- 2003-01-10 7:02 Remarketing the language ( was Re: ....ADA ? One silly idea..) Grein, Christoph 2003-01-10 15:58 ` Wes Groleau 2003-01-11 9:51 ` David Wright [not found] ` <qg5qva.3d3.ln@beastie.ix.netcom.com> 2003-01-13 2:06 ` u.r. faust 2003-01-12 10:50 ` David Wright [not found] ` <ucpsva.q73.ln@beastie.ix.netcom.com> 2003-01-14 2:57 ` Randy Brukardt 2003-01-17 2:20 ` Kaz Kylheku
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox