Amiga.org

Operating System Specific Discussions => Amiga OS => Amiga OS -- Development => Topic started by: melott on February 22, 2003, 04:47:25 PM

Title: Beginner Programing
Post by: melott on February 22, 2003, 04:47:25 PM
From one beginner to any others....
There was another thread started by someone
asking the best way to get started programing.
He received advice on everything from Fortran
to Java.
I wouldn't be supprised if he gives up.
Since I am a beginner I can relate to his problem.
Nobody said anything that was very helpful (IMHO).
I wanted to start programing, and I have several
options open to me. I have numerious manuals
languages ether perched or given to me,all legal.
And the route I chose to take was to start with
AmigaBasic. And yes I know its CRAP, but its also
probably the most documented. Books and example
code both good and bad are very easy to find.
When I started school and they tought me to read
they didn't give me the book "War & Peace" to learn
from, they gave me "Dick & Jane see Spot run".
My opinion is to start with AmigaBasic and except
the scoffs and Boo's. Its the easiest way.
There is no substatute manuals and there is probably more writen on basic than any other.
AmigaBasic will run on your Classic Amiga.
I have an A3000, 3.1 OS, A3640 accelerator and
a Retina Z2 gfx card and it runs quite well.
I have moved on to Blitz2 now, AmigaBasic can
only take you so far than you have to move on.
Maybe "C" will be next or maybe not, I don't know.
I am enjoying my self, not racking my head with
"Information Overload" that I would be getting
tring to learn "C".
Its very difficult to try to understand a concept
if you don't even know what the concept is that
you are tring to understand.
So start small, AmigaBasic or AREXX.
You'll know when you are ready to move up.

 (IMHO)
Mel Ott

 :-)  :-)
Title: Re: Beginner Programing
Post by: alx on February 22, 2003, 05:07:24 PM
I agree with you on most of that.  Here's my advice on learning to program...

Despite what many people say, Basic is still a very good language to start with, and most Basic languages behave the same for simple stuff like  string handling.  The main gripe that people have with AmigaBasic is that it isn't very compatible.  A better solution is to look around and find a small freeware Basic (there are plenty around).  This should be compatible with AmigaBasic, and with your system!

Once you can program well in any Basic, you can then move onto something like C.  My advice is NOT to use somehing like AMOS.  It was great when it was new, but really shows its age now.  The advantage to AMOS was the ability to make nice effects using lots of high level commands.  AMOS doesn't even support AGA!
Title: Re: Beginner Programing
Post by: Targhan on February 22, 2003, 06:04:58 PM
I agree with the concepts, but I feel that someone who's never coded a line at all should start at the very beginning.  On an Amiga, that would be an AmigaDOS script.

Between AmigaDOS and IconX, a beginner can see result immediately.  Once a few scripts have been written they can move to Basic, ARexx, or any number of other "beginner" languages.

Example:

From OS3.5's (or above) EditPad, type the following:

avail flush

Save the file(call it GarbageCollector); then, open the icon-information.  Where the default tool says "EditPad," type IconX in it's stead.  (If your system is not set up correctly, you may have to give the path to IconX).  

Now, you have your first program that actually does something!  Double click on GarbageCollector and marvel at the program you created!  :-)


Title: Re: Beginner Programing
Post by: takemehomegrandma on February 22, 2003, 06:14:37 PM
@ Targhan

Quote
I agree with the concepts, but I feel that someone who's never coded a line at all should start at the very beginning.


You mean the C64?  :-D

The CommodoreOne is soon coming to a desk near you! :-)
Title: Re: Beginner Programing
Post by: Targhan on February 22, 2003, 06:29:10 PM
load ,8,1
Title: Re: Beginner Programing
Post by: iamaboringperson on February 22, 2003, 08:10:58 PM
@melott

Quote
And the route I chose to take was to start with
AmigaBasic

and the experienced ones are telling you NOT to start with basic, they were beginners once too!
heck, I started with basic, when i was a kid, but i wish i had of started with C++!
Quote
And yes I know its CRAP, but its also
probably the most documented. Books and example
code both good and bad are very easy to find.

