13 ms·
Is Ada a failed language?
- ohazi 9y agoNo.
- leeoniya 9y agohttps://en.m.wikipedia.org/wiki/Betteridge%27s_law_of_headlines https://en.m.wikipedia.org/wiki/Betteridge%27s_law_of_headli...
- chasil 9y agoHeavens, no! Ever heard of PL/SQL? Same thing. Oracle ripped the entire ADA language into their database. IBM DB2 clones most of it, courtesy of EnterpriseDB (Postgres bolt-on). People forget this enormous ADA audience.
- rbanffy 9y agoI'd say PL/SQL is a huge technical failure. Its continued use is also a huge failure, but that one is a management one. There is "successful" and there is "widely used because corporate mandated it". edit: OK, I was being cruel. People use it and it solves problems, but it's NOT a joy to use.
- snuxoll 9y agoNot much of an Oracle fan, but pl/pgsql is heavily derived from pl/sql and I use it on a near daily basis, can’t really complain about it for the purpose it fills. Yes, some legacy applications do some really nasty things in database procedures - but that doesn’t make the tools themselves bad.
- pjmlp 9y agoSorry, but it is a joy to use. I will always favour PL/SQL and the related tooling over SQL Server, DB 2, Informix, PostegreSQL languages.
- bluejekyll 9y agoWow, we have different definitions of Joy... I always treated PL/SQL as a necessary evil for performing specialized atomic operations, or merges, or other such things where SQL wasn't enough. I never enjoyed it, but I had to do it. I'm very tempted to see about taking something like this, https://github.com/thehydroimpulse/postgres-extension.rs https://github.com/thehydroimpulse/postgres-extension.rs, and using a language I actually like. That example needs to be updated, but seems pretty straight-forward. Edit: It would be amazing to have a rich library in Rust that could be using to write DB extensions as a replacement for pgsql, etc. There aren't that many things that need to be wrapped in the API from Postgres: https://www.postgresql.org/docs/10/static/xfunc-c.htm https://www.postgresql.org/docs/10/static/xfunc-c.htm
- pjmlp 9y agoI prefer to do database work on the database, instead of wasting network traffic with useless data. Never was into a project where the overhead of writing DB independent code was worthwhile. Usually moving to another DB meant rewriting big portions of the application anyway. Stored procedures are also a good escape hatch for some of the ORM limitations regarding SQL capabilities.
- bluejekyll 9y ago
- nabla9 9y agoThis completely wrong. PL/SQL used Ada as a model for the syntax. The semantics is completely different. Just like JavaScript is not C, PL/SQL is not Ada in any meaningful way.
- chasil 9y agoAda has functions, procedures, and packages. So does PL/SQL. C has unions. Show me the unions in JavaScript. Unions are there because C is a systems language. Show me a kernel written in JavaScript.
- tytytytytytytyt 9y ago> Ada has functions, procedures, and packages. So does PL/SQL. Lots of languages have those. That doesn't mean one copied the other. Are you serious?
- koolba 9y ago> Show me a kernel written in JavaScript. https://bellard.org/jslinux/ https://bellard.org/jslinux/
- detaro 9y agoThere is no kernel written in JS there. It boots normal kernels compiled for the listed CPU architectures.
- nickpsecurity 9y agoAda is a systems language, too. It was used in many OS's. Several are below: Army Secure OS (A1-class design) http://www.dtic.mil/dtic/tr/fulltext/u2/a340370.pdf http://www.dtic.mil/dtic/tr/fulltext/u2/a340370.pdf Fault-Tolerant, Parallel, Mainfraim-style OS/Platform https://en.m.wikipedia.org/wiki/BiiN https://en.m.wikipedia.org/wiki/BiiN MarteOS Real-Time OS https://marte.unican.es https://marte.unican.es Muen Separation Kernel https://muen.codelabs.ch https://muen.codelabs.ch
- gaius 9y ago
- PikelEmi 9y ago"Also, Ada’s strictness and correctness may be perceived as an anti-feature. When talking about general-purpose programming, businesses need fast development cycles and short delivery times. For the companies, to be successful, it’s far more important to be ahead of the competition even with an incomplete product than to let the customers wait and eventually abandon the project." That is not necessary true when it comes to aerospace and defense projects. In these cases it not important to be ahead and have short delivery times, so here Ada is still suitable. That the language is a general-purpose programming language does not mean that it is suitable for all application domains. You always need to use your common sense and experience too to choose the right tool for your task.
- rbanffy 9y agoThe same could be said about Haskell and I see it a lot in the startup space. Sometimes, being first to market is less of a problem than being the first to not to scramble your user's data.
- fuball63 9y agoAda's strong static typing may also produce less buggy code.
- rbanffy 9y agoI don't think it helps producing fewer bugs, but it makes writing some kinds of bug much harder.
- RhodesianHunter 9y agoThis two statements seem to contradict each other.
- rbanffy 9y agoYou'll write different bugs in different languages. You can't leak memory in Java (you can, but it's very hard), for instance, as you can in C. In Python, I often write code that barfs when it gets an object of a wrong type because parameter types are simply not enforced. The bugs I write in Lisp are entirely different from the ones I write in C. We'll always write bugs.
- ChrisSD 9y agoIs Ads the most hyped language? No. Is it a niche language? Yes. Does that mean it's a failure? No. I'm sorry but this blog post is a really superficial treatment of the subject. How languages rise, fall or command their own little space is a very interesting topic worthy of a better discussion.
- stickfigure 9y agoAgreed, there is so much more interesting material that could have been written. Ada once was a hyped language! In the late 80s when the DOD mandated it. It would be interesting to hear the history of Ada's rise and fall. My CSC sequence (started 1990) was taught in Ada. I was already writing a lot of Pascal so it was an easy switch. I remember feeling no great love for the compiler and tooling, however.
- stevenwoo 9y agoI worked at a NASA contractor around 1990. They had these dedicated Rational workstations with an IDE just for Ada, it made it kind of fun. My recollection is it was better than other IDEs at the time. https://en.wikipedia.org/wiki/Rational_R1000 https://en.wikipedia.org/wiki/Rational_R1000 Today it sounds silly because we can get a portable/configurable IDE for every language under the sun on any platform but back then this was amazing. We did have some process that I can't recall right now to port this to DEC/IBM mainframes/minicomputers.
- deaddodo 9y agoIt may have been "hyped" by some, but it never had any true institutional or corporate penetration. It was always the "military language" with GNAT even being funded by the USAF directly. And in that field, it ruled the roost; and still has strong penetration as a legacy platform.
- catnaroek 9y agoThe problem with Ada isn't that it's niche. The problem is that it has a gazillion features whose purpose is (ostensibly) to make programming errors easy to prevent, identify and correct, but fail miserably at it. There is more to programming than safety, but if safety is going to be one of your programming language's selling points, then the least you can do is get it right. The process for getting it right consists of the following steps: (0) Identify a concrete class X of programming errors you want to eradicate. (1) Postulate a mathematical theory of what it means for a program not to have errors of class X. (2) Develop proof techniques that are powerful enough to establish that “interesting” programs do not have errors of class X. (3) Design algorithms that use these proof techniques to prove, or at least validate a purported proof, that a program does not have errors of class X. Your algorithm must be able to analyze program fragments (modules, classes, whatever) independently, and combine information obtained from several program fragments without reanalyzing them from scratch.
- rbanffy 9y agoIs COBOL a failure? Is FORTRAN a failure? How can anyone say a language that's used for so long can be a failure? Is it the latest and coolest language? No. It can't be - it was already solving real problems since well before the people who wrote the latest and greatest languages were born.
- ardit33 9y agoAda was my first true language that I learned in college. (Pascal being the first language that I learned in high-school, but it is more like a teaching language). Ada and pascal are somewhat related (very similar). I have special fondness of it as well, but my second year my college switched to Java, as they saw it gave more job opportunities to students after graduation. ADA was only used from defense contractors, DOD and perhaps Nasa, and that's why it ultimately failed. It "strictness" is a good thing to have when writing the code for a Tomahawk misle, but not so much when trying to do rapid development. Also, traditional Ada is more of a procedural/imperative language, and not OOP, and the world had moved into OOP by the late 90s.
- jcadam 9y agoAda has had basic OOP support since Ada95. It just doesn't mandate OOD as the "one true way" to build software the way Java does. I wound up unemployed in 2008 and took a job maintaining an old system written in Ada95. My mother (who is still a working software engineer) was kind enough to give me all of her old Ada books. In the 80s, during the big initial push for Ada by the DoD, defense contractors actually sent a lot of their programmers to training courses (my mother was sent to training courses on both C and Ada in the early years of her career). Today, they would just layoff all of their "obsolete" engineers and hire new ones.
- agumonkey 9y agoSurprisingly it took ADA classes for me to grasp Java OO a bit better than just soul tears poking. At least encapsulation and interfaces.
- CodeArtisan 9y agoYou shall thank Ada every time your plane has landed successfully. http://www2.seas.gwu.edu/~mfeldman/ada-project-summary.html http://www2.seas.gwu.edu/~mfeldman/ada-project-summary.html
- turbinerneiter 9y agoWhy should GPL be problem for Ada when it's not for GCC?
- masklinn 9y agoGCC has a runtime library exception, GNAT GPL does not. Programs compiled with GNAT GPL can only be GPL (GNAT GPL is specifically engineered to that end), that is not the case for GCC.
- duskwuff 9y agoAre you sure about that? https://en.wikipedia.org/wiki/GNAT_Modified_General_Public_License https://en.wikipedia.org/wiki/GNAT_Modified_General_Public_L...
- Avshalom 9y agoIt's a little awkward. Adacore drops a full GPL edition every year which turns gmgpl the next year while simultaneously there's a group that bug fixes the existing gmgpl libraries and integrates the new changes.
- duskwuff 9y agoOh, weird... that sounds like a complete clusterfuck. :/ Why do developers do this?! These are the sorts of policies that scare companies away from open source software.
- deleted 9y ago[deleted]
- pjmlp 9y ago> For the companies, to be successful, it’s far more important to be ahead of the competition even with an incomplete product than to let the customers wait and eventually abandon the project. Still looking forward to the day refunds and other kinds of legal actions actually start to change this mentality in software companies. I don't buy incomplete pair of shoes, half-baked bread, car without seats, ...
- gumby 9y ago> Most companies avoid GPL like the plague. Is this actually true any more (if it ever was)? Yes, I do know that Google is picky about it, but is this really still widespread? > Both the compiler and the majority of libraries are infected by it. Why the flame-worthy language "infected"? Royalty-bearing libraries are just as "infected", as corporate IP policy needs to track shipments in order to make payments. (I do agree it is unfortunate that GNU Ada's library is GPLed.)
- nickpsecurity 9y agoIt's worth noting the linking exception for the GNAT runtime: https://en.m.wikipedia.org/wiki/GPL_linking_exception https://en.m.wikipedia.org/wiki/GPL_linking_exception
- agumonkey 9y agoTiny trivia, I found a few blogs about ADA generics used for embedded network abstractions. I find it super sexy to have clean abstraction and low level like that (probably doable in cpp too but ... cpp)
- castle-bravo 9y agoCare to post links? I'm planning to use Ada in my next embedded project.
- agumonkey 9y agoI can't find the links right now, maybe later.
- feelin_googley 9y agoHeres a lecture at MIT about Ada from a favorite programmer of mine. http://www.youtube.com/watch?v=0yXwnk8Cr0c http://www.youtube.com/watch?v=0yXwnk8Cr0c I do not understand the Medium authors definition of "success". I get similarly confused when web commentators use the term "won" (e.g., language X "won") when discussing programming languages. Won what? IMO, the presenter (RIP) was quite successful. Im sure Ada "won" many contracts.
- derefr 9y agoWon = monopsonized the market? I.e. so many employers looking for it that it influences education and training for people who have no interest in that particular language, but just want to learn “a” language. See: Java wining enterprise programming; Python winning DevOps scripting; FORTRAN wining numerical simulation way back. Also see: PHP winning SMB web consulting in the 90s (resulting in e.g. the Wordpress plugin ecosystem); RoR winning SMB web consulting in the 00s (resulting in the the current “horizontally scale by running more containers with a load-balancer in front” approach to web-app deployment, due mostly to Ruby’s horrible concurrency story at the time); Node.js winning SMB web consulting in the [first half of the] 10s (resulting in the rise of websocket-driven SPAs and a million Node build tools.)
- feelin_googley 9y agoAccording to the lecture, for Ada I guess it would be winning avionics. The presentation has some interesting artifacts, such as one student asking what "portable" means and another asking what is "object-oriented" programming. Maybe "hyped" success is sometimes confused with "real" success. The later type may not always be as visible. He addresses this in the lecture. He suggests people often make statements about programming language usage in industry without actual knowledge of what some organizations are really using (beyond what is announced publicly, or hyped).
- khazhou 9y agoThe language is very anti-ergonomic in terms of shift key. This plus emacs can destroy your tendons: with Text_IO; use Text_IO; procedure Hello is begin Put_Line("Hello, World!"); end Hello; I subscribe firmly to the school of thought that as programmers, we are not optimizing for keystrokes... but man oh man having to type capital-Put underscore capital-Line instead of just print or printf, 50 times a day. Yikes.
- Marazan 9y agoAda is case insensitive. put_line would have worked just as well
- Avshalom 9y agoThere is also just 'put' it just doesn't tack a \n onto the end so helloworld in a terminal is ugly
- pjmlp 9y agoAda is not for Emacs programming. Ada always used IDEs, which already supported automatic formatting back in the early 90's. Rational started their business selling Ada Machines, just like the Lisp ones, but using Ada instead.
- kqr 9y agoMy emacs automatically formats and capitalises the right words.
- deleted 9y ago[deleted]
- dboreham 9y agoAda didn't take off (despite some decent level of enthusiasm in the industry) because a compiler cost $$$$. We're all using languages today that had a zero or near zero cost to use in the era that mattered (when 32-bit micros were being introduced). Or newer also free to use languages, obviously.
- IshKebab 9y agoWindows didn't have a free C++ compiler for many years, but in general I think you're right.
- user5994461 9y agoWindows had a C++ compiler and IDE for more than two decades. https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B There was a time when it was not free but it was a very very long time ago. At this stage in history, the internet didn't exist and it was commonplace to pay for the shipping of a floppy or a CD. I don't know the price tag but it may or may not be considered free by today's standard.
- int_19h 9y agoDOS and Windows saw very affordably priced C++ (and Pascal) tooling from Borland, though. Which is probably part of the reason why Delphi was so successful later on Windows specifically.
- pjmlp 9y agoCompiler prices for C, C++, Basic, Pascal, Clipper were always relatively cheap. Lets pick the BYTE magazine in 1994. - IBM C Set++ for OS/2, $249 - Powerbuilder, $249 - Watchom C/C++, $450 This on top of a PC that would cost around $1000. Mac Quadras started at $1199. Ada required UNIX or VAX stations. Cheapest SparcStation on the same magazine $3995, plus OS SDK and the Ada compiler as additional expense. So lots of zeros versus the alternatives.
- PhantomGremlin 9y ago
- rs86 9y agoThis is one of the worst blog posts ever. Click bait title with absolutely shallow discussion. Asking if Ada is a failure for lack of widespread adoption is like asking if JavaScript is a failure for lack of use in satellites.
- sudoscript 9y ago> The very common complaint on Ada user groups and forums is the licensing model. Most companies avoid GPL like the plague. What's wrong with the GPL?
- castle-bravo 9y agoGPL makes it harder to charge people for spyware. It also makes it possible (at least theoretically) for users to fix bugs themselves, which breaks the bug-fix middleman monopoly that aspiring spyware vendors seek.
- Gibbon1 9y agoYou go way back into the 1980's every compiler vendor was trying to drink your milkshake[1] via licensing fees for compilers and libraries. Two companies that didn't do that were Microsoft, Borland. AT&T was forbidden from selling products outside of Telcom. Which is why Linux and C/C++ succeeded. C succeeded because a competent grad student could port the language to a new computer in a two months. So you could use Microsofts Basic and C/C++ compilers, Borlands Pascal and C/C++ compilers, or gcc/etc C compilers without the them sharing ownership of your compiled binaries. [1] Per unit licensing fees. Meaning instead of just charging you a seat license, they wanted a cut of your profit as well. You pay use $20 for every license you sell. I'm not kidding about $20 either.
- hullsean 9y agoany language older than 5yrs is a failed language. perl, ruby are recent memories. i’m starting to realize the only industry more fashion conscious than software is... well fashion! Ada?! ahahahaah
- marssaxman 9y agoAda was a curious but obviously unsuccessful language back when I first heard about it, and that was at least thirty years ago. Since then, the software industry has exploded, computers have eaten the world, and the internet has made itself more essential than the telephone network ever was; but Ada is nowhere to be found. Whatever its virtues may have been, it has had no significant influence on the culture or practice of computing as we know it today. Yes, of course, there must be some niche somewhere which still contains people who care about Ada, just as there are little pocket communities who still care about MUMPS, APL, and other bits of exotica, or we wouldn't have articles like this one trickling out every few years - but out here where the action is, nobody knows anything about Ada and nobody really cares.