Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Weakness of Ada is expensive / security / etc. ? Anything else?

603 views
Skip to first unread message

Trish Cayetano

unread,
Jul 17, 2015, 6:19:30 AM7/17/15
to
Hi, here is what I have noted as strengths and weaknesses of Ada. Let me know for any corrections and if you have anything to add... Thank you!

Strength and weaknesses of the language
Strength
- Semantics - well defined even in error situations
- Strong typing - can be used to reduce the scope (and cost) of analysis
- Quality - successfully used in many high integrity applications

Weaknesses
- Ada complete language is too complex. True or False? If true, how?
- Ada requires expensive compilers for large systems
- Ada lacks that web presence greatly. comp.lang.ada is the only location on the internet with an active Ada community.
- How is security a weakness? (Strength can be a weakness too?)

Simon Clubley

unread,
Jul 17, 2015, 6:48:00 AM7/17/15
to
On 2015-07-17, Trish Cayetano <trishac...@gmail.com> wrote:
> Hi, here is what I have noted as strengths and weaknesses of Ada. Let me know for any corrections and if you have anything to add... Thank you!
>
> Strength and weaknesses of the language
> Strength
> - Semantics - well defined even in error situations
> - Strong typing - can be used to reduce the scope (and cost) of analysis
> - Quality - successfully used in many high integrity applications
>
> Weaknesses
> - Ada complete language is too complex. True or False? If true, how?

The Ada language is also nicely modular. This means that you only need to
use the features which are appropriate to the problem at hand. It also
means you can write full Ada programs in a core subset of the language
without having to learn all it's features.

> - Ada requires expensive compilers for large systems

That's an incredibly sore point in some parts around here. You are
hereby warned about some of the responses you might get. :-)

For the serious response to this, the expense of the compiler depends
on the support required and the licence conditions of your code. If you
are willing to release the source code for any redistributed binaries
under the GPL more options open up.

However, this one item by itself puts Ada at a major disadvantage when
compared to other options such as C and C++.

> - Ada lacks that web presence greatly. comp.lang.ada is the only location on the internet with an active Ada community.

There are various resources scattered around the web, but comp.lang.ada
does appear to be the only major place for active discussions (apart
from some discussions on Stack Overflow).

> - How is security a weakness? (Strength can be a weakness too?)

