??? 01/04/11 14:29 Read: times |
#180448 - Introduce a computer or introduce how to program Responding to: ???'s previous message |
Andy Neil said:
Oliver Sedlacek said:
... Pascal ... was designed as a teaching language ... So was BASIC! But tremendously different criteria. BASIC was intended to get you very, very quickly started. So you got 7-year-olds playing with BASIC as soon as they could read and write. The goal was to be easy to use. Not to teach how to program. BASIC is good to teach people just that a computer isn't something magical, but a slightly more complex pocket calculator. It shows how multiple small instructions can be combined into a something that can run and perform real tasks. Pascal wasn't intended to optimize for low age of the user or number of lines to get you your first "hello world" but was designed to teach programmers how to write well-crafted applications. So it isn't aimed at "to be able to program" but in "how to program". This obviously makes Pascal many, many times better as language for writing larger programs. Local variables and nested functions solves the name-space pollution problem you quickly get when the size of a program grows. At the same time, it allows the developer to maintain locality-of-reference by having the majority of variables and functions declared close to where they are used, reducing the need to memorize thousands of symbols. C was designed for production use. Not to teach people how to program, or how computers can be used, but to create real programs for solving real-world problems. So much rougher design, optimized for power. Something that is much more needed when working with embedded processors than for PC programs. So while C is the darling language of embedded developers, much new PC programming is performed in other languages. In short: - BASIC: introduces how you can get a computer to do something - Pascal: introduce how to craft applications - C: focus on commercial programming when you need to "own" the hardware and get it to jump on request. |