I can't comment on what's good for teaching, as I have never done it, but languages are somewhat irrelevent to determine whether someone can program or not.

A good programmer tends to write good programs regardless of the language, and bad programmers write bad ones. The concepts employed in programming transcend the actual implementation of these concepts.

Having said that, of course some languages are much better than others. As one who has written many programs over the past 40+ years in many languages, I think that C# is probably the epitome of them all in a pure programming sense.

And if you think maintaining 10,000 lines of pascal was hard, try a million lines of pascal in an online realtime transaction processing system as I was landed with.

BTW, do you remember Ratfor (rational Fortran). This book went a long way to popularising the procedural languages which followed.

Joseph M. Newcomer wrote:
Pascal, a rather poor language for teaching ("it's not useful for real programming, but
it's a good teaching language" is credible only until you've actually tried to *use* it
for teaching...), evolved directly from Algol-60, and is one of a family of languages that
came from those roots. In fact, nearly all modern non-"functional" languages derive from
Algol-60. The "functional" languages, such as ML, derive from LISP.

I suffer from a conditional called "Pascalepsy", which means that if I see a Pascal
program I fall to the ground and start foaming at the mouth and chewing on the carpet.
This condition arose after I spent a year maintaining a 10,000-line Pascal program. Don't
even *ask* about the 'with' clause, which I spent most of that year eliminating from the
source code. [Use of the 'with' clause causes (or perhaps is caused by) severe brain

It is a bad language. It is not good for teaching, it is not good for real programming.
The variants of Pascal that are used in practice (e.g., Delphi) are so massively extended
from the base language that about all they retain is the poor syntax and terrible control
structure [there's no return statement, but there is a goto, and the labels are numeric so
they don't frighten FORTRAN programmers]. Key here is to understand that Pascal was
developed to aid in writing programs that could be "proven correct", and eliminated
anything that was difficult to prove, that is, almost anything usable. The "assignment of
the result to the name of the function" syntax is direct Algol-60. The lack of the
'return' statement was because Niklaus Wirth wanted to write a trivial compiler (you don't
need to worry about return statements interfering with provability if you prove not the
syntax tree but the execution graph, which all modern proof methodologies actually do).

Wirth's successor to Pascal, Modula-2, and particularly its derivation, Modula-3, *are*
practical languages. Ideas from Modula-3 appeared in Java and later in C#. joe
On Mon, 22 Sep 2008 11:57:17 +0800, "Man-wai Chang ToDie (33.6k)"
<toylet.toylet@xxxxxxxxx> wrote:

C++ very directly came from Simula-67, which Bjarne Stroustrup had used for years. When
he got to Bell Labs and discovered he could only use C (a real step backwards!) he figured
out how to get Simula-67 features into C and wrote a preprocessor to convert this new
language (which was dubbed C++) into pure C. That's where it all started. Simula-67 was
an outgrowth of Algol-60, with data structures and abstraction, and represented best
technology of the 1960s (and in some sense C++ really is a language that is 25 years out
of date by modern linguistic practice)
What about PASCAL, the favorite teaching tool? Any connection with Algol?
Joseph M. Newcomer [MVP]
email: newcomer@xxxxxxxxxxxx
MVP Tips:

Relevant Pages

  • Teaching languages (was Re: Describe what you do in 34 characters)
    ... My main gripe, however, is that the schools areteaching specific ... languages instead of teaching programming. ... languages to show that there is no one true way. ... lectured to Comp Sci students, ...
  • Re: Learn how to program
    ... Java, C# and VB.NET are horrible teaching languages. ... is teaching how to use those languages in particular. ... To the list of high-level dynamic languages for teaching programming, ...
  • Re: terminology
    ... the Craft of Functional Programm" ... FP fans are heading to the lazily evaluated languages now. ... monads let you do that in a far better way. ... baroque excesses of Algol-60 and introduce enumerations; ...
  • Re: Delphi 8 vs Visual Studio
    ... They chose the languages from the teaching point (a Lisp ... You can teach many things with Java and C#, ... > Ask the students which language/tools they would want to learn. ...
  • Re: Java
    ... and procedural programming was still ok, ... Before that pascal was used a lot in teaching as it could help teach ... various machine and assembly languages for CS folks. ...