no, these days C & C++ have much more & better documentation...
Quote
When I started school and they tought me to read
they didn't give me the book "War & Peace" to learn
from, they gave me "Dick & Jane see Spot run".
My opinion is to start with AmigaBasic and except
the scoffs and Boo's. Its the easiest way.

C/C++ is not like war and peace, if you start learning C/C++/Java you will eventually find that out

void main(void)
{
printf("this is Dick and Jane see Spot run, trust me");
}

start with the simplest of c programs, and gradually work your way up, you have no idea how easy it is
the easiest way is NOT to learn a procedual language, & procedual programming techniques, and then to learn a structured or OOP language, unlearning all your old habbits
the easy way to programming it to concentrate on ONE language - TRUST THOSE WHO KNOW
Quote
I am enjoying my self, not racking my head with
"Information Overload" that I would be getting
tring to learn "C".

its not info. overload if you take it one step at a time
its like eating an elephant
 :-)  :-)
Title: Re: Beginner Programing
Post by: Step on February 22, 2003, 08:31:40 PM
I really would like to start with C myself, but theres always the small stuff that causes problems, like a book that focuses on a different OS and compiler, small differences that makes stuff really hard for an inexperienced person.

There is no obvious place for an Amiga owner to start from scratch, very little material and even less courses etc...

If/when OS 4 is released it would be totally awsome if some experienced coders could get together and focus on teaching C/C++ programming and really figure out new ways to teach people without a coding background. (Courses could mean revenue) :-D

Obviously, the  folks at Amiga and Hyperion really should make an effort to promote development aswell as it could boost the platforms viability.
Title: Re: Beginner Programing
Post by: lorddef on February 22, 2003, 09:09:55 PM
Hmm, I agree basic is a nice little starting point, easier to start off and all, but really once you have gotten your head around the basics of C, or java its just as easy, no forget that its easier.

I would say Java would be just as easy to learn as basic if you started out with no knowledge at all.  With C the main thing you have to get you're head around is memory allocation and pointers, but you can do ####ty little programs like the ones you do in basic without even knowing them.
Title: Re: Beginner Programing
Post by: Turrican on February 22, 2003, 09:57:06 PM
If there is a PC available I would suggest getting one nice copy of the latest Mozilla browser and start practicing your programming skills with JavaScript.

This way you get some beatifull debuging tools, you don't mess with compilers AND you can use the HTML DOM as the the 2D graphic API (wich is far easier to learn than a real language's one).

Beware, though, if you follow this way, FOCUS ON ONE BROWSER (at least for the start...).

Anyway that is the way I started some years ago (Amstrad CPC 6128 Basic 1.1 experience not included! :)) and now with a lot of reading and practicing  I am a profesional...
Title: Re: Beginner Programing
Post by: jdiffend on February 22, 2003, 10:48:04 PM
Basic is good to learn simple things like variables, loops and stuff like that.  It gives immediate feedback during execution so you can see some of the common beginner mistakes easily.

The only reason Basic used to be so much easier to learn on was that you didn't have to manage windows and other OS stuff just to print a message to the screen.  It also came with the machine and you could pick up magazines that had dozzens of programs you could type in.  There's nothing quite like typeing in programs and then running them to teach you how things work.  You could run the program and stop it at any time to see what code was executing and you could see how something actually worked a line at a time by stepping through the code.

The most common problem with C is you can't just start programming like basic.  You have to learn about include files, compilers, linkers and object libraries just to print "hello world" on the screen.  

If you have access to a PC, there used to be a C interpreter that would let you do the same thing with C.    Not sure what it was called but you could do the same kind of stuff as Basic.  A search on Google turned up several C interpreters.  CINT works on the console (text only) so it might be worth checking out.

Once you have the basics of programming down you'll want to learn about compilers and object oriented programming.  Compilers first I'd say.  Integrated development environments are a nice way to ease into it but the old Turbo C is a lot easier than the new IDE's.

Java is nice because it prevents you from doing things that would be perfectly legal in C but very undesirable.  However, you dive into the concept of objects rather quickly and the complexity and number of objects could overwhealm you in a hurry without help.
One plus is the availability of free development environments, tools and documentation.

