
Ada on FPGAs with PicoRV32 - gusthoff
https://blog.adacore.com/ada-on-fpgas-with-picorv32
======
leoedin
I'd like to use Ada for an embedded project, but I've got a few concerns -
that development time would be considerably longer, that finding other people
able to maintain the codebase would be hard, and that the resulting code would
be considerably less performant than equivalent C.

Has anyone worked with Ada or deployed it in a real product? How does it
compare to "microcontroller C" with no strings and statically declared memory?

~~~
ummonk
I've worked with Ada but not deployed it in a real product, so take what I say
with a grain of salt, but:

> that development time would be considerably longer

It really depends on how good the support for the platform you're working on.
If it is well-supported / documented, then you'll be at least as fast as with
C.

> that finding other people able to maintain the codebase would be hard

Eh, it's a pretty straightforward language, and anybody reasonably talented
(which most embedded programmers certainly are) should be able to maintian it
without difficulty.

> and that the resulting code would be considerably less performant than
> equivalent C.

Definitely not the case. Ada is basically a bare metal language (notably, no
garbage collector), so it is very performant, and just as easy to reason about
performance and underlying assembly code as C. There are some runtime checks
that are enabled by default (e.g. bounds checking) which contribute to
slightly slower performance, but these can be easily disabled if needed.

> How does it compare to "microcontroller C" with no strings and statically
> declared memory?

It's basically the same, but with far fewer "gotchas" to trip you up, but
stricter typing and nicer semantics, together with a pascalesque syntax (more
english like, without curly brackets, which you may or may not like). I've
only ever used it with statically declared memory (although it does have
features like memory pools which reportedly make managing heap-allocated
objects easier).

------
itgoon
I will upvote just about any project that uses the phrase "you don’t even have
to build the compiler anymore."

I just started getting into FPGAa and Verilog, so I appreciate these kinds of
writeups.

Thank you.

