| Register | FAQ | Calendar | Search | Today's Posts | Mark Forums Read |
|
#1
| |||
| |||
| 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. |
|
#2
| |||
| |||
| 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 |
|
#3
| |||
| |||
| 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 :-). |
|
#4
| |||
| |||
| 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! |
|
#5
| |||
| |||
| 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. |
|
#6
| |||
| |||
| > 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? |
|
#7
| |||
| |||
| 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 Ofcourse, 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. |
|
#8
| |||
| |||
| You may find Richard Riehle's "Ada 95 Distilled" useful too. http://www.computer-books.us/ada95_2.php |
|
#9
| |||
| |||
| 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! |
|
#10
| |||
| |||
| 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 |
![]() |
| Thread Tools | |
| Display Modes | |
In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.