while this may not be of much interest to most of the community, I just wanted to let you know that there will be an introductory talk about Ada in the Universidad Complutense de Madrid, the 15th of April (next Wednesday). I will be giving it thanks to an invitation from the student association there, who I met during an https://fsfe.org/ event.
I forgot to take photos (again!), so I have no prove that we did it! It was a great experience, there were about 15-20 students of a fairly young age (most seemed to be in their bachelor/degree, not in master). I think they liked it tbh, no body got up when the Q&A started and it was already pretty late for lunch even by Spanish standards! I think most students were amazed that such an âoldâ language could do so much more than the vast majority of languages that they know, have tried or were being taught.
I genuinely think that we should increase our presence in universities and give students a 45 mins, high energy, high impact, meme-loaded, fun presentation with quite a few âWoW!â moments and it will be something that at least they will remember for a loooong time. For a small percentage of students it may stick in the end and become involved with us. But beyond that, I think the presentation was worthy to them regardless of what they do with the language if anything.
I highly encourage the rest of you to give a presentation that will connect with modern students about Ada if you can!
I fully agree with what you wrote. Those of us who can âgive students a 45 mins, high energy, high impact, meme-loaded, fun presentation with quite a few âWoW!â momentsâ should definitely try to do that at local universities or politechnics. And those of us who donât have such talent, should try to invite those who haveâŚ
Sure! I can share the whole presentation (in Spanish), here it is https://irvise.xyz/Ada_SPARK_Complutense.pdf The pdf was not nicely produced, so there are some artifacts, such as all the memes being gone, but oh wellâŚ
The full presentation took about 1h, even though I was planing for 50 mins + 10 mins of Q&A, which in the end it was more like 1:05h presentation and 10 min Q&A. Some of the slides are just for âshowâ such as those for arrays and records (just to make the point that indexes in Ada are pretty flexible and that we do have variants and discriminated records). But in general the outline is:
Self presentation (people think it is cool to have a nuclear engineer talking) and intro to why I found Ada (looking for better quality and low level access, prove included)
A brief history of Ada and why Ada is so different
Types and data, a lot of types and data. Including attributes (very important for type reflection) and aspects (very important to separate the low level from the high level, to âregainâ control and to be more expressive)
The arrays and records (veeery briefly)
Then functions/procedures and how strict they are
Finally a very simple task example that they can vibe with and see how easy it is compared to other languages and how nicely designed it is
Nice. The little Spanish I picked up through living in the southwest US together with my B1-level French donât really help me to understand your slides. An English version might be helpful for those who want to give such a talk. But this outline and the examples in the slides may serve as a decent starting point.
Aspects of the language that you donât seem to give much attention to include its support for multi-person projects and its emphasis on ease of reading. I realize giving equal attention to all aspects will result in a very long talk, but these seem to me to be important things.
I will look into it. I am building a very large Ada introduction which will be in English
Hehehe, I do mention them at the end. As a lot of people complain that Ada is âvery verboseâ in the conclusions I add a comparison list of what a programmer actually does and how does Ada affect that aspect (think of reading code, refactoring, documenting, testing, debugging, thinkingâŚ). And as you said, I had to chose the topics carefully.
Regarding readability, I mentioned by voice âdo I have to explain anything from this language or can you read it yourselves? I think you are the best ones to decide if it is clean, easy to understand and readâ
Thanks, Fer, for sharing this very nice presentation.
I enjoy reading introductions to Ada:
First, I forget certain features of the language because I donât use them; a reminder never hurts.
Next, I love those little examples of almost biblical clarity, where other languages require a cryptic syntax. They remind me of reading the Ada 83 standard (an unusually pleasant and enjoyable standard to read), or the rationale documents for the different versions of the language: Iâve always preferred illustration through a concrete example rather than the underlying theoretical discussion.
(When I think that some people claim LLMs are very different from us )
It seems your domain is blocked here, do you happen to know if there is an alternate server that the PDF is available on? No biggie if not, just checking.
How could one emphasize or demonstrate this in an introductory presentation?
Here the constraint is that the students today are used to untyped vibe languages such as Python or terse hieroglyphics such as anything in the C family.
Itâs quite likely that for them Ada is not easy to read.
Perhaps an example could be used of a complex logic path or algorithm in one of these languages with the most common naming styles. Then the second example would be the first but with comments. And then compare that to the Ada example, which will be more verbose, but wouldnât have the comments as they are âinsideâ the code now.
This does still require passing the hurdle that doesnât really appeal to most people, because in every single circle I see besides here, âverbose=badâ.
Most software companies these days go for minimum viable product anyways. So in many cases, even pushing better programming practices that will help in the long run that use their current languages will immediately fail. Pushing better practices along with a language change will probably immediately fail as well.
For support for multi-person projects, Ada would be better because it is easier to re-understand older program code, even stuff you didnât write yourself. Donât try to explain things about âwhy itâs better for multi-person projectsâ. Show how it is easier to re-understand older code instead.
I still donât know how that would be put in presentation format. Showing code on screen wouldnât really work, since itâs just one screen. That might require a github demo or something, but that would turn off most people as well. Damn, I give up.
Sadly, a lot of âfirewallsâ block the .xyz domain⌠I did buy the same name but under the .de dns space. I need to get around setting it up, but it will take some timeâŚ
I disagree. Since they are used to Python and the like, for them, having a language where ideas are clearly indicated (ranges, type predicates, etc), they find it a lot more readable and understandable, which is a strong contrast to what they are used to (which is usually trial-and-error programming).
I triend to convey that idea with the C++20 example for a simple Ada type (just ints) and the Dynamic Predicate for a sorted array and telling them ânow try to get something equivalent in any other language, just try to get somewhat close, when you give up and cry, you will remember Ada :Dâ
I did make a comment about this during AEiC 2024 in Barcelona. I kind of agree. But some people are realising that systems are growing faster, that requirements are changing faster, complexity is growing faster and customers are becoming more demanding. So a good foundation from the beginning will be beneficial quickly.
I did point that out verbally during the talk.
Not everything is on the slides. A lot of it is spoken and I try to talk about cases that even new students will understand, so the code becomes a âteaserâ and the voice becomes the full explanation.