The power structures will never allow it. The conditions for a society of leisure have theoretically existed for some time now. We will simply end up with a a planetary ruling class that lives opulently while the other 99% live in abject poverty.
- FLAVOR: Ubuntu Desktop
- HEADLINE: Working HD Active Protection System for newer Thinkpads
- DESCRIPTION: Around the time of the release of the Thinkpad W530, Lenovo had changed the way in which the HDAPS system was done on Thinkpads. In the past, the tp-smapi* packages and the hdapsd daemon made using Thinkpads with rotating platters excellent, but the newer models now receive errors, and there's some notion that maybe the kernel has some kind of support for APS systems now. It's quite frustrating to know I've sacrificed protection by having a newer model while we wait for SSDs to become as trustworthy as our HDDs.
- No Affiliation
Ada had OO from Ada 95, though it doesn't look anything like the OO in most mainstream languages of today. In Ada 95, tagged types were introduced which were based on Ada's powerful record types and Ada 2005 introduced interfaces in a style similar to Java. Java and Ada have both taken plenty from each other over the years.
Edited because I was misleading about the introduction of OO.
There is at least one error in your "About Ada" section. The language was not designed by the Department of Defense, though it did meet specifications laid out by DoD called the Steelman. The language was designed by Jean Ichbiah and his team at CII Honeywell-Bull for a competition held by the High-Order Language Working Group, a group within the DoD. Four languages were submitted: Red, Yellow, Blue and Green, of which Green won and became Ada.
These articles give the worst impression of Ada possible. It's not the it's a specialized language for the military, but a language created to cleanup the DoD's software nightmare of the 70s, which is not unlike the software nightmares of today. It just happens that they had a pretty good grasp, even at that time, of what helps make good software easier to write, large software projects easier to manage and maintain, and strong ideas about how much a language should intervene if the programmer is doing things that look pretty dumb.
Ada has a neat OO system (not like the Javas or C++s), built-in state-of-the-art tasking (since 1983!), ranged types (one of the things I can hardly bare to live without), but also simple things like switches that aren't useless and just a general appreciation for what a discrete type can allow you to do. It has generics, too, though I know they've been proven irrelevant by newer languages. Have you seen that new Java 8 date time stuff? It's playing catch up to Ada. Ada's numerics are, hands down, the best facilities of any mainstream language.
Most importantly, it's probably already available for your Linux distribution because it's a part of the GNU Compiler Collection, which means that it's on the commercial OS you've settled for, as well.
An out of print book that I always recommend to those who are interested in playing with Ada is John English's "The Craft of Object-Oriented Programming". Enjoy.
I've been working on a development team for several years as a contract worker. I'm looking for a better arrangement while I continue my university education pursuing degrees in Computer Science and Mathematics.
Most of my experience in the upper levels of the web stack, but I'm very much interested to attack other areas of the stack, development process, documentation, etc., open source tools and open source platforms.
With my current hat, I've been working to connect backend to frontend and developing the frontend using typical, but not remarkable web tech. I'm especially interested in participating in high-quality development processes with great people.
I've developed APIs, managed conversion of a project from long-lived HTTP to websockets, improved backend database libraries, written great technical documentation, and more. My strongest backend language is Ada which is a reflection of the kind of qualities I value in software and processes.
My interests are across the board including (but not limited to) full-stack for web, Android and Windows mobile apps, data science and visualization.
I creating reliable software by using safe languages as much I can with high test coverage and excellent documentation. A current project is a standards-based, web front-end and associated back-end code for a call center contact management system written in Ada, adding new features and updating and rewriting existing code. Also, create a complete RESTful API and more modern, more extensible interface from the ground up.
I've developed solutions in many languages on both front- and back-ends using languages like Ada, Java, C and PHP on the back-ends and standards-based HTML, CSS and JavaScript on the front-end using well-known tools like jQuery, Prototype.js, SASS, LESS, Bootstrap and a host more along with custom written tools when necessary.
Recently I converted a display that updates in realtime from a Mozilla technology that never caught on, long-lived HTTP requests, to WebSockets working through bugs in the third party library's implementation and working with the vendor to get them fixed quickly.
I am an Ada developer, but I think it is objective to say that anyone who opposes a language because there fingers will have extra work probably doesn't belong in this field. If you consider the development process as a whole—research, planning, development, verification, etc.—those extra keystrokes add an exceptionally marginal amount of time to the development process, but reduce time so much more by making the code more intuitive to read. Don't let me lead you to believe that Ada's words make it intuitive; that would be disingenuous, but the syntax has been formed since its inception to be readable by developers and non-developers alike. This is an important distinction with something like Java, neverminding that you don't have to explicitly instantiate generics in Java. One of the key objectives of Ada is code that is especially intuitive to non-developers. There's a lot going on in the language. I hope this helps.
I use Ada everyday developing a predictive dialer and contact management system for call centers and it's web-based front-end. Interest has been steadily growing since I started with the language in 2006. One, possibly useless, indication is that the #ada channel on freenode used to hover in the single digits and now regularly hovers around 70. People regularly enter the channel asking how to get started.
AdaCore, who are the chief stewards of the official GCC Ada frontend, GNAT, have been publishing weekly "gems" that are extremely informative for years.
Ada is quite a long way from COBOL. Having just completed its latest revision about a year and a half ago, Ada is very much cutting edge. Ada 2012 is hardly a maintenance revision like you may find for COBOL; it adds tons of new stuff like contracts and substantial improvements to concurrency and SMP support. Ada 2012 was too long after it's previous revision, Ada 2005, which was standardized in 2007, and was quite more substantial than even 2012.
Language was also less ambiguous because they didn't leave out important punctuation or relative pronouns. I expected Tolkien to be a on Hitler's side because I interpreted the title as "Tolkien Snubs a German Publisher, Asking for Proof of His “Aryan Descent", but the author means "Tolkien Snubs a German Publisher Who Asked for Proof of His “Aryan Descent". Writing ain't what it used to be, even if only the clergy and royalty could do it!
I am a freelance Ada developer who is currently working on a contact management system for call centers for a small company. It's the usual array of DB access, webserver and AJAX/websockets. The product is exclusively in Ada though it relies on Freeswitch currently and has recently allowed some Python scripting for calls. The front-end is handled by Ada Web Server which is a rather good Ada HTTP library among other things. Mounds of concurrency and threading in the product back-end.
I haven't spent any time looking at Go because I'm pretty satisfied with Ada, but these libs do smell a bit like the Ada time handling functions which only get better through each ISO revision. Not handling dates like POSIX is nothing new, but it some of us just haven't been exposed to it. Of course, Ada would never guess at a format. Blasphemy. The more you know™
To the contrary, labels and breaks are the better design because they are far clearer than testing for termination in each outer loop. Get more than two loops deep and your problem suddenly becomes unmanageable without labels and breaks.
However, if there are other actions like logging or reporting that are occurring it may be better to not use them. Here's some Ada:
Outer: loop
Inner: loop
Handle_Head: declare
Head : Human_Head;
begin
Acquire_Head (Head); -- Entry will block until head is acquired.
exit Inner when Head = No_Head;
exit Outer when Head.Exploded;
Log ("Head unexploded.");
exception
when Brain_Error =>
Log ("Brain deficiency detected.");
end Handle_Head;
end loop Inner;
Log ("Head exploded.");
end loop Outer;