4 ms·
Ada is "mainstream"? C++ "failed" in the 1990s? Managed languages lead to "applications that are difficult to maintain over time"? I found it impossible to rea
by chrisaycock 14y ago
Ada is "mainstream"? C++ "failed" in the 1990s? Managed languages lead to "applications that are difficult to maintain over time"?
I found it impossible to read the rest of this article given the nonsense in the intro. So I skipped to the conclusion and saw this gem:
The most successful software projects are those that
have been able to select the languages that were the
most appropriate to their need.
I thought the most successful software projects were those that met the needs of their users.
- aidenn0 14y agoDon't forget "Requiring automatic dynamic memory management ("garbage collection") is several orders of magnitude less efficient than letting developers use stack and manual memory management" This is kind of like saying "Writing in FORTRAN is several orders of magnitude less efficient than letting developers use assembly" yes, a smart enough engineer can write assembly that is, at worst, no slower than FORTRAN (proof by fact that FORTRAN compiles to assembly). But this doesn't mean that on real-world projects FORTRAN won't win.
- jonathansizz 14y agoThe article was claiming that C++ failed in the 90s with the large migration from C++ to Java; it 'failed' at being the general-purpose industry language of choice. This is a reasonable statement. And Java is often 1-2 orders of magnitude less efficient at memory usage than C++, so while 'several' is perhaps hyperbolic the general point still stands (execution speed wasn't being discussed).
- aidenn0 14y agoJava is not the only runtime with automatic dynamic memory management. I could run comparisons against "tcc" and conclude that java is an order of magnitude faster than C.
- spitfire 14y agoAda actually has the sane memory management by default compared to both C++ and Java. Pointers are, by default verboten. Pointer arithmetic will generate a compiler warning. People should genuinely look into this stuff more rather than just dismissing it offhand. Ada got almost everything right for a procedural-OOP language. It was just too far ahead of its time.
- verroq 14y agoThose aren't mutually exclusive.
- roedog 14y agoContext is important here. Note that the article is on a hardware design website. The software development they are talking about is embedded software. In the goverment contracting world in the 90s ADA was very common. The DoD mandated ADA in some development contracts. So, I can see how someone from this world might make the mistake of calling ADA mainstream. In this domain a clear view of the hardware is important for maintenance. The hardware/software interface is where a lot of troubles may be found. Finding a problem with this interface through a VM takes longer to troubleshoot. Back to language selection in this industrial segment. There were contract requirements imposing a particular language. Also upper managment might impose a language choice. Allowing the actual software engineers to select the programming language is a recent and not yet widespread change. How I read the sentence about selecting a language is to say the engineers doing the works should do so since they know best what the needs are.
- pslam 14y agoYes, you were right to have stopped reading because it continues to spout nonsense. It's full of memes, misconceptions and plain false information. It's a shame, because there really is something to the C++ renaissance (I wouldn't know about Ada), and the shortcomings of Java and other managed languages in a few fields. It would have made an interesting article. As a very long term C++ user, I find it much easier these days to write safe, efficient and maintainable code than it used to be. Much of this is due to the wealth of documented good practice and my own personal experience, but also due to language improvements, especially in C++11. C++11 is how all language updates should be: reduced verbosity, increased safety, common practice made standard, and even improved efficiency.
- jlarocco 14y agoI'm not a big fan of TIOBE [1], but Ada is in the top 20 and ranks above Lua, Go, Haskell, Scala, Clojure, Scheme, Ocaml, Erlang, and a bunch of others that get more mention here. If an article called Haskell or Go "mainstream" would you have called them out on it? Ada is still popular in a lot of fields. I don't get the hate on Ada. It has built in tasks/threading, strong typing, low level access when you need it, generics, native compilation, a decent toolchain, an open standard, ... [1] http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://www.tiobe.com/index.php/content/paperinfo/tpci/index....
- aswanson 14y agoI think the hate is rooted in it's association withthe DOD in the United States. The military ised to demand it's usage on projects.
- roedog 14y agoI've heard complaints about how tough it was to get ADA code to compile. I'm not sure if it was the language itself, or unfriendly tools and compiler warnings...
- lbrandy 14y agoThat's a feature. Ada is a fairly strict language that allows for compilers to do a tremendous amount of static checks.
- koenigdavidmj 14y agoIt has been said that this is the character of programming in Ada: if you can get the damn thing to compile, it works perfectly.
- Nelson69 14y agoI think it was sort of a perfect storm of a couple things. General dislike of mandates, especially from the DoD. It's Pascal like syntax. In the 80's there was a very real Pascal vs. C war, literally based upon "BEGIN" and "END" being too verbose compared to "{" and "}" argued by guys with 300bps modems and crap like that. Pascal got an unfair bad rap. Ada looks an awful lot like it though. Then C, especially old school C can almost be converted into assembly by YACC without a real compiler. While it's very hard to make a good or great C compiler, it's not hard to just make a C compiler. Ada came with a much larger library and then, if I'm not mistaken, there was a certification process to make sure your Ada was really "Ada" and that was fairly pricey. It's worth a look if you're doing some kinds of green field development, the GNU Ada compiler is pretty good. I think there was a plan for like an eclipse plugin too.
- bitcracker 14y ago> Ada is "mainstream"? C++ "failed" in the 1990s? Do you realize that this report is written in "electronic design", or an embedded systems journal? It's not talking about the PC desktop here. I don't know the exact numbers but Ada still plays a big role in security critical systems (airplanes etc.). > Managed languages lead to "applications that are difficult to maintain over time"? I think this is true regarding to embedded systems because they evolve very fast. Microsoft would have to take much effort to be on par, for many different kinds of embedded systems. The second point is that Microsoft's support for their operating systems is not unlimited. So if you have a long lasting embedded system technology then you simply cannot afford to use .NET.
- gouranga 14y agoADA did. It didn't as of new projects around 2002 - people had moved to cheaper bundled platforms rather than the traditional compiler vendors I.e. MIPS/PPC FPGA core plus vendor C compiler. Older kit still uses it AFAIK but you won't see much if any recent software shipping in it. I quit embedded in about 2005. I dealt with avionics and guidance systems. They don't evolve fast. When I quit, people were still using RCA1802 cores and ASM for some tasks. .net on windows CE is still out there in force and is well supported. There are literally millions of devices out there with 20 year support contracts on them.
- stonemetal 14y agoDo you realize that this report is written in "electronic design", or an embedded systems journal? It's not talking about the PC desktop here. I don't know the exact numbers but Ada still plays a big role in security critical systems (airplanes etc.). Is there a renascence of C++ and ada in those domains? That is to say did they ever leave. I don't remember hearing about a big push to have embedded software for airplane controls written in C#.