Live data from Hacker News

Introduction to Ada

learn.adacore.com

151–160 of 193 posts

Re: Introduction to Ada

#151
post #133
post #91

I spent about 4 years of my early career working with Ada in the aerospace industry (specifically, I worked on the GPS satellite program). It was rather career-limiting because I ended up as a young engineer with a lot of experience in an extremely niche language. It took a while, but I was finally able to escape and start working with more modern technology (involved a lot of self-learning on side projects and final…

Ada is just a language. The 99.99% of the experience you've acquired there perfectly transfers to any other domain or language - only uneducated HR gatekeepers won't recognize this.

one of the issues that does matter is how/where you are applying the language. Ada use is super niche so unless you're looking to stay in the same domain it does matter. As an educated, non-HR gatekeeper I do care about the context of your experience.

Re: Introduction to Ada

#153
post #75
post #38

One thing I liked about Ada is that the authors of the language also wrote why they choose things the way they are, what was rejected, etc... Their is a document about this called "The Ada Rationale" available on the web: http://www.ada-auth.org/standards/rationale12.html I did contribute the HTML version of the Ada 1995 Rationale (first language revision) back in the day: https://www.adaic.org/resources/add_content/…

It actually quite common in ISO processes, there are similar documents for C and C++ language revisions.

There are published rationales for C90 and C99, but not for C11.

(Actually the original rationale is for ANSI C89, which differs from ISO C90 mostly in the way the sections are numbered.)

C89: https://www.lysator.liu.se/c/rat/title.html

C99: http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10...

Re: Introduction to Ada

#154
post #75

Earlier quoted context omitted.

It actually quite common in ISO processes, there are similar documents for C and C++ language revisions.

Yes, but many ISO documents are not publicly available (they're paywalled instead, even though ISO doesn't pay the authors). The Ada rationale is publicly available, so anyone can see exactly why various decisions are made. That's useful for someone using Ada (obviously), but it's also useful for people designing any other programming language... you can often learn about a craft by learning about why people made var…

Here is the one for C99, http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10...

Re: Introduction to Ada

#155
post #40

I got to use Ada for eight months in 1997, on a co-op at Rockwell-Collins in their General Aviation department. I learned and wrote a lot of Ada and I loved it. When I had to go back to school in the fall, I was no longer interested in writing C++ and it kind of bummed me out to have to use it again.

I had a similar experience. I learned Smalltalk and then, when I tried to learn C++, I saw the bit-shift operator be used to output stuff to the terminal.

It took me 8 years to get over the initial disgust and learn C++.

Re: Introduction to Ada

#157
post #89

Earlier quoted context omitted.

Rust seems to flourish despite its heavy use of symbols, and I mean... heavy . Plus, code is supposed to be documentation. :)

This is actually one of my few gripes with Rust. I see lots of code that starts to resemble what I call "cryptosyntax" (also a feature of C++). In this regard, Ada explicitly had maintainability as a design requirement, and I wonder how well Rust will fare with its concise, symbol-heavy code in that regard.

More specifically, "readability" was the sub-goal that fell under. People were thinking about use as pseudo-code in those days as well.

Re: Introduction to Ada

#158

Earlier quoted context omitted.

People need to stop using "wordy" when they mean "readable."

Readable is a matter of education. As a C++ programmer I've learned what {} means, and so that is more readable than begin/end which happens to not be the block symbol in any language I know well. Considering all the languages I know I've concluded that block symbols are important enough to be worth learning as a separate symbol (Looking at python where it is white space). Of course I can learn begin/end, but it isn'…

I've done plenty of C and C++, so I know what {} means, it's just that braces are harder to see, especially when there's a lot of them.

Re: Introduction to Ada

#159

Earlier quoted context omitted.

I cannot see the source code for the documentation. This happens to me in so many cases. I work with a couple of codebases that have 90% documentation, 10% code. In Ada, code IS the documentation that also can be formally verified. It is wonderful.

I think I've heard "the code is self-documenting" a hundred times in my career and it hasn't been true once.

Yup, look at any driver in the Linux kernel.

Re: Introduction to Ada

#160
post #115

Earlier quoted context omitted.

Any recent popular languages with similar support for types of Ada? Is such type system being costly to implement the reason not many other languages pick up the feature?

Ada is peculiar because the checks for the ranges are done at runtime. This mean you need a small runtime. A lot of languages are inspired by C and C++ and the types are simple in these languages so it could be an explanation. Haskell has `Numeric.Natural` but I don't think you can define an integer constrained to a range. It probably goes beyond what the type system can do (statically). I think it's possible with De…

You only need to go on programming languages or compilers subreddits to see that they only seem to know C or C++, due to the "hey, I made a language and it's based on C(++), only btter." I look and it's basically the same mistakes each time, the for loop, the basic data types, etc.
Post reply on HN