Title: Re: Beginner Programing
Post by: jdiffend on February 22, 2003, 11:12:10 PM
Oh yeah, one other thing.  it was much more difficult to crash the machine in Basic than it is in C/C++.  That can be very frustrating for a beginner.  Pointers can be very tricky and can cause you problems even if you've been programming for years.  That's part of the reason so many people like Java.  It doesn't let you poke around in memory like C does.
Title: Re: Beginner Programing
Post by: jdiffend on February 22, 2003, 11:28:37 PM
You can find links to free C/C++ Compilers and Interpreters here (http://www.thefreecountry.com/compilers/cpp.shtml).

If you have a PC the old Turbo C, Turbo C++ and Turbo Pascal are available free.  Also, a newer Borland C++ compiler is available without the IDE.
Title: Re: Beginner Programing
Post by: Ilwrath on February 22, 2003, 11:56:07 PM
I tend to agree that Pascal is underrated at learning on.  It leads easily into C.  (Which also isn't a bad place to start, if you don't mind jumping in the deep end a bit to learn.)  I've also found I like Java a lot, but I learned it late.  (Well after Pascal and C -- so I can't speak on it as to how easy it is to learn from early.)

Whoever recommended Fortran was obviously trying to discourage the poor person.  Hell, I think I'd choose FoxPro or LISP first.  (And I'd only choose either of those if hemlock wasn't available.)

Most people who don't recommend BASIC for starting with, are like me and DID start with BASIC.  I remember having to "unlearn" all sorts of things you can do in BASIC but really shouldn't do in any other language...  Sure... it's easy to learn.  Sort of like slang.  Just because you know it, and it sometimes works, it doesn't mean you should use it on a report...
Title: Re: Beginner Programing
Post by: peroxidechicken on February 23, 2003, 12:32:38 AM
Hello Melott.  Don't you hate backseat drivers?  How did you go with AmigaBASIC on your A3000?  

When I started with AmigaBASIC, one of the first programs I tangled with was this:

rem --- mandelbrot set for amigabasic ---
rem --- by tim stepthens 1990 ---
screen 1,640,200,4,2
window 2,"mandelbrot set",,31,1
color 1,2
cls
locate 10,11
input "interations (1 to 1000) ",iter
cls
if iter=0 then iter=25
a:
a=0
for y=0 to 93
for x=0 to 617
b:
zx1=(x-410)/190
zy1=(y-95)/90
zy=zy1
zx=zx1
c:
for a=1 to iter
zy2=zy*zy
zx2=zx*zx
if zy2+zx2>4 then goto d
zy=2*zx*zy+zy1
zx=zx2-zy2+zx1
next a
goto f
d:
d=a mod 16
color d
if d=2 then color 1
e:
pset (x,y)
pset (x,186-y)
f:
next x
next y

 - fractals were all the rage 15 years ago!  But I think the important thing is that it gives some visual feedback - so many program examples for lower level langages don't do that.  
Title: Re: Beginner Programing
Post by: jdiffend on February 23, 2003, 01:27:16 AM
I know a lot about AmigaBasic.  The problem with AmigaBasic is that it doesn't even run if you have too much memory.  It also does it's share of crashing too.

I used to write libraries for AmigaBasic so that it could do a lot of advanced stuff.  Picture loaders with color cycling, all sorts of sound routines, mod music players... you name it.  The libraries were written in C and assembly.  I *might* still have the docs and examples for the libs somewhere if anyone was actually interested.

If you choose to go with AmigaBasic (which I always thought sucked), try to pick up a copy of  the Absoft Basic compiler (I think that was the one we used).  It worked with most standard code and added some extensions that were nice as you get more advanced.

FWIW, I did some looking around and there is a C interpreter that works like Turbo C.  It's called the Quincy C interpreter.  But it is for the PC.

Title: Re: Beginner Programing
Post by: star1 on February 23, 2003, 02:42:33 AM

I know C/C++ is bit difficult
things like pointers can drive you nuts but
with practise you can become better at it.

I would suggest that you guys first pick up a good book on C than branch out OOP (c++) or java.

There tons of good books on c/C++ out there.

Be patient, programing takes a lot of time to learn and dont get frustrated....


Also do not start programming on the amiga if start of programing for the first time.

First of all, there not alot of resourses(books) on amiga platform. When you get stuck, it can difficult to find help.

Therefore, go out and buy a book on C first and learn programming on the PC platform. Pc have alot more resourses to help you out. Once
you have learned come back to the amiga, that way you will feel much comfortable.

This link below gives the best free compiler and ide to learn c/c++:

http://www.bloodshed.net/devcpp.html (http://www.bloodshed.net/devcpp.html)

good luck.


 :-D  :-D  :-D  :-D
Title: Re: Beginner Programing
Post by: iamaboringperson on February 23, 2003, 03:07:01 AM
Quote
Also do not start programming on the amiga if start of programing for the first time.

DO start programming on the amiga, its not that hard



i see 'beginners programming' as
learning the simple parts of a proper language like C or C++
and continuing on to the harder parts
NOT starting with a crap language, and then when you realise its way to easy, so damn easy that you have been wasting your time, you decide to move to C/C++ wasting yet more time trying to program C in a procedual way
using goto's etc... and making spagetti code
it isnt going to help you

forget this idea that basic is the beginers language, and C is the hard language
C & C++ are easy to start with too!

just start learning and you will find that out

Title: Re: Beginner Programing
Post by: weirdami on February 23, 2003, 05:51:04 AM
I started with C=64 BASIC. Why not go with that? Get yourself an old Commodore 64. It's got the BASIC stuff built into the OS. No loading the interpreter or anything. Start programming at the prompt.
Title: Re: Beginner Programing
Post by: jahc on February 23, 2003, 06:10:06 AM
ALL YOU NEED TO DO TO START PROGRAMMING IS...

1. Get a C or C++ compiler (try aminet)

2. Go to www.google.com and search for "c tutorial" or "c++ tutorial"

and then after a few days/weeks...

3. get the Amiga Developer CD to learn AmigaOS specific stuff

thats it! stop moaning and start doing something. (I mean that in a nice way).
Title: Re: Beginner Programing
Post by: melott on February 23, 2003, 03:12:04 PM
Quote
Stop moaning and start doing something

IMHO, I think you guys are making a mistake.
You are pushing anyone that wants to do some
programing into using "C". Instead of bullieing
them into a language they don't want to try yet
you should be offer help and incouragement in
in any language they choose. You speak of
learning bad habbits. I don't agree, they learn
different habbits. The structure in basic is not
bad, just different. As an example, you should
not learn the English language as it teachs bad
habbits. Look at most other languages. Their
structure is simular. In Spanish and many others
you say "cosa blanca" or "house white".
So English is bad, we say "white house".
English is not bad, its just different.
I say you should support and help the new
programer in what-ever language he or she
wants to start with.
Amiga needs them to be incorriged, "NOT"
discorriged.

(IMHO)
Mel Ott


 :-)
Title: Re: Beginner Programing
Post by: jdiffend on February 23, 2003, 06:02:02 PM
I (for one) am not trying to push them to C.  Learning C is as much about learning the tools as it is about learning the language.  That makes it tougher on a beginner that may not like programming anyway.

If it were an older Basic like I learned on I'd say stay away from it.  I don't remember what additional features the Basic compiler we used added, but the code didn't use line numbers, GOTO or other things that teach bad programming practices.   We wrote a full accounting package in it.  With an editor you can write macros for you can compile wth a single keystroke.

Learn a little on the interpreter.  Once you start having problems with it's bugs or speed, find the compiler.  It will introduce you to compilers and make your programs run a lot faster.  Once you see the difference you won't want to go back.

I try to get people to start C on the PC because:
1. The tools are excellent and old ones are free.  Turbo C/C++ baby you through the development process... which really helps a beginner.  I know a lot of programmers that can't make heads or tales of make files.  
2. You don't need to learn the Amiga Window and I/O architecture if you write for DOS.  Having to use lots of complex structures before you even know what one is kinda raises the learning curve.
3. Amigas are now old enough they are dieing right and left.  I may have lost most of my Amiga source code thanks to a dead motherboard.  Nothing worse than working on a project for months and then having it wiped out by a hardware failure.
Title: Re: Beginner Programing
Post by: MarkTime on February 23, 2003, 07:29:52 PM
I think REBOL fits a lot of requirements for a beginner who owns an Amiga.

It has two books, current, that can be bought.
It has active support.
It runs on Amiga, and other platforms.
There is a user community and lots of help, currently on the web.

AmigaBASIC is all but forgotten, but on the other hand, if you really find it neat to learn...then that motivating factor may help you learn it the quickest.

Some programming concepts are universal, but you will learn a lot of bad habits in a language like AmigaBASIC, but nothing that cannot be relearned if it inspires a love for programming.

I'd say go for it, since you aren't going to listen to me anyway!
 :-D
Title: Re: Beginner Programing
Post by: Lo on February 23, 2003, 08:15:02 PM
@ jdiffend

 I agree with you as I never got past basic/rexx very much.

>3. Amigas are now old enough they are dieing >right and left. I may have lost most of my Amiga >source code thanks to a dead motherboard. >Nothing worse than working on a project for >months and then having it wiped out by a >hardware failure.

Aw rats! You couldn't save the HD?
Title: Re: Beginner Programing
Post by: on February 23, 2003, 08:23:40 PM
You probably won't like this, but learning to program on the Amiga will be harder than for a more widely supported platform. If you want to persevere and battle on with the Amiga, other people have made some good suggestions. However, if you want to learn how to program in general, rather than specifically for the Amiga, I suggest you get a cheap Linux box, and install python on it. There are a million python tutorials, tons of books and how-tos, lots of mailing lists, forums, newsgroups, and thousands of helpful programmers.

You might think that learning Linux as well as programming only makes thing harder, but Linux really is trivially easy compared to any kind of coding, even Python coding! It's supremely developer-friendly, regardless of what people think of its user-friendliness.

HTH
Title: Re: Beginner Programing
Post by: Targhan on February 23, 2003, 09:15:58 PM
@MarkTime:  I agree about Rebol for learning to program with.

However, I still stand by my earlier statement that a user looking to
program on the Amiga must start with using AmigaDOS scripts.  There
are several good reasons to start with AmigaDOS scripts.

1. It's really easy.

2. AmigaDOS scripts still gives one access to standard features of
AmigaDOS (Ex. RequestChoice)

3. Learning AmigaDOS scripting helps the aspiring programmer to really
learn where files go, and how the basic system works.  Don't
underestimate the value of knowing AmigaDOS scripting--particularly
when there is a Startup-Sequence and User-Startup to deal with ;-)

Other than AmigaDOS being the bottom line, I agree about REBOL.  It's
incredibly easy, powerful, and cross platform.  It's not like Java,
which even SUN can't keep things standard between versions--let alone
across platforms.  REBOL, as a language, is great for beginners.
Title: Re: Beginner Programing
Post by: hagar on February 23, 2003, 10:11:07 PM
Some people says that beginners should start with
scheme. Some universities teach scheme in their programming introduction courses.
Unfortunately I havn't tested scheme  so I can only tell you what I have heard from other people.

However I there is one thing I know...
Stay away from Haskell untill you're into programming.
Haskell will drive any beginner nuts.
Title: Re: Beginner Programing
Post by: jdiffend on February 23, 2003, 10:35:45 PM
Look, a lot of you are making suggestions that don't make much sense.

1.  What does the person want to do with it?  If they want to write a game or do some cool graphics scripting languages and Rebol don't make any sense.  Frankly, they don't make much sense most of the time anyway.

2. Are they considering a career as a programmer and trying to figure out if they like it?  C/C++ and Java are what they will use the most.  Knowing Unix, Perl and Unix shell scripting are next in line on the need to know list.  Most of the applications I've written in the last 5 years were web based.  That means HTML, DHTML, Javascript, etc...

3. I honestly think programming for the Amiga can be fun but if you ever want to make a career of it... think PC.

As for learning bad habits by using AmigaBasic... WHY?  The stuff we used to write looked more like Pascal than Basic.  You obviously haven't seen a lot of AmigaBasic.

Quote

Aw rats! You couldn't save the HD?


My 3000's hard drive interface started flaking out and now the hard drive won't validate... come to think of it I don't think it even appears to be formatted at all according to the computer.

