Starting Ada - It has to work

Not if we do the two things I have said, then the Ada community can grow.

Hi, I get what you’re saying. As with anything, there is always room for improvement and no one wants there to be road blocks for newcomers. However, what may be considered a roadblock by some may not be an issue to others depending on their experience. Alire has already greatly lowered the bar to entry. With that said, as others have suggested, I think it would be good if you could take your vision and try to help make it happen. It may not even have to be a complete solution, but enough for others to see to where they feel interested in contributing in your efforts. If I’m not mistaken, that is kind of how Alire got started (ie one man effort initially but then grew from there).

1 Like

I thought you had mentioned it’s “Why Ada” page, which I can only assume is meant to make people persevere with Ada. I agree the “Why Ada” page could perhaps be better placed. Certainly whatever ranks on google such as Adacores site should probably link to the one route of entry for community Ada like the Rust website is all encompasing. On the other hand adacores blogs are very useful and they are makung a lot happen. So I guess the two sites should be intertwined? I assume Rust has so much money that they have setup a non profit foundation possibly owning the site.

To be honest if BAE put in 10% of their exhibition stand budget. They would still have the biggest stands and it would probably return dividends in their use of Ada. Who has a lift on their exhibition stand anyway, lol. Looks wasteful.

MM Perhaps I should speak to the guy that created Alire. Yes I am talking about trying to attract people with no experience. It’s what I have tried to do with www.adaworks.it I want to emphasise that I created ada works not as some attempt at competing with anybody but rather as a way to provide an entry portal to Ada. I would be happy to add something about Alire but I really don’t yet understand what it is. It’s own website doesn’t seem to make it make it clear.

Hi Micronian2,
That is what I have been doing with www.adaworks.it

Tom

I think you should remove “designed by committee,” Algol was designed by committee, Ada wasn’t.

Hi Tom, I very much understand your frustration. I think this applies in general to IT, not only to Ada.
All of the IT world is a big mess, with so many different architectures, operating systems, programming languages, compilers, packages, configuration files… It is very easy to get to the point one just gives up trying to understanding new things.
Programming, in general, should indeed be easier. But somehow, every new attempt to do that makes the whole thing more complex! :smiley: You can see more and more new programming languages appearing, as if it would not be enough with the ones we already have. They intend to be better than others, but at the end they just increase the chaos.

1 Like

Hi Guille, I have only just seen your message. Absolutely. I am currently writing what is essentially a web app. The server is 100% Ada. I am beginning to think that X11 would be a far better solution and that browsers Javascript et’c are a total mess. “Oh no” they say “Wayland” will replace X11. Why? People have become obsessed with updates frAGILE. It’s causing complete chaos. Everybody produces unfinished solutions and features are given higher priority than bugs.

Today I have a choice. If I want a powerful reliable language use Rust who seem to care about things the Ada community doesn’t give a damn about. The compiler detects uninitialised variables, but not when they are in a conditional statement! Bhaa. There seem to be a community of slap happy “just do it” cowboys" and they have entered the Ada world. I really just want to write code rather than have to deal with this. But saying that when I create websites like adaworks.it and computology.org, I am as bad as the rest because I am working on those things for free I leave a lot of loose ends.

The pages for Alire were unusable when I tried them. I talked about that in my first post here. Do you know is there any group out ther who actually want to bring new people into this language?

It’s still easier and more useful to introduce beginners to C than Ada. Maybe Rust also. I am Fed up because I am looking for a Total Quality language that really calls in people starting in computing, and as can be seen from this threat, many people don’t understand that.

By the way here is my CV www.tomdehavas.com are you at all interested in developing something further like adaworks.it for example?

There are some things I don’t like about Ada. The strings default indexing from 1 is a pain. Also the lack of a preprocessor. Generics are very restricted.

This thread is old, so here’s my focused perspective on using Alire’s GNAT Ada Community Edition in 2026—sharing workflow insights for Ada developers.

As a freelance senior software engineer, I bounce between Cloud Native (Go), systems engineering (Rust), and Ada 2022—mainly for desktop and STM32F769I embedded boards. While I appreciate language-specific IDEs like Goland and RustRover, Ada’s lack of a JetBrains IDE isn’t a significant barrier in my workflow.

For GNAT Ada, I use a consistent workflow: start by creating a new Alire project in the terminal—similar to Rust and Go. I open GnatStudio for a configuration check and early issue identification. For editing, I use an IDE because of familiarity with the editor and its key mapping. I prefer building and performing other common tasks via a Makefile for speed and portability. For debugging across all my projects, gdb is commonly involved behind the mask of an IDE or in a terminal. I use it directly for Ada 2022.

In the past six months, I’ve focused entirely on a large, hybrid DDD/Clean/Hex application using Ada 2022 and its latest features. Using Alire’s GNAT toolchains in the terminal has produced a smooth development flow. Ada 2022’s abstraction and generics let me use static dispatch for safety and performance in our hybrid architecture, while providing the flexibility of dynamic dispatch through tagged records and interfaces. The high-performance processing requirements were met through Ada’s built-in concurrency and parallel-processing features. Using them, I created an efficient worker pool and leveraged LLMs & Internet services effectively. By separating components that cannot pass SPARK-proved validation, I have successfully created a collection of safe, reusable, SPARK-proved libraries that, without using the heap, are portable across embedded, desktop, and Cloud projects.

