How Would a Hobbyist Learn Ada?

This is a discussion on How Would a Hobbyist Learn Ada? within the ADA forums in Programming Languages category; "Michael Feldman" <mfeldman @ gwu.edu> wrote in message news:g19i5d$agd$1 @ aioe.org... > Ed Falis wrote: >> You may find Richard Riehle's "Ada 95 Distilled" useful too. >> http://www.computer-books.us/ada95_2.php > > I recommend this one as well. Lots of good program examples. The author is > a long-experienced teacher of Ada in industry. > > http://www.adaic.com has several more downloadable books. > > Mike Feldman Ludovic already mentioned him but I recommend John Barnes' book "Programming in Ada". Don't know what edition is current but I have both the 2nd and 3rd editions. The 2nd edition nearly fell apart because of ...

Go Back   Application Development Forum > Programming Languages > ADA

Object Mix

Register FAQ Calendar Search Today's Posts Mark Forums Read
  #11  
Old 05-25-2008, 03:57 AM
Paul
Guest
 
Default Re: How Would a Hobbyist Learn Ada?


"Michael Feldman" <mfeldman@gwu.edu> wrote in message
news:g19i5d$agd$1@aioe.org...
> Ed Falis wrote:
>> You may find Richard Riehle's "Ada 95 Distilled" useful too.
>> http://www.computer-books.us/ada95_2.php

>
> I recommend this one as well. Lots of good program examples. The author is
> a long-experienced teacher of Ada in industry.
>
> http://www.adaic.com has several more downloadable books.
>
> Mike Feldman


Ludovic already mentioned him but I recommend John Barnes' book "Programming
in Ada". Don't know what edition is current but I have both the 2nd and 3rd
editions. The 2nd edition nearly fell apart because of the use it got. I
had no formal training in Ada but had a background in Pascal and assembler.
The application I wrote in the mid to late 80's is still in use today.

Paul


Reply With Quote
  #12  
Old 05-25-2008, 10:33 AM
Ankur Sethi
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

> Please continue the Wikibook - that way you can build on what is there and
> don't have to start from scratch and eventually we have a really
> comprehensive tutorial.


Sure, will do. But once I'm through John English's book, and the Ada05
rationale.

I was wondering why more people don't use Ada. So far, it's much
easier than C++ and the compiler errors are 100x friendlier. I mean,
even dynamic languages (Python, I'm looking at you) don't have the
kind of programmer friendly, human readable errors GNAT has been
spitting out.

Thank you everyone for the help I've bookmarked all the links from
this thread. I'll go over them tonight.
Reply With Quote
  #13  
Old 05-26-2008, 05:04 AM
Thomas Locke
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

Ankur Sethi wrote:
> So, what would an amateur, cash deprived programmer like me do to
> learn Ada?



I've had much benefit from studying this link:

http://www.rosettacode.org/wiki/Ada

Sort of a cookbook project. )


> PS : Once I learn this language, I *swear* I'm writing my own
> tutorials so other hobbyists can benefit.



I feel just like you! I'm also a beginner, and I've had much trouble
finding material for what you call "hobbyists".

It seems as if most Ada related literature is written for people with
extensive programming knowledge - there's not much to go on for the
average "wet behind the ears" beginner.

Perhaps we should see if we can round up all the newbies out there, and
combine our efforts? We could help make the Ada Wiki more newbie
friendly. )

/Thomas
Reply With Quote
  #14  
Old 05-26-2008, 05:21 AM
Georg Bauhaus
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

Thomas Locke schrieb:

> It seems as if most Ada related literature is written for people with
> extensive programming knowledge - there's not much to go on for the
> average "wet behind the ears" beginner.


Have you seen this,
David J. Naiditch, Rendevouz with Ada 95.

Also, start at chapter 2, not 1, in John English's book,
http://www.cmis.brighton.ac.uk/~je/adacraft/ch02.htm

> Perhaps we should see if we can round up all the newbies out there, and
> combine our efforts? We could help make the Ada Wiki more newbie
> friendly. )


The Wikibook has just a few tutorial pages; would you think
that tutorial examples alongside the concepts will help?
Or does the need to have something fully targetted at specific
questions? If so, please ask. Maybe here, or maby on the
discussion pages in the Wikibook.


-- Georg
Reply With Quote
  #15  
Old 05-26-2008, 05:38 AM
Sébastien
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

Hi Ankur,

