Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

What language to learn? - For beginner

0 views
Skip to first unread message

stewart

unread,
Sep 4, 1999, 3:00:00 AM9/4/99
to
What language would I be best of starting out with?
Something that I would be able to develop(eventually) games and
applications with. What are my options?
Visual basic, C++, what?
What are the more powerful lauguages, what is most commonly used?

Thanks

stewart

John Bastian

unread,
Sep 8, 1999, 3:00:00 AM9/8/99
to
Hey! Look at this! A totally NEW and EXCITING question! by golly!

nah, don't learn basic or C. they'll only server to confuse you. <nods
sagely> what you need to learn is SQL, or -- if you're feeling REALLY
daring -- to learn COBOL. these languages are used by all the very best
programmers in the world. I wouldn't go past them. (I wouldn't even poke
them with a 10ft barge pole, but.. hey! that's just me). Even better, don't
learn them by reading any documentation, I'd suggest you hit the keyboard
at random with your forehead to write programs. Not to learn anything, mind
you--this is just for fun. Oh, and feel free to post lots of questions on
this news group about how to compile COBOL programs. Don't forget to post
lots of source too, with errors such as "syntax error at or near unsinged car"
(and, yes, that typing was intentional).

welcome to the world of programming!

Before I go, a final word from our sponsor:

favourite site of today-- www.deja.com
favourite 3 letter acronym-- FAQ
favourite word-- SARCASM

cheers,
John

--
,-_|\ John Bastian <jo...@cs.adelaide.edu.au> www.cs.adelaide.edu.au/~john
/ \ project: Immersive Virtual Reality on Silicon Graphics machines
\_.-*_/ ________ "quoth the Raven: Nevermore!" - The Raven, Edgar Allen Poe
v Dept. of Computer Science. University of Adelaide, South Australia


John Bastian

unread,
Sep 8, 1999, 3:00:00 AM9/8/99
to
Hello!

#include<rant.h>

Let us end, once and for all, this "which language should I start learning
in?" discussion. I think the question is over-rated; it is my humble
belief that fun, learning and excitement can be had with almost any
language.

From my experience, beginning programmer's miss the point of learning to
program. I've been a practical supervisor for first years at Adelaide
Uni as they learnt Ada, and I have talked to a guy I knew who was learning
Pascal and BASIC at a year-12 level. Both were mis-guided by what they
considered "limitations" of the language, yearning for something more
powerful that met their lofy ideals. This is missing the point of
programming.

For example, the guy was teaching himself BASIC at home and learning Pascal
at school. These are fair enough beginning languages; my first language
was BASIC, my third language was Ada (which is similar to Pascal). The
guy was programming in BASIC for about a month when he decided he was
beyond BASIC and could now tackle such weighty bemothes like C. Hmm.

From reading other newby posts, I don't understand this obsession with
leaping into C. SUre, games are written in C/C++, and it is well used
language which can do tonnes of neat tricks. It has graphics libraries
like DirectX and OpenGL and all the whizzy bells & whistles programs
inevitably trail C code. Newbies gasp in delight and proclaim they want
to program so they can do these special effects. Indeed, this was the
understanding of the guy who felt he could move onto C after learning
BASIC and Pascal for about a month.

This is WRONG and is missing the point of programming. I'm not saying
that learning graphics is beyond the scope of a newby programmer.
Why have a simple "hello world!" program, when with a few extra lines
of code you can have a hello red spinning cube program? My argument is
that there is more to programming than knowing the commands of a language.

This guy who had programmed in BASIC knew all the commands of his
interpreter. Well, all of them that he knew, anyway. :-) This, however,
maketh not a good programmer, and is inherently why any language is an
ideal beginning language. (Sort of, that is).

There is a lot to learn about the structure of a program and its affiliated
algorithms which you can learn in any language. My first language was
BASIC. I had tonnes and tonnes of fun writing programs, learning how they
worked, how to best structure them, and designing algorithms without going
to a "fancy" language like C. The joy was had by playing with what I knew.
So what? I couldn't do fancy sprites or ear bursting music in my first
few years of programming in BASIC, but this isn't the point. In the case
of the guy who thought it was time to move on from BASIC, it was evident
from looking at his code that he hadn't MASTERED the language. His programs
were a shocking mess of ill conceived algorithms; he couldn't do anything
"clever" with the language, he maintained, because BASIC wasn't powerful
enough.

This, I argue, is wrong. If you want to learn how to program, then which
language you start in is almost irrelevent. Look at BASIC. it looks
understandable, right? So use it first. Play with BASIC and become
a master of it. write clever programs that do funky stuff with the
command set of BASIC, and THEN move onto C, or something. But if you
want to start in C, then don't become dazzled by the bright lights.
So what if you can't draw a polygon just yet? Write some text adventure,
or something. Sure, it won't be nearly as impressive as, say, Quake3,
but you'll learn how to write programs from your mistakes...


hmm. i think my point is somewhat obfuscated. eh.

cheers
John

Bagheera

unread,
Sep 8, 1999, 3:00:00 AM9/8/99
to
In article <37d62...@hakea.services.adelaide.edu.au>,
jo...@krypton.cs.adelaide.edu.au (John Bastian) wrote:
> Hello!
>

#ifdef _C_
#elif _C_PLUS_PLUS_

> #include<rant.h>

#if author == John Bastian
#error Who the hell do you think you are???
#endif

