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; 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 ...

Go Back   Application Development Forum > Programming Languages > ADA

Object Mix

Register FAQ Calendar Search Today's Posts Mark Forums Read
  #1  
Old 05-24-2008, 12:53 AM
Ankur Sethi
Guest
 
Default How Would a Hobbyist Learn Ada?

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.
Reply With Quote
  #2  
Old 05-24-2008, 03:58 AM
Martin Krischik
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

Ankur Sethi wrote:

You can allways ask us!

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


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.

Martin

--
mailto://krischik@users.sourceforge.net
Ada programming at: http://ada.krischik.com
Reply With Quote
  #3  
Old 05-24-2008, 04:10 AM
mockturtle
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

On May 24, 6:53*am, 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).
>

(snip)
> 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.
>


Welcome aboard!
I am too a beginner in Ada (I discovered it less than one year ago),
so
my memories about my learning Ada are still fresh. Moreover,
you have a programming background similar to mine (but I use Ruby
instead
of Python), althoug maybe I have more experience (I finished high-
school
too much time ago, alas :-). This is my path in learning Ada

1. Got the GNAT suite. It is free and the latest release covers Ada
2005.

2. Read whatever tutorial I was able to find. Yes, you are right,
this is
a weak spot in our favorite language (there was a thread on this
newsgroup
few months ago). I guess that there is no tutorial
about Ada 2005, but you can start from the tutorial for Ada 95, then
add the
difference by reading the Rationale (see at http://www.adaic.org/standards/ada05.html).

About the reference: I agree that it is not the most readible document
in the
world, but it is handy to have when you program. I find a little bit
clearer
the "Annotated" version, although it is said that it is

"Intended primarily for compiler writers, conformance test
writers,
and others who wish to study the fine details"

I find that in more than one occasion the annotations make more
intuitive
the "CS legalese" used in the RM.

3. Most important (at least for me): pick a problem and start
programming. The
problem must be not too easy (a part, of course, the "Hello world"
program type that you
will write at the *very* beginning), nor too difficult. Just to give
you an
idea of the complexity, I will tell you that (because of my
background)
I decided to write a generic package for working with polynomials and
matrices
with coefficients in a ring.

I also would suggest taking a problem which requires multitasking. If
you
ever wrote multitasking programs in C/C++, you will fall in love with
Ada
at once... Also, try the "generic" programming and experience the
difference
with C++ templates...

A last warning: do not be scared if the first times you will have to
fight
half an hour to have your first progam compiled. Ada compilers are
quite
picky... (but that's why we love Ada :-).


Reply With Quote
  #4  
Old 05-24-2008, 05:04 AM
Ankur Sethi
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

Thanks for the pointers. I'm going off to read a Ada95 tutorial right
now ...

> I find a little bit clearer the "Annotated" version.


Just found it. I must say it is much more readable. In fact, not much
different from the Python reference.

> Most important (at least for me): pick a problem and start
> programming.


I generally try my hand at online-judge-type problems when I learn a
language. I did this for C, C++ and Python. I'll probably do the same
for Ada, then move on to something complex.

> I also would suggest taking a problem which requires multitasking. *If you
> ever wrote multitasking programs in C/C++, you will fall in love with Ada
> at once... *Also, try the "generic" programming and experience the
> difference with C++ templates...


I'm afraid I'm not that advanced a programmer yet. I never got to
understanding templates in C++, and nothing of that sort was ever
required in Python. But I've decided to learn every bit of Ada I can.
There must be at least one language I should master, and who knows,
Ada might be it!
Reply With Quote
  #5  
Old 05-24-2008, 05:39 AM
Ludovic Brenta
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

Ankur Sethi <get.me.ankur@gmail.com> writes:
> There's a Wikibook, but I've found it incomplete at several places
> and there are a lot of concepts I can't grasp.


It would be nice if you could tell us which parts of the Wikibook you
would like to see improved. I'm sure there are several people on this
newsgroup who would gladly help.

Welcome on board!

--
Ludovic Brenta.
Reply With Quote
  #6  
Old 05-24-2008, 11:38 AM
Ankur Sethi
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

> It would be nice if you could tell us which parts of the Wikibook you
> would like to see improved.


I didn't get too far into the book, but one chapter I feel needs work
is the one on the Ada type system. The code examples later in the
chapter went right over my head. Moreover, some beginning chapters
have paragraphs that seem out of place. They seem to have a paragraph
about concurrency somewhere in the first chapter. My reaction was :
"eh?".

It's a very nice book, yes. But for a newbie, it's not much help.
Somebody who has been programming for a while will undoubtedly pick up
Ada pretty quickly from that book. I found John English's "The Craft
of OO Programming" much better, although it is targeted towards
complete beginners and not people like me who already know how to use
another language (and covers Ada95, not Ada05).

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?
Reply With Quote
  #7  
Old 05-24-2008, 11:51 AM
Ludovic Brenta
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

Ankur Sethi writes:
>> It would be nice if you could tell us which parts of the Wikibook you
>> would like to see improved.

>
> I didn't get too far into the book, but one chapter I feel needs work
> is the one on the Ada type system. The code examples later in the
> chapter went right over my head. Moreover, some beginning chapters
> have paragraphs that seem out of place. They seem to have a paragraph
> about concurrency somewhere in the first chapter. My reaction was :
> "eh?".


I'll look into it I wrote or rewrote most of that chapter Of
course, if someone else beats me to it, that will be even better

> It's a very nice book, yes. But for a newbie, it's not much help.
> Somebody who has been programming for a while will undoubtedly pick up
> Ada pretty quickly from that book. I found John English's "The Craft
> of OO Programming" much better, although it is targeted towards
> complete beginners and not people like me who already know how to use
> another language (and covers Ada95, not Ada05).


I too like John English's book. Despite having 15 years programming
experience, I enjoyed it when first learning Ada. YMMV.

> 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?


Finalised in 2005, approved and published by ISO in March 2007. Yes,
John Barnes' book has already been updated. He also wrote the
Rationale for Ada 2005 which is available on http://www.adaic.com.

--
Ludovic Brenta.
Reply With Quote
  #8  
Old 05-24-2008, 12:13 PM
Ed Falis
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

You may find Richard Riehle's "Ada 95 Distilled" useful too.
http://www.computer-books.us/ada95_2.php
Reply With Quote
  #9  
Old 05-24-2008, 12:16 PM
mockturtle
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

On May 24, 11:04*am, Ankur Sethi <get.me.an...@gmail.com> wrote:
(snip)
>
> > I also would suggest taking a problem which requires multitasking. *Ifyou
> > ever wrote multitasking programs in C/C++, you will fall in love with Ada
> > at once... *Also, try the "generic" programming and experience the
> > difference with C++ templates...

>
> I'm afraid I'm not that advanced a programmer yet. I never got to
> understanding templates in C++, and nothing of that sort was ever
> required in Python. But I've decided to learn every bit of Ada I can.


I think you will discover that generic "stuff" (packages, procedures
and so on...) are much easier to use/understand than C++ templates.
If I think to my fights with "friend templates" a shudder runs
down my spine... (Ok, I am exaggerating a little bit... :-)

> There must be at least one language I should master, and who knows,
> Ada might be it!


Reply With Quote
  #10  
Old 05-24-2008, 01:10 PM
Michael Feldman
Guest
 
Default Re: How Would a Hobbyist Learn Ada?

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
Reply With Quote
Reply


Thread Tools
Display Modes


All times are GMT -5. The time now is 02:20 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.