I can share with you my experience since I started learning ada a few
months ago.

First interesting think, you will get a lot of help in this forums since
all my questions were answered here.

> I was attracted to Ada because it was :
> 1. Sanely Object Oriented - It doesn't force OO like Java and C#.


Yes, that's the point, even If I find out some standard library could be
OO, I thinks, there si some advantage to choose what is an object and
what is not, even if I'm a fan of OO paradigm.

> 2. Compiled - I *want* to do manual memory management so that I can at
> least understand what automatic garbage collection means to me. I've
> been living comfortably with Python for too long.
> 3. Uniform Syntax - I find C++ syntax weird. C was okay, though.


C++ is going to tghe right way. The compiler is really permissive, it's,
it's not completly object, and you can do bad code that's not possible
to maintain several weeks later. So there is some nice stuff in C++ (I'm
working with C++ for years) but I still can't understand people that
choose C++ for big application (like KDE and other graphics stuff), Ada
could have been more suitable...

> I'm sure there are other benefits, but I really don't understand what
> they mean to me (yet).


The other benefits are mainly that Ada force you to write good code.
What does it mean? It mean you have to exaclty say what you want to be
done, so there is so few suprises in the runtime, that's amazing. I
started to create a Web application to manage contacts in a callcenter
learning ada in the same time. In less than one month, I get something
working. I still need to improve the design to get my component more
reusable, but it's just because I'm learning during developpement phase.

So I think that's a real good thing to learn Ada and to participate to
the promotion of this language that too many people think it's already dead.

> So, what would an amateur, cash deprived programmer like me do to
> learn Ada? There are web tutorials, for for the 95 standard. There's a
> Wikibook, but I've found it incomplete at several places and there are
> a lot of concepts I can't grasp. There's the reference document, but I
> can't make head or tail of it.


The first step is to learn the main aspect of the language:
- Main syntax: Control structure, all the aspects of types, difference
between new type and subtype, array, access type, limited and private type.
- Strings API: Ada.Strings.Fixed vs Ada.Strings.Unbounded. How to
convert to string or from string. How to manage Intefeger and Float numbers.
- Ada programming style: Procedure, function and package, how to manage
a project, the gpr files to get a project structured. in / in out / out
/ access parameters, the difference and the use. The nested packages,
procedures and functions.
- OO: tagged and record, overloading and polymorphism
- Error management: Exception in Ada, simple and powerfull.
- Generic: Making a generic package / procedure / function, how to use
it. Why C++ templates can definitivly go to bed.
- Tasking: How to multitask a program, tasking is a part of the language
in the difference of main language like C or Python.

Then you can start to leard a few intersting library functions: Containers.

The point is to create program for all this stuff to get familiar with
them. For instance, create a program which read an integer, print it,
calcul it. Try to see the contraint type, if your integer is too big,
how ada manage? and so on. Then do the same with string, see how to
store string, why you have to be carefull using string and why Unbounded
strings can save your implementation and so on.

At least you will have to determine you first program, is a console
program? Graphics program? Web program? Ada has library for all this stuff.

Sebastien
Reply With Quote
  #16  
Old 05-26-2008, 05:43 AM
Sébastien
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

> I was wondering why more people don't use Ada. So far, it's much
> easier than C++ and the compiler errors are 100x friendlier. I mean,
> even dynamic languages (Python, I'm looking at you) don't have the
> kind of programmer friendly, human readable errors GNAT has been
> spitting out.
>
> Thank you everyone for the help I've bookmarked all the links from
> this thread. I'll go over them tonight.


Yes when you have an error in Ada, the compiler is so nice, it's
touching. In most language youo ask yourself "What can i do to correct"
in Ada, the compiler tell you what to do, so just do it ;-)
Reply With Quote
  #17  
Old 05-26-2008, 08:05 AM
Thomas Locke
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

Georg Bauhaus wrote:
> Have you seen this,
> David J. Naiditch, Rendevouz with Ada 95.



Nope, haven't seen that. Thanks!


> Also, start at chapter 2, not 1, in John English's book,
> http://www.cmis.brighton.ac.uk/~je/adacraft/ch02.htm



A very nice link. Thanks again Georg.


> The Wikibook has just a few tutorial pages; would you think
> that tutorial examples alongside the concepts will help?



YES!

For the average IQ person, I believe examples are much easier to grasp
than pure concepts. Combine the two, and everything is golden, IMHO.

