Author Topic: 2017 Make with Ada competition  (Read 40941 times)

0 Members and 1 Guest are viewing this topic.

Offline FabienCTopic starter

  • Contributor
  • Posts: 11
  • Country: fr
2017 Make with Ada competition
« on: May 17, 2017, 12:56:24 pm »
Hi all,

I remember that there was some interest for our competition on the forum last year. So I'm here to tell you that we've started the second edition.

Still 8000 euros in cash prizes but also a bonus student prize this year. And by popular request, it is _not_ limited to ARM Cortex-M :)

More info on the competition website : makewithada.org

Have fun!
 

Offline mubes

  • Regular Contributor
  • *
  • Posts: 237
  • Country: gb
  • Do Not Boil
Re: 2017 Make with Ada competition
« Reply #1 on: May 17, 2017, 05:21:34 pm »
Does GNAT still require GPL for anything linked with its libraries? I'm pretty sure that was the situation last I looked which made the whole Ada thing a bit of a non starter for me....dependable embedded systems in a Pascal-stylee would float my boat, but not if I don't sometimes have the option to keep my sources private.....

I'd love to be told I'm wrong though.

Dave
 
The following users thanked this post: nctnico

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1668
  • Country: us
Re: 2017 Make with Ada competition
« Reply #2 on: May 17, 2017, 05:47:02 pm »
There seems to be GPL'd versions of their tools, which they specifically say are not for commercial use, and the Pro versions, which require a quote process to get pricing. In past experience, any tools that require a formal quote process tend to be expensive (e.g. in the USD$5000-10000 range).

Paying for tools for commercial use isn't really an issue. What's really the issue here is finding Ada developers. C/C++ developers are plentiful and easy to find, but that's definitely not the case with Ada unless you happen to be located near a lot of defense contractors.
Complexity is the number-one enemy of high-quality code.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26868
  • Country: nl
    • NCT Developments
Re: 2017 Make with Ada competition
« Reply #3 on: May 17, 2017, 06:03:08 pm »
Paying for tools for commercial use isn't really an issue.
It is because it will take a long time for such tools to pay for themselves for many small companies. The time needed for learning (debugging) will also postpone return on investment. For me the choice between free GCC and $$k Ada is simple: GCC. I'd like to try Ada if it is free for commercial products. I understand the creators want to make money but with their current business model they won't make Ada widespread. There has to be some momentum first and then profit can be made from support and courses. Another option would be to team up with microcontroller manufacturers and get royalties through them. There are several software vendors making money that way while their software is 'free' for users.
« Last Edit: May 17, 2017, 06:07:57 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline ElektroQuark

  • Supporter
  • ****
  • Posts: 1244
  • Country: es
    • ElektroQuark
Re: 2017 Make with Ada competition
« Reply #4 on: May 17, 2017, 06:09:17 pm »
Has Ada any advantage as programming language?

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26868
  • Country: nl
    • NCT Developments
Re: 2017 Make with Ada competition
« Reply #5 on: May 17, 2017, 06:39:56 pm »
It is supposed to be less prone to making stupid mistakes like buffer overruns. Think about a gun which won't fire when pointed at your foot.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline FrankBuss

  • Supporter
  • ****
  • Posts: 2365
  • Country: de
    • Frank Buss
Re: 2017 Make with Ada competition
« Reply #6 on: May 17, 2017, 07:20:57 pm »
Nice contest, I always planned to take a look at Spark/Ada, this is a good opportunity for it. How many contest entries were submitted in 2016?

PS: maybe a mod should move this thread to https://www.eevblog.com/forum/contests/
So Long, and Thanks for All the Fish
Electronics, hiking, retro-computing, electronic music etc.: https://www.youtube.com/c/FrankBussProgrammer
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11612
  • Country: my
  • reassessing directives...
