How are you using Ada, and how would you like to use Ada?

This is both a question about domain and specifics about why you’ve chosen to use Ada. You can also elaborate on where you’d like to use Ada, and what’s preventing you from doing so, such as a missing library.

e.g. I’ve been using Ada as an alternative to other low level languages for hobby command line tools. It’s easy to write bindings to C for what I need, while also providing a decent standard library. Building and running with Alire is also super easy.

The Ada language impressed me some time ago with its readability and type checking, I would like to create programs that actually work with a minimum of bugs. I like learning through projects, so I’m currently reading the free book Learning Ada 2012 by writing simple games and testing examples. I’m interested in atomic submarines, and I found two very interesting student projects on Github, including some cool documentation:

Once I get more experience, I would like to extend these projects and add a graphical interface (I like the Gnoga project) similar to the Eagle has landed application. I’m also really looking forward to completing the tutorial here at https://ada-lang.io, for a novice developer today it’s ideal to start with the preliminary version of Ada 2022 and the Alire tool.

2 Likes

I am using Ada primarily for embedded but also appreciate it’s ease of unix C interfacing.

I would love to also use it for UI but I can’t see it competing with the Flutter UI toolkit in terms of cross platform Native Android, IOS, Windows, Linux and also Web app from one codebase and it’s growing plugins and widget library. However an Ada => Dart or Ada => C => Dart FFI or interface might be very interesting.

Please tell me, especially if you disagree. I still need to re-watch the talks on WASM and other possibilities more thoroughly.

I’m still learning Ada, but what brought me to it, apart from curiosity, is its focus on correctness (subtypes, contracts, SPARK etc.) and high-integrity roots in general.

I want to write desktop apps (GUI and maybe CLI and libs) and perhaps web services. I have few other ideas covering other compilation targets, but it’s too early to talk about it. :wink:

1 Like

I discovered Ada by accident and for the first time had a programming language that I liked and that I can understand the basics of. I was unable to learn other languages like C, C++, Java, etc.

I am currently using Ada to create a Civilization 1 style game that I hope to sell in the future.

3 Likes

Where do you intend to sell it?

Probably on the common platforms, i.e. Steam, Gog, Humble Bundle, etc. But I won’t know exactly until I’ve looked for and found a publisher. If I ever find a publisher.

I seriously doubt you’d get one. You’re better of self publishing, it’s not like it’s not possible. You won’t be able to get on apples appstore btw because of gpl, so you’d need to check licences on those site’s but I’ve not heard of any issues.

Why not? There are various publishers for indie developers. I also strongly doubt that self-publishing is better, I have no idea about marketing, nor a significant reach in any social media. So without a publisher there will probably be three buyers and that’s it.

Doesn’t Apple now require software for their systems to be somehow verified by their systems anyway? I can also change the license if necessary.

But that’s not interesting in the short term anyway, first of all I have to create more/better textures, further develop the second race and improve the AI. It will probably take a month or two or more before everything is ready.

I would try to self-publish on Steam or itch.io (where another Ada game, Steam Sky is available).

Re Apple, it’s not your licence that would be the issue unless it was gpl, it’s the compiler and runtime’s licence, which is gnat and gpl.

There’s a new plugin for blender that creates textures with ai, might be worth a look but beware of licencing issues there if it uses images from the interweb.

There’s still a little time before I have to decide on one. If I can’t find a publisher, I can still self-publish.

Does this also apply to the FSF version? I also thought about getting a commercial compiler, but that will probably be too expensive.

I had already thought about having textures created by an AI. But as you said, the licenses are a little problematic. Luckily I’m aiming for a Civilization 1 graphic style, so with a little patience I can still create most of it myself.

Maybe you could associate with an artist for the textures and share with them possible benefits. Just an idea, I don’t know if a good and viable one or not.

You could also use Fiverr or another online freelance marketplace, and look at how the created content is licensed.

The Apple thing is because they require to be able to rebuild the app from bitcode to be optimised for each platform, go read the gpl v3 re the intermediate representation clause, it applies here and the LLVM port won’t help you either.

1 Like

The various ways to get graphics I have also thought through once. For now, I’ll stick with my self-created textures, if necessary I can simply exchange them. Two-dimensional tiles are fortunately not so complicated.

Ok, so no Apple version, I don’t have any Apple devices to test such a version anyway.

Also, I have to say that there are unexpectedly many answers to my statement.

Just learning basic concept for now, i’m not very experienced in dev and most of my projets was for the web, with PHP and python. I’m just curious and not convinced by others low level languages.
Ada code have something “Magic”, easy to read and understand.

In my case i would like to use it to build robust web api rest, and microservices… I’ve make some experimental api rest to test, but i’m a bit lost to really implement my needs with all security and auth aspects, and unforunatly there’s no Ada drivers or bindings for mongodb for now.

If you have some suggestions, Ada libs, tutos, docs usefull for that kind of project, you’re welcome :wink:

Is this of use?

I didn’t say you couldn’t target MacOS, you can distribute via other methods, you just cannot use the appstore and therefore no ios.

this?