
Ada in Practice, a New Learn Course
by Pat Rogers –
A new Learn course has been deployed, titled "Ada in Practice."
You can view it here: https://learn.adacore.com/cour...
The goal of the course is to show how to make the most effective use of the language in non-trivial applications.
In particular, this new course is intended for developers who are familiar with the Ada language syntax and semantics, but are wondering how best to apply what they know. Their situation is analogous to someone familiar with a spoken language but not the idiomatic expressions used in conversations. My favorite example is a French idiom that (in English) is something like "We didn't raise the pig together." The idiom means "We don't know each other well enough for what you just said to be appropriate. You're violating social etiquette." The phrase probably has other similar meanings as well.
In the case of programming languages, an idiom is the recognized expression of a solution to a programming problem or scenario. The scenario might be common to many programming languages, or might be specific to a given language. But in either case the implementation of the solution is one recognized by the community as the best in that scenario.
Note that some people would equate idioms with design patterns, and they're not wrong. But this isn't a course on implementing design patterns in Ada. What we have in mind is more general in scope, and in some cases lower-level. For example, "type punning" is a well-known approach to applying different types and operations to a single object and the concept is independent of the programming language. However, type punning is not a design pattern.
In addition to these language-independent scenarios, we also include solutions for situations specific to the Ada language. These idioms arise due to the particular capabilities of the language and can be considered "best practices" for those situations.
Note that this is only the first release. More idiom entries will be added over time.
Let us know what you think! Put in your two cents. Talk turkey. Weigh in. Lay it on the line...