I think a good example of a near perfect online "manual" is how the PHP
folks have done it.

http://php.net/manual

I know that PHP is a *much* simpler language to write a manual for, as
we're not as close to the metal as with Ada, but the concept of having
examples littered all over the place is a good one. Also the user
comments can be a great help.

The cross-references are also a great help, e.g. on the time() manual
pages there are links to stuff like microtime() and date(), as their
functionality overlaps to a certain degree.


> Or does the need to have something fully targetted at specific
> questions?



I think this is handled quite well @ http://www.rosettacode.org/wiki/Ada

Perhaps a link to that site could be put on the wiki - somewhere
visible. )

/Thomas
Reply With Quote
  #18  
Old 05-26-2008, 02:59 PM
Manuel Gomez
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

On 26 mayo, 14:05, Thomas Locke <tho...@kenshi.dk> wrote:
> I think this is handled quite well @http://www.rosettacode.org/wiki/Ada
>
> Perhaps a link to that site could be put on the wiki - somewhere
> visible. )
>


I've just added it to our list of Wiki pages [1], where it definitely
should have already been.

[1] http://en.wikibooks.org/wiki/Ada_Programming/Wikis

Regards
Manuel
Reply With Quote
  #19  
Old 05-29-2008, 07:53 PM
Randy Brukardt
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

"Ankur Sethi" <get.me.ankur@gmail.com> wrote in message
news:7a25cac8-40d6-4c92-84f6-b3e7187f4fe9@i36g2000prf.googlegroups.com...
....
> A question : when was the Ada 2005 standard defined? Wikipedia says it
> was in 2007. If that's true, we should soon be having books about it,
> right?


There are at least a few books out at this time. See
http://www.adaic.org/learn/textbook.html. I don't know of any freebees yet,
though. (I believe Richard Riehle said he was updating Ada Distilled, but he
obviously hasn't finished that yet.)

Randy Brukardt.


Reply With Quote
  #20  
Old 05-31-2008, 09:53 PM
Adrian Hoe
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

On May 24, 12:53 pm, Ankur Sethi <get.me.an...@gmail.com> wrote:
> n00b question? Probably. Can I find my answer somewhere else? Nope. Do
> I have any other place to turn to? Definitely not.
>
> I'm a hobbyist programmer just out of high school. I've been dabbling
> in C and Python for a while now, and would probably take up CS in
> college (just a few months from now).
>
> I was attracted to Ada because it was :
> 1. Sanely Object Oriented - It doesn't force OO like Java and C#.
> 2. Compiled - I *want* to do manual memory management so that I can at
> least understand what automatic garbage collection means to me. I've
> been living comfortably with Python for too long.
> 3. Uniform Syntax - I find C++ syntax weird. C was okay, though.
>
> I'm sure there are other benefits, but I really don't understand what
> they mean to me (yet).
>
> So, what would an amateur, cash deprived programmer like me do to
> learn Ada? There are web tutorials, for for the 95 standard. There's a
> Wikibook, but I've found it incomplete at several places and there are
> a lot of concepts I can't grasp. There's the reference document, but I
> can't make head or tail of it.
>
> A big, warm hearted "thank you" , in advance, to anybody who helps
>
> PS : Once I learn this language, I *swear* I'm writing my own
> tutorials so other hobbyists can benefit.



Welcome on board!

I learned Apple Basic, Pascal, FORTRAN and then C/C++ and with some
GUI languages such as Paradox before I got into Ada. At that time
(around 1995), the Ada resources on the Internet was scarce. I managed
to get a book by Jogn G. Barnes, "Programming in Ada" and later
Michael Feldman's 2 books, "Software Construction and Data Structures
with Ada95" and "Ada95 - Problem Solving and Program Design". Then I
managed to find John's 2nd book "Programming in Ada95". I would say
John's books are Ada's bible, apart the ARM.

You can find the books I have here: http://adrianhoe.com/adrianhoe/projects/ada/

Alternately, WikiBook is another good learning resource for Ada.

Start using Ada in whatever project you have. May it easy or
difficult. You will learn better when you bump into problems.

Enjoy Ada.
--
Adrian Hoe
http://adrianhoe.com/adrianhoe/
Reply With Quote
Reply


Thread Tools
Display Modes


All times are GMT -5. The time now is 06:29 AM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
vB Ad Management by =RedTyger=

In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.