Rust is a fantastic language with awesome tooling, and, like all modern languages, it has learned from its predecessors, including Ada. I heard a rumor that Rust will return the favor to Ada in the next release… Rust’s ownership and borrow checker features have been sparking interest in the Ada Community. What a great world we have with our selection of modern tools!

2 Likes

Well, to be fair, a lot of Ada programmers are on the quality train, and do get the idea.
(Remember: GNAT is not Ada, AdaCore is not Ada.)
GNAT has the problem of being “bolted on” to GCC (at least initially), and of not having any ‘competition’ in the free implementation space.

This is a holdover from the 8.3 era of filenames; they had to “crunch” them down to fit in the 8.3 space. There is a tool to do this, and IIRC one that undoes it — but all that is missing the point: most all OSes now in use could directly use he fully qualified name of the compilation-unit (with the ads or adb extension) directly.

IMO, this is because of GNAT’s design.
The design I’m going for in Byron (and BATTS) has the parsing generate an OOP-based AST wherein all the variants of a feature share a type, by “collapsing everything down into a single point” I only have to deal with that single thing later. — Example: the return: there’s normal, extended (initialized and uninitialized), & enumeration-/value-rename. — And the reason it’s OOP, is so that I can add an Execute method to the base type and (after implementing it) have an Ada interpreter / executable IR.

I was in on the initial design discussions for Alire; I’d advised to go with a DB-amiable IR rather than text and glue-code (ie github-dependency) approach — the initial work would have yielded some very nice qualities:

  1. Non-parsable code could not be submitted into the repository;
  2. DB-checked versioning (ie detectable version dependency consistency checks);
  3. Possibly having license compatablity checking;
  4. Leveraging the fact that it’s in the database: SELECT Name, Short_Description from Projects WHERE "Sorting" in Keywords.
    But the decision to integrate w/ github leads directly to this misconception:

Nope; Ada the standard is distinct and separate —wholly disconnected— from github.
The issue is that Alire went the “quick and easy” route of being glue-code rather than designing things to be a (possibly distributed) database issuing out pre-parsed code which, on the client-end, is either reconstituted on the filesystem or integrated itno its own library-database.

I would say the classic Delphi (v 5 or 7) is probably the best IDE I’ve used.

I agree, though some of it is self-inflicted damage of the “we need it quickly” and “it works [on my computer]” — after all, nothing is more permanent than a temporary solution.

At my last tech job, I was using X11 a decent amount, and was wondering if an Ada implementation (such that you could use the same codebase cross-platform) would be a good idea. — There’s a lot of places where they’re using legacy systems, and it would have been nice to remotely operate the needed computers from the Windows box in my office via GUI.

You need to realize that Ada is indeed a general purpose tool, and certain things are absolutely required for proper functioning… even things that are considered “dangerous” and often “wrong” — consider, for a moment, memory-mapped IO: you need two things to use this (1) the ability to specify a location for an object, and (2) the ability to NOT initialize, because initialization would push a new value into the IO; in Ada this would be:

IO_Port : Word
  with Import,                -- Suppress initialization,
       Address => IO_Address; -- Set the address.

I absolutely disagree with you there.
C is so full of edge-cases, one-off typo-errors, and passing what would be otherwise detectable errors that (a) any compiler is crippled, and (b) the cognitive load imposed on programmers is astounding.

Now, if you’d said something like Forth, yeah, that is simple. (Albeit a bit weird in that it’s a postfix & concatenative language.) Or even Pascal, as it was designed to teach programming, and specifically structured programming. (And, WRT Ada, Pascal is sufficiently similar that you could almost use it as an “Ada Lite”.)

Oh, yes, you’re right… I wonder why it said it had 44 new replies.

I’d like to hear more about your project.

@OneWingedShark Although the project is not open-source, I have published many of its libraries for open-source on GitHub and Alire. If you are interested in the hybrid DDD/Clean/Hexagonal architecture I used, I created a starter template, which has a Python branding script to automatically rename files and content appropriately. Here is a list of my recent open-source projects:

https://www.abitofhelp.com/#recent-open-source

I will post to AdaForum when the commercial project is ready. It is a tool that is lacking in our Ada toolbox at this time. I will introduce it a few weeks before the Q126 release.

2 Likes

What is this?
Your links to your open source lead to nirwana

@Nordic_Dogsledding
I clicked the link in my post, and it took me to the open-source project information I mentioned. An alternative is for you to go to Alire’s crate repository and search for Hybrid_App_Ada or Functional or … You can view the source at GitHub: GitHub - abitofhelp/hybrid_app_ada: Hybrid DDD/Clean/Hexagonal application starter for Ada 2022. The same pattern for the other open-source projects.

Hope this helps :slight_smile:

Thanks for the tip how to access the sites. But you did not answer my question:

What is hexagonal architecture?

The URL that you have squared in red is broken. The correct one, I guess, is GitHub - abitofhelp/hybrid_app_ada: Hybrid DDD/Clean/Hexagonal application starter for Ada 2022

In any case, including URL as text instead of hyperlinks will raise some eyebrows.

It seems to be a decoupled, modular architecture.
Wikipedia said it’s the progenitor of “microservices”, but I just skimmed and didn’t delve too deeply into it.

Before the mandate was lifted Ada had a pentagonal architecture… :grinning:

5 Likes