> Let us end, once and for all, this "which language should I start
learning
> in?" discussion. I think the question is over-rated; it is my humble
> belief that fun, learning and excitement can be had with almost any
> language.

actually the question is quite useful.
I don't think programmers with moderate skill actually take the
time to evaluate whether or not they are using the language most
appropriate to their skills and effort.

After all, when a craftsman needs a flathead screwdriver, they don't
reach for the philips do they? (or god forbid they should reach for a
hammer!!!)

> From my experience, beginning programmer's miss the point of learning
> to program.

True.

> Both were mis-guided by what they considered "limitations" of the
> language, yearning for something more powerful that met their lofy
> ideals. This is missing the point of programming.

Maybe they didn't miss the point. Perhaps they just miscalculated
the power of the tools they were using. They found their environment
constrained based on their knowledge of the language, and perhaps they
could not find information to prove them otherwise (a common dilemna!).
I recall when I first learned to program (in Apple BASIC), and I found
it very limiting becuase it was such a pain in the ass to hand code all
of the graphics using DATA and peek and poke statements. I just needed
a tool that did all of this for me. Unfortunately, at the time, no one
released a freeware BASIC library for Bitmap displaying :S

> For example, the guy was teaching himself BASIC at home and learning
Pascal
> at school. These are fair enough beginning languages; my first
language
> was BASIC, my third language was Ada (which is similar to Pascal).
The
> guy was programming in BASIC for about a month when he decided he was
> beyond BASIC and could now tackle such weighty bemothes like C. Hmm.

C (IMHO) is actually a simpler language to learn than BASIC, but harder
to master. I don't blame him for wanting to move on, but again, I would
be more apt to point my finger at lack of documentation for advanced
features of the languages he had chosen than his own lack of drive.

> From reading other newby posts, I don't understand this obsession with
> leaping into C. SUre, games are written in C/C++, and it is well used
> language which can do tonnes of neat tricks.

Don't forget the shelf-fulls of books at your local bookstore.
If you make it available, they will come. (Something I keep trying
to press into the Lisp people...they REALLY need an affordable compiler
for non-unice PC's.)

> It has graphics libraries
> like DirectX and OpenGL and all the whizzy bells & whistles programs
> inevitably trail C code. Newbies gasp in delight and proclaim they
want
> to program so they can do these special effects. Indeed, this was the
> understanding of the guy who felt he could move onto C after learning
> BASIC and Pascal for about a month.

Are you sure that was his total motivation?
PASCAL is actually a very strong language. My first game was in
Pascal. Pascal was good.

> This is WRONG and is missing the point of programming. I'm not saying
> that learning graphics is beyond the scope of a newby programmer.
> Why have a simple "hello world!" program, when with a few extra lines
> of code you can have a hello red spinning cube program?

few hundred extra lines unless you are crazy enough to learn assembly.
I was given a graphics library my first year in college, and that helped
me learn more, and gain more respect for programming in general. Maybe
your friend just needed someone to help him write a graphics primative
library that he could study and use.

> My argument is that there is more to programming than knowing the
> commands of a language.

True. But knowing how easily you can get to point "C" has a lot of
motivation factor behind it.

> This guy who had programmed in BASIC knew all the commands of his
> interpreter. Well, all of them that he knew, anyway. :-) This,
however,
> maketh not a good programmer, and is inherently why any language is an
> ideal beginning language. (Sort of, that is).

C++ has on the order of 72-100 keywords.
Given a good day, I could have them all memorized in about 16 hours.
So what? You are right, knowing the commands is nothing.
Knowing how to use them together is a little better.
Knowing how blocks of them can do different things is even better.
Knowing lots of those blocks is expert.
Knowing blocks of blocks is master!
Knowing how entire segments of code work as one concept is Guru.

> There is a lot to learn about the structure of a program and its
affiliated
> algorithms which you can learn in any language.

I specifically disagree with this.
Different programming languages are attuned for different tasks.

I'm not the best at categorizing, but I'll make a feeble attempt here:

