comp.lang.ada
 help / color / mirror / Atom feed
From: Sébastien <seb.morand@gmail.com>
Subject: Re: How Would a Hobbyist Learn Ada?
Date: Mon, 26 May 2008 09:38:01 +0000
Date: 2008-05-26T09:38:01+00:00	[thread overview]
Message-ID: <483A84F9.4040204@gmail.com> (raw)
In-Reply-To: 

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



  parent reply	other threads:[~2008-05-26  9:38 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-24  4:53 How Would a Hobbyist Learn Ada? Ankur Sethi
2008-05-24  7:58 ` Martin Krischik
2008-05-25 14:33   ` Ankur Sethi
2008-05-26  9:43     ` Sébastien
2008-05-24  8:10 ` mockturtle
2008-05-24  9:04   ` Ankur Sethi
2008-05-24 16:16     ` mockturtle
2008-05-24  9:39 ` Ludovic Brenta
2008-05-24 15:38   ` Ankur Sethi
2008-05-24 15:51     ` Ludovic Brenta
2008-05-24 16:13     ` Ed Falis
2008-05-24 17:10       ` Michael Feldman
2008-05-25  7:57         ` Paul
2008-05-29 23:53     ` Randy Brukardt
2008-05-26  9:14   ` Sébastien
2008-05-26  9:04 ` Thomas Locke
2008-05-26  9:21   ` Georg Bauhaus
2008-05-26 12:05     ` Thomas Locke
2008-05-26 18:59       ` Manuel Gomez
2008-05-26  9:38 ` Sébastien [this message]
2008-06-01  1:53 ` Adrian Hoe
2008-06-02 10:03   ` Sébastien
2008-06-02 12:31     ` Georg Bauhaus
2008-06-03 12:02       ` Ludovic Brenta
2008-06-03 13:31         ` Ed Falis
2008-06-03 19:48         ` Jeffrey R. Carter
2008-06-04  6:51         ` mockturtle
2008-06-04  7:56         ` Dmitry A. Kazakov
2008-06-04  9:41         ` Samuel Tardieu
2008-06-04 12:20         ` Alex R. Mosteo
2008-06-04 12:43         ` Steffen Huber
2008-06-04 18:36           ` Stefan Bellon
2008-06-04 21:39         ` Maciej Sobczak
2008-06-05  2:00           ` tmoran
2008-06-05  8:22         ` Sebastian Hanigk
2008-06-05 20:52           ` Simon Wright
2008-06-09  7:41             ` Sebastian Hanigk
2008-06-05  9:20         ` Sébastien Morand
2008-06-07  6:19         ` Jacob Sparre Andersen
2008-06-12  3:04         ` Randy Brukardt
2008-06-12  6:29           ` tmoran
2008-06-12 21:17             ` Randy Brukardt
2008-06-12 16:01         ` jdpetrey<REMOVE_TO_REPLY>
2008-06-09 16:22 ` ahab
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox