- 1
- 2
- 3
- 4
- < previous
- next >
Are you aware of any of the Defence projects for which the language has been used?
Ada was mandated for use by almost all significant Defense department software projects for approximately 10 years, from 1987 to 1997, and there were a large number of such projects. In the early years there were real challenges because of the immaturity of the Ada compilers. In the later years, in part because of the early difficulties, there were a number of projects that applied and received "waivers" to allow them to use other languages. Nevertheless, in the "middle years" of 1989 to 1995 or so, there was a boom in the use of Ada, and much of it was quite successful.
As far as specific projects, the Apache helicopter and the Lockheed C-130J (Hercules II Airlifter) are two well-known examples. The Lockheed C-130J is particularly interesting because it was developed using a formal "correctness by construction" process using the SPARK Ada-based toolset from Praxis High Integrity Systems. The experience with that process was that, compared to industry norms for developing safety-critical avionics software, the C-130J development had a 10 times lower error rate, four times greater productivity, half as expensive a development process, and four times productivity increase in a subsequent project thanks to substantial reuse. NASA has also used Ada extensively for satellite software, and documented significantly higher reuse than their prior non-Ada systems.
In general, in study after study, Ada emerged as the most cost effective way to achieve the desired level of quality, often having an order-of-magnitude lower error rates than comparable non-Ada systems after the same amount of testing.
Can you elaborate more on the development of the Static Interface Analysis Tool (SIAT) for Ada on behalf of the NASA Space Stations IV&V?
The SIAT project was an early attempt to create a browser-based tool for navigating through a complex software system. The particular use in this case was for analyzing the software designed for the large network of computers aboard the International Space Station. It turns out that these systems have a large number of data interfaces, where one computer would monitor one part of the Space Station and report on its state to other computers, by what amounted to a large table of global variables. The SIAT tool was designed to help ensure that the interfaces were consistent, and that data flowed between the computers and these global variable tables in an appropriate way.
Are you aware of why the Green proposal was chosen over the Red, Blue and Yellow proposals at the start of Ada's development?
The Green proposal reached a level of stability and completeness earlier than the other designs, and Jean Ichbiah did an excellent job of presenting its features in a way that the reviewers could understand and appreciate. Although there were flashes of brilliance in the other designs, none of them achieved the polish and maturity of the Green design.
Did you ever work closely with Jean Ichbiah? If so, what was the working relationship like and what did you do together?
I worked on and off with Jean during the final days of the Ada 83 design, and during some of the Ada "maintenance" activities prior to the start of the Ada 9X design process.
Jean was busy running his own company at the start of the Ada 9X process, but did end up joining the process as a reviewer for a period during 1992 and 1993.
As it turned out, Jean and I had quite different views on how to design the object-oriented features of the updated language, and he ultimately left the project when it was decided to follow the design team's recommended approach.
- 1
- 2
- 3
- 4
- < previous
- next >
Latest on Development
- Local Sybase offices wait for global green light
- ActiveState prepares Python for databases
- Google technologist derides Oracle's lack of developer focus
- Ruby on Rails 3.0 now available
- Google bows out of JavaOne due to lawsuit
- Microsoft won't stop .Net on Android
- Red Hat offers its cloud APIs as industry standard
- Gosling: Oracle could still live up to 2007 Java pledge
- Ghost of Sun's Schwartz chides Oracle's Google lawsuit
- Google adds multitenancy to App Engine SDK
Development Essentials
- Security experts name top 25 programming screw-ups
- Top 10 wicked cool algorithms
- Facebook app verification fee draws criticism
- Microsoft's openness stressed
- Yahoo's developer platform to launch this week
- Microsoft starts new developer portal
- Google API allows creating apps that can track laptops
- PHP, JavaScript, Ruby, Perl, Python, and Tcl Today: The State of the Scripting Universe
- Analyst: In-house app development fraught with waste
- Is unit testing doomed?
- WebSphere Solution Design (S20) - CBD, contract role3/09/2010
Other
I.T. & T
WebSphere Solution Design (S20) - CBD, contract role - Solution Architect - Web Application Architecture Project!3/09/2010
Other
I.T. & T
Solution Architect to provide strategic and operational consulting for the end-to-end Web Application System project! Experienced with J2EE or .NET?! - Principal Consultant - ITIL2/09/2010
Other
I.T. & T
Excellent opportunity for an experienced ITIL Principal Consultant to join an innovative leading IT Service management consultancy. Attractive packag - Mainframe Developer - COBOL - 12 Month Contract2/09/2010
Other
I.T. & T
Mainframe Developer - COBOL - 12 Month Contract - Business Systems Analyst2/09/2010
Other
I.T. & T
Perm CBD based role for an experienced Business Systems Analyst - Senior SAP Project Manager2/09/2010
Other
I.T. & T
Senior SAP Project Manager - SAP FICO Consultant - 6 week contract - West Sydney2/09/2010
Other
I.T. & T
SAP FICO Consultant - 6 week contract - West Sydney
Whitepapers
TechWorld Blogs
Recent blog posts
- Windows Phone 7: how big can it get?
- NBN gets a turn at political football
- Internet filter gets caught up in politics
- TechWorld Forums goes live
- Selective sourcing the hybrid of cloud services
- Social networks catch more business attention
- RIP Kin
- Telstra’s copper and NBN’s fibre: will the two ends meet?
- RIP Windows 2000, XP lives on
- Does the world need another iPhone? Why not
Recent comments
- java development
11 hours 55 min ago - When mine called they
12 hours 38 min ago - 3D TV cannot fall - no way! Why?
15 hours 52 min ago - Thanks for taking the time to
1 day 4 hours ago - Windows scam
1 day 11 hours ago - My only anti fraud method is
2 days 6 hours ago - Private Cloud Taxonomies
2 days 6 hours ago - ...however...
2 days 15 hours ago - This Guy
2 days 15 hours ago - Glasses Free technology
2 days 16 hours ago - FOSS community
2 days 23 hours ago - i have dv6000 with nvidia
3 days 57 min ago - i have dv6000 and suddenly
3 days 1 hour ago - This is an awesome comment.
3 days 4 hours ago - Real Estate
3 days 6 hours ago - Scam - eventvwr scammers
3 days 11 hours ago - Well I never...
5 days 1 hour ago - Too bad Microsoft was mentioned
5 days 3 hours ago - Phone card is a better option to make calls at a lower rate
5 days 8 hours ago - In other words: "Developers,
5 days 13 hours ago










Comments
Closing comments
Re: Do you have any advice for up-and-coming programmers?
I emphatically agree that programmers should have familiarity with multiple languages. I think to some extent this is a failure of the various languages. However, to some extent, things such as assembly code, compiled and interpreted languages differ (to some extent) of necessity. There are many ways to combine things and each language presents a living example of differing philosophies as to how to combine things, which things belong at the same level of abstraction, etc.
I know a lot of programming languages and there is not, to my knowledge any one language that will allow a programmer to learn all of that which he should know.
I find the fact that Java, C, C++, PHP and Basic are not mentioned a little strange. According to the TIOBE Programming Community index, these account for about two thirds of languages by popularity. Hopefully it is just assumed that their mainstream nature makes them already known by everyone.
Re: Don't believe anyone who says that we have reached the end of the evolution of programming languages.
I also strongly agree with this. However, it appears as if things have stagnated a little. New languages appear even more often now than ever, it seems. However, their 'newness' is not that 'new'. I feel we have wandered from the path of pursuing this properly. The hardware, the operating system kernel, operating system services (especially user I/O) and applications are all related to the language used with them. Once upon a time, C was invented as a portable language and used to code the operating system upon which it ran. The common 'hello world' application *assumes* user I/O, but an ancient one. Languages such as Java have left their hardware behind.
What I would like to see is a proper general purpose language that is very small, allows complete control down to emitting binary data or assembly code and whose standard libraries:
1) Do not confuse language constructs with library constructs
2) Actually deal with realistic expectations:
a) GUI interfaces
b) Network I/O
c) Resources such as threads and memory
3) Allows mandatory declaration and manual management, as well as automatic declaration and management. Low-level programming against silicon should not be confounded by nonsense such as garbage collection and variable manipulation in shell scripts should not be confounded by mandatory declarations and manual memory management.
I don't think there is any fundamental disjoint between using a language for fine-grained control of hardware and the same language for very high-level constructs or broad generic programming. What I see are what look like religious arguments between adherents of one type of programming over another. I see no reason why a language compiler should disallow very detailed specification of a programmer's intentions so that it can resolve that which is resolvable at compile time right then and there and do whatever optimizations that could entail. I also see no reason why a compiler should disallow a programmer leaving it up to the compiler as to whether or not it should compile and optimize at build time, at load time, or at run time. None are mutually exclusive. There is no fundamental reason why the same code can not be interpreted at run time if so desired or compiled at build time.
Demanding run-time resolution of things like typing and garbage collection, just increases the world's carbon foot-print for no reason. Demanding that everything resolve at compile/build (or even demanding an advance compile/build) just makes programming tedious for no reason.
The design of a small, elegant, general purpose language that does the above and the tools to design and build programs written in that language is evidently a difficult job. However, that job, by being at the base of a very large pyramid of derived work can be extraordinarily difficult and still pay off.
Though I lack the wit (thus far) to design such a language and build the tool-chains necessary to implement it, I have a feeling that in the 21st century it is not as difficult a task as it once seemed.
With respect to using your general purpose language for low-level programming, I would suggest that a powerful macro system could be used to define the emission of binary data using a custom assembly language defined in the macro system. That would allow rather rapid bootstrapping to new hardware and allow even application programmers coming late to the game to program directly against hardware if and when needed.
We really need a revolution where chip designers, motherboard manufacturers, component designers, operating systems developers, network designers and application developers speak the same language. Libraries and paradigms might differ and most people would never be able to cover the gamut of the different types of development. However, I seen no reason why the basic underlying language could not be rationalized. Arguably, at some level, it is rationalized at the level of machine code. I think we can do better than that.
Too many choices
Althoug I appreciate the information presented above there is one area where I differ.
That's in the area of learning a bunch of languages.
It's what I call the "worlds largest mall syndrome". One wanders the mall indefinitely without making concrete decisions about what you want. While choices are good, too many choices are bad.
There is only so much time to experiment and then one has to settle in and get things done. Too much cross-language development is itself part of the software problem historically. If the same language can be used for embedded real-time and large client-gui projects successfully and has the power to exploit AWK and other scripting facilities is yet another language really of any benefit. FOCUS is something I advocate.
An element of trust must accompany any project and I trust Ada because of its open-ness. Consistancy, massive regressions, tweaking over decades time and used in a massively diverse number of ways. That's what builds confidence not yet another way of doing the same thing, which is what the NEW language basically does. We keep re-inventing 99.9% of the wheel in yet another new lanague.
A few solid development languages, testing and scrutinized over decades of smart people using them. Not several more languages to choose from.
Remember the problem with Ada? Too new and not a solid tested (over time) background? Why keep making that mistake or the "mall syndrome".
Post new comment