Is this homework ? (the question seems to be worded in a strange way
and I don't really understand what you are trying to ask here).

Simon.

--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world

G.B.

unread,
Jul 17, 2015, 8:06:33 AM7/17/15
to
On 17.07.15 12:19, Trish Cayetano wrote:

> Weaknesses
> - Ada complete language is too complex. True or False? If true, how?
> - Ada requires expensive compilers for large systems

Assuming this is for PC style or server based programs,
comparing to Intel or Microsoft without MSDN,
you'd be near $$$ for Ada, too, if Atego still sells a license
the way they once did, for use with smaller projects and moderate
amounts of support only. RR Software's price list is online.

From what I hear, large systems support for Ada would actually
be cheaper than that first class support you can allegedly
buy from Apple, or Microsoft, or Oracle (at $$,$$$.-).

> - Ada lacks that web presence greatly. comp.lang.ada is the only location on the internet with an active Ada community.

Well put stackoverflow questions get decent answers,
if not superb answers. Do you need a sticker saying SocialAda
on your phone? What's a large system, then?

> - How is security a weakness? (Strength can be a weakness too?)

It takes brains and time to write reliable code, perhaps
a little less time if the language lends itself well to it.

David Botton

unread,
Jul 17, 2015, 8:54:14 AM7/17/15
to
> Weaknesses
> - Ada complete language is too complex. True or False? If true, how?

Your kidding right? Ada is readable and except for the ridiculous OO syntax fairly intuitive and easier to grasp the big picture than most languages. Have you looked at C++ lately? Or the new king of complex (almost everything can be express in like 10 freakishly different ways Nim?

> - Ada requires expensive compilers for large systems

FSF GNAT is a solid free open source professional compiler. Support services available from AdaCore for large or critical systems is _reasonable_ for the market (the fact that they try and hamper the other markets doesn't change their quality of service and reasonable pricing for their niche market.)

> - Ada lacks that web presence greatly. comp.lang.ada is the only location on the internet with an active Ada community.

Having a central source is a strength not a weakness. However there are actually 4 active discussion groups for Ada, not including OpenStack, etc. Comp.Lang.Ada (The Ada Community Home), #Ada on FreeNode (very active cool people), Google Groups Ada, and actually the Linkedin Ada group.

Check http://GetAdaNow.com, http://LearnAdaNow.com and http://JoinAdaNow.com for more resources.

> - How is security a weakness? (Strength can be a weakness too?)

You tell me..... You are the one asking the questions.

David Botton

Trish Cayetano

unread,
Jul 17, 2015, 11:35:47 AM7/17/15
to
Thank you so much for your response, Simon.
The security question is my personal question. Since Ada is known to be time-tested, safe, secure and reliable, is there an instance where these could be compromised?

Trish Cayetano

unread,
Jul 17, 2015, 11:38:23 AM7/17/15
to
G.B.,
Thanks for your inputs!

Trish Cayetano

unread,
Jul 17, 2015, 11:41:17 AM7/17/15
to
Thanks for the feedback and helpful links, David!

David Botton

unread,
Jul 17, 2015, 11:54:01 AM7/17/15
to

> The security question is my personal question. Since Ada is known to be time-tested, safe, secure and reliable, is there an instance where these could be compromised?

All security can be compromised. You can only reduce the chances and Ada is one tool amongst others that helps decrease those chances.

David Botton

Patrick Noffke

unread,
Jul 17, 2015, 12:20:26 PM7/17/15
to
On Friday, July 17, 2015 at 7:54:14 AM UTC-5, David Botton wrote:
> > - Ada lacks that web presence greatly. comp.lang.ada is the only location on the internet with an active Ada community.
>
> Having a central source is a strength not a weakness. However there are actually 4 active discussion groups for Ada, not including OpenStack, etc. Comp.Lang.Ada (The Ada Community Home), #Ada on FreeNode (very active cool people), Google Groups Ada, and actually the Linkedin Ada group.
>
> Check http://GetAdaNow.com, http://LearnAdaNow.com and http://JoinAdaNow.com for more resources.
>

Here is an excellent online resource:
https://en.wikibooks.org/wiki/Ada_Programming

Shark8

unread,
Jul 17, 2015, 1:31:09 PM7/17/15
to
On Friday, July 17, 2015 at 4:19:30 AM UTC-6, Trish Cayetano wrote:
> Hi, here is what I have noted as strengths and weaknesses of Ada. Let me know for any corrections and if you have anything to add... Thank you!
>
> Strength and weaknesses of the language
> Strength
> - Semantics - well defined even in error situations

And the "Bounded Error" option in the spec. (Which is essentially a step between "well-defined and specified behavior" and "undefined behavior".)

> - Strong typing - can be used to reduce the scope (and cost) of analysis

This should not be underestimated; you can protect (e.g.) a database against bad input with strong typing; you can enforce validity-checks and formatting with it too.

> Weaknesses
> - Ada complete language is too complex. True or False? If true, how?

False; while it's a 'big' language it's not difficult and full of gotchas -- if you use it regularly (and 'idiomatically') for a couple of years you're not going to be surprised by much... whereas with C++ you constantly see experts with decade-plus experience being surprised.

> - Ada requires expensive compilers for large systems

Semi-false -- This depends on what you're doing. FSF-GNAT is free, but comes with GPL; AdaCore-GNAT is also free but comes with a DIFFERENT GPL. Others like RR-Software or IBM's (they bought Rational) will have a different license.

> - Ada lacks that web presence greatly. comp.lang.ada is the only location on the internet with an active Ada community.

Semi-true -- others have given places where the Ada programmers hang out; but these places usually have an excellent signal to noise ratio. (There could stand to be more tutorials and such.)

> - How is security a weakness? (Strength can be a weakness too?)

It's not. Security is something you have to consider while designing the program; and having all the security in the world available means absolutely nothing if you don't use it. -- Ada *does* make a lot of security-related things easier with its strong-typing and, funnily enough, with its timing mechanisms. (You can [theoretically] eliminate the timing side-channel attack by marking the "time+maximal operation duration", do the operation, execute a "delay until X" [where X is the calculated time] and now the timing side-channel doesn't exist because that operation executes with constant time.)

Simon Clubley

unread,
Jul 17, 2015, 1:45:25 PM7/17/15
to
On 2015-07-17, Shark8 <onewing...@gmail.com> wrote:
> On Friday, July 17, 2015 at 4:19:30 AM UTC-6, Trish Cayetano wrote:
>> - Ada requires expensive compilers for large systems
>
> Semi-false -- This depends on what you're doing. FSF-GNAT is free,
> but comes with GPL; AdaCore-GNAT is also free but comes with a
> DIFFERENT GPL. Others like RR-Software or IBM's (they bought Rational)
> will have a different license.
>

In the case of FSF GNAT, the GPL applies to the compiler toolchain source
only; the RTL has the GMGPL exception (or whatever it's called these days).

Jeffrey R. Carter

unread,
Jul 17, 2015, 2:39:30 PM7/17/15
to
I'll stick my nose in here where I think I have something different to say from
the responses so far.

On 07/17/2015 03:19 AM, Trish Cayetano wrote:
>
> - Ada complete language is too complex. True or False? If true, how?

That depends on the definition of "too complex". C++ is a popular and widely
used language with an RM longer than the Ada RM, though C++ lacks modules and
concurrency. Clearly if Ada is "too complex" then C++ is also "too complex".
That doesn't stop it from being popular and widely used. Ada will never be
popular, since it supports the way S/W engineers think, while languages like
C/++ are for coders who don't want to think at all before they start coding, and
there are a lot more coders than S/W engineers.

Also, Ada has a number of unnecessary features added in an attempt to be
popular, such as support for programming by extension and anonymous types.
Luckily most Ada features are orthogonal, so you can ignore these features and
use the well designed and less complex remaining features.

> - Ada requires expensive compilers for large systems

Requires? Hardly. There are free compilers which can handle systems of any size
as well as any expensive compiler. There may be other project requirements that
drive the project to an expensive compiler, but using Ada does not, in and of
itself, require expensive compilers for any systems.

--
Jeff Carter
"Damn it, Jim, I'm an actor, not a doctor."
124

jm.ta...@gmail.com

unread,
Jul 17, 2015, 3:28:22 PM7/17/15
to
weakness
- Lack of popularity

I know popularity shouldn't be a point, but the lack of popularity drives to lack of tools, libraries...
That's a weakness unless it is a niche and very specialized language. And as far as I know Ada is supposed to be general purpose language.

I don't know how it works with non-PC. But, unless you go for GPL, commercial Ada is really expensive.

If you think not in the compiler alone, but in a framework, a framework to work properly with Ada compared to frameworks that use other language, Ada is expensive, really expensive and, leaving aside the compiler, much poorer.
GPS is a good IDE but not near Delphi or Visual studio, but prices are.. well.. for deep pockets.

Pascal Obry

unread,
Jul 17, 2015, 5:00:35 PM7/17/15
to
Le vendredi 17 juillet 2015 à 12:28 -0700, jm.ta...@gmail.com a écrit
:
> If you think not in the compiler alone, but in a framework, a
> framework to work properly with Ada compared to frameworks that use
> other language, Ada is expensive, really expensive and, leaving aside
> the compiler, much poorer.
> GPS is a good IDE but not near Delphi or Visual studio, but prices
> are.. well.. for deep pockets.

Sure, for deep pockets... It is free! Are you kidding or just very
poorly informed or trying a troll?

--
Pascal Obry / Magny Les Hameaux (78)

The best way to travel is by means of imagination

http://v2p.fr.eu.org
http://www.obry.net

gpg --keyserver keys.gnupg.net --recv-key F949BD3B

Shark8

unread,
Jul 17, 2015, 5:53:36 PM7/17/15
to
On Friday, July 17, 2015 at 3:00:35 PM UTC-6, Pascal Obry wrote:
> Le vendredi 17 juillet 2015 à 12:28 -0700, jm.tarrasa a écrit
> :
> > GPS is a good IDE but not near Delphi or Visual studio, but prices
> > are.. well.. for deep pockets.
>
> Sure, for deep pockets... It is free! Are you kidding or just very
> poorly informed or trying a troll?

I think he was referring to Delphi and Visual Studio.

Nasser M. Abbasi

unread,
Jul 17, 2015, 6:41:22 PM7/17/15
to
MS now have a free version of Visual Studio

https://www.visualstudio.com/en-us/products/free-developer-offers-vs.aspx

called Visual Studio Community. I downloaded it and used it
(it is needed for using Intel free Fortran compiler, for
students, it is free, since this compiler is integrated with
windows visual studio and has a nice GUI debugger).

Delphi from embarcadero also have a free version called
Delphi Starter Edition, for personal use only.

http://www.embarcadero.com/products/delphi/starter-faq

But the commericals versions are expensive yes.

--Nasser


Trish Cayetano

unread,
Jul 18, 2015, 3:40:15 AM7/18/15
to
Thanks all for your valuable inputs!!!

David Botton

unread,
Jul 19, 2015, 10:55:44 AM7/19/15
to
> I know popularity shouldn't be a point, but the lack of popularity drives to lack of tools, libraries...

It is only a part. The vendor focus for Ada is in a niche where the tools are either present or they provide all that is needed, So no R&D is focused outside of it for tools except a few open source volunteers, many of whom have left, or reduced contributions, because they feel snubbed by license games that drive down the popularity of the language and greater usefulness of their contributions. (As an example, I only chose Ada in the end for Gnoga because I wanted a last ditch effort to help Ada from become a completely obscure language as the current business models are set to do and the closing up of SigAda efforts, etc. but if I had written Gnoga in Python for example it would make a massive impact and quickly.)

> That's a weakness unless it is a niche and very specialized language. And as far as I know Ada is supposed to be general purpose language.

Yes, but small minded thinking is that preventing Ada's wider use will make the niche where it is used more valuable. In the big picture interest in Ada for general purpose use has resulted in its reduction in education environments and over the course of time the niche use will continue to disappear completely since other general purpose languages are attacking that same niche for business as well.

> I don't know how it works with non-PC. But, unless you go for GPL, commercial Ada is really expensive.

No, FSF GNAT works well for professional large projects. Although if large enough you will want as with any language and tool you use support which AdaCore offers at a very reasonable for market rate.

> If you think not in the compiler alone, but in a framework, a framework to work properly with Ada compared to frameworks that use other language, Ada is expensive, really expensive and, leaving aside the compiler, much poorer.

You'd have give specific examples, but Ada is not that far behind in most areas and ahead in others (like Gnoga :)

> GPS is a good IDE but not near Delphi or Visual studio, but prices are.. well.. for deep pockets.

They are different products and just comparing what is the same you will find Microsoft support is not so cheap and Delphi is outright ludicrous in price. (Actually who in their right mind would use Delphi over Lazerous and Free Pascal today anyways and if you are smart you'd use Gnoga over either of those :)

David Botton

Norman Worth

unread,
Jul 19, 2015, 10:40:55 PM7/19/15
to
On 7/17/2015 4:19 AM, Trish Cayetano wrote:
> Hi, here is what I have noted as strengths and weaknesses of Ada. Let me know for any corrections and if you have anything to add... Thank you!
>
> Strength and weaknesses of the language
> Strength
> - Semantics - well defined even in error situations

Yes. This is perhaps Ada's greatest strength. It is what makes Ada
safe and often what makes it reliably understandable. It is why many
errors that creep in with other languages simply can not happen in Ada.
But every Ada programmer has (fairly often) screamed at the compiler
"I didn't do that!" or "What the hell does that mean!" while staring at
an obscure error message. He then clicks in the appropriate place to
get the ARM reference and, momentarily, is even more confused. Of
course, he did make the error, and there is a sound meaning to the error
message. Despite the occasional frustration, I don't know of anyone who
seriously wants to relax the rules. Since a bit before Ada 95 it seems
to have become a serious area of study to find ways to make Ada easy to
use while keeping this strict semantic safety net.

> - Strong typing - can be used to reduce the scope (and cost) of analysis

Those of us who are used to it love it. Others really hate it. This
is a matter of training and experience. It is not always obvious how to
make strong typing work for you.

> - Quality - successfully used in many high integrity applications

> - Standardization - Ada is probably the most standardized
language in existence. This means that programs and systems can be
moved from one environment to another with little or no fuss, and they
work as expected when moved. It also means that programmers require
minimum retraining when going from one setting to another.
>
> Weaknesses
> - Ada complete language is too complex. True or False? If true, how?

It is not too complex, but it is complex. Fortunately, it is quite
modular, and you can use it effectively while learning the more obscure
or complex features. I might mention that other languages are also
becoming very complex, and they do not always share the modularity or
stright-forward and uniform style of Ada. Have you looked at the most
recent versions of Fortran and Cobol?

> - Ada requires expensive compilers for large systems

Not at all. I first used Ada (full Ada 83) on a North Star Z80
computer with a very cheap commercial compiler (RR Software). The
latest version of the language (Ada 2012) is fully supported by the free
GNAT compiler, which is available for just about all modern computers.
Even fully supported compilers are competitively priced, and the fully
supported version of GNAT (from AdaCore) is quite reasonable. These
compilers support systems of any size.

> - Ada lacks that web presence greatly. comp.lang.ada is the only location on the internet with an active Ada community.

Good point. Google "Ada language" and you will get a few more
references. But links are often out of date, and there is not much
activity. Even this forum does not see much action. The compiler
makers, like AdaCore, try to keep up some activities of their sites and
often have interesting articles and tutorials.

> - How is security a weakness? (Strength can be a weakness too?)

It isn't.

> - It is difficult to find modern and versatile development tools.

I have had Ada turned down as the development language for projects
because of this. GPS is an acceptable, if somewhat awkward, tool for
GNAT, but it pales in comparison to the tools available for C/C++.

> - It is difficult to find interfaces to standard libraries, like
Motif or the Windows GUI libraries or databases or to the standard
scientific libraries written for Fortran or C.

This can be a real problem. Most big projects rely on standard
libraries, and almost any user interface requires a GUI these days. The
interfaces often exist, but they can be hard to find. In some cases,
they are proprietary. GTKAda provides an interface to the GTK+
graphical interface routines for Linux. Unfortunately, it is hard to
use compared to Visual C++, and the documentation is difficult. GNAT
from AdaCore provides a Windows interface. (I haven't tried it.) There
is an old interface to XLib and Motif that used to work, but I haven't
seen it in years. GNAT from AdaCore has interfaces to some databases,
including an ODBC interface, but databases do not seem to be well
supported in general.

> - Programmers are reluctant to learn and use Ada because they feel
it limits their employment opportunities.
>

Serge Robyns

unread,
Jul 20, 2015, 5:52:03 AM7/20/15
to
On Monday, 20 July 2015 05:40:55 UTC+3, Norman Worth wrote:
> On 7/17/2015 4:19 AM, Trish Cayetano wrote:
> But every Ada programmer has (fairly often) screamed at the compiler
> "I didn't do that!" or "What the hell does that mean!" while staring at
> an obscure error message. He then clicks in the appropriate place to
> get the ARM reference and, momentarily, is even more confused.

Oh yes! Especially coming from the C class language families.

> > - Strong typing - can be used to reduce the scope (and cost) of analysis
>
> Those of us who are used to it love it. Others really hate it. This

This is what keeps Ada as general purpose language alive, but for how long?

> > - It is difficult to find interfaces to standard libraries, like
> Motif or the Windows GUI libraries or databases or to the standard
> scientific libraries written for Fortran or C.
>
> This can be a real problem. Most big projects rely on standard
> libraries, and almost any user interface requires a GUI these days. The
> interfaces often exist, but they can be hard to find. In some cases,
> they are proprietary. GTKAda provides an interface to the GTK+
> graphical interface routines for Linux. Unfortunately, it is hard to
> use compared to Visual C++, and the documentation is difficult. GNAT
> from AdaCore provides a Windows interface. (I haven't tried it.) There
> is an old interface to XLib and Motif that used to work, but I haven't
> seen it in years. GNAT from AdaCore has interfaces to some databases,
> including an ODBC interface, but databases do not seem to be well
> supported in general.
>

This is the killer for Ada acceptance. All other languages provides those libraries and are "usually" well documented. I had to revert to this forum to help me understanding why my XML SAX validating reader was not working, although I followed the examples posted by AdaCore. The solution is "read the source", which works when you already know the library well enough but not when you are learning how to use it.

I'm surprised that the AdaCore GNATCOLL SQL library has no "standard" support for Oracle, although it was already there in GNADE from which GNATCOLL SQL was build. I'm ok to work and contribute back, but this removes me from my own project. Moreover, the code is quite "shaky" and not resilient at all, which came as a bad surprise to me or a language like ADA.

Shark8

unread,
Jul 20, 2015, 1:35:37 PM7/20/15
to
On Monday, July 20, 2015 at 3:52:03 AM UTC-6, Serge Robyns wrote:
>
> I'm surprised that the AdaCore GNATCOLL SQL library has no "standard" support for Oracle, although it was already there in GNADE from which GNATCOLL SQL was build. I'm ok to work and contribute back, but this removes me from my own project. Moreover, the code is quite "shaky" and not resilient at all, which came as a bad surprise to me or a language like ADA.

GNATCOLL is terrible -- I've *never* gotten it to build w/ DB support and properly link... and that's even after the massive inconvenience of cygwin (needed because the blasted project needs .configure and make).

What's doubly disappointing about that is that GNATCOLL is presented by AdaCore (which presents itself as the public face of Ada) as one of the core useful-libraries and DOESN'T take advantage of Ada's nice portability instead relying on the crap-pile that is make and .configure even when they have/use GPR-files to represent a project themselves. (i.e. not using your own tools is a vote *against* your own product.)

If you adopt the "eat your own dogfood" position, you have an incentive to make that a quality system, fix bugs, and make it easier to use.

Serge Robyns

unread,
Jul 21, 2015, 7:17:35 AM7/21/15
to
On Monday, 20 July 2015 20:35:37 UTC+3, Shark8 wrote:
> On Monday, July 20, 2015 at 3:52:03 AM UTC-6, Serge Robyns wrote:
> >
> > I'm surprised that the AdaCore GNATCOLL SQL library has no "standard" support for Oracle, although it was already there in GNADE from which GNATCOLL SQL was build. I'm ok to work and contribute back, but this removes me from my own project. Moreover, the code is quite "shaky" and not resilient at all, which came as a bad surprise to me or a language like ADA.
>
> GNATCOLL is terrible -- I've *never* gotten it to build w/ DB support and properly link... and that's even after the massive inconvenience of cygwin (needed because the blasted project needs .configure and make).
>
> What's doubly disappointing about that is that GNATCOLL is presented by AdaCore (which presents itself as the public face of Ada) as one of the core useful-libraries and DOESN'T take advantage of Ada's nice portability instead relying on the crap-pile that is make and .configure even when they have/use GPR-files to represent a project themselves. (i.e. not using your own tools is a vote *against* your own product.)

I join you in this double disappointment. Trying to make things work with ORM requires trial and error to understand what part of the Python script doesn't like your database configuration. It took my days to make a useful session using sqlite, dropping some features supposed to be. Yes, I was shocked by crashes without any explanation of tools to be used in high reliable environments. And this as you said from the "face" of Ada.

> If you adopt the "eat your own dogfood" position, you have an incentive to make that a quality system, fix bugs, and make it easier to use.

But who will then do the coding on the project itself :-(

0 new messages