Porting a formally proven Tetris to a Pebble smartwatch in Ada
blog.adacore.com
blog.adacore.com
I never heard of AdaCore being French, though. Only two of the Executive Team (below) were educated in France with most of them (and Ada itself) coming out of U.S. (esp NY). Headquarters is split between the two at least in Contact page. I could be way off so anyone feel free on input to this.
I wonder how much 'fresh' Ada is done today (classes, new projects, etc)
I'm not arguing universities should be impractical. I just encourage them to teach both what's beneficial to the mind and quality of our industry plus the practical tech. Increases odds good things will spill-over from one to the other.
It's also default interpreted, so the write code->run code cycle is instantaneous (although the ones MIT used had compilers, and nowadays machines are so fast LISPs tend to immediately compile everything typed into the REPL). Typing is of course important, the argument here is that for initial education, dynamic typing when these small programs are run is better than adding the complexity of declaring types, especially since so few are needed in an introduction course.
A CS (and EE, i.e. 6-3) or EECS (6-2, what most students major in today) major would learn CLU, later Java, when they took either the software engineering or compiler course. And of course there were many opportunities to learn languages and get paid for programming, including the co-op program, which is now mostly formalized into a MEng program that most students do.
The dot.com crash cratered EECS enrollment, which had been steady at 40% of the undergraduate for decades, it dropped by more than half. People panicked, Lisp haters made sure all of it was expunged from required undergraduate courses, and MIT just plain changed what it meant to be a MIT EECS graduate. With a lot of surface politeness, here's one for the record explanation: http://www.wisdomandwonder.com/link/2110/why-mit-switched-fr...
It's now much more about making gadgets than, oh, trustworthy libraries. Pity almost no one, proprietary or FOSS, provides any of the latter. A portion of 6.001 is taught by the 6.001-zombies in January, with credit available for the first N who sign up, as 6.037, and if you don't know Python when you arrive, there's courses which will teach you it before you take the new 6.01 that pretends to start replacing 6.001.
Or, if you're really serious about pure CS, you're likely better off going to some place like CMU if you can get into the program. (I got the impression some years ago when CS became popular again that Stanford is more like CMU and U.C. Berkeley more like MIT, but I don't know if that's true or still true. If you're serious about CS and can't get into one of those 4 best in the world with no one close behind, you should think very carefully about your path forward.)
Far as trustworthy, at least we're seeing a minor resurgence of that. I write about many of those techs. I think Ocaml community is one of best examples. There's an inherently robust language, a good compiler, integration with formal methods via Coq extraction, smart academics invested in it, uptake in industry (i.e. Jane St), and mainstream uptake to a degree. Leroy et al have something really good going on there.
Need more academic stuff like that.
It plus Java, as MIT and I'm sure many other schools do (those that aren't just pure "JavaSchools") are going to leave students who don't make extra effort ... deficient when it comes to FP, the virtues of which I don't need to extol to you, although I'll add that it seems to be one of the good answers to making the most of our current "Moore's Law maybe", "Dennard scaling no" multi-core situation.
However, there's lots of ways to scale. FP is better at it but not necessary. It's easier for a decent imperative programmer to learn to scalable concurrency than to learn FP. So, path of least resistance & backward compatible means that non-FP approaches should get most traction. That's what we see in practice.
Good news is that your point got many interested in making an attempt and led to more FP developers + languages. I even saw a case study of a company in finance using Haskell for production due to concise, correct, and concurrent properties. Plenty potential here.
http://lambda-the-ultimate.org/node/5232
High-integrity languages are certainly getting more efficient. Just makes it more fun for me when I'm told how they're "too inefficient" for systems work by C fans. ;)