
Make with Ada: Redux - Raphael_Amiard
https://nocko.se/blog/make-with-ada-redux/
======
losvedir
Heh, I didn't understand the title at first and thought it had something to do
with an implementation of the JS redux library in Ada.

Anyway, it's a cool write up. I wish Ada came up more on HN. It's one of those
languages that, like the author, I only know of as one that's "built for
reliability, mainly used in defense applications".

If it's fast and safe, why doesn't it get the attention that, say, rust does?

~~~
smitherfield
It's before my time, so YMMV, but it seems that the 90s-era "HN crowd" took
something of a "shoot-the-messenger" approach to Ada, assuming it must be a
terrible language because it was created by the Department of Defense. Not
unlike how anything associated with Microsoft used to be treated until pretty
recently.

Complaining-about-languages-you-don't-use was an even bigger phenomenon in the
era when the internet/open-source was not widespread, and trying out a new
language was often far from a trivial thing to do.

It's always a bit amusing to read an old article from the 90s or early 00s,
filled with unironic praise for langs now considered poor-to-mediocre, like C,
Perl and PHP. (Because these were the languages that didn't take a great deal
of effort/money to start writing in the first place).

~~~
david-given
I did a bunch of stuff with Ada, and like it a great deal; the core language
is rock solid, fast, expressive, and extremely easy to work with. But I still
have a laundry list of issues, and probably would pick something else for
future projects. (My current one is in C. C89. Because reasons. Sigh.)

The three biggest turnoffs for me with Ada are:

\- case insensitive identifiers. I understand why they chose that, but history
has shown that that's not what programmers want, as evidenced by ever other
mainstream programming language ever. Also, there's nothing more likely to
repel a new developer than forcing them to switch to a new coding style. (It's
also weirdly unAdalike; surely a language which puts such an emphasis on
correctness and precision wants things that look different to _be_ different?)

\- no garbage collector. As soon as you spend any time with the language it
becomes obvious that one's been planned right from the very beginning --- it
would drop right in. It just hasn't been _implemented_.

\- deeply inscrutable object oriented syntax. I've used it several times and I
_still_ have to look it up, every single time, and even so I keep getting it
wrong. There are several hidden gotchas --- it only works properly if your
class is defined in a named package and all your method declarations need to
be next to each other. I think. It's all totally unmemorable and desperately
needs a 'class' keyword.

There's some other stuff which would be nice to have, like better strings, or
the ability to have pre- and post-conditions on procedure definitions and not
just declarations, but for me those are the three big ones.

I might try Nim next, as that looks nice, and appears to have a number of
features borrowed from Ada.

~~~
jordanb
\- case insensitivity

I'm not sure it was clear in 1983 that programmers preferred one way or the
other. Most languages were case sensitive because it was easier to write the
compiler that way and I think programmers "prefer" it now because it's what
they are used to. Personally I find the different syntax and conventions as
one of the fun things about learning different languages

\- no GC

This is a consequence of the level of abstraction Ada is operating at.
Actually I think it's one of Ada's greatest strengths because Ada does a
really amazingly good job of implementing the pattern C++ programmers call
"RIAA". Ada calls it Controlled Types and it puts the power to manage memory
in the hands of the programmer without making it unsafe or prone to bugs. RIAA
is implemented so messily in C++ and explained so poorly in the community that
I've spoken with C++ programmers who agree that the best way to learn to write
good C++ is to learn Ada.

\- OO Syntax

Yeah I agree with your assessment. I think the problem was that Ichbach wanted
to make an OO language originally but felt that some OO features (inheritance,
dispatching) weren't appropriate in a high-integrity language in 1983. So he
ended up making a language that was 80% OO. Then in 1995 it was clear that the
language was worse for not having those features so they were shoehorned in.

~~~
cjhanks
*RAII. And C++ does just fine.

------
Yenrabbit
I really regret not getting my act together and working on my entry for the
Make With Ada contest - the language really appeals to me. One day...

------
cocktailpeanuts
I hope someone creates React/Redux with Ada and posts it under the same title.

