strangest systems I've sent email from
spc at conman.org
Tue Apr 26 13:38:08 CDT 2016
It was thus said that the Great Tapley, Mark once stated:
> On Apr 25, 2016, at 4:46 PM, Brian L. Stuart <blstuart at bellsouth.net> wrote:
> > ...To tell you the truth, I'm not very likely to hire anyone who isn't
> > conversant with at least half a dozen different languages. ...
> Although I agree with almost everything Brian said in his post, I’ll posit
> at least one exception here. There exist languages (the Mathematica
> programming language is the one I’m familiar with) which permit
> programming in multiple different styles - procedural, list-processing,
> object-oriented, etc.. I would be pretty willing to consider a candidate
> who understood the differences, and could select the appropriate
> programming style for the task at hand, even if they were familiar with
> only the one “language”. But, it would not be trivial to demonstrate that
> the candidate actually had that breadth of understanding; production of
> sample code in a half-dozen languages would be an easier metric to apply,
> so maybe my exception is not useful.
There are two major language families: declarative and imperative. I feel
ike a programmer should be familiar with the two families. Declarative
langauges are where you describe *what* you want and leave it up to the
computer (technically, the implementation) to figure out how to obtain what
you want. A few langauges under this family:
make (and yes, make is a declarative language)
Imperative is where you describe *how* to do something to the computer and
hope it gives you what you want. Under this family there are three
Procedural---your typical programming languages, C, Pascal, BASIC, COBOL,
Fortran, are all examples of procedural languages and we pretty much know
and understand these languages.
Functional---still a type of imperative, but more centered around code
(functions actually) and side effects are very controlled (and globals right
out!). Global variables are difficult to instantiate (if at all). Examples
are Haskel, F#, ML, Hope.
Object oriented---again, another form of imperative, but centered around
data instead of functions (it's the flip-side of functional). Examples of
this are Smalltalk, Java, C#.
There are languages that can have multiple features, like C++ (procedural
and object-oriented), Lisp (declarative and imperative), Forth (declarative
and imperative), Python (procedural, functional, object-oriented).
-spc (Who likes classical software ... )
More information about the cctalk