Re: 2017 Make with Ada competition
« Reply #7 on: May 17, 2017, 07:29:53 pm »
It is supposed to be less prone to making stupid mistakes like buffer overruns. Think about a gun which won't fire when pointed at your foot.
oh why i keep listening to excuses like this? why cant we practice memory management class/object in other lower level language? :palm: you give a safe gun to a dumb he will manage a way to shoot his foot. no wonder applications run much more slower and slower in much more powerful today's processors.
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1668
  • Country: us
Re: 2017 Make with Ada competition
« Reply #8 on: May 17, 2017, 08:22:37 pm »
It is supposed to be less prone to making stupid mistakes like buffer overruns. Think about a gun which won't fire when pointed at your foot.

The way I see it, if you have developers who are making these kinds of stupid mistakes, you either need to train them better or get rid of them and replace them with competent people. Only poor craftsmen blame their tools for their own incompetence.
Complexity is the number-one enemy of high-quality code.
 

Offline Vtile

  • Super Contributor
  • ***
  • Posts: 1144
  • Country: fi
  • Ingineer
Re: 2017 Make with Ada competition
« Reply #9 on: May 17, 2017, 09:30:10 pm »
It is supposed to be less prone to making stupid mistakes like buffer overruns. Think about a gun which won't fire when pointed at your foot.
oh why i keep listening to excuses like this? why cant we practice memory management class/object in other lower level language? :palm: you give a safe gun to a dumb he will manage a way to shoot his foot. no wonder applications run much more slower and slower in much more powerful today's processors.
I wouldn't want to have something potentially deadly programmed a languages where a qWERTui and QWERTui  makes a difference in variable etc. names or something like IR2 and lR2 crash the system while hovering somewhere between moon and earth.  ::) Everyone have own favourite language. Ada is just one.

It is just that the system as whole (tools, manpower, training, information etc. etc.) needs to be as error proof as possible, Ada is supposed to work in that idea.
« Last Edit: May 17, 2017, 09:34:17 pm by Vtile »
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26868
  • Country: nl
    • NCT Developments
Re: 2017 Make with Ada competition
« Reply #10 on: May 17, 2017, 09:47:16 pm »
It is supposed to be less prone to making stupid mistakes like buffer overruns. Think about a gun which won't fire when pointed at your foot.
The way I see it, if you have developers who are making these kinds of stupid mistakes, you either need to train them better or get rid of them and replace them with competent people. Only poor craftsmen blame their tools for their own incompetence.
I disagree with this slightly elitist statement. Tools which are easier to operate get more work done. When programming in C (and to a lesser extend in C++) you have to spend time on avoiding buffer overflows, invalid pointers, etc. If a language doesn't require spending time on stuff like that you can get more done in the same amount of time.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1668
  • Country: us
Re: 2017 Make with Ada competition
« Reply #11 on: May 17, 2017, 10:29:08 pm »
I disagree with this slightly elitist statement. Tools which are easier to operate get more work done. When programming in C (and to a lesser extend in C++) you have to spend time on avoiding buffer overflows, invalid pointers, etc. If a language doesn't require spending time on stuff like that you can get more done in the same amount of time.

Sloppy programming is still sloppy programming no matter what language is used--that's not an elitist statement--it's a professional one. Anyone sloppy enough to introduce buffer overflows, etc., into their C code is likely to just make different kinds of mistakes when using a language that is "easier to operate".
Complexity is the number-one enemy of high-quality code.
 
The following users thanked this post: kony

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: 2017 Make with Ada competition
« Reply #12 on: May 17, 2017, 10:48:14 pm »
Sloppy programming is still sloppy programming no matter what language is used--that's not an elitist statement--it's a professional one.