*IF* I transferred the source to the 1200 I purchased then I'm ok... but at the moment I don't have a monitor that even works with that.

It's no big deal really.  Just bumbs me out to lose all that code.  I had a lot of routines in assembly for picture fades, color cycling, decompressing ILBM images... all designed to link to SAS C.  It could be directly linked with from C or accessed from Basic through a shared library.

 I also had a 64180 emulator, some custom speach stuff that sounded much better than the narrator device... all sorts of toys I was working on at one time.

Actually, I don't care as much about that as some personal stuff that's probably gone forever.
Title: Re: Beginner Programing
Post by: MarkTime on February 24, 2003, 12:39:17 AM
@jdiffend

I've seen AmigaBASIC....and I know that very very early versions of pascal had some similar limitations, but that is not the point.

AmigaBASIC is old.  It doesn't resemble modern pascal in any way, and it doesn't even resemble modern object oriented BASICs very much either.

Here is the problem, LINE NUMBERS and GOTO statements.

This is 'unstructured' programming.  You can try very hard to stay structured in AmigaBASIC, but unlike other languages, it doesn't force it on you.  Indeed, if you try to stay structured....the language is so limited it actually encourages you to take every trick and shortcut in the book, trying to get around its limitations.

I programmed in those languages, and even earlier languages...I know how fun it was to find a new trick...but our programming was a huge mess, and its nothing like modern programming.

Even the code I see beginners post on this very site...in AmigaBASIC, it always reminds me of the old days, and not of modern structured code.....

(EDIT)

p.s. I just saw your own post above where you eschewed GOTO and LINE NUMBERS....so why did you even ask me this question?  Just an AmigaBASIC lover?

Title: Re: Beginner Programing
Post by: artman on February 24, 2003, 12:39:41 AM
Been reading these  threads for awhile, I'm not a coder in then least, maybe what Mell Ott is saying is what prcocess's do I need to follow to program?  Maybe I know the commands of basic, how do I apply them?  Knowing the words of a language does'nt mean I know how to speak it!  How do I figure out how to make sense of it all?
 :-?
Title: Re: Beginner Programing
Post by: Trooper on February 24, 2003, 01:11:58 AM
Hi,

I am not a programmer, Although i tried a little way, way back in the spectrum days. You may laugh, But i actually enjoyed it. Copying listings out of magazines and then spending quit a while debugging (if it can be called that) what i had typed.

But, It gave you a sense of achevement when you got the program to work.

I then upgraded to an MGT SAM Coupé, Which had a very simular basic, But slightly more advanced, And made things alot easier.

Anyway, What i am getting at is, The people asking what is the best way to start or get into programming AFAIK are asking you guys your opinions from a beginners point of view. Like, What did you start programming in/with etc. Instead of telling them don`t do this and this is crap etc (I mean that in the nicest possible way). :-)

Anyone with kids will tell you that if you tell them not to do something because its not the done  thing or because it is or looks crap or its dangerous, Are most of the time wasting their breath and they will do it anyway. :-(

All programmers had to start somewhere right, Even if it was with a crap language, But they probably did not know it at the time. Think back, How do you know whether or not your experiences with these so called crap programming languages haven`t benefited you in anyway.

Hope i have not offended anyone.

But please think of it from a beginners point of view, After all, You were one once. ;-)

Regards

Trooper
Title: Re: Beginner Programing
Post by: Targhan on February 24, 2003, 01:39:37 AM
@jdiffend

No, our suggestions make plenty of sense.  You have misenterpreted the
topic of discussion.  A person doesn't make a car until they
understand how to have a wheel.  The same concepts apply here.  A
beginner doesn't need to jump off of the deep-end to either swim or
drown.

Besides, REBOL does graphics and there are games done in REBOL. --Even
an Arkanoid clone!


Finally, I said it before and will say it again, and again--the true
beginner needs to start with AmigaDOS scripts.  They've got to learn
what a variable is, what a loop is, and how to use naming conventions
before they should tackle C, C+, Java, or any other of the 'more
difficult' languages.

Title: Re: Beginner Programing
Post by: jdiffend on February 24, 2003, 02:00:19 AM
@MarkTime wrote:
Quote
p.s. I just saw your own post above where you eschewed GOTO and LINE NUMBERS....so why did you even ask me this question? Just an AmigaBASIC lover?