Functional (ie math/comparison intensive):
Lisp
ML
Miranda
Smalltalk? (I'm tempted to make this one imperative)

PROLOG - it's its own category :) Logic based is closest category

Imperative:
C
C++
Ada
ForTran
Pascal
BASIC

And that's just the ones I know how to program in...

> My first language was BASIC.

> So what? I couldn't do fancy sprites or ear bursting music in my
> first few years of programming in BASIC, but this isn't the point. In
> the case of the guy who thought it was time to move on from BASIC, it
> was evident from looking at his code that he hadn't MASTERED the
> language. His programs were a shocking mess of ill conceived
> algorithms; he couldn't do anything "clever" with the language, he
> maintained, because BASIC wasn't powerful enough.

I was doing music and graphics within two months of learning basic.
But I had help (Thanks family computing!). Your friend may have
actually confused power with complexity. BASIC is not really that
complex of a language. True it had really awesome string handling,
and it had very loose typing, but at its core, it couldn't really do
alot of functionality with a minimum of code.

C on the other hand, is a high complexity language. It has constructs
that allow complex routines in a few lines of code. C++ tenfold so.

> This, I argue, is wrong. If you want to learn how to program, then
which
> language you start in is almost irrelevent. Look at BASIC. it looks
> understandable, right? So use it first.

Your first language will inevitably dictate your style of programming.
BASIC is very poor for learning structured programming. And I still
contend, Visual Basic makes for lazy programmers.

> Play with BASIC and become
> a master of it. write clever programs that do funky stuff with the
> command set of BASIC, and THEN move onto C, or something. But if you
> want to start in C, then don't become dazzled by the bright lights.
> So what if you can't draw a polygon just yet? Write some text
adventure,
> or something. Sure, it won't be nearly as impressive as, say, Quake3,
> but you'll learn how to write programs from your mistakes...

or...get a good c++ compiler with a graphics library so that you can do
graphics right away. Just learn how to read the online documentation
quickly. Anyone expecting to write Quake3 in their first five years of
programming are silly.

> hmm. i think my point is somewhat obfuscated. eh.

your point: Learn BASIC first, I did, so it must be good for you.
your intent: Learn how to program first, anyone can type in
instructions and do stuff, but only those who understand how the
instructions work will excel.

> cheers
> John

#endif


If *I* had to do it all over again, I would learn C first.
It's easier than most people say.

YEAH YEAH

10 ? "HELLO WORLD"
20 END

#include<iostream.h>
int main(){ cout << "byte me." << endl; return 0;}

--
Bagherra <jaebear @ frenzy.com>
http://www.frenzy.com/~jaebear
"There's a snake in my boot!"


Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.

John Bastian

unread,
Sep 9, 1999, 3:00:00 AM9/9/99
to
Ho!

In article <7r6cbq$toe$1...@nnrp1.deja.com>, Bagheera, the jungle scout <bagh...@my-deja.com> writes:

|> #if author == John Bastian
|> #error Who the hell do you think you are???
|> #endif

<raises eyebrows> uh huh. :-)

|> actually the question is quite useful.
|> I don't think programmers with moderate skill actually take the
|> time to evaluate whether or not they are using the language most
|> appropriate to their skills and effort.

my point was that any language which a beginning programmer seems to get
the hang of is decent enough. A comparative analogy. You are in a
book store, and you want to buy a book for the long trip to the middle
of Dingo-Woop-Woop. If you are a book store owner, who is busily
occupying your time discussing the intriciate philosophy behind
Hamlet's fall into madness, would you not really get tired of someone
walking into the book store and -- instead of looking at the books --
declares in a very loud voice "I WANT A BOOK!"? Hmm. fun for all
the family the first two or three times, but not if no one can be
bothered to LOOK AT THE BOOKS.

NOw, you say, programmer's with moderate skill don't actually take the
time to evaluate. I wasn't talking about moderate skill, I was talking
about the complete newby. The "I want to learn, what language should I
use?",
My answer is: LOOK for a language you can grasp. There's tonnes of
info out there to get an idea of what language looks within your grasp.
Now, I'm not saying evaluate, I'm saying (with this book analaogy) to
read the back-cover; open a page at random, and see if it sounds
interesting.

|> After all, when a craftsman needs a flathead screwdriver, they don't
|> reach for the philips do they? (or god forbid they should reach for a
|> hammer!!!)

no, but the newby craftsman tries his tools before looking dumbly at
a closed toolbox and posts "what tool do i use"? If he tries the
edge of a knife, and it works for him, then use it.

|> Maybe they didn't miss the point. Perhaps they just miscalculated
|> the power of the tools they were using. They found their environment
|> constrained based on their knowledge of the language, and perhaps they
|> could not find information to prove them otherwise (a common dilemna!).

no, this wasn't my point at all. For example, suppose you learn what
pointers are, and you can do this:

int a, *b;

b=&a;

have you mastered pointers? No, you haven't. With these primitives one
can build linked lists, graphs, latices, and so on and so on.
A lot of people I see know the above code, but can't be bothered to
try and USE IT, to apply it from the basic stuff. THIS is where the
fun, I argue, is to be had. Not thinking they know all this, and because
they can't yet emulate Quake3 that they need more tools or a better
compiler.

|> C (IMHO) is actually a simpler language to learn than BASIC, but harder
|> to master. I don't blame him for wanting to move on, but again, I would

you reckon? Hmm. "how do I set one string to be another string plus another
string?" in basic it's a$=a$+b$, in c it's strcpy(a+strlen(a), b);
For example. but this isn't my argument; I won't argue about it.


|> PASCAL is actually a very strong language. My first game was in
|> Pascal. Pascal was good.

y-e-s... i never said it wasn't. my third lang was ada. My point was
that there is more to pascal than just knowing the keywords. algorithms,
and so on. My point wasn't that pascal was lame; exactly opposite, in fact.

|> I specifically disagree with this.
|> Different programming languages are attuned for different tasks.

yes, yes, i know all this. Logical, functional, imperative and object orientated.
been there, done them all. (I myself am quite fond of Miranda:-)
but most people learn to program in imperative languages, and of those, any
lang is as good as each other.

|> Your first language will inevitably dictate your style of programming.

hmm, i disagree. my style, i think, is adaptive. i look at my old code and
it IS written differently to what I think now.

my point is not what language to learn first. programming is more about
structuring a program than knowing all the keywords. the specific
example I had, was this guy who wrote a calculator. what he had was this,
basically:

10 print"enter the two numbers and then an operand"
20 input a
30 input b
40 input o$
50 if o$="+" then c=a+b
60 if o$="-" then c=a-b
70...
and so on. now, from this code, he thought he knew it all. irrespective of
the fact that it doesn't do pretty graphics, have ear thumping music
and so on, he thought BASIC was beneath his weighty intellect.
From people who think like this, I disagree. The fun of programming, I
maintain, is using what you have to do things you want. In the end,
after trying to convince him that moving onto C wouldn't help him write
a better calculator, I wrote a calculator that took an expression and
evaluated it in BASIC and in C. The solutions were similar, but that
wasn't the point, it's the challenge of writing a parser in some langugae.

