|
|
| Author |
Message |
| 25 new of 124 responses total. |
mdw
|
|
response 100 of 124:
|
Oct 10 09:52 UTC 2003 |
C++ has more *visible* complexity. But individual things implemented in
C++ can be less complicated than the same stuff in Java, because Java
adds gratuitous complexity and provides less flexibility.
I don't know that "bad features" are necessarily the absolute evil Dan
Cross paints. To some extent, it's *useful* to have a language that
lets you do the wrong thing, because then you learn more of what's
happening and why it's important. If you use a language that makes it
impossible to make certain mistakes, you won't necessarily learn not to
make that mistake, and you certainly won't learn how to recognize the
mistake or fix it. You'll never learn, in Java, how to track down a
memory allocation error. And nothing in Java will prepare you for the
absolute horror of an array overrun that wipes out random unrelated
memory in "neighboring" memory. Of course this adds to the complexity
and potentially the stress of the person learning. That can be either
good or bad depending on the student. But if that's where the student
wants to wind up, it's probably better to address such pitfalls early,
and teach methods to recognize and avoid such, than to toss it all in at
the end and hope the student doesn't notice.
|
scott
|
|
response 101 of 124:
|
Oct 10 13:52 UTC 2003 |
I actually liked learning C (which was mixed with learning vi, which was not
fun at all), since as a language it's pretty close to the hardware. Same as
BASIC on a little 80's computer, actually.
As computer language and practice became more abstracted from the hardware
I enjoyed it less, and that's a big part of my software burnout.
If the kid in question is more of a hardware type I'd really recommend C, and
to fool around with interfacing or something. For all the web "programmers"
who got laid off, hardware geeks came out a lot better.
|
gull
|
|
response 102 of 124:
|
Oct 10 14:02 UTC 2003 |
Re #95: I remember the main realization I came away with in my C++ class
was that compilers are often broken, and people will go to great lengths
to get them to work anyway.
|
flem
|
|
response 103 of 124:
|
Oct 10 16:38 UTC 2003 |
Heh, I remember frustration with broken compilers for C++ too. They've come
a long way since then, and I'm pretty happy with modern gcc versions.
I think that while C++ has a ton of complexity, it's possible to deal with
it like an iceberg, leaving 90% of the crap out of sight until you really need
it. The library works decently for simple tasks, with some warts. My worst
complaint with C++ is that when something goes wrong, it can be
mind-crushingly difficult to figure out what's wrong, even for small programs.
I don't think there's much benefit to teaching object-oriented programming
to students right off the bat. The benefits of OOP are almost all pretty
arcane, and a beginning programmer might memorize the arguments, but he/she
won't really understand them without having some experience of procedural
programming to put it in context.
|
janc
|
|
response 104 of 124:
|
Oct 10 19:37 UTC 2003 |
C is still the language I'm happiest programming in.
|
cross
|
|
response 105 of 124:
|
Oct 10 19:37 UTC 2003 |
This response has been erased.
|
drew
|
|
response 106 of 124:
|
Oct 10 21:12 UTC 2003 |
Forth.
|
aruba
|
|
response 107 of 124:
|
Oct 11 01:44 UTC 2003 |
I programmed in C++ professionally too. I don't quite agree with cross, but
I do think it's better to learn C before C++. I think the real benefits of
object oriented programming don't manifest themselves in small projects;
they really show up in large projects with lots of programmers. So to a kid
writing on his own, C++ would just look like so much beaurocracy, with no
real upside.
|
albaugh
|
|
response 108 of 124:
|
Oct 14 16:36 UTC 2003 |
This may be a bad analogy, but consider this: No one drives to work on a
tricycle. But to get a child interested in "motion on wheels", we don't hand
him keys to a car or motorcycle, or give him a 2-wheeler (bicycle): We give
him a tricycle, so that he can obtain skills in balance, steering, braking,
etc. So don't worry about having the teenager start in on a programming
language that he'll be required to master in a job, get him "hooked" by
something fairly easy to pick up, and - I maintain - something that provides
quick feedback. Thus I still recommend BASIC or html & javascript.
|
remmers
|
|
response 109 of 124:
|
Oct 14 16:58 UTC 2003 |
I will confess that my own path to computer science (which commenced
after I got a PhD in mathematics) began with Basic (original Kemeny
version out of Dartmouth, late 1960s). At that point, I'd had a little
experience with programming in connection with a computer operator
summer job that I had while in college. But that had been years
earlier, with the machine language of a computer that nobody used
anymore. I was a professional mathematician but a novice programmer.
I had some math problems whose solutions I wanted to automate. Vintage
Basic enabled me to do that without mastering a lot of language
bureaucracy first. Later I came to see the value of more sophisticated
langauge features, but then I just wanted to get something working with
a minimum of fuss and bother. The simplicity and quick feedback of
Basic facilitated that.
So I'm inclined to agree with Albaugh.
|
tod
|
|
response 110 of 124:
|
Oct 14 17:23 UTC 2003 |
This response has been erased.
|
gull
|
|
response 111 of 124:
|
Oct 14 17:28 UTC 2003 |
I think it depends partly on what the kid wants to do. If you try to teach
him a language that doesn't do anything he finds interesting, he's going to
lose interest quickly.
|
keesan
|
|
response 112 of 124:
|
Oct 15 15:04 UTC 2003 |
A few people with poor balance commute on tricycles.
|
albaugh
|
|
response 113 of 124:
|
Oct 18 06:01 UTC 2003 |
And some of us still program in BASIC!!! :-)
|
asddsa
|
|
response 114 of 124:
|
Oct 19 04:15 UTC 2003 |
re 113 wtf??
|
gull
|
|
response 115 of 124:
|
Oct 21 14:15 UTC 2003 |
I mostly stopped programming in BASIC when I reached puberty. ;>
|
kit
|
|
response 116 of 124:
|
Oct 21 20:38 UTC 2003 |
I had at one point an old (and i mean old) conputer, don't ask what it was
called but it was the one after commodore (a something) it used a tape player
to run it's programs. It only worked in basic so I inadvertentley learn't it,
that was when I was about 7 or 8. Shame i forgot it all but i didn't reliase
what it was. Damm!.
|
albaugh
|
|
response 117 of 124:
|
Oct 22 16:54 UTC 2003 |
Sounds like one of them TI "hook it up to your TV" units...
|
bhoward
|
|
response 118 of 124:
|
Oct 23 01:32 UTC 2003 |
I quite like ruby these days. Wish it had been around when I was learning
object-oriented programming.
|
asddsa
|
|
response 119 of 124:
|
Oct 24 01:17 UTC 2003 |
Are you related to Brian Howard, Bruce?
|
bhoward
|
|
response 120 of 124:
|
Oct 24 05:32 UTC 2003 |
Our paths have crossed from time to time :-)
(Hey Bri, how's Mom doing? Tell her I send my love...)
|
asddsa
|
|
response 121 of 124:
|
Oct 25 05:21 UTC 2003 |
No way, you're brothers? Where does Jamie fit in?
|
dcat
|
|
response 122 of 124:
|
Nov 27 04:43 UTC 2003 |
speaking as one who has taken introductory programming classes at three
different colleges in two languages, I wouldn't recommend Java to anyone for
anything, least of all as a first language. As others have said, it's just
simply too complicated and intorduces too many things which are unnecessary
to learning the fundamentals of how to program. C++ wasn't much better.
Personally, actually, I like LISP. LISP is pretty; I wish I had time to learn
more of it. If he's more interested in web stuff, I'd say go with PHP.
|
willcome
|
|
response 123 of 124:
|
Nov 27 07:54 UTC 2003 |
True story: Napster's distribution system is modelled after Chinese
whore-rings.
|
mrbrett
|
|
response 124 of 124:
|
Dec 10 23:03 UTC 2003 |
I am also new to programing and I am thinking of going with java.
|