What *IF* you, who are not sloppy programmer, have to code/debug/ K of line with a deadline of a few days? (it's a typical scenario in automotive, e.g. FOM, formula one management)

It happens you are under pressure and mistakes happen. ADA helps you.
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: 2017 Make with Ada competition
« Reply #13 on: May 17, 2017, 10:52:22 pm »
train them better

train them better with what? C?

ADA is a self good training tool which itself stays on rails.
C needs ... a course which teaches how to stay on rails.
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1668
  • Country: us
Re: 2017 Make with Ada competition
« Reply #14 on: May 17, 2017, 11:33:56 pm »
ADA is a self good training tool which itself stays on rails.
C needs ... a course which teaches how to stay on rails.

Two things: 1) I can't parse that statement, and 2) it's Ada, not ADA. It's named after Lady Ada Lovelace and is not an acronym.
Complexity is the number-one enemy of high-quality code.
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11612
  • Country: my
  • reassessing directives...
Re: 2017 Make with Ada competition
« Reply #15 on: May 18, 2017, 05:13:55 am »
I wouldn't want to have something potentially deadly programmed a languages where a qWERTui and QWERTui  makes a difference in variable etc...
punctuality! if you dont care to look carefully or train yourself to be one at your code, all you think is the easiness of the work done, i believe you train yourself to be deadly.

train them better
train them better with what? C?
ADA is a self good training tool which itself stays on rails.
C needs ... a course which teaches how to stay on rails.
train what in ADA? if its not existence. (non accesible aka encapsulated).

What *IF* you, who are not sloppy programmer, have to code/debug/ K of line with a deadline of a few days? (it's a typical scenario in automotive, e.g. FOM, formula one management)
we make our own custom memory management library at the first sign in for the job and keep using that forever. if we are not capable of doing that, we will not sign in, we find another job. train ourself to constraint to use our own "safe" library because we appreciated what "buffer overrun" is. ADA (higher level programming) intention is good, but at a cost of generating new breed of less skillfull programmers. you may deny it, but just because you cant feel it, or havent experienced it ;) programmers for the money.

here we go again...
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19447
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: 2017 Make with Ada competition
« Reply #16 on: May 18, 2017, 08:02:17 am »
It is supposed to be less prone to making stupid mistakes like buffer overruns. Think about a gun which won't fire when pointed at your foot.
The way I see it, if you have developers who are making these kinds of stupid mistakes, you either need to train them better or get rid of them and replace them with competent people. Only poor craftsmen blame their tools for their own incompetence.
I disagree with this slightly elitist statement. Tools which are easier to operate get more work done. When programming in C (and to a lesser extend in C++) you have to spend time on avoiding buffer overflows, invalid pointers, etc. If a language doesn't require spending time on stuff like that you can get more done in the same amount of time.

Just so.

I prefer to spend time and mental energy solving "the problem at hand", not solving "the problems with the tools".

The real world has so many fascinating and inherently difficult tasks that need to be solved. Adding unnecessary man-made problems is an unpleasant distraction.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: 2017 Make with Ada competition
« Reply #17 on: May 18, 2017, 08:36:19 am »
Ada is more like a personal trainer. But typically C-people sees Ada like a 'schoolmistress'. They usually consider themselves *real men* because they can shoot on their own feet. You are not a "real man" if you can't do it. Ain't it? So they believe, so they don't like neither they need the 'schoolmarm Ada', used with reference to a computer language whose name comes from a woman regarded as prim, strict, and brisk in manner.

A personal trainer guides you, teaches you, how to manage your effort to achieve better results.

Personally I have a job in avionics, sometimes I do staff in automotive/FOM, And I found Ada more than useful, especially when I am under pressure, or when I am in rush.

Ada is a mervelous language, which inspires vhdl, so I also feel comfortable when I have to develop HDL on fpgas

train what in ADA? if it's not existence. (non accessible aka encapsulated).

Not existence? Dude, in avionics we have green hills Ada. So we have in automotive/FOM.
You probably mean GNAT is not well supported, especially for embedded stuff. Sadly the truth.

But! That happens because of the attitude of C-people who see the 'schoolmarm Ada' as a limit for their freedom (which consists on the chance of bullet-shooting on their own feet), instead of seeing the personal trainer who can motivate them to write better code.

