From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Paul Rubin Newsgroups: comp.lang.ada Subject: Re: How to get Ada to ?cross the chasm?? Date: Thu, 26 Apr 2018 17:53:46 -0700 Organization: A noiseless patient Spider Message-ID: <87po2la2qt.fsf@nightsong.com> References: <1c73f159-eae4-4ae7-a348-03964b007197@googlegroups.com> <87k1su7nag.fsf@nightsong.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: reader02.eternal-september.org; posting-host="bd96a4481ce077ceb756b3ee312ef617"; logging-data="20290"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18S72h4wxyVM9or19g4UtbY" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) Cancel-Lock: sha1:0FVKd/VdIEFhv+H0rpkFgQaL5jc= sha1:PwnHwYb9I57ERqdlTuLXMrJU9ME= Xref: reader02.eternal-september.org comp.lang.ada:51738 Date: 2018-04-26T17:53:46-07:00 List-Id: "Randy Brukardt" writes: > We offer embedded kits, but those are much higher priced because If they are in the $1K-$2K range, that's competitive with the C and Forth products that I mentioned. If they're much above that, people will be thinking about GNAT Pro. > moved to other development systems when the 186 hardware was retired. > Since then, I don't think anyone has even asked about it. (And of > course any such system has to run on a desktop.) If you've got a reasonable ARM target that supports some common dev boards, you're doing good, and should advertise that on your site. > These days, I'd expect Ada's biggest contribution (outside of > embedded, an area that is well-covered by others) to be on (possibly > distributed) server-side programs in client-server environments. I just don't see this. I hear about Gnoga but it seems like a case of using Ada for the sake of using Ada. If someone wants an old-fashioned, statically typed imperative language for server side apps, they're far more likely to use Java. It might be convincing ("crossing the chasm") to replace some of the traditional C infrastructure (nginx might be a good place to start) with Ada, but only if you can come close to the old stuff's performance. Or preferably, beat the old stuff's performance outright. I couldn't imagine writing a substantial server app entirely in Ada. I could see writing some critical subsystems in Ada and my interest in Ada is partly motivated by that idea. Embedded seems a lot more promising. >> Well, the discussion was about using SPARK to prove much more >> complicated assertions. > Again, why? You'd have to ask the folks who started the thread ;). But https://www.dwheeler.com/essays/high-assurance-floss.html is a nice overview of why approaches like SPARK are interesting. > It's hard as heck to get people to change everything about their > programming experience at once. Starting programmers out writing > better-C-in-Ada-syntax and gradually letting them find about the other > benefits that they can have is the way to hook them for life. I think convincing C programmers to switch to Ada won't help "cross the chasm" even if 100% successful. C was a 1980's thing and there aren't that many programmers using it any more. Lots of terrifically good programmers these days have never written a line of C in their lives. The starting point is very often either Javascript on the web side, or something like Python on the computational side. Then if they want types, there is Java, Scala, Ocaml, Haskell, etc. IMHO Ada's advantages over those languages, for applications that need it, are more in the area of runtime determinism (e.g. manual memory management) than types. And I think that's important only in a fairly small class of expectations. Maybe I'm wrong, but I don't see a breakout. > But GUI programs are almost untestable in any repeatable way. Eh? Of course they're not. You produce a GUI event stream similar to what an actual user would produce, and check that the program does the right thing. There are many tools for this. > That works in all of those cases because Ada detects a lot of problems > at compile-time or runtime, so very little could happen that would > actually be dangerous. I guess it depends what you are trying to do.