referring to my post:
Quote
If it were an older Basic like I learned on I'd say stay away from it. I don't remember what additional features the Basic compiler we used added, but the code didn't use line numbers, GOTO or other things that teach bad programming practices. We wrote a full accounting package in it. With an editor you can write macros for you can compile wth a single keystroke.


The AmigaBasic code we wrote didn't have a single line number.  It used actual names.  It didn't use GOTO either.  It's not perfectly structured but it isn't as bad as you imply.  I've seen plenty of nasty C code.  And frankly, modern Basics including VisualBasic have, at best, a poor implementation of object oriented programming.  

Let's face it... bad programmers write bad code no matter what language they use.  

If all the guy wants to do is play with mandelbrots (or whatever) on his Amiga who cares what language he starts with and if he uses line numbers or GOTO statements?  The point is, people are making all sorts of suggestions without even asking what he wants to do.  It doesn't do any good to use objects, compilers, IDE's or whatever if he get's so frustrated learning it that he never finishes a single program.

If, after completing a few small programs he's still interested, then he should dive into object oriented programming with Java or C/C++ and learn more structured programming... no argument there!  AmigaBasic will drive him nuts for a large project.

AmigaBasic will let him get his feet wet without the time and effort required just to install a compiler.   But he should definately go to something else as soon as he's ready.
Title: Re: Beginner Programing
Post by: melott on February 24, 2003, 03:13:04 AM
Now... ;-)
 Some of you are starting to make sense.
I'm a 63 yrs.old man & retired.
My A3k is one of my hobbies. The PC bores
me. I'm just a hobbiest, I don't think I will
 write anything that will shake the Amiga world
to its roots. If I write something that someone
else can use then thats great, if not thats ok too.
Anything I write only has to satisify me and no one
else. The point I was tring to get across to you is
that there is a great many more hobbiests like me
out there. And face it the hobbiests are what is
keeping the Amiga alive. Just for the hell of it I
did a Google search today on "ATARI ST".  You
know there is an Atari.org out there. What do you
think is keeping that machine alive??? Its certinly
not what most of you are calling the "serious
programer". Its hobbiests.
I started with AmigaBasic because its what i had
and the easiest to understand in the beginning.
I have already moved up to Blitz, and it looks pretty
good. After working with Amigabasic I can now
make sense of Blitz. What started all this I guess
is another thread where some other guy was
asking for help and advice. I know how he felt.
Remember .. without us "hobbiests" the Amiga
really IS dead.
As for me, if my A3k dies I have an A500, and if
that one dies I can fall back to my A1000.
A hobbiest forever......

(IMHO)
Mel Ott
  :-D
Title: Re: Beginner Programing
Post by: Ilwrath on February 24, 2003, 04:20:21 AM
@jdiffend -
Quote

The AmigaBasic code we wrote didn't have a single line number. It used actual names. It didn't use GOTO either. It's not perfectly structured but it isn't as bad as you imply. I've seen plenty of nasty C code. And frankly, modern Basics including VisualBasic have, at best, a poor implementation of object oriented programming.

Let's face it... bad programmers write bad code no matter what language they use.

Touche' - My early programming was self-taught with a C64.  (Spaghetti, to say the least)  When I got an Amiga, and I used AmigaBasic (for a few months when I first got my 500), my programs looked much more like C64 basic than a higher language.  There's nothing in AmigaBasic to encourage you to use more structured styles.  I didn't really even understand how hideous my early creations were, until I started learning PASCAL and C.  (And then never turned back to look at AmigaBASIC)

Quote

If all the guy wants to do is play with mandelbrots (or whatever) on his Amiga who cares what language he starts with and if he uses line numbers or GOTO statements? The point is, people are making all sorts of suggestions without even asking what he wants to do. It doesn't do any good to use objects, compilers, IDE's or whatever if he get's so frustrated learning it that he never finishes a single program.

True, but keep in mind, I was speaking more toward a person who already posted an intention to write a device driver for legacy hardware.    (http://www.amiga.org/forums/showthread.php?t=883)

I was assuming his needs were much more along those lines.  (I probably should have asked if those needs changed.)  

But, I'll agree that BASIC is good for "instant gratification", and for getting over a fear or stigma of programming.  It's novel, it's fun, and it works for small toys and occasionally a quick hack.  As stated, it IS good for a hobbiest language.  Heck, I still enjoy hacking around and generally making a mess of the C64's BASIC V2.  All in all, BASIC is a very enjoyable language, in a rustic sort of way.  (I also like PERL, though, so maybe I'm just sadistic, and like languages that let me make a big mess, if I want to...)

Anyhow, to come full-circle back toward a tad of relevance... If you're posting here looking for advice on how to get started and you're focused on a goal... BASIC most likely would be more of an entertaining detour than a helping start.
Title: Re: Beginner Programing
Post by: FluffyMcDeath on February 24, 2003, 05:44:45 AM
Step 1:
Figure out what you want to code.

Step 2:
Find out what the best language is for that.

Step 3:
Learn that language.

If you choose a compiled language, the compiler and environment is something you are going to have to confront some time anyway. No harm leaping in right away.

Starting with AmigaBASIC will get you going and you can familiarize yourself with control structures,

while, do while, for, if else
assignment, algorithm, that sort of thing. Those a concepts that will see you through all the procedural languages. It'll even help a bit for functional languages too, but not so much.

C, C++, PERL, AREXX, BASIC, PASCAL, all procedural.
Scheme, LISP ... functional
REBOL, a bit of both.

As soon as you have the fundamental control structures and such, move on and get into the language you want to know. The sooner you learn the spelling of the language you want, the better.

MOST IMPORTANT,
Try to get in touch with a bunch of people who use the same language, and the same environment, and pick their brains.
Title: Re: Beginner Programing
Post by: iamaboringperson on February 25, 2003, 07:02:34 PM
@jdiffend
Quote
The AmigaBasic code we wrote didn't have a single line number. It used actual names. It didn't use GOTO either. It's not perfectly structured but it isn't as bad as you imply. I've seen plenty of nasty C code. And frankly, modern Basics including VisualBasic have, at best, a poor implementation of object oriented programming.

line numbers were optional, goto could also be used, and because basic isnt very structured, goto was encouraged

Quote
Let's face it... bad programmers write bad code no matter what language they use.

but isnt it easier to write good code with a good structrued or OO language?
Quote
But he should definately go to something else as soon as he's ready.
wasting time...
Title: Re: Beginner Programing
Post by: iamaboringperson on February 25, 2003, 07:11:10 PM
Quote

melott wrote:
Quote
Stop moaning and start doing something

IMHO, I think you guys are making a mistake.
You are pushing anyone that wants to do some
programing into using "C". Instead of bullieing
them into a language they don't want to try yet
you should be offer help and incouragement in
in any language they choose. You speak of
learning bad habbits. I don't agree, they learn
different habbits. The structure in basic is not
bad, just different. As an example, you should
not learn the English language as it teachs bad
habbits. Look at most other languages. Their
structure is simular. In Spanish and many others
you say "cosa blanca" or "house white".
So English is bad, we say "white house".
English is not bad, its just different.
I say you should support and help the new
programer in what-ever language he or she
wants to start with.
Amiga needs them to be incorriged, "NOT"
discorriged.

(IMHO)
Mel Ott


 :-)


im not trying to push just the C or C++ languages...
just structured & OOP programming techniques
if you are going to learn a language, you might as well learn one you can use, rather than learn twice, & learn structured or OO programming so that you may be a good programmer in the future

if read alot of people suggesting things like REBOL, AmigaDOS, AmigaBasic, AREXX, and others, as though that will really make your transition into programming easier
NO! learn a usefull programming language NOW! & practice that
Title: Re: Beginner Programing
Post by: melott on February 25, 2003, 10:25:06 PM
So.....
 I think the name of AmiBlitz should be
changed to "RODNEY DANGERFIELD".
===It just don't get no respect.===
If there is anyone out there besides me
 interested in AmiBlitz, start another thread
called "RODNEY" and maybe some things can
be discussed without being treated like a
second class citizen.
If nothing .. then I'll SHUT-UP

Mel Ott
  :-D  ;-)