To
avoid religious wars....
The
"best" programming language, is the one you feel most comfortable with,
obviously.
Though
i was lucky enough to avoid basic, i grew up with assembly, C, plm, Pascal,
fortran, cobol, chill, all sorts of shell's, perl.
In the
very old days, if you needed to sqeeze any cycle out of the cpu, you were stuck
with assembly.
Some
years later, the code produced by C-compilers has been getting that good that
even modest time-critical routines for accessing hardware were
do-able.
Biggest advantage was that code became
hw-independant.
Each
language has/had its own advantages/drawbacks. At one point in time i
"discovered" the swiss-army-knife of languages: perl. Since then nomore sh
korn,bourne, c-shell, awk or grep anymore. Though it looks like Python is
replacing perl currently.
First
rush of hobby-level programmers was getting asap "some results", quality was not
relevant.
Specially with basic it is possible to produce spagetty-code. (though you
can actually produce unreadable code with any language)
When i
left university, they were teaching Pascal at first-years students. It encourage
you to think about data-structures and so on.
Thoughy i understand that in this day-and-age, it has been replaced with
C++ and Java.
So for
really learning coding, i would suggest starting with C, and later on switch to
C++ / java.
For
doing (semi-) production, it's anothert game: see my first line, but it all
boils down to the same rules.
- get
to know the hardware-environment you are dealing with (extensive playing, no
production code)
- make
a top-level design (what are the requirements)
- make
a detailed design (how are you going to do it)
- do
not re-invent the wheel (there are zillions of libraries: use
them)
- work
modular
- User
interface? Think about multi-language
-
define entry/exit conditions
-
define where you check conditions
-
timing or race-conditions?
- use
a versioning system
-
....
So
actually the programming language is the least of your concern.
Coding
style and practices is all. And stick to it.
hw