Thanks in advance
Ben
That depends. What do you want to program for? The Internet? Programs for
your home computer? Depending on what you want to do, there are various
languages that are suitable for the task.
--
Dylan Parry
http://www.webpageworkshop.co.uk
Web Tutorials & Reference Guides
Ben> I am very interested in learning programming. However I am having
Ben> trouble starting, I need advice as to which language would be the best
Ben> for a beginner to start with and where I may find the tools needed to
Ben> start.......literature.....compilers...etc.
Since you are asking this in several Linux groups also, I suggest Python. Its
syntax is a little different to other languages. However once you have
learned it, you (almost automatically) write good looking programs on other
languages also. Python is interpreter/compiler, that is you can write small
Python programs directly to the interpreter, but it compiles the programs to
internal format, so it sees syntax errors before anything nasty happens.
As I said, since it seems you are using Linux, you might already have Python.
Try:
$ python
(Lots of stuff printed)
>> print "Hello world!"
Check www.python.org for more information.
--
Arto V. Viitanen a...@cs.uta.fi
University of Tampere, Department of Computer and Information Sciences
Tampere, Finland http://www.cs.uta.fi/~av/
Frankly, Ben; (ar-ar!) you'll be better responded via addressing -fewer-
groups at one time, but that's JMHO! Speaking of JMHO; start with "DOS",
which stands for Dirty Operating System! (You asked from a beginners'
standpoint, right?).
How about this?: One million words compiled into two!:
"Cold Fusion".
Look it up.
*bt.
Learn Java and/or C++.
Everything else is easy after that.
-Jeff S.
I recommend C++
http://oopweb.com/CPP/Documents/CPPHOWTO/Volume/C++Programming-HOWTO.html
--
John
----------------------------
Remove 'NOSPAM' to email me.
Na. He should learn machine code and have to punch it in via switches
on the front of the computer.
EVERYTHING else is easy after that.
Ciao,
Peter K.
>> Learn Java and/or C++.
>>
>> Everything else is easy after that.
>
> Na. He should learn machine code and have to punch it in via switches
> on the front of the computer.
Don't be silly. If anything he should be punching the ones and zeros into
strips of paper and then feeding them through the machine :)
> EVERYTHING else is easy after that.
Actually, one of the first things I did learn regarding programming _was_
assembler and everything after that was *incredibly* difficult!!
Peter Kootsookos wrote:
>
>Jeffrey Silverman writes:
>
>> Ben Franklyn wrote:
>>
>> > I am very interested in learning programming. However I am having trouble
>> > starting, I need advice as to which language would be the best for a
>> > beginner to start with and where I may find the tools needed to
>> > start.......literature.....compilers...etc.
>> >
>> > Thanks in advance
>> > Ben
>>
>> Learn Java and/or C++.
>>
>> Everything else is easy after that.
>
>Na. He should learn machine code and have to punch it in via switches
>on the front of the computer.
>
>EVERYTHING else is easy after that.
You had SWITCHES?!? When I started, the computers ran on steam!
We had to turn valves to enter the program, and our output device
was a Calliope. You had it easy!
--
My email address is valid and RFC 2822 compliant - no changes needed.
<html><head><title>Guy Macon Electrical Engineer</title></head><body>
<a href="http://www.guymacon.com/" >Electrical Engineer</a> for hire:
Buena Park, CA USA Phone: 714-670-1687 Web: http://www.guymacon.com
Email: guymacon+" YOUR NAME GOES HERE "0...@spamcop.net</body></html>
<short answer>
BASIC.
BECAUSE you asked this question Id have to say that the answer is BASIC.
Thats what its designed for. It will let you program enough to feel a
sense of satisfaction and decide if you like to program or not.
<longer answer>
There is no best. Not in anything. There is only pros and cons. Compare
your question to any other subject you already know. What should be my
first.... car? dog? sport? Whatever it is, your mind will probably move
along the line of a bunch of questions you would ask to narrow the
choices.
Same here. There are langauges that are better if you plan to have fun,
or if you plan to make money, or distribute, or do graphics, or do
databases, or do web, internet, robotics, networking, ibm type computers,
unix type computers. Do you want to be a system admin? or a games
programmer? Or program the new applicances?
But IMHO, based on "interested in learning programming" and "However I am
having trouble starting" I would say have fun with BASIC for awhile. To
start directly with more "serious" or "commercial" languages is to take a
chance on blowing yourself competely off of the subject. At the risk of
becoming a barbecue in all these groups you crossposted to Id comment
that its an exceptional few programmers that became programmers without
starting in a fun language first (then refusing to acknowledge it later
:)
And yes folks, I see the linux in the groups. Basic is available for
linux under the same GNU license as everything else. Multiple flavors of
it. It was even part of the install disks I got.
Gandalf Parker
> "Ben Franklyn" <wel_m...@hotmail.com> wrote in news:CDCta.10$sH6.36183
> @twister.nyc.rr.com:
>
> > I am very interested in learning programming. However I am having
> > trouble starting, I need advice as to which language would be the
> > best for a beginner to start with and where I may find the tools
> > needed to start.......literature.....compilers...etc.
>
> <short answer>
> BASIC.
> BECAUSE you asked this question Id have to say that the answer is BASIC.
> Thats what its designed for. It will let you program enough to feel a
> sense of satisfaction and decide if you like to program or not.
>
> <longer answer>
But remember Edsger Dijkstra's words:
# It is practically impossible to teach good programming style to
# students that have had prior exposure to BASIC; as potential
# programmers they are mentally mutilated beyond hope of regeneration.
There is some truth to this. Unfortunately, I do not have the
slightest idea what a good beginner's language might be. Only that
BASIC is not it ;-)
Regards,
--
Nils Gösche
"Don't ask for whom the <CTRL-G> tolls."
PGP key ID 0x0655CFA0
"Prof" <mf...@winco.net> wrote in message
news:b9csn7$2u6b$1...@news3.infoave.net...
> The easiest program language to learn is Qbasic which come with most
verions
> of Windows until recently but is widely available on the web with other
> similar languages like GWbasic.
Python is much simpler. Easy syntax, closer to english, sane rules, no brain
damage. Ruby is supposedly excellent for this too and Pascal's not bad.
> These are programming languages that run in
> DOS windows and you can do quite a lot with them. You can find tutorial
son
> the web for just about any language but some are harder to learn from
> tutorials and a class would be the best way to go unless you learn things
> more easily than most. Of the languages for jobs Visual Basic, Java and
C++
> seem to be the hottest ones and Visual Basic is supposed to be the easiest
> of these but I know I have tried from books and tutorials and feel I would
> need to take a class. You can get compilers for Qbasic as shareware or if
> you are lucky free. I found an older version of Visual Basic which can
> compile Qbasic programs. It was Visual Basic 3 and it is pretty much of a
> DOS environment but it compiled small programs that I wrote in Qbasic. I
> found a verson of C++ that has a free compiler called developmental C++.
> For newer versions of Visual Basic you have to pay some bucks but you can
> save if you have a connection to a University as I was able to get the
> Educational special on Visual Basic that is the program with compiler and
> libraries for a hundred bucks which would normally cost three hundred.
> There are many other programming languages out there like Python which is
> free because it was abandoned,
Python isn't abandoned, it's GPL. Guido is developing it full-time these
days. VB isn't all that bad for starters, but encourages sloppy programming,
QBasic is simply painful.
>Fox Pro if you are interested in data bases
> as it is the best for that,
Fox Pro is dead and has been for years, SQL and MS Access are king here,
Access for low-end stuff an SQL for anything real.
>and older programs like Fortran, C, and Assmebly
> language which is a low level language meaning it is close to machine
> language. Assembly is hard but it has the advangage of creating very fast
> programs and you learn a lot about the computer from just studying it,
even
> if you never write a program it is fascinating reading. Hackers and
Crackers
> use it to break into games and other places they shouldn't be.
C is very much alive, as is Assembly in embedded systems. Fortran has it's
uses, but is much more rare.
Adam
Well Perl is a nice mix between Basic and C. Python is considered good.
But Id still have to ask...
Your a good programmer? You didnt start with Basic?
From my experience hiring programmers Ive found that those who started
directly in "better" languages were rather close-minded. And it would
appear that while half the people who try BASIC tend to keep programing
in something, those who start at a higher level seemed to have a much
smaller percentage who continue.
So again, Id have to say that it depends on why you want to learn a
programming language. If its to write good code and be marketable then
BASIC probably isnt it. If its to find out if you think programming is
fun, I think it beats out many that are usually recommended.
IMHO
Gandalf Parker
-- I knew Internet before it was spelled W W W
nos...@nospam.nospam wrote:
>
> You had SWITCHES?!? When I started, the computers ran on steam!
> We had to turn valves to enter the program, and our output device
> was a Calliope. You had it easy!
>
Aha! A student of Charles Babbage, I see...
>> He should learn machine code and have to punch it in via switches
>> on the front of the computer.
>
> You had SWITCHES?!? When I started, the computers ran on steam!
> We had to turn valves to enter the program, and our output device
> was a Calliope. You had it easy!
You guys. All we had were rocks.
--
|_ CJSonnack <Ch...@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL |
|_____________________________________________|_______________________|
Nils Goesche wrote:
>But remember Edsger Dijkstra's words:
>
># It is practically impossible to teach good programming style to
># students that have had prior exposure to BASIC; as potential
># programmers they are mentally mutilated beyond hope of regeneration.
This is worth reading in context:
http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html
>There is some truth to this. Unfortunately, I do not have the
>slightest idea what a good beginner's language might be. Only that
>BASIC is not it ;-)
I strongly disagree. Properly structured programming is well
accommodated by modern BASICs. The limitations of BASIC that
Dijkstra was reacting to went away many years ago.
From [ http://www.icpug.org.uk/national/pcnews/030127pn.htm ]:
| Who was Edsger Dijkstra? Those of you who have been with ICPUG
| since the days when I wrote about COMAL will probably know. He
| was the father of the technique of 'Structured Programming'.
| In the early days of home computers, when all the hobbyists were
| programming their hex to decimal conversion routines, he famously
| declared, 'BASIC is crap'!
|
| Because of the use of GOTO, and other constructs which allowed
| code execution to jump around, Dijkstra declared that it was too
| easy to make mistakes in BASIC programming and put forward his
| proposals on Structured Programming.
|
| COMAL was developed specifically to take into account Dijkstra's
| proposals and over time most forms of BASIC, as well as macro
| languages and the like, had structured constructs
Mykroft Holmes IV wrote:
>C is very much alive, as is Assembly in embedded systems.
You would be surprised at how many embedded systems are programmed
in BASIC-like custom-built languages, especially in the toy industry.
Another thing that surprises PC programmers is how popular FORTH
still is in embedded systems. At the low-end, we embedded types
don't use any language at all, even assembly. That's because the
cheapest microcontrollers aren't Von Neuman - they are state
machines.
Programmer Dude wrote:
>
>nos...@nospam.nospam wrote:
>
>>> He should learn machine code and have to punch it in via switches
>>> on the front of the computer.
>>
>> You had SWITCHES?!? When I started, the computers ran on steam!
>> We had to turn valves to enter the program, and our output device
>> was a Calliope. You had it easy!
>
>You guys. All we had were rocks.
I *wish* we had some nice rocks to program with! All we had was mud.
With a rock, you can store information by it's position. With mud
it just oozes into the rest of the mud. The techniques we invented
to store data are still used in DRAM refresh circuits to this day.
"Guy Macon" <guymacon+" http://www.guymacon.com/ "0...@spamcop.net> wrote in
message news:vblh29e...@corp.supernews.com...
>
>
>
> Mykroft Holmes IV wrote:
>
> >C is very much alive, as is Assembly in embedded systems.
>
> You would be surprised at how many embedded systems are programmed
> in BASIC-like custom-built languages, especially in the toy industry.
> Another thing that surprises PC programmers is how popular FORTH
> still is in embedded systems. At the low-end, we embedded types
> don't use any language at all, even assembly. That's because the
> cheapest microcontrollers aren't Von Neuman - they are state
> machines.
>
>
No, actually I wouldn't be surprised, I've spent some time playing with PICs
and such. I was simply answering that totally silly post, as to the
usefulness of Assembly.
Adam
Remember, however, that quite was in the light of his letter to the
Communications of the ACM, GOTO Considered Harmful. The BASIC of Dijkstra's
day had none of the more modern conveniences, such as block
if-then-else-endif, DO...LOOP, SELECT CASE, WHEN EXCEPTION IN..., etc. The
BASICs of today have all the structured constructs ol' Eddie could have
wished for!
Tom Lake
In any case, my opinion is that the only things which prevent students
from learning are poor teachers, the students themselves, and brain
damage. Since I've never heard it seriously proposed that exposure to
BASIC causes brain damage Dijkstra's premise devolves into the
suggestion that either he is a poor teacher (and considers all other
teachers equally poor) or that there is some 'selection' mechanism at
work that causes poor students to take BASIC and good students not to do
so. Since I don't believe the latter I'm forced to believe the former.
> I'm afraid that all this points out is how little Dijkstra knows. Or, in
> view of his accomplishments which argue that he knew quite a bit, maybe
> what it points out is how poorly he could teach.
Personally Im more a teacher than a doer. Im well known for "translating
tech into english". When Im getting razzed I often hear something along the
line of the famous "Those that can, do. And those that cant, teach".
I reply "that doesnt bother me much since from that Ive seen...
those that can, cant teach".
If Im feeling really irittated and know something about my razzer I might
say that the modern equivalent would be "Those that can, tech. And those
that cant, consult" (some of my best friends are consultants and they think
its funny so dont flame me)
Gandalf Parker
-- The growth of the Internet has less in common with engineering, planning
and design; and more in common with chaos theory, big bang expanding
universe, and the theory of evolution. - Gandalf Parker
Do you know how long it takes to boot a program like
Windoze, with just your thoughts ?
Playing Solitaire took all day and you can just forget
surfin' the net.
ps: All those alligator clips stuck to your scalp hurt like
*$!%@( !!
--
Thanks !
Jim
[ log...@yahoo.com to reply directly ]
"If you are living like there is no God ...
... you better be right !"
On Thu, 8 May 2003, Mykroft Holmes IV wrote:
> QBasic is simply painful.
Not necessarily within its problem space. I have some programs I
wrote in QBasic/QuickBasic for which some languages might have been
simply overkill (such as Visual Basic in a Windblows environment -- I
have programmed in VB). QBasic/QB allow one to use good programming
technique: the constructs are there. My experience, going back to the
punch card days, is that no one language is best for every task. For
the tasks I have for personal use, QBasic/QB are just fine.
> C is very much alive, as is Assembly in embedded systems. Fortran has it's
> uses, but is much more rare.
Fortran rare? That's news to me. There are libraries of Fortran
routines going back forty years that are still in yeoman service for
engineers. I would say that in the real world, Fortran is alive and
well (at lest the last time I checked).
--
Paul Bartlett
bartlett at smart.net
PGP key info in message headers
HA! I had an X86 system with DOS. I'm sure your rocks were faster and
didn't crash as often.
HA! I'm running Windows. I'm sure your DOS system was faster and didn't
crash as often!
--P.
I just developed bad techniques from BASIC and can't shake them,
That said, if i could start again and have a fresh head, i would start
with C/C++
I have absolutley no OOP concept at all,
That said I have the same sort of concept when it come to
linux/windows: learnt windows first (whatever ther is to learn), and
now find it difficult to learn linux. I realyy have to chuck out
weindows altogether, and start afresh
just my two cents
> I just developed bad techniques from BASIC and can't shake them,
> That said, if i could start again and have a fresh head, i would start
> with C/C++
> I have absolutley no OOP concept at all,
Well I must admit that I have no OOP concept either. But I havent missed
it all that much. I still use Basic for alot of my sys_admin stuff. And I
have no problem troubleshooting Perl, C, Java, Python, various languages
even if couldnt write in them from scratch.
The question would be, did Basic make us OOP retarded, or would we have
been anyway and starting in C would have blown us off. Id say of the
people who start with BASIC, 10% give up, 20% get stuck there, and 70%
move on succesfully. Now with C-starters is it 30% give up and 70% move
on? No win there. Actually Im not sure Id give it a 70% success for
starting in C, maybe less than that.
> That said I have the same sort of concept when it come to
> linux/windows: learnt windows first (whatever ther is to learn), and
> now find it difficult to learn linux. I realyy have to chuck out
> weindows altogether, and start afresh
Hmmm I guess I can see that. The same logic that my grandpa used when he
said everyone should learn to drive on a shift. Might be right.
I did learn DOS extensively before Windows so I find the unix/linux
environment quite comfortable.
Gandalf Parker
-- Did you know that 9 out of 10 Windows users cant find their ASCII with
both hands? - Gandalf Parker
> Well I must admit that I have no OOP concept either. But I havent missed
> it all that much. I still use Basic for alot of my sys_admin stuff. And I
> have no problem troubleshooting Perl, C, Java, Python, various languages
> even if couldnt write in them from scratch.
>
> The question would be, did Basic make us OOP retarded, or would we have
> been anyway and starting in C would have blown us off. Id say of the
> people who start with BASIC, 10% give up, 20% get stuck there, and 70%
> move on succesfully. Now with C-starters is it 30% give up and 70% move
> on? No win there. Actually Im not sure Id give it a 70% success for
> starting in C, maybe less than that.
>
Why don't you take a look at REALbasic: www.realbasic.com. This is
originally a Macintosh program, but recently a Windows version came out.
It is OOP, it is compiled and it's syntax is quite similar to VB.
Floris
which he wrote in a 1975 tongue-in-cheek note "How do We Tell Truths
that Might Hurt" (not to be confused with his 1968 article "Go To
Statement Considered Harmful"). Don't take it too seriously. He made
similar cracks about the other important languages of the day (apart
from his favourite, Algol). The only reason that C++, Perl, etc. were
missing was that they didn't exist at the time. See for yourself at
http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html
I'm inclined to think that Dijkstra disliked BASIC just as much for
its built-in IDE as for its GOTO statements. He didn't like people to
code at the terminal. For him, inventing the algorithm was what Real
Programmers did. Everything else was just details. And on that
point, I'm inclined to agree with him.
Cheers
Derek
I'd start with QBasic. It's in the root directory of Windows. I first
learned Basic, then C, COBOL and C++. I still use QBasic for
math applications, and quick and dirty work :-) Basic is the language that
wouldn't die. After QBasic, probably C++ if you want to
do serious stuff. Then VisualBasic and JAVA if you want to work.
Here's a QBasic program I wrote for fun that turns your name around. Open a
dos window and type QBasic.exe.
When the program starts up, hit the escape key to clear the screen. Then use
the menu to load this program from wherever you have
saved it.
Copy and paste the code to a file named, say, backward.bas
You need to use the .bas extension or QBasic wont find it.
Then choose "run" from the menus and it will run.
I would get a Quick Basic textbook, as QBasic and Quick Basic are the same
except for no compiler with QBasic. You can worry about that
after you have learned a bit. There are freeware basic compilers at the
shareware sites like Tucows.com, Winfile.com, Winsite.com and Simtelnet.com.
Have fun. Write to me if you get stuck somewhere :-)
John Leppart
lep...@i29.net
CLS
INPUT ; "Enter a name ==> ", a$
CLS
FOR i = LEN(a$) TO 1 STEP -1
b$ = MID$(a$, i, 1)
backward$ = backward$ + b$
NEXT i
'-------------------------------------------
'<<<<<<<<<< Find space between name >>>>>>>>
'-------------------------------------------
FOR i = 1 TO LEN(backward$)
i = i + 1
IF MID$(backward$, i, 1) = CHR$(32) THEN space = i
NEXT i
'--------------------------------------
'<<<<<<<<<< Flip names >>>>>>>>>>>>>>>
'--------------------------------------
' *** First name ***
FOR i = (space + 1) TO LEN(backward$)
PRINT MID$(backward$, i, 1);
NEXT i
PRINT " ";
' *** Last name *****
' Last name
FOR i = 1 TO (space - 1)
PRINT MID$(backward$, i, 1);
NEXT i
PRINT
On Sat, 24 May 2003, John Leppart wrote:
> [most dnipped for space]
> I would get a Quick Basic textbook, as QBasic and Quick Basic are the same
> except for no compiler with QBasic. You can worry about that
> after you have learned a bit.
However, QBasic does have some resource limits that QuickBasic does
not. The online help for QBasic suggests using QuickBasic if you want
to buid programs over 160K in size (except that, of course, Microsoft
quit selling QuickBasic years ago).
I recommend Power Basic
= ( C+ +basic+pascal)/3
--
Med venlig hilsen
Per A. Hansen
>
> "Ben Franklyn" <wel_m...@hotmail.com> skrev i en meddelelse
> news:CDCta.10$sH6....@twister.nyc.rr.com...
>> I am very interested in learning programming. However I am having
> trouble
>> starting, I need advice as to which language would be the best for a
>> beginner to start with and where I may find the tools needed to
>> start.......literature.....compilers...etc.
>
> I recommend Power Basic
Hmmm didnt see Linux listed under PowerBasic. I saw Windows and Dos
versions. Seeing all the linux groups in his massive crosspost I figured
that was a desire. Did I miss something on the PB page?
Id stick with something GNUish and ANSI for a starter.
Such as YaBasic or BWBasic.
Gandalf Parker
-- There is no "best". There is only Pros and Cons.
>Hmmm didnt see Linux listed under PowerBasic. I saw Windows and Dos
>versions. Seeing all the linux groups in his massive crosspost I figured
>that was a desire.
The following in his post leads me to believe that he is a Windows user.
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
It is a lot easier to read and use than VB and it is freeware.
RapidQ has a very active and friendly mailing list,
rap...@yahoogroups.com
rapidq-s...@egroups.com
a files area
http://groups.yahoo.com/group/rapidq/files/
Older home page:
http://www.basicguru.com/rapidq/
RapidQ is the easiest yet most powerful programming language I have
ever found, and I have tried many.
There are also tons of sample programs available, easy to use as
starting points for your own programs.
It has possibilities for extended functionality by allowing direct use
of windows API, assembler, and many other extensions.
Aside from the new visual object commands it is very compatible with
QBasic and Quickbasic.
An example of what a program can look like:
' How to create multiple navigable forms
DECLARE SUB SetFocus LIB "USER32" ALIAS "SetFocus" (HWnd AS LONG)
DECLARE SUB Button1Click (Sender AS QBUTTON)
DECLARE SUB Button2Click (Sender AS QBUTTON)
CREATE Form1 AS QFORM
Caption = "Form 1"
Width = 200
Height = 80
Left = 350
CREATE Button1 AS QBUTTON
Caption = "Click me!"
OnClick = Button1Click
END CREATE
Show
END CREATE
CREATE Form2 AS QFORM
Caption = "Form 2"
CREATE Button2 AS QBUTTON
Caption = "Click me!"
OnClick = Button2Click
END CREATE
Show
END CREATE
SUB Button1Click (Sender AS QBUTTON)
SetFocus(Form2.Handle)
Button1.Caption = "Click me!"
Button2.Caption = "No, click me!"
END SUB
SUB Button2Click (Sender AS QBUTTON)
SetFocus(Form1.Handle)
Button2.Caption = "Click me!"
Button1.Caption = "No, click me!"
END SUB
DO
DoEvents '-- Process events from either form
LOOP UNTIL Form1.Visible = 0 AND Form2.Visible = 0
...
See the structure? Declarations, visual forms, subroutines, main
program.
--
Roger J.
Yes I noticed that also but thought he was looking for something cross-
compatable. Maybe not.
Gandalf Parker
>Nils Goesche <car...@cartan.de> wrote in message news:<ly8yth5...@cartan.de>...
>> But remember Edsger Dijkstra's words:
>>
>> # It is practically impossible to teach good programming style to
>> # students that have had prior exposure to BASIC; as potential
>> # programmers they are mentally mutilated beyond hope of regeneration.
Of course the other thing that Dijkstra is famous for is an
interesting little puzzle
- called Dijkstra's Balls
Realistically, one heck of a lot of programmers and programs came from
BASIC
- primarily because it was accessable
- most early Micros had some form of embedded BASIC
- programmers are IMO 'self selecting'
The stats someone quoted about 70% of 'C' programmers not falling by
the wayside, might well be true
- perhaps because they are formally (but not academically) taught
'defensive programming'
- perhaps also because they lie about how they really got hooked on
computers
Realistically, one can write a dogpile in any language
IME computers get at your brain, they change the way you look at
things, some people are susceptable - some are not
Well, I started with Basic (Apple ][+). Then I did Assembler (didn't really
know what I was doing back then though, Apple ][+). Then I did Basic again
(A1000 and DOS). Then I did more Assember (A1000). Then I did Borland
Pascal (DOS). Then I did Assember within Borland Pascal (DOS). Then I did
C (Linux). Then I did VB (Winblows). I've been doing C and C++ under Linux
ever since, with just a touch of Java, TCL, Perl, Lisp, ML, and a few other
bits thrown in.
My advice? Don't do what I did. ;)
Fredderic
Sounds remarkably like my path through the world of programming, which
goes something like this:
Commodore Vic20: basic, 6502 asm (on paper, manually translated to
machine code and entered as data in basic program)
BBC Model B/Master 128: basic (LOVED BBC basic!), LOGO (ah, school days)
Apple //e: basic (ugh, back to horrid common basic again), Pascal (which
was it's own operating system), 6502 asm (again, largely by hand)
IBM PC Clone: basic (yeah, I know), 8080 asm, pascal, forth, C, LOGO
Apple ][gs: basic (anyone seeing a theme here?), pascal, 65816 asm (with
an actual assembler!), C, Z80 asm (by hand - had a copro board and no
dev tools for it)
Amiga 1200: C, BlitzBasic
Various PCs since then: Forth, 80x86 asm, C, Visual Basic, Pascal, C++
Not to mention dabbling with things like perl, php, javascript, etc. and
asm for various 8-bit embedded processors. No doubt there are a lot of
people here with similar tales to tell :)
> My advice? Don't do what I did. ;)
I kind of agree, although looking back... I certainly know a lot more
about the internal workings of my computers than someone who just
learned a single high-level language and some scripting. I've also
picked up some interesting programming techniques over the years,
usually to work around limitations in the machine at the time. Some of
them are still relevant today, but largely they've fallen by the wayside
on more capable machines.
In terms of style, it's probably better these days to start directly
with what you intend to program in rather than attempting to "learn
programming" by working up through the easiest options first.
If only C++ had been available when I started learning to program <sigh>
--
Corey Murtagh
The Electric Monk
"Quidquid latine dictum sit, altum viditur!"
> Sounds remarkably like my path through the world of programming, which
> goes something like this:
My dad can lick your dad! :-) I started on FORTRAN IV with punch
cards turned in at a desk. Then I came back later to pick up a
printout that said my compilation failed. (Abacus, anybody?)
>My dad can lick your dad! :-) I started on FORTRAN IV with punch
>cards turned in at a desk. Then I came back later to pick up a
>printout that said my compilation failed. (Abacus, anybody?)
You people are still using *computers*? I am whistling into my
phone at 56Kbps and doing the trellis encoding in my head.
I can decode audio and video files in real-time, but decrypting
PGP files without the key slows me down a bit...
When *I* stared the computers ran on STEAM. Many an overclocker
died in a boiler explosion. And the mirrors were all black and
white and two dimensional. And I had to walk ten miles through
the Los Angeles snow to get to school, uphill both ways.
We didn't even have FORTH; we had to make do with THIRD!
Guy Macon http://www.guymacon.com Guy Macon http://www.guymacon.com
Guy Macon http://www.guymacon.com Guy Macon http://www.guymacon.com
Guy Macon http://www.guymacon.com Guy Macon http://www.guymacon.com
Guy Macon http://www.guymacon.com Guy Macon http://www.guymacon.com
> IME computers get at your brain, they change the way you look at
> things, some people are susceptable - some are not
>
I was in the military when they stated shifting from
mainframes/dumbterminals to small computers for alot of things.
On the subject of programming I told them that there are two groups I could
count on for being able to program. Those who could write clear OI's
(operating instructions, manuals for day to day jobs), and the other was
mothers of small children.
After the laughs I would tell them that programming was a step-by-step
painstakingly clear procedure with checks every step of the way to make
sure things were done right. "Its like teaching a 5 year old how to tie
their shoes. Actually, its like teaching a 5 year old how to tie their
shoes, over the phone. If you can do that, then you too could be a
programmer."
Gandalf Parker
-- Personally I would rather hire someone who knows 3 "dead" programming
languages than an expert in some latest one.
> On Thu, 29 May 2003, Corey Murtagh wrote:
>
>> Sounds remarkably like my path through the world of programming, which
>> goes something like this:
>
> My dad can lick your dad! :-) I started on FORTRAN IV with punch
> cards turned in at a desk. Then I came back later to pick up a
> printout that said my compilation failed. (Abacus, anybody?)
>
You got to turn in your cards?!?
I had to stand at the machine and flip the 32 toggle switches then hit
"enter" (dont laugh people, its a fact). 32 bit programming WITH THE BITS
(can you still read the holes in the cards? I think I could if I had to)
Gandalf Parker
Your dad is THAT way, eh?
I started on FORTRAN IV with punch
> cards turned in at a desk. Then I came back later to pick up a
> printout that said my compilation failed. (Abacus, anybody?)
We had to wait anywhere from three days to a week to get back our print-outs
from a GE computer programmed in FORTRAN IV. I never did get to see the
computer I was programming! I remember one system that had no RAM but
rather a magnetic drum. We had to space instructions out over the surface
of the drum so that in the time it took for one instruction to complete, the
drum would have rotated to the beginning of the next instruction thus saving
precious computer time. Sort of reminds me of the interleaving of early PC
compatible hard drives.
Tom Lake
>I remember one system that had no RAM but
>rather a magnetic drum. We had to space instructions out over the surface
>of the drum so that in the time it took for one instruction to complete, the
>drum would have rotated to the beginning of the next instruction thus saving
>precious computer time. Sort of reminds me of the interleaving of early PC
>compatible hard drives.
I remember working with those... For the younger set, "no RAM" meant
"*NO* RAM! Those drums didn't act as disk drives (that was the role
of the tape drives) - they were the CPU REGISTERS!
> I started on FORTRAN IV with punch cards turned in at a desk. Then I
> came back later to pick up a printout that said my compilation failed.
Likewise. I still have some of my earliest programs ... stored on punched
paper tape!
> (Abacus, anybody?)
As a matter of fact, I used to use one regularly in my first (retail) job.
Worked for a Chinese gentleman in a "drive in dairy" (only in California!).
Two of us (employees) closed each night, and counting our "bank" was part
of that. Harry (the boss) only had one adding machine (the cha-chunk kind),
so I'd use Harry's abacus. I'd race the other guy.
Sometimes I won! ;-)
--
|_ CJSonnack <Ch...@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL |
|_____________________________________________|_______________________|
>> (Abacus, anybody?)
>
>As a matter of fact, I used to use one regularly in my first (retail) job.
>Worked for a Chinese gentleman in a "drive in dairy" (only in California!).
>Two of us (employees) closed each night, and counting our "bank" was part
>of that. Harry (the boss) only had one adding machine (the cha-chunk kind),
>so I'd use Harry's abacus. I'd race the other guy.
Experienced abacus users beat calculator users on a regular basis
whenever speed of addition and subtraction is measured. The calcs
win at multiplication and division.
I used to use an eight-foot slide rule that was bent into a helix.
Then there is this... http://www.rustrans.co.uk/rope.html
> On Thu, 29 May 2003, Corey Murtagh wrote:
>
>> Sounds remarkably like my path through the world of programming, which
>> goes something like this:
>
> My dad can lick your dad! :-) I started on FORTRAN IV with punch
> cards turned in at a desk. Then I came back later to pick up a
> printout that said my compilation failed. (Abacus, anybody?)
>
I used to program a US Navy DEC-11/55 in machine code from the colsole
(read: throw paddle switches). My earliest progrmming was in *ones* and
*zeros*: the *ones* were still in Beta...
All the best,
Rob Weaver
Mandrake user for going on 18 hours <G>
>"Jeffrey Silverman" <jef...@jhu.edu> writes:
>
>
>
>>On Mon, 05 May 2003 23:40:18 +0000, Ben Franklyn wrote:
>>
>>
>>
>>>I am very interested in learning programming. However I am having trouble
>>>starting, I need advice as to which language would be the best for a
>>>beginner to start with and where I may find the tools needed to
>>>start.......literature.....compilers...etc.
>>>
>>>Thanks in advance
>>>Ben
>>>
>>>
>>Learn Java and/or C++.
>>
>>Everything else is easy after that.
>>
>>
>
>Na. He should learn machine code and have to punch it in via switches
>on the front of the computer.
>
>EVERYTHING else is easy after that.
>
>Ciao,
>
>Peter K.
>
>
>
>
I learned that way, and BASICally, all languages are pretty easy after
that. The OOPs stuff got me a little.
Ben: If you are using Linux, look at QB2C (you can pull it from
bastoc.com). You will need to get a QBASIC programming manual, since
the documentation is not as good. But the price is right to start..
It allows Inline C as well, so you can mix. If you are Windoze, you can
get FirstBASIC from powerbasic.com.
And the pay for version allows inline asm.
FirstBASIC is not a Windows BASIC. I'm not knocking it mind you
because it's pretty good, but it's for DOS.
Check out Liberty BASIC if you're looking for an easy Windows
programming language.
-Carl Gundel, author of Liberty BASIC
なんかやたらといろいろなグループにポストしているみたいですが。
fj.comp.lang.basic
やっぱり、BASICと言うくらいですから、BASICでしょう。
In article <pan.2003.05.06....@jhu.edu>, jef...@jhu.edu says...
BASIC is still a great language for an easy introduction to programming.
One super version is at:
http://hp.vector.co.jp/authors/VA008683/index.htm
or in English:
http://hp.vector.co.jp/authors/VA008683/english/index.htm
Tom Lake
>>>I am very interested in learning programming. However I am having
>>>trouble starting, I need advice as to which language would be the best
>>>for a beginner to start with and where I may find the tools needed to
>>>start.......literature.....compilers...etc.
>>>
>>>Thanks in advance
>>>Ben
>
> BASIC is still a great language for an easy introduction to programming.
> One super version is at:
Ick... I, unfortunately, learned BASIC as my first language. Don't bother
learning all those things you will have to unlearn. If you start with a
language with a global variable scope, no functions and is built around
using goto you're going to have a hard time making the transition to a
language that thinks all of those things are blaspheme.
As others have said, start with C/C++ or Java. Your first programs don't
have to be overly complicated and everything you learn in a C-like
language translates to every other C-like language out there.
Once you get the logic behind loops and conditional statements it's all
about syntax, no matter what language you're using.
>On Tue, 13 Feb 2007 17:57:43 -0500, Tom Lake wrote:
>
>>>>I am very interested in learning programming. However I am having
>>>>trouble starting, I need advice as to which language would be the best
>>>>for a beginner to start with and where I may find the tools needed to
>>>>start.......literature.....compilers...etc.
>>>>
>>>>Thanks in advance
>>>>Ben
>>
>> BASIC is still a great language for an easy introduction to programming.
>> One super version is at:
>
>Ick... I, unfortunately, learned BASIC as my first language. Don't bother
>learning all those things you will have to unlearn. If you start with a
>language with a global variable scope, no functions and is built around
>using goto you're going to have a hard time making the transition to a
>language that thinks all of those things are blaspheme.
That must have been a LONG time ago, on a very primitive BASIC. Modern
BASICs have functions, subroutines, local variables, global variables,
(in between variables), common variables . . .
I spent YEARS (well months, anyway) trying to figure out the variable
scope rules for PDS. (ms quickbasic 7.10) Not sure that I ever did.
<snip>
--
ArarghMail702 at [drop the 'http://www.' from ->] http://www.arargh.com
BCET Basic Compiler Page: http://www.arargh.com/basic/index.html
To reply by email, remove the garbage from the reply address.
> On Tue, 13 Feb 2007 17:29:11 -0600, Ivan Marsh <ann...@you.now> wrote:
>
>>On Tue, 13 Feb 2007 17:57:43 -0500, Tom Lake wrote:
>>
>>>>>I am very interested in learning programming. However I am having
>>>>>trouble starting, I need advice as to which language would be the
>>>>>best for a beginner to start with and where I may find the tools
>>>>>needed to start.......literature.....compilers...etc.
>>>>>
>>>>>Thanks in advance
>>>>>Ben
>>>
>>> BASIC is still a great language for an easy introduction to
>>> programming. One super version is at:
>>
>>Ick... I, unfortunately, learned BASIC as my first language. Don't
>>bother learning all those things you will have to unlearn. If you start
>>with a language with a global variable scope, no functions and is built
>>around using goto you're going to have a hard time making the transition
>>to a language that thinks all of those things are blaspheme.
>
> That must have been a LONG time ago, on a very primitive BASIC.
Indeed it was (Apple IIe).
> Modern BASICs have functions, subroutines, local variables, global
> variables, (in between variables), common variables . . .
I had no idea BASIC had evolved... or that anyone had bothered to make it
evolve.
> I spent YEARS (well months, anyway) trying to figure out the variable
> scope rules for PDS. (ms quickbasic 7.10) Not sure that I ever did.
Now that I've spent a considerable amount of time with C++ I wish it had
been the first language I worked with.
I strongly recommend that the child starts with no less then assembly
programming.
There is no tool as happy to go where the playful mind of a child would
like to go, than an assembler. Do not polute a childs mind with the
abominations of C, C++ and or C# or absurdities like Java.
The one i am using, and that I recommend is RosAsm.
< http://betov.free.fr/RosAsm.html >
If he goes this route, he will be teaching you guys a thing or two, in
less then a few months. In a few years, he will be laughing his head of at
you gays, woundering what went wrong with you.
:))
>On Tue, 13 Feb 2007 17:50:16 -0600, ArarghMail702NOSPAM wrote:
>> On Tue, 13 Feb 2007 17:29:11 -0600, Ivan Marsh <ann...@you.now> wrote:
<snip>
>>>Ick... I, unfortunately, learned BASIC as my first language. Don't
>>>bother learning all those things you will have to unlearn. If you start
>>>with a language with a global variable scope, no functions and is built
>>>around using goto you're going to have a hard time making the transition
>>>to a language that thinks all of those things are blaspheme.
>>
>> That must have been a LONG time ago, on a very primitive BASIC.
>
>Indeed it was (Apple IIe).
Someone gave me an Apple IIe some time back. No software, however.
>
>> Modern BASICs have functions, subroutines, local variables, global
>> variables, (in between variables), common variables . . .
>
>I had no idea BASIC had evolved... or that anyone had bothered to make it
>evolve.
Just take a look at QBasic (comes with DOS 5. . . & Win9x). It has a
lot of the features that the for pay versions have.
>> I spent YEARS (well months, anyway) trying to figure out the variable
>> scope rules for PDS. (ms quickbasic 7.10) Not sure that I ever did.
>
>Now that I've spent a considerable amount of time with C++ I wish it had
>been the first language I worked with.
About the only way I can understand C programs (beyond very simple
ones) is to feed it thru the compiler and read the corresponding asm
code. :-) The GUI versions of VB, also.
I completely disagree. I found Haskell much harder, and far more
enlightening (it was my second real programming language). I strongly
recommend that the original poster try Scheme, which has several
dialects aimed at beginners. When used properly, Scheme is quite
different from Java, and (so they claim) more expressive. Haskell is
stricter and tougher to learn but has some quite amazing concepts in it:
higher-order functions, algebraic datatypes, typeclasses, monads,
arrows, etc.
C'mon people, back me up on this!
--
Simon Richard Clarkstone:
s.r.cl?rkst?n?@durham.ac.uk/s?m?n.cl?rkst?n?@hotmail.com
Scheme guy says: (> Scheme Haskell)
Haskell guy says: (> Scheme) Haskell
The second language is *always* the hardest, no matter what order you
learn them in.
After four or five, you can start comparing how hard they are to learn,
but you'll have trouble making a fair comparison involving any of the
first few you learned. (This also makes it hard to judge how hard any
of them are to learn as a first language.)
But, yeah, if you can truly wrap your brain around C++, that's got to
be the equivalent of learning two or three sensible languages, so things
will be a lot easier after that. The problem there is that most people
who "know C++" have barely learned one of those language-equivalents.
dave
--
Dave Vandervies dj3v...@csclub.uwaterloo.ca
>Now, if I plug in the HDD (with OS already installed), should the system
>boot into windowsXP or what?
No, it should boot into the OS. --gperson47 and Anton Ertl in comp.arch
<snip>
>> That must have been a LONG time ago, on a very primitive BASIC.
>Indeed it was (Apple IIe).
That was my second dialect of BASIC
>> Modern BASICs have functions, subroutines, local variables, global
>> variables, (in between variables), common variables . . .
>I had no idea BASIC had evolved... or that anyone had bothered to make it
>evolve.
You would not recognize it nowadays, in fact you would not recognize
20 year old BASICs
I have to agree with Dave here.
However, I also have to agree with Simon. Learning the first language
with a completely different paradigm is both hard and immensely instructive.
My personal learning curve was:
* Pascal (learn to program in the first place)
* Lisp (hard and enlightening: higher-order functions)
* Eiffel (hard and enlightening: proper usage of OO, assertions)
* Haskell (hard and enlightening: lazy evaluation, immutability)
I.e. I had three "second languages" (major enlightenments) in my career :-)
Note that enlightenment doesn't necessarly mean you're closer to the
truth. Today, I find
* Programming: That's the basis
* Higher-order functions: indispensable
* OO: disappointment (encapsulation: indispensable; dynamic binding: too
uncontrollable, better alternatives exist)
* Assertions: indispensable for debugging and documentation
* Immutability: a basis for many, many desirable properties,
unfortunately not usually well-supported
* Lazy evaluation: undecided, great tool but great cost.
(Cost is diminishing as tools become available, so it's still on my
watch list.)
> But, yeah, if you can truly wrap your brain around C++, that's got to
> be the equivalent of learning two or three sensible languages, so things
> will be a lot easier after that.
Only if you have really learned OO (difficult in C++, too many technical
distractions) and have written something serious in the template
sublanguage (i.e. you have fully understood the STL and are writing
similarly abstract code routinely).
Learning the other languages is probably faster. (It's also more
frustrating: either you use a mainstream language and have to live
without several indispensable features, or you use a niche language and
miss at least one indispensable feature *and* have to write your own
libraries.)
Regards,
Jo
This is an interesting thread. I have an electrical engineering and physics
background, and yet I have found Haskell difficult. My very first
programming language was FORTRAN 77 in the late '70's, and that was shortly
followed by VAX assembly language. I picked up BASIC and 6502 machine code
when I got my Commodore 64. Somewhat later during the '80's I encountered C.
In the early '90's I became proficient with Perl (first 4, then 5), and
Prograph - a visual dataflow OOP language. With JDK 1.0.2 later on I grokked
Java, I started learning C++ seriously about the same time, and have
recently at least explored C#, Python, and J. I'd like to think that I am
also quite accomplished at shell scripts, awk, sed and so forth. I am even a
pretty fair hand at Prolog.
But I cannot easily get a handle on Haskell. I don't think it is that I am
dumb even. At the moment though, I can sense the potential of the language -
I like the style of it - but putting it to practical use is defeating me. I
have a few problems right now that would likely be great for Haskell, but I
am electing Java in one case and J in the other (I guess that says
something, J being easier than Haskell).
I guess that if I decided to use Haskell for one of these projects, and
deliberately picked the experts' brains on this NG, it would probably be a
good thing for the community.
AHS
Don't despair yet. I have a similar background as yours - electrical
engineering, though I learnt Basic first, followed by Pascal and C
before touching Lisp/Haskell/Erlang and the bros. There was a case
where I had to write a fairly complex divide and conquer algorithm for
extracting group features out of a large (> 75000 primitives)
postscript drawing. I spent nearly 2 weeks trying to get it right in C
and nearly managed it .. with a few crashes (memory management was a
pain and was complex as well).
I was learning Haskell at that time and tried to express the problem
in it .. sort of starting from basic principles. I managed the same
result in < 2 hours of work and went "bloody hell!" over and over 'cos
I'd solved two problems in the process. And I couldn't have expressed
the problem like that straight forwardly in C .. and I guess C++ as
well.
Haskell forces you to think different. If you try to program in it
like you do with C/C++, you're likely to fall and get frustrated. Play
with the language one step at a time, experimenting and (I believe)
you'll reap great benefits in no time.
Regards j1mb0jay
How would you describe fancy static type systems on this list?
Type inference would be indispensable, no enlightenment.
Parametric types (such as Array 'a): indispensable, minor enlightenment.
Dependent types and similar stuff: highly interesting, but I suspect
researchers are solving the wrong problems here. IMHO they are tackling
mathematical theories instead of concentrating on what the programmers
want to state about their code, how to most easily and succinctly
express it, how to identify and report inconsistencies, and how to deal
with incompeteness - IOW it's ergonomy, not mathematics. That said, type
research is still valuable because it gives results on what can be done
and what cannot.
Still, this all isn't ready for the average programmer, and will take
another couple of years until it is; for me, the jury is still out.
Regards,
Jo
!snip!
> Dependent types and similar stuff: highly interesting, but I suspect
> researchers are solving the wrong problems here. IMHO they are tackling
> mathematical theories instead of concentrating on what the programmers
> want to state about their code, how to most easily and succinctly
> express it, how to identify and report inconsistencies, and how to deal
> with incompeteness - IOW it's ergonomy, not mathematics. That said, type
> research is still valuable because it gives results on what can be done
> and what cannot.
If you think of type systems as a way to state simple theorems about a
program, a more natural way to develop might be towards Extended ML or
Larch rather than dependent type systems. It could even work now that
people are used to writing JavaDoc documentation, just tell them it's
structured documentation rather than theorems.
!snip!
(Followup-To field reduced in length.)
--
Darren Bane
Thanks. I've been wondering what dependent types were and the current
Wikipedia article is unenlightening. But I've found two interesting
papers, "Why Dependent Types Matter" by Altenkirch, McBride, and
McKinna; and (sort of related I guess) one by SPJ and Erik Meijer
about a language called Henk (after Henk Berendregt) whose type system
is based on the lambda cube. Henk is intended as an intermediate
language for a functional compiler rather than as a source language,
so it has fewer ergonomy constraints (e.g. every value is
type-annotated). If I can grok that paper enough to implement
something like it, I'll figure that I've actually learned something.
I have the idea (maybe wishful thinking) that it will help clear up
some of the mysteries that perplex me about Haskell.
I wouldn't expect that understanding dependent types will help with
Haskell; AFAIK Haskell's type system does not have them.
However, the first sentence of the Wikipedia article is clear anough:
"[...] a dependent type is a type which depends on a value."
I read that as "'on a value', as opposed to 'on another type'".
Examples:
1. Tree t
Depends on another type, t. This is parametric polymorphism, and a
standard feature of FPLs with Hindley-Milner type inference.
2. Array t #n
Depends on another type, t, and a number, #n (the latter is ad-hoc
syntax). Array depends on the value - an array type needs a value to
indicate the number of entries.
The latter is what C++ can do with its template classes (which will
accept types or values), at the expense of type-checks for the template
classes themselves (you can't typecheck C++ template classes in
isolation, you can typecheck only their instantiations with concrete
parameters).
I hope that one important aspect of dependent type research is the
exploration of algorithms that can typecheck dependent types in isolation.
Note that one can emulate dependent types with parametric types. Just
encode the values in the type system.
For example, the natural numbers can be encoded with these types:
Zero - a valueless type.
Succ t (where t is either Zero or another Succ xxx) - valueless, too.
Now I can write
Array Int (Succ Succ Succ Zero)
and have the equivalent of
Array Int 3
I'm pretty sure this technique is still limited, else people wouldn't
research in dependent types :-)
Regards,
Jo
I mean the Henk paper may be of help in understanding Haskell. It
describes how Henk's type system (which is more powerful than
Haskell's) simplifies writing a Haskell compiler.
> However, the first sentence of the Wikipedia article is clear anough:
> "[...] a dependent type is a type which depends on a value."
Well yes, but that doesn't explain why dependent types are interesting.
The [[Intuitionistic type theory]] article along with others do a better
job of that.
plaster holland posmarować masełkiem
posypać dużą ilością suszonej pietruszki
zawinąć całość
pokroić
przebić wykałaczką
....Smacznego....
Użytkownik "Flaku91" <Fla...@interia.pl> napisał w wiadomości
news:fim30q$3b7$1...@atlantis.news.tpi.pl...
Użytkownik "Flaku91" <Fla...@interia.pl> napisał w wiadomości
news:fim30q$3b7$1...@atlantis.news.tpi.pl...
--
Moniss... :*
Użytkownik "grupy dyskusyjne" <jerzy.pi...@neostrada.pl> napisał w
wiadomości news:fo1tpt$35i$1...@nemesis.news.tpi.pl...