On computer science the feeling is ..  we still have to talk about 'guns, and bullets', because real men MUST be 'cowboys on the console'. Ain't it? Being a wild with two guns on the belt is a bonus. So, use C and C++, two guns, you can double the chance to shoot on your own feet!

This kind of evolution, which is itself embedded in linux (mr Linus Torvalds hates the C++ language, but his code looks objects made in C .. full of bugs), and GNU (they don't know how to program in C, their code is ... full of "patch"). The common context which makes C-people to dislike(hate?) Ada.

This way we have grown up ...  :palm:
« Last Edit: May 18, 2017, 11:52:40 am by legacy »
 

Offline FabienCTopic starter

  • Contributor
  • Posts: 11
  • Country: fr
Re: 2017 Make with Ada competition
« Reply #18 on: May 18, 2017, 10:37:18 am »
On top of what has been said so far, I want to add that  Ada is not only good to prevent you from shooting your foot, It's also great to find out why you shoot yourself in the foot (it will happen, there's no miracles :) ).

One instance of that is the contract based programming in Ada. In a project I'm working on, we have a bunch of hardware to initialize before being able to use it, business as usual...
In Ada, the interface looks like this:

Code: [Select]
package Motor_Driver is

   procedure Initialize;
   --  Initializes the hardware

   function Initialized return Boolean;
   --  Return True is the hardware is intialized

   procedure  Turn_On_Motor
     with Pre => Initialized;
   --  Turn on the motor with a precondition that hardware should be initialized
end Motor_Driver;

The result is that I will get an error if I try to use my motor before the hardware is initialized. It's simple things like this that can save you several minutes of debugging, over the course of a project it will save you hours.

I don't know if I shared those links before, here are two articles where we discuss Ada features in the context of embedded software:

https://community.arm.com/iot/embedded/b/embedded-blog/posts/ada-driver-library-for-arm-cortex-m-r---part-1-2
https://community.arm.com/iot/embedded/b/embedded-blog/posts/ada-driver-library-for-arm-cortex-m-r---part-2-2
« Last Edit: May 18, 2017, 10:46:10 am by FabienC »
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1668
  • Country: us
Re: 2017 Make with Ada competition
« Reply #19 on: May 18, 2017, 04:52:05 pm »
On top of what has been said so far, I want to add that  Ada is not only good to prevent you from shooting your foot, It's also great to find out why you shoot yourself in the foot (it will happen, there's no miracles

Ada may be the best and safest language in the universe, but its uptake is going to continue to be nonexistent unless something is done to get it into the mainstream.

What the company sponsoring this contest should do is partner with IAR and Keil to get their compiler into the IAR Embedded Workbench and Keil ?Vision products. Give it the same level of support in these tools as C has at no additional cost. These are the mainstream tools that professionals use to develop embedded software and if they supported development in Ada that would go a long way to making it relevant to the average embedded developer.

Keep it as a niche product, like it is now, and it'll never have more than a tiny audience in the non-defense world.
« Last Edit: May 18, 2017, 05:38:10 pm by Sal Ammoniac »
Complexity is the number-one enemy of high-quality code.
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11612
  • Country: my
  • reassessing directives...
Re: 2017 Make with Ada competition
« Reply #20 on: May 19, 2017, 01:30:03 am »
But typically C-people sees Ada like a 'schoolmistress'. They usually consider themselves *real men* because they can shoot on their own feet...
But! That happens because of the attitude of C-people who see the 'schoolmarm Ada' as a limit for their freedom (which consists on the chance of bullet-shooting on their own feet)
no. that happened only because higher level language (Ada is one of it) programmers consider themselves as real men because they cant shoot on their foot. by stating excuses such as...

