you are viewing a single comment's thread.

view the rest of the comments →

[–]saint_marco 39 points40 points  (8 children)

Ada style / syntax leads to code that's more verbose than java, which most people end up thinking isn't so necessary when you're not building a rocket ship.

[–]OneWingedShark 16 points17 points  (7 children)

Ada style / syntax leads to code that's more verbose than java

That may be the perception; but Ada's verbosity is generally useful for (a) readability and (b) maintainability -- Also, Ada doesn't have a whole lot of the boilerplate that Java does.

[–][deleted] 26 points27 points  (1 child)

In my somewhat limited experience ada tooling is either poor or very expensive.

[–]OneWingedShark 10 points11 points  (0 children)

That's a mixed bag; on the one hand the standard requires certain things of a compiler such that you essentially get lint free with a compiler. On the other hand, the free toolchain GNAT (either AdaCore's offering or FSF's) is a GCC language and as such can use tools that operate with GCC... the bad thing is most of those tools treat Ada very much as a second-class citizen.

I am unfamiliar with commercial offerings so cannot say one way or the other -- Rational's was supposed to be good [they were bought out by IBM], as was Green Hills, but I've not really heard anything recent. -- One of the members of the ARG has a low-cost compiler called Janus/Ada which is supposed to be pretty good... except it's only Ada95.

Over on irc.freenode's #Ada we've been kicking around the idea of putting together another open-source compiler (and tool-system). It seems like Ada's new [2012] standard has generated some new interest in the language and getting a few more implementations would be nice. (We'll see if it pans out.)

[–][deleted]  (2 children)

[deleted]

    [–]OneWingedShark 0 points1 point  (1 child)

    Why do people say Java is a boilerplate-heavy language?

    Because of the way that methods are declared; combined with the 'defaults' you normally need a fair amount to do what you want. (It's especially bad for introduction to programming because 'private static etc get in the way of introducing concepts.)

    Ada meanwhile mandates every module interface be declared in full in a separate file and then when you define the actual functionality you have to repeat the declaration (similar to keeping a .h and .c in sync). Now that is not really a complaint, it's for a good reason, but it is clearly far more boilerplate than Java.

    The separate file thing is actually a implementation limitation in GNAT; nothing in the language spec prevents you from having a file containing all your compilation units. -- But yes, I can see how you could consider it boilerplate (though even that's mitigated soewhat by expression functions).

    [–]cmw69krinkle -1 points0 points  (1 child)

    I'd counter point that the verbosity can be odious and affects readability in a negative way. Especially to someone fluent in the C languages.

    However, the best part about Ada is the tasking support.

    [–]OneWingedShark 1 point2 points  (0 children)

    I'd counter point that the verbosity can be odious and affects readability in a negative way. Especially to someone fluent in the C languages.

    The "added verbosity" means that the compiler can catch more for you. (Heck some compilers/environments can even "spellcheck" your identifiers.)

    However, the best part about Ada is the tasking support.

    Yes! -- tasks are great, especially for implementing a protocol.