Newbies shouldn't leap into the deep end thinking they know the primitives
that they know it all and should move on. They should get hold of a
language and play with it. It's like trying to write an novel; you
don't just write badly phrased english and think it's time to move onto
German, you refine your english first because then when it comes onto
the next language you'll be better for it.

Bagheera

unread,
Sep 9, 1999, 3:00:00 AM9/9/99
to
I had a really nice long post prepared, then netscape crashed.

point: you're wrong
counter point: C is for cookie, that's good enough for me :)

John Bastian

unread,
Sep 10, 1999, 3:00:00 AM9/10/99
to

In article <7r8v17$qgb$1...@nnrp1.deja.com>, Bagheera, the jungle scout <bagh...@my-deja.com> writes:
|> I had a really nice long post prepared, then netscape crashed.
|>
|> point: you're wrong
|> counter point: C is for cookie, that's good enough for me :)

no, i am not.

my point is this, quite simply:

a lot of newbies are dazzled by games, and want to write their own.

I contend: the fun of writing programs is to write better algorithms, not
to write better special effects.

I have observed: a lot of people think they know a language and then think
they can move onto a better language. However, looking at their source
it is evident they have not mastered the language they "think" they
know.

My point, as an analogy is:

For example, if someone wrote broken english like "cat sat mat! dog chase
cat. cad mad. dog bark. cat run. dog chase. run cat run!", would
you suggest this person learn another language? I contend the person
should learn to be a master of this language FIRST. What is better?
"cat sat mat" or "The grey cat reclined upon the red, comfortable mat"?

I never said any language was inferior; in fact, if you read my original
post, my whole argument is that NO LANGUAGE is neccessarily inferior:
the fun of proramming is to write DECENT ALGORITHMS.

C isn't an ideal beginning language. Having talked to my lecturers at
university, some of who do consulting work for commerical firms, I am
assured that a lot of firms are looking for people who learnt another
language before they learn C.

Why? There are many, many reasons. I don't want to start a language
war, (since C *IS* my fave lang) but:

1. C isn't modular; it "hacks" modularity by pre-processor includes
2. symbols are exported by default. this is almost universally agreed
to be the wrong way around
3. the scope rules for C are hideous. you can't nest scope, for example
4. it has no type-checking
5. pointers are wrong for current compiler technology. they are a legacy
that SHOULD be abandoned. Pointers are like jumps; hopping all over
the data strcuture. compilers have a VERY hard time to optimise
code using pointers; it is far, FAR better to use arrays. So why
use a language which relies so heavily on pointers?

But languages is my argument. I contend, and STILL CONTEND that newbies
are far too keen to jump onto the fancy graphics bandwagon--which is
a fine thing to do--but trying to know too much BEFORE they can structure
a decent program.

you shouldn't be trying to write award winning novels if you can't structure
a sentence; you shouldn't be trying to learn more stuff (new languages,
other API's) until you can write decent programs.

I know this because I supervise first years. Do you know how depressing
it is when you see terrible code, and are then told "it's all ada's fault.
why can't we learn C? c is better because quake is written in c". it
isn't the language, it's the PROGRAMMER

THAT Is my argument, NOT THE LANGUAGE YOU LEARN, but WHAT YOU DO WITH IT.

and, no, i'm not wrong. :-)

FEH!

Bagheera

unread,
Sep 10, 1999, 3:00:00 AM9/10/99
to
In article <37d88...@hakea.services.adelaide.edu.au>,

jo...@krypton.cs.adelaide.edu.au (John Bastian) wrote:
<bagh...@my-deja.com> writes:
> |> I had a really nice long post prepared, then netscape crashed.
> |>
> |> point: you're wrong
> |> counter point: C is for cookie, that's good enough for me :)
>
> no, i am not.

:) Denial is the first stage

> my point is this, quite simply:
>
> a lot of newbies are dazzled by games, and want to write their own.

That's fine. I admit, I was dazzled too, but I had far lower goals to
reach for. Temple of Apshai, Loderunner, Spy Hunter...ahhh those were
the days.

> I contend: the fun of writing programs is to write better algorithms,
> not to write better special effects.

Hey, whatever gets your rocks off dude.
I personally enjoy debugging *my own* code.
Algorithms are ok, but it has too much of an academic feel to me
to be fun. Special effects have more of a "drug like" high for
people when finally executed (properly or close to properly).
But, each to their own. You like algorithms (wierdo), I like
debugging, and others like fx.

> I have observed: a lot of people think they know a language and then
> think they can move onto a better language. However, looking at their
> source it is evident they have not mastered the language they "think"
> they know.

Ebonics.
When a person feels uncomfortable with their form of communication, they
seek out those forms of communication that give the intended meaning
with the least path of resistance.

Perhaps Pascal is too obtuse for someone because they can't grasp the
whole records thing. So they move to C because Structures and arrays
are easier to understand. It isn't that they haven't mastered the
language, or don't have a desire to, it is that the language is
cumbersome to *THAT* person to master.

The reason new langauges are written is to facilitate people in writing
code that is non-encumbering to write (for the person who made the
language). Others may use that language and decide whether it
facilitates them or not. That's why there are like 20 Algols, and 40
Lisps...

> My point, as an analogy is:
>
> For example, if someone wrote broken english like "cat sat mat! dog
chase
> cat. cad mad. dog bark. cat run. dog chase. run cat run!", would
> you suggest this person learn another language? I contend the person
> should learn to be a master of this language FIRST. What is better?
> "cat sat mat" or "The grey cat reclined upon the red, comfortable
mat"?

It's not a matter of which is better. It's a matter of which gets the
point across within the bounds of the persons vocabulary. If a person
is incapable of descriptive language, should that make them any less of
a person for not being able to do so? A child is likely to make
statements as you describe first. Their point gets across, and we
generally understand what they are saying. It is pure communication and
the point gets across. Programming languages are not very similar to
this example, but to continue your analogy, if a person feels limited by
their vocabulary in that they don't know how to combine the words
properly, they instead look for a language that has grammar more
comfortable for them to use. This is perfectly reasonable.

> the fun of proramming is to write DECENT ALGORITHMS.

for you...

> C isn't an ideal beginning language. Having talked to my lecturers at
> university, some of who do consulting work for commerical firms, I am
> assured that a lot of firms are looking for people who learnt another
> language before they learn C.

blah. Managers and HR people are full of shit and can't tell their ass
from a Comp Report.

> 1. C isn't modular; it "hacks" modularity by pre-processor includes

hello? Structure/Method pairing....
and I wouldn't call pre-processing a hack...that was a concious compiler
decision.

> 2. symbols are exported by default. this is almost universally agreed
> to be the wrong way around

I don't agree...therefore it is not universal.

> 3. the scope rules for C are hideous. you can't nest scope, for
example

sure you can. Scope Resolution operators.
Or haven't you master C yet?

> 4. it has no type-checking

I guess you haven't.
It *can* have type checking, if *YOU* enforce it.

> 5. pointers are wrong for current compiler technology. they are a
legacy
> that SHOULD be abandoned. Pointers are like jumps; hopping all
over
> the data strcuture. compilers have a VERY hard time to optimise
> code using pointers; it is far, FAR better to use arrays. So why
> use a language which relies so heavily on pointers?

Man, you must really suck at programming.
My pointers are very clean, clear, and non-jumpy.
And they optimize very well :)

> But languages is my argument. I contend, and STILL CONTEND that
newbies
> are far too keen to jump onto the fancy graphics bandwagon--which is
> a fine thing to do--but trying to know too much BEFORE they can
structure
> a decent program.

slock coding.
It's all good.
When you first learned to color, I bet you went outside the lines.
Let them go outside the lines too. Sometimes we have to bite off too
much before we realise how deep we are in it.

> you shouldn't be trying to write award winning novels if you can't
structure
> a sentence;

you ever read hemingway? (he's a brilliant writer, but if you read his
stuff, it's gawkingly simple)

Or how about Shakespeare? (75% of his words are made up and
non-sensical...but are common to use today)

> you shouldn't be trying to learn more stuff (new languages,
> other API's) until you can write decent programs.

I strongly disagree.
If the API is simple enough to give you an interface to make
a more meaningful representation of your information, then
by all means, jump on that bandwagon. Knowing a lot of little
things is much much better than know a lot about one thing.
(ever hear the axiom: don't put all your eggs in one basket)

> I know this because I supervise first years. Do you know how
depressing
> it is when you see terrible code, and are then told "it's all ada's
fault.
> why can't we learn C? c is better because quake is written in c". it
> isn't the language, it's the PROGRAMMER

I heartily disagree.
I had the same complaint when I was forced to take FORTRAN 77.
FORTRAN is an inferior language. Want to talk about no type checking...

I agree with your statement about
"'...because quake is written in c...'"

BUT, not all programmers are comfortable with all languages. In your
advisees position, maybe it is Ada's fault. I happen to dislike Ada
alot myself. Let your students take C ;)

> THAT Is my argument, NOT THE LANGUAGE YOU LEARN, but WHAT YOU DO WITH
IT.

have lemons -> make lemonaide ?

our world is bent on instant gratification.
We have the technology to do things better, faster, easier and cheaper.
*WE* should take every chance to hop on this at every chance.

> and, no, i'm not wrong. :-)

vehement denial is the third stage...

> FEH!
> cheers
> John

confused gibberish is the fourth stage...


stage two is insane ranting.

John Bastian

unread,
Sep 13, 1999, 3:00:00 AM9/13/99
to
You are really REALLY misssing a lot of my point, here. It's like me saying
"you really shouldn't channel swap like that; you can't possibly enjoy a movie
if all you are doing is changing movies every 15 seconds", and you reply with
"STARTREK IS COOL!", and I say,
"y-e-s, but this isn't my point. Besdies, Star Wars is better :-)", and you say
"I LIKE THE COLOUR YELLOW!", and I say,
"y-e-s, but this isn't my point. Besides, blue is a much nicer colour :-)", and
you say:
"you're just wrong. Star Trek is better, and Yellow is a cool colour", and I
say:
"Well, my point was you shouldn't channel sawp. Irrespective of your fave
movie, just sit down and enjoy one before you look at the next, ok?", and
you say:
"I LIKE TO EAT GOATS!"
and I think to myself. "hmm."

In article <7rb7pt$fbl$1...@nnrp1.deja.com>, Bagheera, the jungle scout <bagh...@my-deja.com> writes:

|> > I contend: the fun of writing programs is to write better algorithms,
|> > not to write better special effects.
|>
|> Hey, whatever gets your rocks off dude.
|> I personally enjoy debugging *my own* code.

See?! see?! i never said anything about debugging! <sighs> oh, dear.
nah, just forget it.

|> Algorithms are ok, but it has too much of an academic feel to me
|> to be fun. Special effects have more of a "drug like" high for

yes, but hey! you need algorithms to make decent programs. it's like two
builders saying "yer, using bricks and mortar is just too academic. Me? I
like wood and nails", but with wood and nails you build... what? cubby houses.
houses in trees. dog kennels. the guy with the bricks and mortar builds
other things.

|> But, each to their own. You like algorithms (wierdo), I like
|> debugging, and others like fx.

yep, and some people like special effects in movies and others like plots.
hmm. bizarre. i am not saying that effects are bad. *I* like effects;
a lot of my programs _ARE_ effects. My honours project IS ONE BIG EFFECT.
BUT!! you need to be able to have the algorithmic background in order
to make decent code and subsequently DECENT EFFECTS. I mean, when I was
but a wee lad, programming on my c64, I liked making fire works screen saver
things. Nowadays, when I have an understanding of linked lists, graph
traversal and so on, I can make a much MUCH better firework program with
recursive explosions, fire trails, light haze, smoke and so on. try doing
that with a primitive understanding of arrays. "uh, oh. i just ran out
of array space.. hmm, i had better realloc()..."

|> When a person feels uncomfortable with their form of communication, they
|> seek out those forms of communication that give the intended meaning
|> with the least path of resistance.

and i contend, a lot of newbies do this too early because they don't understand.
it's like a workman blaming his tools.

|> Perhaps Pascal is too obtuse for someone because they can't grasp the
|> whole records thing. So they move to C because Structures and arrays
|> are easier to understand. It isn't that they haven't mastered the

structurs ARE records


|> is incapable of descriptive language, should that make them any less of
|> a person for not being able to do so? A child is likely to make

no, that wasn't my point. My point was that they shouldn't turn around and
say that "English sucks, German looks much better." without masdtering
english to understand its limitations.

|> > the fun of proramming is to write DECENT ALGORITHMS.
|>
|> for you...

yer, well, writing toy programs isn't the same as writing all those 3d engines
those newbies want to churn out.

|> blah. Managers and HR people are full of shit and can't tell their ass
|> from a Comp Report.

i wouldn't call the senior lecturers here management; nor would I call the
people who they talk to managament, either.

|> hello? Structure/Method pairing....
|> and I wouldn't call pre-processing a hack...that was a concious compiler
|> decision.

hmm. i'm guessing -- at this point -- you've had no formal lessons in
language semantics, or software engineering, or, well, a lot of things.

It is very difficult to hide things in C. this makes it bad for >1 programmers

|> > 2. symbols are exported by default. this is almost universally agreed
|> > to be the wrong way around
|>
|> I don't agree...therefore it is not universal.

see!? see?! i never said it WAS. I said it was ALMOST! yet you're screaming
"TIMES NEW ROMAN IS A BETTER FONT!" and this isn't my argument AT ALL.
almost.

keeping things hidden and consciously exporting symbols is almost universally
agreed the best way of doing things. I could, if I wanted to waste a bit of
my life, finding references, but I can't be bothered.

|> > 3. the scope rules for C are hideous. you can't nest scope, for
|> example
|>
|> sure you can. Scope Resolution operators.
|> Or haven't you master C yet?

oh, dear. i have mastered c, thanks. that's why I know it's scope sucks.
can you nest functions in C? (no). can you over-ride symbols in C? (no)
can you even nest variables within a function? (no). things like

void goat(void)
{
int a;

void cant_do_this(void)
{
}

printf(code);

int cant_decl_var_out_of_scope_of_above_code;

for(int this_can_only_be_done_in_C_PLUS_PLUS;;) {
int nope_cant_alloc_me_here_either;
}
}

and so on. four examples of c's limitations which you can do in other langs.

|> I guess you haven't.
|> It *can* have type checking, if *YOU* enforce it.

cripes! my god! he knows NOTHING!

are these two types the same?

typedef {
int a;
} Ver1;

typeef {
int b;
} Ver2

not in c, they're not. but in a lang which has a graph representation of
the types, they are. that was, learnt in, whaT? a third year subject?
yer....

|> Man, you must really suck at programming.
|> My pointers are very clean, clear, and non-jumpy.
|> And they optimize very well :)

=look at ANY compiler construction manual. come to think about it, look
at any computer architecture manual. compiler's have a hard time to
optimise pointers. i'm not going to argue this, because it is fact.
(fact? who says, you ask? well, my advanced computer architecture lecturer
and the text-books we use in the course, for one).

pointers do NOT optimise well in compiler tech.

|> BUT, not all programmers are comfortable with all languages. In your
|> advisees position, maybe it is Ada's fault. I happen to dislike Ada
|> alot myself. Let your students take C ;)

Ada is a good language. but they're going to be learning Java this next
year. besides, ada lets you make missile guidance systems. :-)

cheers!
john

SWa6350838

unread,
Sep 19, 1999, 3:00:00 AM9/19/99
to
Why don't you guys stop massaging your own egos by trying to prove each has a
better intellect than the last poster and make an attempt at answering the
original question?

ie: if someone with no programming experience would like to mess around with
writing his own game, lets suppose a game with no graphics, which is the better
language to start with? If he makes a mistake he could get a couple of months
in to writing his programme and realise he should have started somewhere else.
A bit of advice from someone with some experience could have saved him. Mind
you, that could be less painful than listening to the self opinianated clap
trap that the question is producing.

Conclusion: if you can't offer the advice that the original poster was seeking
then shut up and take your opinions on the meaning of life somewhere else where
they might actually be interested in them

Bye

Simon

Jason Shankel

unread,
Sep 20, 1999, 3:00:00 AM9/20/99
to

SWa6350838 wrote:

> Why don't you guys stop massaging your own egos by trying to prove each has a
> better intellect than the last poster and make an attempt at answering the
> original question?
>
> ie: if someone with no programming experience would like to mess around with
> writing his own game, lets suppose a game with no graphics, which is the better
> language to start with? If he makes a mistake he could get a couple of months
> in to writing his programme and realise he should have started somewhere else.
> A bit of advice from someone with some experience could have saved him. Mind
> you, that could be less painful than listening to the self opinianated clap
> trap that the question is producing.
>
>

For the scenario you present, I'd suggest going with a RAD environment or
perhaps Java.

The problem with the "which language?" question is that people often ask it
with two subtexts in mind. They want to know which language will help them
learn programming and which language the "pros" use. The two are not
the same.

If someone wants to know which languages she should learn to become a
professional game developer, the answer is straightforward: C, C++ and
a smattering of assembly.

But, those are not necessarily the best languages with which to learn.

The thing is, once you know one language, learning another is pretty
straightforward, especially if they have similar structures. Learning Pascal
is a great way to learn C. Learning Java is a great way to learn C++.

So, the question is what is your goal? If you're primarily interested
in learning the algorithmics of game theory (AI, pathfinding, set manipulation,
cost minimization routines, etc), then most any Turing-complete language
will do you fine (Java, Delphi, Visual Basic, Visual C++) and I'd recommend
learning a little about two or three of them and then picking the one that
feels the most comfortable.

If, on the other hand, you're primarily interested in learning the system-level
elements of game programming (3d graphics, sound, input control, application
control flow, etc), then I'd recommend going with either a systems language
(C, C++) or with an application language that has good system libraries
(Visual Basic w/ DX bindings).

The important thing to remember is that you're not going to screw yourself
by learning the wrong language. The computer languages I learned, in order,
were BASIC (C-64), Assembly, Forth, Pascal, Lisp (scheme), C, GPSS,
Ada and C++. I didn't learn each of them to the level of mastery. I doubt
I got much past the stone knives and bear skins level with Forth and GPSS.

Still, even though I use C++ almost exclusively today, those other languages
served their purpose in my education.
--

Jason Shankel
Maxis, Inc

s h a n k e l
at
p o b o x . c o m

"Let's teach those robots how to play hardball."
- Laurie Anderson

Enjoy smooth, refreshing OpenTrek at http://www.pobox.com/~shankel/opentrek.html

Bagheera

unread,
Sep 21, 1999, 3:00:00 AM9/21/99
to
In article <37dc4...@hakea.services.adelaide.edu.au>,

jo...@krypton.cs.adelaide.edu.au (John Bastian) wrote:
> You are really REALLY misssing a lot of my point, here. It's like me

I don't think you have a grasp of what you are saying.
You are probably thinking something other than what you are saying.

You said:
"people shouldn't switch compilers because they feel limited by what
they know. This is despite the fact that they don't really know all
the nuances of that language."

This is not a direct quote, but a context of what you have said.
I disagree with this for numerous reasons I have eloquted. I personally
believe that a person needs to find the language that "fits them like a
glove" in order to excel. Having to work with blunt tools, despite the
fact they can make superior products, is cumbersome, and it may be that
working with sharp, ineffective tools would be more to the person's
suiting, so as to work as a stepping platform to learn how to use the
blunt tool. Some people NEED instant gratification to move to the next
level, and there are many languages out there that can fulfill that
need.

You further go on to say that you:


"contend: the fun of writing programs is to write better algorithms"

With which I heartily disagree. What one person finds fun in writing
programs won't necessarily fulfill another person's satisfaction.

> |> > I contend: the fun of writing programs is to write better
algorithms,
> |> > not to write better special effects.
> |>
> |> Hey, whatever gets your rocks off dude.
> |> I personally enjoy debugging *my own* code.
>
> See?! see?! i never said anything about debugging! <sighs> oh, dear.
> nah, just forget it.

no, you were stating that algorithms were the end-all be-all of zen
programming. I was just stating that I personally enjoy debugging as my
zen programming fix. and surely others have their form of programming
nirvana, which may or may not be writing/developing algorithms.

Your hostility is noted.

> |> Algorithms are ok, but it has too much of an academic feel to me
> |> to be fun. Special effects have more of a "drug like" high for

<snip poorly developed builder analogy wood/hammer brick/mortar>

hardly. It's more like two brick and mortar builders, one likes using
a trowel, and the other guy likes using a hammer to break bricks, and
pour the cement by hand. To each their own.


> BUT!! you need to be able to have the algorithmic background in order
> to make decent code and subsequently DECENT EFFECTS.

no you don't.
When I first started programming, to draw a line, you had to hard code
every point in the line. Then, when I got my first real computer with
real compiler, I had to learn breshenham's line algorithm, now I can
call a drawLine() function that hides the algorithm from me. Maybe I'm
better off for knowing how to draw a line, but frankly I would prefer
not having to know it.

> things. Nowadays, when I have an understanding of linked lists, graph
> traversal and so on, I can make a much MUCH better firework program
with
> recursive explosions, fire trails, light haze, smoke and so on. try
doing
> that with a primitive understanding of arrays. "uh, oh. i just ran
out
> of array space.. hmm, i had better realloc()..."

why not just use the STL, it does all the brunt work for you :)
Again, a form of the tool was created in order to make the language
more friendly to the user. A new programmer no longer needs to know how
to build a linked list, they just instantiate a Link list object and
fill it, traverse it with iterators...much better than spending a few
days tweaking and debugging the ADT yourself.

> and i contend, a lot of newbies do this too early because they don't
understand.
> it's like a workman blaming his tools.

again, oft times it is the tools.
I have two screwdrivers, one is a manual the other automatic.
The manual isn't any good for me because it becomes too slick
too quickly to assemble small items, but the automatic one allows me
to screw things in more effectively. They both do the same job,
and they both do it in roughly the same way. It is just that one
allows me to do things without needing to know how to do intricacies.

> |> Perhaps Pascal is too obtuse for someone because they can't grasp
the
> |> whole records thing. So they move to C because Structures and
arrays
> |> are easier to understand. It isn't that they haven't mastered the
>
> structurs ARE records

YES, THEY ARE!!!
But the point is that some people have a hard time coping with the
nomenclature, or sometimes the implementation. A record is used both
for structures AND arrays. It can be confusing to newbies. I pointed
out in my statement that they move to C "because Structures and arrays
are easier to understand" than records because they are separate,
distinct, and make sense (to them anyways).

> My point was that they shouldn't turn around and
> say that "English sucks, German looks much better." without masdtering
> english to understand its limitations.

Why not? I started to learn Spanish and decided that Russian made more
sense. I know a little spanish now, and I am fluent in Russian (it
wound up being the right foreign language for me to learn because its
construction, syntax, and lexicon where very well fit to my way of
thinking). I have no desire to go back and learn the intricacies of
Spanish, even though it is a valid language, and I may find need of it.
C'est la vie.

> |> > the fun of proramming is to write DECENT ALGORITHMS.
> |> for you...
> yer, well, writing toy programs isn't the same as writing all those 3d
engines
> those newbies want to churn out.

so?
maybe toy programs is what they need to excel.
I wrote "choose your own adventure" games when I first learned how to
program and I felt very disappointed with what I wrote. When I started
writing more interactive games and rpgs, I got very interested, and I
programmed more and I desired to learn new things more frequently.
Maybe they just need to write pong to play against themselves in order
to boost their morale to write doom, or quake, or whatever the hot game
o' the week is.

By writing toy programs, you can quickly learn what *YOUR* limitations
are, despite whatever limitations the compiler may impose. It may even
help you understand the limitations of your compiler, who knows?

> |> hello? Structure/Method pairing....
> |> and I wouldn't call pre-processing a hack...that was a
> |>concious compiler decision.
>
> hmm. i'm guessing -- at this point -- you've had no formal lessons in
> language semantics, or software engineering, or, well, a lot of
things.

well, if you must know, I have a bachelor's degree from New Mexico State
University in Computer Science and a Master's degree in Computer
Science, and I am currently working on a Ph.D in Computer Science.
I apologize to everyone in the newsgroup for blowing my horn like that,
but he sort of asked.

My studies have included:
15 programming languages
Language Architecture
Software Engineering
System Architecture
Digital Circuits
Compiler Design and implementation
Operating System Design and implementation
Artificial Intelligence
Fuzzy Logic
Neural systems
Natural Language Processing
Data Mining
Data Filters
Machine Learning
Computer Graphics
Primitives
3-D graphics spaces
Vector Graphics
Ray-casting/Raster/ray-tracing
Smooth Texture design and implementation
3-D simulation graphics (head set VR)
Networking
Packet Protocols
Instant Messaging Protocols
Remote Method Invocation
Distributed Programming
Data Structures and Algorithmic Analysis
Advanced Data Types
Computational Mathematics
Graph and sparse matrix design

and lots of math, engineering, and other courses that would bore
you to tears.

> It is very difficult to hide things in C.

hiding is only to protect programmers from themselves.,
therefore it isn't necessarily a bad thing, but if you wanted to,
you can hide things if you really want to.

> "TIMES NEW ROMAN IS A BETTER FONT!" and this isn't my argument AT ALL.

I prefer "Comic Sans"

> =look at ANY compiler construction manual. come to think about it,
look
> at any computer architecture manual. compiler's have a hard time to
> optimise pointers. i'm not going to argue this, because it is fact.
> (fact? who says, you ask? well, my advanced computer architecture
lecturer
> and the text-books we use in the course, for one).

Watcom did a damn fine job of it. And my compiler design class
did a very good job of explaining how to optimize pointers. Maybe your
school just sucks?


> year. besides, ada lets you make missile guidance systems. :-)

uh, ok.
The shuttle launch control system is being re-written in C++.

I also wrote an inventory management system for a restaurant when I was
12 in Logo.

Myrddraal2

unread,
Oct 8, 1999, 3:00:00 AM10/8/99
to
you need to be able to have the algorithmic background in order
to make decent code and subsequently DECENT EFFECTS.

I don't want to get in the middle of this, but this isn't quite true. Just
look at the Quake3 test. Fairly good graphics, but shitty game play.
Jump+run=frag

0 new messages