Quote
making stupid mistakes like buffer overruns. Think about a gun which won't fire when pointed at your foot.
like buffer overrun cannot be circumvented in lower level languagge programming. there are many issues why a mistake happened, blaming on the tool alone is not a wise thing to do imho.. i can say, most reported buffer overrun issues are few minority cases only compared to many softwares developed, and i suspect its more to do with unhealthy programming style rather than the programming tool itself. you can come up with the excuse if you have statistics such as out of millions Ada softwares developed, 0% bug. there is no OSS or free Ada utilities for public out there afaik, so no wonder there is zero error report. as i said, you give a dumb an intelligent gun, he will manage to find a way to shoot his foot, just wait until too many people using it.

if we want to play idiomatic expression, think about when a crocodile bite your foot, you'll need a gun that can be pointed to the foot and shoot. in the situation, i dont want a gun that decides through its infinite wisdom. making one small hole in the foot is a lot better than losing the entire foot.

train what in ADA? if it's not existence. (non accessible aka encapsulated).
Not existence? Dude, in avionics we have green hills Ada. So we have in automotive/FOM.
You probably mean GNAT is not well supported, especially for embedded stuff. Sadly the truth.
i was refering to how do you train people to access memory directly with safety but at the same time make full use of the speed (least amount of fault checking). how do you train them if its not accesible? (direct memory access). higher level language boundary check comes at a price of degraded memory access speed by boundary check on every access call. if you argue the time difference is negligible, then you have not making a software that complex enough. ymmv.
« Last Edit: May 19, 2017, 01:50:27 am by Mechatrommer »
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline FrankBuss

  • Supporter
  • ****
  • Posts: 2365
  • Country: de
    • Frank Buss
Re: 2017 Make with Ada competition
« Reply #21 on: May 19, 2017, 01:32:35 am »
Ada may be the best and safest language in the universe

I'm not sure about this. I'm trying to learn it now and looks like it is the same mess as with C/C++ for some things. E.g. the integer type is implementation dependent. Can be 32 bit, but can have other sizes as well. This doesn't inspire confidence in the language and doesn't help to write portable and safe software. Compare this to Java or C#: no matter what compiler you use, a given program runs always exactly the same on any CPU and with any compiler.
So Long, and Thanks for All the Fish
Electronics, hiking, retro-computing, electronic music etc.: https://www.youtube.com/c/FrankBussProgrammer
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11612
  • Country: my
  • reassessing directives...
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19447
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: 2017 Make with Ada competition
« Reply #23 on: May 19, 2017, 08:13:19 am »
Ada may be the best and safest language in the universe

I'm not sure about this. I'm trying to learn it now and looks like it is the same mess as with C/C++ for some things. E.g. the integer type is implementation dependent. Can be 32 bit, but can have other sizes as well. This doesn't inspire confidence in the language and doesn't help to write portable and safe software. Compare this to Java or C#: no matter what compiler you use, a given program runs always exactly the same on any CPU and with any compiler.

The most frequent and destructive problems rarely involve the number of bits in an integer - except in the all-too-common case where people assume it relates to the number of bits in pointers :(

The magnitude of numbers that need to be represented depends on the problem and hence can and should be part of the problem specification and/or top-level architectural design. That is true for whichever language is used to implement a solution - Ada, C, Forth, Java, xC, Pascal (OK probably not Smalltalk, since it silently flips to BigIntegers whenever overflow occurs :) )
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19447
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: 2017 Make with Ada competition
« Reply #24 on: May 19, 2017, 08:20:53 am »
... like buffer overrun cannot be circumvented in lower level languagge programming. there are many issues why a mistake happened, blaming on the tool alone is not a wise thing to do imho..

There's some validity to that, but only some.

Engineers should use the tools that will give the best results for the job at hand, not merely some that they are already familiar with.

If you want dubious analogies, then
  • you can use a cycle to cross the Alps - but in most cases it would be better to use a car
  • you can use a hammer to insert screws, but it is better to use a screwdriver
  • you can use C when designing hardware, but usually it is better to use an HDL such as Verilog or VHDL

C is too often used for insufficient reasons, e.g. "I'm familiar with it" and "I'm a better than average programmer".
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf