Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Of languages and religions

14 views
Skip to first unread message

rez

unread,
Jul 4, 2001, 6:33:08 PM7/4/01
to
Hi,
I'm a novice programmer who's familiar with a few mainstream
languages (mostly from the C-family) and who's looking for a better
alternative. Now, I know that this topic is bound to come up often in
this forum, and I'm sorry for bringing it up again, but all the advice
I could find seems to be biased towards a particular individual's
language of choice. What I am looking for, if such a thing exists, is
a relatively neutral description of different programming languages
along with the characteristics that sets them apart and I'd appreciate
it if someone could direct me to a web page or post a few guidelines.

However, I find comments such as 'language X is better than language Y
because ...' hardly ever helpful and ask that you find some other
opportunity to champion your cause. Sorry if i seem too eager to
complain but I've just read through a few pages of propaganda in a
similar thread and i could really use some sound, objective,
information.

Anyway, thanks in advance for your help, and please excuse me if I
offended anyone.

David Buttery

unread,
Jul 4, 2001, 9:22:51 PM7/4/01
to
rez <no...@hotmail.com> wrote on 04 Jul 2001:

<snip>


>What I am looking for, if such a
> thing exists, is a relatively neutral description of different
> programming languages along with the characteristics that sets them
> apart and I'd appreciate it if someone could direct me to a web
> page or post a few guidelines.

<snip>

I hadn't realised how biased (in one way or another) most sites were
until I had a look at some language lists. I was particularly taken
aback by the venom some people seem to reserve for Pascal - calling it
a useless toy that's spread out of control or even point-blank telling
you not to use it!

Anyhow, you might try "An Introduction to Programming Languages":

http://www.andrewcooke.free-online.co.uk/andrew/writing/lang.html

really aimed at beginners, but the page gives lots of examples of which
languages use which features (eg flexible syntax).

Programmer's Oasis:

http://users.utu.fi/sisasa/oasis/oasis-lang.html

has a one-line description of lots of languages (eg: "Coq - Coq is a
higher-order proof system based on the Curry-Howard isomorphism between
propositions and types, proofs and terms in a pure functional language"
- yer what?), and links to resources.

--
David. (GPLRank handicap -6.57; Monsters of GPL +271.79)
The GPL Scrapyard: http://scrapyard.9ug.com
"After all, a mere thousand yards - such a harmless little knoll,
really" - Raymond Mays on Shelsley Walsh.

cLIeNUX user

unread,
Jul 5, 2001, 1:21:55 AM7/5/01
to
humb...@smart.net

>Hi,
> I'm a novice programmer who's familiar with a few mainstream
>languages (mostly from the C-family) and who's looking for a better
>alternative. Now, I know that this topic is bound to come up often in

Forth. www.taygeta.com

Rick Hohensee

Biep @ http://www.biep.org/

unread,
Jul 5, 2001, 4:49:38 AM7/5/01
to
Well, programming languages fit with more or less ease in a few categories.
The following is a gross oversimplification, and my personal proposals that
others may (and will) disagree with.

One way of dividing them up is as to how they treat variables:
- Variables are memory locations ==> imperative languages. You seem to
have covered that corner somewhat.
- Variables are names for known values ==> functional languages.
These again come with or without type inference. I should start with one
without, in order to avoid having to learn two things at once.
- Say you start with Scheme (a small but powerful Lisp,
http://www.cs.rice.edu/CS/PLT/packages/drscheme/)
- and then move on to ML (http://cm.bell-labs.com/cm/cs/what/smlnj/)
- and finally to Haskell (http://www.haskell.org/hugs/).
Scheme allows imperative programming, ML tolerates it, and Haskell is
purely functional, so there is a learning progression there.
- Variables are names for possibly unknown values ==> declarative
languages. Here my first choice would be Oz (http://www.mozart-oz.org),
and then Prolog, which is less of a learning experience but is seen by many
as THE declarative language.
- Variables? What variables? Joy
(http://www.latrobe.edu.au/www/philosophy/phimvt/j00syn.html) is in that
category.

Another way is by program organisation:
- What organisation? ==> any assembly language, early Fortran, early Basic
- By procedures ==> procedural languages. You seem to have been there
- By processes ==> Stream-bases languages, co-routine based languages.
Anybody has good ideas here?
- By objects ==> Object-oriented languages. Don't suppose you have covered
this if you know C++.
- SmallTalk (http://www.smalltalk.org) helps you see anything as an
object - I recommend Dolphin.
- Eiffel (http://www.eiffel.com) teaches you OO software engineering
along the way (e.g. design by contract)
- ..and much more

I think if you look a bit among those two axes, you'll soon have a pretty
good idea of what's out there.

O.K., all you others - so what did I miss?

--
Biep
Reply via http://www.biep.org


Carsten Freining

unread,
Jul 5, 2001, 6:13:16 AM7/5/01
to
It would be best to look into a general book about Programming Languages.
There are all the features of languages described. Languages are shown
only as examples for specific features.
the best book I know right now is Pratt, Zelkowitz - Programming Languages
Design and Implementation. The Implementation wouldn't be of interesst in
this case. Other books have more wight on the implementation.

Carsten Freining.

rez schrieb:

Marco van de Voort

unread,
Jul 5, 2001, 7:21:44 AM7/5/01
to
In article <9i19lk$g2r6n$1...@ID-63952.news.dfncis.de>, Biep @

http://www.biep.org/ wrote:

> O.K., all you others - so what did I miss?

- Things on the same level like C,C++ like Pascal and Delphi? Modula's,
Oberon's ? Ada ?

- Must it be general purpose, or do you have a certain set of problems in
mind?

- Available on most platforms is a requirement, or merely a convenience?

rez

unread,
Jul 5, 2001, 7:42:19 PM7/5/01
to
mar...@toad.stack.nl (Marco van de Voort) wrote in message news:<slrn9k8jei....@toad.stack.nl>...

I'm looking for a general purpose programming language, because, as a
student, you could say I'm learning to program for programming's sake
rather than to accomplish any actual work. I just want to get a feel
for what's out there before I settle for C++ or Java out of
pragmatism. Consequently, I don't really care about the portability of
any given language as long as there is some support of the wintel
platform, which I use.

By the way, is functionnal programming really hard to learn? I've
looked into Haskell and it seems very intereting but the whole concept
is somewhat foreign to me. Does anyone know where I could find some
good introductory material for Haskell, or any functionnal language
for that matter?

Thanks in advance for your help, and thanks to anyone who took the
time to reply to my earlier post.

rez

unread,
Jul 5, 2001, 9:54:44 PM7/5/01
to
davidbutte...@yahoo.co.uk (David Buttery) wrote in message news:<Xns90D518766453Cd...@130.133.1.4>...

> I hadn't realised how biased (in one way or another) most sites were
> until I had a look at some language lists. I was particularly taken
> aback by the venom some people seem to reserve for Pascal - calling it
> a useless toy that's spread out of control or even point-blank telling
> you not to use it!

I've had some similar experiences, which led me be to believe that I
was paranoid or something. You seem to suggest otherwise.
(Oh, and it's a shame about Pascal too...)


> Anyhow, you might try "An Introduction to Programming Languages":
>
> http://www.andrewcooke.free-online.co.uk/andrew/writing/lang.html
>
> really aimed at beginners, but the page gives lots of examples of which
> languages use which features (eg flexible syntax).

Thanks for that link, very helpful indeed for a beginner suh as
myself.

Wilhelm B. Kloke

unread,
Jul 6, 2001, 2:48:38 AM7/6/01
to
In article <aad04aac.01070...@posting.google.com>,

rez <no...@hotmail.com> wrote:
>By the way, is functionnal programming really hard to learn? I've
>looked into Haskell and it seems very intereting but the whole concept
>is somewhat foreign to me. Does anyone know where I could find some
>good introductory material for Haskell, or any functionnal language
>for that matter?

Personally, I feel that functional programming could even be *easier*
to learn. E.g. you never need to think about i = i + 1, because this
nonsense is neither allowed nor necessary. You don't ever have to reason
about things like the difference between lhv and rhv also. The troublepoints
are the parts of a program which map naturally to imperative programming,
mostly IO. But OTOH in FP it is easier to integrate full parsing and
pretty printing into the language.

A good starting point is www.haskell.org and the Wiki page there.

From a pragmatic point (and perhaps this the only really reasonable for
this question) you might be happier sticking with C or Java, though.
--
Dipl.-Math. Wilhelm Bernhard Kloke
Institut fuer Arbeitsphysiologie an der Universitaet Dortmund
Ardeystrasse 67, D-44139 Dortmund, Tel. 0231-1084-257

Marco van de Voort

unread,
Jul 6, 2001, 7:22:42 AM7/6/01
to
In article <aad04aac.01070...@posting.google.com>, rez wrote:
> mar...@toad.stack.nl (Marco van de Voort) wrote in message news:<slrn9k8jei....@toad.stack.nl>...
>> In article <9i19lk$g2r6n$1...@ID-63952.news.dfncis.de>, Biep @
>> http://www.biep.org/ wrote:
>>
>> > O.K., all you others - so what did I miss?
>>
>> - Things on the same level like C,C++ like Pascal and Delphi? Modula's,
>> Oberon's ? Ada ?
>>
>> - Must it be general purpose, or do you have a certain set of problems in
>> mind?
>>
>> - Available on most platforms is a requirement, or merely a convenience?
>
> I'm looking for a general purpose programming language, because, as a
> student, you could say I'm learning to program for programming's sake
> rather than to accomplish any actual work.

Then I would do Delphi. It is general purpose except for very deep system
programming, knowing it can be usefull afterwards too (still 10-25% of the
RAD market), older versions available for free with certain magazines, or as
eval version on the site.

It is more of the same though (compared to C++), maybe it is wise to try
something completely else, which changes the way you approach problems.

> By the way, is functionnal programming really hard to learn?

The Zealots will say it isn't. But I see the CS students here need at least
a year to get intermediate in it.

Joachim Durchholz

unread,
Jul 6, 2001, 8:56:18 AM7/6/01
to
rez <no...@hotmail.com> wrote:
>
> By the way, is functionnal programming really hard to learn?

Functional programming is good for defining and using abstractions. If
you feel at home with abstractions and abstracting and modelling things,
FP concepts are easy.
If you're at odds with this way of thinking, chances are that FP
programming will not come easily.

OTOH if you're planning for your career, abstraction capabilities will
give you better-paid and safer jobs. There are lots of coders around,
and their jobs are threatened if what they do is made obsolete by the
next round of tools that become available.
E.g. 10 years ago, if you knew how to write efficient C programs you
were a good programmer. Today, compilers are so good at the type of
optimizations you can express in C that this kind of skill isn't in
large demand anymore. (A good programmer can still beat a compiler, but
today it takes considerably more effort and usually doesn't pay off.)
Abstraction capabilities, OTOH, are currently in demand and will stay in
demand for the next decades (and maybe permanently - computers have
learnt to optimize algorithms, play chess, and a dozen other things that
I wouldn't have thought possible two decades ago, but I haven't seen a
single promising approach for teaching computers to build abstractions).

This sums up to: If you don't love abstractions it will be easier to
learn to program in an imperative language, but you may be learning the
less relevant skills.
I'd also expect that learning imperative programming is easier once you
have mastered an FPL.

OTOH if that functional stuff sounds like total gibberish to you, try
imperative programming first and other approaches (functional, logic,
linear) second. Imperative programming will then have taught you enough
to make sense of the other paths. This will take you more time overall,
but learning functional programming first might be simply too alien to
allow you any progress at all.

Just my 5c.

Regards,
Joachim
--
This is not an official statement from my employer.


rez

unread,
Jul 6, 2001, 8:33:59 PM7/6/01
to
"Joachim Durchholz" <joac...@gmx.de> wrote in message news:<9i4chp$gvchh$1...@ID-9852.news.dfncis.de>...
<snip>

> OTOH if that functional stuff sounds like total gibberish to you, try
> imperative programming first and other approaches (functional, logic,
> linear) second. Imperative programming will then have taught you enough
> to make sense of the other paths. This will take you more time overall,
> but learning functional programming first might be simply too alien to
> allow you any progress at all.

The problem as I see it is that I've learned to think about
programming in terms of the imperative languages that I've used. Now,
maybe I've been too modest about my abilities; after all, I have been
programming for five years now in a variety of (imperative) languages
and know enough C++ not to shoot myself in the foot. I'm no expert of
course, but all I'm saying is that I've developped some reflexes that
don't translate very well when it comes to learning functional
programming.

There is a quote in one of Stroustrup's books about languages shaping
the way that we think (I would mention the author if I could remember
his name). I feel this is very true. So much so, that I've come to
regard the principles of good design in C++ as general truths about
programming, which of course, they aren't. I think it's a shame that
students like myself aren't exposed to more than one programming
paradigm before they become too much set in their ways to be bothered
with anything else than OOP. As far as I'm concerned, the less you
have learned at that point, the less you have to unlearn. So I have
this to say to teachers around the world: provoke and confuse your
students, for in confusion lies the road to enlightenment (don't I
sound like an Hallmark card).

Alec Cawley

unread,
Jul 7, 2001, 11:26:04 AM7/7/01
to
In message <aad04aac.01070...@posting.google.com>, rez
<no...@hotmail.com> writes

>"Joachim Durchholz" <joac...@gmx.de> wrote in message
>news:<9i4chp$gvchh$1...@ID-9852.news.dfncis.de>...
><snip>
>> OTOH if that functional stuff sounds like total gibberish to you, try
>> imperative programming first and other approaches (functional, logic,
>> linear) second. Imperative programming will then have taught you enough
>> to make sense of the other paths. This will take you more time overall,
>> but learning functional programming first might be simply too alien to
>> allow you any progress at all.
>
>The problem as I see it is that I've learned to think about
>programming in terms of the imperative languages that I've used. Now,
>maybe I've been too modest about my abilities; after all, I have been
>programming for five years now in a variety of (imperative) languages
>and know enough C++ not to shoot myself in the foot. I'm no expert of
>course, but all I'm saying is that I've developped some reflexes that
>don't translate very well when it comes to learning functional
>programming.

there is also the nature of the programming you want to do. I am
involved in device programming - in response to stimulus X perform
operation Y. These are imperative concepts. Now I agree that in theory,
the transformation from X to Y might well be aided by functional
programming concepts. In principle the only imperative commands I need
are Y = f(X), where f() is a purely functional operation. But it is
difficult to see the natural dividing point at which I switch paradigms.
Particularly, ISTM that functional program *can* (even if it does not
usually) go off into indefinite time operations. It seems easier to
avoid unknown-time processes in the imperative model than the
functional.

--
Alec

Joachim Durchholz

unread,
Jul 8, 2001, 7:47:34 PM7/8/01
to
rez <no...@hotmail.com> wrote:

> "Joachim Durchholz" <joac...@gmx.de> wrote:
> <snip>
> > OTOH if that functional stuff sounds like total gibberish to you,
try
> > imperative programming first and other approaches (functional,
logic,
> > linear) second. Imperative programming will then have taught you
enough
> > to make sense of the other paths. This will take you more time
overall,
> > but learning functional programming first might be simply too alien
to
> > allow you any progress at all.
>
> The problem as I see it is that I've learned to think about
> programming in terms of the imperative languages that I've used. Now,
> maybe I've been too modest about my abilities; after all, I have been
> programming for five years now in a variety of (imperative) languages
> and know enough C++ not to shoot myself in the foot. I'm no expert of
> course, but all I'm saying is that I've developped some reflexes that
> don't translate very well when it comes to learning functional
> programming.

Then learn FP. And logic programming.
You may be unable to make much use of it, but it will definitely give
you new ways of thinking about programs.

> There is a quote in one of Stroustrup's books about languages shaping
> the way that we think (I would mention the author if I could remember
> his name).

Edsger W. Dijkstra. (I read the original paper many years ago.)

Joachim Durchholz

unread,
Jul 8, 2001, 7:51:10 PM7/8/01
to
Alec Cawley <al...@aleccawley.com> wrote:
>
> there is also the nature of the programming you want to do. I am
> involved in device programming - in response to stimulus X perform
> operation Y. These are imperative concepts. Now I agree that in
theory,
> the transformation from X to Y might well be aided by functional
> programming concepts. In principle the only imperative commands I need
> are Y = f(X), where f() is a purely functional operation. But it is
> difficult to see the natural dividing point at which I switch
paradigms.

The natural dividing point is simple: As soon as expressing it
imperatively makes the program clearer to understand, use imperative
programming.

> Particularly, ISTM that functional program *can* (even if it does not
> usually) go off into indefinite time operations. It seems easier to
> avoid unknown-time processes in the imperative model than the
> functional.

That's not true in practice. Functional software goes into
non-termination just as often or rarely as imperative software. (It's
rare that one writes a recursion manually in a functional language.)

Biep @ http://www.biep.org/

unread,
Jul 9, 2001, 6:47:28 AM7/9/01
to
"rez" <no...@hotmail.com> wrote in message
news:aad04aac.01070...@posting.google.com...

> By the way, is functionnal programming really hard to learn?

The main problem is that having learned imperative programming makes it
very hard to learn FP. Students who have never programmed before usually
find it quite easy, while the ones having had IP are struggling.

If you are very good at not jumping to IP conclusions, it's no big deal.
(Advanced techniques ARE a big deal, but that is true in any paradigm.)

You wrote you wanted to learn for the sake of learning. That basically
makes it imperative you read "Structure and Interpretation of Computer
Programs" by Abelson, Sussman and Sussman. It is fun reading, and teaches
you FP, declarative programming and more on the side. And afterwards
you'll have a *very* solid background in computation.

Go to Amazon and read the reviews, starting from the oldest. You'll see a
very clear difference between the people who grasped what the book was
about and those who came from C and couldn't leave their baggage behind.
(That is nothing against C, but just goes to show that the book is not for
people with a single-paradigm mind - which you, witness your question,
don't seem to have.)

Matthew M. Huntbach

unread,
Jul 17, 2001, 4:05:29 AM7/17/01
to
Biep @ http://www.biep.org/ (repl...@my-web-site.com) wrote:
> "rez" <no...@hotmail.com> wrote in message

> > By the way, is functionnal programming really hard to learn?

> The main problem is that having learned imperative programming makes it
> very hard to learn FP. Students who have never programmed before usually
> find it quite easy, while the ones having had IP are struggling.

Do you have empirical evidence for this claim? I think it was always a
hope rather than anything provably true. While a strong IP background
does make it harder to get into FP, my experience is that students coming
fresh to programming with no IP experience still find FP hard.

Matthew Huntbach

Matthew M. Huntbach

unread,
Jul 17, 2001, 4:10:36 AM7/17/01
to
rez (no...@hotmail.com) wrote:

> I think it's a shame that
> students like myself aren't exposed to more than one programming
> paradigm before they become too much set in their ways to be bothered
> with anything else than OOP.

Most good university Computer Science departments make a point of
exposing students to more than one programming paradigm. There are
still a few that introduce FP before IP. However, it's difficult to get
students to take FP seriously when they see it's something that has hardly
any use outside the university environment. In these days when young
people have an overwhelming cynicism about any sort of authority, it's
extremely difficult to get them to accept the argument "you may not
appreciate it now, but we think it's good for you to study it".

Matthew Huntbach

Biep @ http://www.biep.org/

unread,
Jul 17, 2001, 4:34:41 AM7/17/01
to
"rez" <no...@hotmail.com> asked

> By the way, is functionnal programming really hard to learn?

Biep @ http://www.biep.org/ (repl...@my-web-site.com) replied:


> The main problem is that having learned imperative programming makes it
> very hard to learn FP. Students who have never programmed before usually
> find it quite easy, while the ones having had IP are struggling.

Then "Matthew M. Huntbach" <m...@dcs.qmw.ac.uk>
wonders in message news:9j0rk9$q3k$3...@beta.qmw.ac.uk...


> Do you have empirical evidence for this claim? I think it was always a
> hope rather than anything provably true. While a strong IP background
> does make it harder to get into FP, my experience is that students coming
> fresh to programming with no IP experience still find FP hard.

No published empirical evidence, just my own from teaching. Students who
came to university with some IP experience as a rule had a harder time
switching paradigms than "blank" ones had acquiring one. (And,
interestingly, in my experience girls do repatively better on FP and boys
on IP - which seems to go against all notions of girls being weaker at
maths. But then CS students are of course a self-selected sample.)

FP has several levels, the first being the notion of threading an
ever-changing value through a computation rather than putting it somewhere
and change it as needed. That is the main paradigm shift I was talking
about. Next comes the notion of functions as values, but it is no use
trying to make that step before the first has been interned. Abstraction
of control, and pointless programming is then a relatively easy step in
theory; the main difficulty there is how to apply it in practice.

Anybody has a different experience?

Joachim Durchholz

unread,
Jul 17, 2001, 5:53:41 AM7/17/01
to
Matthew M. Huntbach <m...@dcs.qmw.ac.uk> wrote:
> In these days when young
> people have an overwhelming cynicism about any sort of authority, it's
> extremely difficult to get them to accept the argument "you may not
> appreciate it now, but we think it's good for you to study it".

Authority has to be earned.
Example: at university I learnt everything about good software
structure, but nothing about the trade-offs between software quality and
effort spent to achieve it. Now I'm doing software development for a
living, and I find that these trade-offs are one of the most important
aspects of my work.
Should I have placed my trust in teachers who overlooked such an
important aspect?

I don't say that learning FP is a bad idea (actually quite to the
contrary), but I think the "cynicism" of young people is well-founded.
Teachers can't rely on the authority conferred by their position, they
must build a personal authority.
I know that's difficult and requires constant effort, but a good teacher
is qualified by the ability and willingness to build that reputation.

BTW there's a difference between pedagogical authority - knowing how
students will learn best - and domain authority - knowing the domain of
teaching well. Students get enough information to judge both with
reasonable precision.

Simon Helsen

unread,
Jul 17, 2001, 11:56:07 AM7/17/01
to
On Tue, 17 Jul 2001, Biep @ http://www.biep.org/ wrote:

>No published empirical evidence, just my own from teaching. Students who
>came to university with some IP experience as a rule had a harder time
>switching paradigms than "blank" ones had acquiring one. (And,
>interestingly, in my experience girls do repatively better on FP and boys
>on IP - which seems to go against all notions of girls being weaker at
>maths. But then CS students are of course a self-selected sample.)

I agree on the blank minds. But I do not know whether this causal. My
impression is that students who did some programming before tend to have
a different mentality about programming and CS than the other ones. The
former usually beleive they know everything already and are reluctant to
beleive that there exist other ways of doing things (for instance FP)

As for girls, I cannot add empirical evidence since we hardly have any
girls at all here. But I can imagine that they are more open to FP for
exactly the same reasons I mention above. Funny, I didn't know it was
common to beleive girls are not good in maths. In fact, in all the
universities I have been (4 in all) there were more women studying math
than men!

regards,

Simon

Mark Carroll

unread,
Jul 17, 2001, 1:38:57 PM7/17/01
to
In article <9j0t9n$lcn0p$1...@ID-63952.news.dfncis.de>,
Biep @ http://www.biep.org/ <repl...@my-web-site.com> wrote:
(snip)

>No published empirical evidence, just my own from teaching. Students who
>came to university with some IP experience as a rule had a harder time
>switching paradigms than "blank" ones had acquiring one. (And,
(snip)

I think that my IP experience did hinder my FP learning. I'd see a
problem, and my mind would immediately think of an IP solution, which
I'd then notice that I could code in a functional programming language
using a recursive function which basically transformed each state of
my IP to its next state and then applied itself to that new state
(passing the 'IP state' explicitly).

Because I was so eager to think of things this way, my guess is that
more FP-like solutions were somewhat obstructed from coming to mind.

-- Mark

David Basil Wildgoose

unread,
Jul 17, 2001, 2:06:49 PM7/17/01
to

Speaking as someone with over 20 years experience in various
"non-functional" programming languages I would have to agree. I have
decided to learn some FP as part of my continuing desire to become a
better programmer. I have no problem with concepts like
pattern-matching and recursion, but you do need to make a mental
"switch" when thinking about what you are doing if you are used to an
imperative style.

I hope I don't offend anybody, but it does seem to me that because FP
appears very much an "academic" discipline, there appears to be an
assumption that anyone attempting to learn FP can just ask their tutor
if there is something that they don't understand.

Those of us who graduated from University almost 15 years ago don't
have that kind of luxury.

What FP needs is a GOOD, SIMPLE introduction to its concepts for those
of us from an imperative programming background. Basically, something
to help that "mental switch" be formed.

Until then, I suppose I'll just have to persevere...

Sian Leitch

unread,
Jul 15, 2001, 6:12:59 PM7/15/01
to
In article <aad04aac.01070...@posting.google.com>,

no...@hotmail.com (rez) wrote:
> I'm looking for a general purpose programming language, because, as a
> student, you could say I'm learning to program for programming's sake
> rather than to accomplish any actual work. I just want to get a feel
> for what's out there before I settle for C++ or Java out of
> pragmatism. Consequently, I don't really care about the portability of
> any given language as long as there is some support of the wintel
> platform, which I use.

Try Algol 68. Intended as a general-purpose programming language and still
extant after 32 years.
--
Dr. Ing. Sian Leitch
Software Engineer specialising in Algol 68
Algol 68 for Linux is available from <http://www.sleitch.nildram.co.uk/>

Albert Y. C. Lai

unread,
Jul 17, 2001, 5:48:01 PM7/17/01
to
Regarding knowing imperative programming before learning functional
programming. I had had at least five years of BASIC, Pascal, and C
programming before I first learned functional programming via Lisp
in a "principles of programming languages" course. I did not have
much difficulty switching to the functional mode. I think here
are some reasons:

1. I loved recursion, even when I knew only imperative programming.

2. We were actually taught procedural programming and modularity. I
constantly thought about the tradeoff between reading from global
variables and obtaining input parameters, and between writing to
global variables and returning results. First-order functional
programming was then merely one end of the spectrum.

3. Second-order functional programming was not that much a leap; qsort
and bsearch in the C library are second-order already, so map was
no rocket science. But once you can go from first-order to
second-order, you can see there is room for unlimited generalization,
and your mind opens up.

4. Having understood second-order functions, anonymous functions are
simply a much appreciated feature.

Perhaps teachers find this useful in designing their courses.

c...@ragwind.localdomain.net

unread,
Jul 17, 2001, 11:03:09 PM7/17/01
to
wild...@operamail.com (David Basil Wildgoose) writes:

> > Biep @ http://www.biep.org/ (repl...@my-web-site.com) replied:
> > > The main problem is that having learned imperative programming makes it
> > > very hard to learn FP. Students who have never programmed before usually
> > > find it quite easy, while the ones having had IP are struggling.
> >
> > Then "Matthew M. Huntbach" <m...@dcs.qmw.ac.uk>
> > wonders in message news:9j0rk9$q3k$3...@beta.qmw.ac.uk...
> > > Do you have empirical evidence for this claim? I think it was always a
> > > hope rather than anything provably true. While a strong IP background
> > > does make it harder to get into FP, my experience is that students coming
> > > fresh to programming with no IP experience still find FP hard.
> >
> > No published empirical evidence, just my own from teaching. Students who
> > came to university with some IP experience as a rule had a harder time

...<snip>...


> >
> > Anybody has a different experience?
>
> Speaking as someone with over 20 years experience in various
> "non-functional" programming languages I would have to agree. I have
> decided to learn some FP as part of my continuing desire to become a
> better programmer. I have no problem with concepts like

...<snip>...


> What FP needs is a GOOD, SIMPLE introduction to its concepts for those
> of us from an imperative programming background. Basically, something
> to help that "mental switch" be formed.

I'll throw in my two cents. I became a professional programmer over
20 years ago, when in my thirties (dates me doesn't it). I had trouble
with the ordinary 'imperative' paradigm when I was first exposed to
programming back in the mid-sixties (the class was numerical analysis
and the teacher was more interested in teaching that than FORTRAN).
It wasn't until, years later and back in school on the GI bill that I
happened to take a class in digital logic that included an abstract
kind of assembly language that I finally caught on, then programming
became simple, until I hit functional languages, where the idea seems
to be to do everything possible to hide what's going on under the hood
from the student as it will poison their minds forever. I may be atypical,
but I'm much more comfortable when I have a glimmer of an idea what's
really happening.
--
Replace ragwind.localdomain with rahul for a working email address

Matt Kennel

unread,
Jul 18, 2001, 1:19:45 AM7/18/01
to
:"rez" <no...@hotmail.com> asked

:> By the way, is functionnal programming really hard to learn?
:
:Biep @ http://www.biep.org/ (repl...@my-web-site.com) replied:
:> The main problem is that having learned imperative programming makes it
:> very hard to learn FP. Students who have never programmed before usually
:> find it quite easy, while the ones having had IP are struggling.
:
:Then "Matthew M. Huntbach" <m...@dcs.qmw.ac.uk>
:wonders in message news:9j0rk9$q3k$3...@beta.qmw.ac.uk...
:> Do you have empirical evidence for this claim? I think it was always a
:> hope rather than anything provably true. While a strong IP background
:> does make it harder to get into FP, my experience is that students coming
:> fresh to programming with no IP experience still find FP hard.
:
:No published empirical evidence, just my own from teaching. Students who
:came to university with some IP experience as a rule had a harder time
:switching paradigms than "blank" ones had acquiring one. (And,
:interestingly, in my experience girls do repatively better on FP and boys
:on IP - which seems to go against all notions of girls being weaker at
:maths. But then CS students are of course a self-selected sample.)

At least in the gender balance in fields, I see more women in
pure mathematics and computer science than I do in physical sciences
and physical (mechanical, aerospace and electrical) engineering.

Maybe the issue isn't `not being good at maths' but really `not being
good at understanding abstractions and representations and
manipulations of state' hence the distinction between math and physics.

:FP has several levels, the first being the notion of threading an


:ever-changing value through a computation rather than putting it somewhere
:and change it as needed. That is the main paradigm shift I was talking
:about. Next comes the notion of functions as values, but it is no use
:trying to make that step before the first has been interned. Abstraction
:of control, and pointless programming is then a relatively easy step in
:theory; the main difficulty there is how to apply it in practice.
:
:Anybody has a different experience?
:
:--
:Biep
:Reply via http://www.biep.org

:
:


--
* Matthew B. Kennel/Institute for Nonlinear Science, UCSD
*
* "To chill, or to pop a cap in my dome, whoomp! there it is."
* Hamlet, Fresh Prince of Denmark.

Biep @ http://www.biep.org/

unread,
Jul 18, 2001, 3:22:20 AM7/18/01
to
"Simon Helsen" <hel...@informatik.uni-freiburg.de> wrote in message
news:Pine.LNX.4.33.010717...@nakalele.informatik.uni-freib
urg.de...
> Funny, I didn't know it was common to believe

> girls are not good in maths.
> In fact, in all the universities I have been (4 in all)
> there were more women studying math than men!

This is very different from the Dutch situation, then. There has even been
government propaganda to make girls choose an exact study, with almost zero
result (some more women in the first year of university, no visible
difference in subsequent years).

Biep @ http://www.biep.org/

unread,
Jul 18, 2001, 3:24:11 AM7/18/01
to
"Mark Carroll" <ma...@chiark.greenend.org.uk> wrote in message
news:zOq*m4...@news.chiark.greenend.org.uk...

> I think that my IP experience did hinder my FP learning. I'd see a
> problem, and my mind would immediately think of an IP solution, which
> I'd then notice that I could code in a functional programming language
> using a recursive function which basically transformed each state of
> my IP to its next state and then applied itself to that new state
> (passing the 'IP state' explicitly).

So you were on the brink of inventing monads, were you? Pretty impressive!
:-)

Marco van de Voort

unread,
Jul 18, 2001, 6:41:57 AM7/18/01
to

I also think that measured difference is more that girls are much harder
workers.

And the proposed difference is more a result of a tradition that hasn't been
entirely eradicated. (boys more encouraged to do technical and abstract
hobby/studies, while girls seem to be pushed into the soft sector)

Markus Mottl

unread,
Jul 18, 2001, 7:50:22 AM7/18/01
to
In comp.lang.functional Marco van de Voort <mar...@toad.stack.nl> wrote:
> I also think that measured difference is more that girls are much harder
> workers.

> And the proposed difference is more a result of a tradition that hasn't been
> entirely eradicated. (boys more encouraged to do technical and abstract
> hobby/studies, while girls seem to be pushed into the soft sector)

Actually, there is a funny (true!) story about a university that conducted
a survey to find out whether boys and girls are treated differently in
examinations.

And indeed, they found out that girls got worse marks in average
considering the whole university.

So they wanted to know, which of the departments belonged to the sexist
black sheep that unfairly suppressed the innocent girls. Stunning result:
girls were doing better on average at each department!

How can this be, did some statistician mess up results?

Finally, the simple cause of all this was:

Girls had over-proportionally chosen the most difficult
departments. Though they got better marks there than the boys (as at all
departments), the strict marking pushed their average down considerably,
whereas the lower number of "bad" boys there didn't have so much overall
impact.

Conclusion: considering the better performance of girls at each
department, girls were either more intelligent, more diligent or, ahem,
more beautiful... ;)

The last sexist interpretation is just an incentive for girls to respond
on this topic: I always wanted to know how many are reading c.l.f... ;)

Regards,
Markus Mottl

--
Markus Mottl, mo...@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl

Matthew M. Huntbach

unread,
Jul 18, 2001, 7:57:20 AM7/18/01
to
Biep @ http://www.biep.org/ (repl...@my-web-site.com) wrote:
> Then "Matthew M. Huntbach" <m...@dcs.qmw.ac.uk>
> wonders in message news:9j0rk9$q3k$3...@beta.qmw.ac.uk...

> > Do you have empirical evidence for this claim? I think it was always a
> > hope rather than anything provably true. While a strong IP background
> > does make it harder to get into FP, my experience is that students coming
> > fresh to programming with no IP experience still find FP hard.

> No published empirical evidence, just my own from teaching. Students who
> came to university with some IP experience as a rule had a harder time
> switching paradigms than "blank" ones had acquiring one.

This is not the question I asked. I accept that experience with IP can
make it *more* difficult to get to grips with FP. But the question is
whether that is the only thing that makes FP difficult?

I used to believe all that propaganda about the only thing that made FP
difficult was people's minds being damaged by doing IP, and if only we
got to the kids first and fed them FP they'd find it easy. But my
experience of teaching leads me to doubt this. The FP paradigm does
require the ability to abstract right from the start, and this seems
to be fundamental to what makes it "difficult". There are many people
who seem to find it very hard to grasp the idea of abstraction, it
is a huge stumbling block. For this reason, I have come to believe
that the IP model is easier for novices to pick up and work with
from the start, due to it requiring less abstraction. That it is
easier for novices doesn't, of course, mean that it is best for them to
start that way.

Matthew Huntbach

Matthew M. Huntbach

unread,
Jul 18, 2001, 8:16:13 AM7/18/01
to
Joachim Durchholz (joac...@gmx.de) wrote:
> Matthew M. Huntbach <m...@dcs.qmw.ac.uk> wrote:

> > In these days when young
> > people have an overwhelming cynicism about any sort of authority, it's
> > extremely difficult to get them to accept the argument "you may not
> > appreciate it now, but we think it's good for you to study it".

> I don't say that learning FP is a bad idea (actually quite to the


> contrary), but I think the "cynicism" of young people is well-founded.
> Teachers can't rely on the authority conferred by their position, they
> must build a personal authority.

So how is a potential student choosing between different universities
going to know who in them has the best personal authority?

> I know that's difficult and requires constant effort, but a good teacher
> is qualified by the ability and willingness to build that reputation.

> BTW there's a difference between pedagogical authority - knowing how
> students will learn best - and domain authority - knowing the domain of
> teaching well. Students get enough information to judge both with
> reasonable precision.

I don't believe they do. Lacking in information and knowledge of the
subject, they will make decisions on very shallow grounds. In Computer
Science, this will often be "Are they teaching the stuff I read in job
ads and the glossy magazines?". This works against FP being accepted as
part of the curriculum. Students will write it off as "useless", and
either choose another degree programme in which it does not feature,
or put very little effort into doing it when it does come up in their
degree programme.

A little cynicism is healthy, but a lot of cynicism is bad if it leads
you to the point where you refuse good advice.

Matthew Huntbach

Markus Mottl

unread,
Jul 18, 2001, 8:51:29 AM7/18/01
to
In comp.lang.functional Matthew M. Huntbach <m...@dcs.qmw.ac.uk> wrote:
> The FP paradigm does require the ability to abstract right from the
> start, and this seems to be fundamental to what makes it "difficult".

That's right, but we have to see the reason: in most IPLs taught
at university (probably still C and C++, maybe Java is getting more
important now), there is a fairly large number of concepts that have to
be learnt so students and even teachers may get the wrong perception
of achievement when they have mastered pointers, templates, virtual
functions, overloading, etc.

In FPLs you don't have to know so much to somewhat master the language
as such. This means that students get to "Now you have to master the
art of solving real problems at an abstract level" much faster.

In my experience from tutoring students (mostly C++ at the time) they
often strongly believed that "When I have mastered language concept X,
too, then I'll be a better programmer.". At the same time demanding
from them implementations of even simple datastructures and algorithms
in the same language was usually out of the question.

Most FPL-courses get to fundemantal programming problems much faster and
therefore give students less positive or even "negative" feedback. As
most of us probably agree here, learning a new programming language is
easy compared to the goal of becoming a better programmer.

> There are many people who seem to find it very hard to grasp the idea
> of abstraction, it is a huge stumbling block. For this reason, I have
> come to believe that the IP model is easier for novices to pick up
> and work with from the start, due to it requiring less abstraction.

It is not languages that require abstraction but problems! Languages
_provide_ means of abstraction. It's the problems where most students
fail, not the language per se, though I have seen plenty of students
fail on concepts like pointers or templates. Teaching the concept of
"higher-order functions" is much easier in my eyes.

Biep @ http://www.biep.org/

unread,
Jul 18, 2001, 10:06:47 AM7/18/01
to
"Markus Mottl" <mo...@miss.wu-wien.ac.at> wrote in message
news:9j3t5u$nol$2...@bird.wu-wien.ac.at...

> Conclusion: considering the better performance of girls
> at each department, girls were either more intelligent,
> more diligent or, ahem, more beautiful... ;)

> The last sexist interpretation is just an incentive for girls to respond
> on this topic: I always wanted to know how many are reading c.l.f... ;)

Sexist in that most teachers must be male (or lesbian)? :-)
But then it doesn't depend on relative beauty but on teacher preference (it
only would when teachers on the average have no a priori preference between
sexes). And in that case there are much worse remarks to make, if you want
to be sure that no girl ignores it.
But I prefer the beauty notion. FP being more beautiful than IP, it should
resonate more in the female mind (real beauty being inner beauty, that is
the place where the two meet..)

I think the situation you described happened on one of the Californian
universities. I must still have the paper somewhere.

Markus Mottl

unread,
Jul 18, 2001, 10:57:58 AM7/18/01
to
In comp.lang.functional Biep @ http://www.biep.org/ <repl...@my-web-site.com> wrote:
> I think the situation you described happened on one of the Californian
> universities. I must still have the paper somewhere.

If I remember correctly, I found it in a book about paradoxons by
Martin Gardner, the former author of mathematical puzzles in Scientific
American. It's really a nice example of how intuition fools people when
confronted with this kind of statistical paradoxon. Most people would
probably have expected that there must be at least one department that
treats girls unfairly.

Joachim Durchholz

unread,
Jul 18, 2001, 1:05:05 PM7/18/01
to
Matthew M. Huntbach <m...@dcs.qmw.ac.uk> wrote:
> Joachim Durchholz (joac...@gmx.de) wrote:
> > Matthew M. Huntbach <m...@dcs.qmw.ac.uk> wrote:
>
> > > In these days when young
> > > people have an overwhelming cynicism about any sort of authority,
it's
> > > extremely difficult to get them to accept the argument "you may
not
> > > appreciate it now, but we think it's good for you to study it".
>
> > I don't say that learning FP is a bad idea (actually quite to the
> > contrary), but I think the "cynicism" of young people is
well-founded.
> > Teachers can't rely on the authority conferred by their position,
they
> > must build a personal authority.
>
> So how is a potential student choosing between different universities
> going to know who in them has the best personal authority?

Hmm... university ratings? Those which consider input from both students
and employers?
(Usually it's "nearest university" anyway. I was thinking about the
situation where a specific teacher has authority or not.)

> > BTW there's a difference between pedagogical authority - knowing how
> > students will learn best - and domain authority - knowing the domain
of
> > teaching well. Students get enough information to judge both with
> > reasonable precision.
>
> I don't believe they do. Lacking in information and knowledge of the
> subject, they will make decisions on very shallow grounds.

Well, I had teachers who never had worked in a commercial environment. I
ignored their advice on what to learn - not because I disrespected them,
but because I knew they were talking about things that they weren't
competent in.

> In Computer
> Science, this will often be "Are they teaching the stuff I read in job
> ads and the glossy magazines?". This works against FP being accepted
as
> part of the curriculum. Students will write it off as "useless", and
> either choose another degree programme in which it does not feature,
> or put very little effort into doing it when it does come up in their
> degree programme.

So what? If they learn to quickly learn new languages (and paradigms),
they will still be prepared when the Functional Hype comes. Keywords
listed in ads aren't the worst source of information, at least if you
want to have good positions initially (and are confident that you can
continue to learn during your lifetime).

> A little cynicism is healthy, but a lot of cynicism is bad if it leads
> you to the point where you refuse good advice.

On the negative side, too little cynism is bad if it leads you to accept
bad advice. And in my experience, most advice from university teachers
was bad (unless you wanted a university career).
Well, one exception was a professor who had been in the U.S. for a
couple of years.

Sian Leitch

unread,
Jul 20, 2001, 5:20:36 AM7/20/01
to
In article <265d96ac.01071...@posting.google.com>,

wild...@operamail.com (David Basil Wildgoose) wrote:
> What FP needs is a GOOD, SIMPLE introduction to its concepts for those
> of us from an imperative programming background. Basically, something
> to help that "mental switch" be formed.

It is actually possible to write FP-wise in Algol 68. Would anybody
care to write David' GOOD, SIMPLE introduction to FP's concepts using
Algol 68?

Regards

Sian Leitch

unread,
Jul 20, 2001, 5:24:13 AM7/20/01
to
In article <m3vgkr5...@trebla.cs.toronto.edu>,

Is this an example of an anonymous function? Here is a routine
declaration:-
PROC p1 = (PROC(INT)INT a1, INT a2)INT: a1(a2);
and here is a call:-
p1((INT n)INT: ABS sin(n*pi),ABS(2*pi))

FM

unread,
Jul 20, 2001, 10:48:12 PM7/20/01
to
"Markus Mottl" <mo...@miss.wu-wien.ac.at> wrote:

> Actually, there is a funny (true!) story about a university that conducted
> a survey to find out whether boys and girls are treated differently in
> examinations.
>
> And indeed, they found out that girls got worse marks in average
> considering the whole university.
>
> So they wanted to know, which of the departments belonged to the sexist
> black sheep that unfairly suppressed the innocent girls. Stunning result:
> girls were doing better on average at each department!
>
> How can this be, did some statistician mess up results?
>
> Finally, the simple cause of all this was:
>
> Girls had over-proportionally chosen the most difficult
> departments.

Or there was a sexist conspiracy to make the male-dominated
departments grade more leniently.


> Though they got better marks there than the boys (as at all
> departments), the strict marking pushed their average down considerably,
> whereas the lower number of "bad" boys there didn't have so much overall
> impact.

I think it's called Simpson's Paradox, in its general form.
The example I heard involved the admission process - I'm
not sure they share the same source, though both sound quite
spurious.


Dan.

Albert Y. C. Lai

unread,
Jul 21, 2001, 2:32:06 AM7/21/01
to
si...@sleitch.nildram.co.uk (Sian Leitch) writes:

> Is this an example of an anonymous function? Here is a routine
> declaration:-
> PROC p1 = (PROC(INT)INT a1, INT a2)INT: a1(a2);

This defines p1 as a second-order function.

> and here is a call:-
> p1((INT n)INT: ABS sin(n*pi),ABS(2*pi))

The first actual parameter is an anonymous function. Yes.

This language is not bad.

Jimmy Kerl

unread,
Jul 23, 2001, 2:09:49 AM7/23/01
to
Biep @ http://www.biep.org/ wrote:
>
> No published empirical evidence, just my own from teaching. Students who
> came to university with some IP experience as a rule had a harder time
> switching paradigms than "blank" ones had acquiring one. (And,
> interestingly, in my experience girls do repatively better on FP and boys
> on IP - which seems to go against all notions of girls being weaker at
> maths. But then CS students are of course a self-selected sample.)
>

Very interesting indeed! ive heard that girls brains are better at
handling multiple concepts at once and boys at focusing in on a single
line of thinking and boys better at abstractions.

Ive heard this is cause the conections between the 2 halfs of the brain is
smaller in boys a result of some chemical during pregnacy... (i cant recall
the source of these things so im not certian of their accuracy)

Now i wish i understood FP. :)

Biep @ http://www.biep.org/

unread,
Jul 23, 2001, 5:21:56 AM7/23/01
to
"FM" <da...@dartmouth.edu> wrote in message
news:9jaqh7$k5q$1...@merrimack.Dartmouth.EDU...

> I think it's called Simpson's Paradox, in its general form.
> The example I heard involved the admission process
> - I'm not sure they share the same source,
> though both sound quite spurious.

No, it's not spurious, it really happened at the University of California
at Berkeley in 1973. The reference is:
Sex bias in graduate admissions: Data from Berkeley
P. J. Bickel, E. A. Hammel, J. W. O'Connell
Science, V 187, Feb 7, 1975, pp 398-404

Markus Mottl

unread,
Jul 23, 2001, 6:46:12 AM7/23/01
to
In comp.lang.functional Biep @ http://www.biep.org/ <repl...@my-web-site.com> wrote:
> No, it's not spurious, it really happened at the University of California
> at Berkeley in 1973. The reference is:
> Sex bias in graduate admissions: Data from Berkeley
> P. J. Bickel, E. A. Hammel, J. W. O'Connell
> Science, V 187, Feb 7, 1975, pp 398-404

When I mentioned this phenomenon, I obviously mistakenly thought the
survey was about marks rather than about the admission process - it's
already long since I read about it.

Taking a look in the web, this "Simpson's paradox" is obviously quite
famous as an example of how interpretation of aggregate data can lead
to wrong conclusions.

James Jones

unread,
Jul 23, 2001, 9:47:29 AM7/23/01
to
Sian Leitch wrote:
> It is actually possible to write FP-wise in Algol 68. Would anybody
> care to write David' GOOD, SIMPLE introduction to FP's concepts using
> Algol 68?

Hmm. One can do a lot applicatively in Algol 68; a routine text is
a lambda expression with different syntactic sugar--but I thought that
the strict stack nature of Algol 68 made it difficult to do some things
that functional programmers expect. Lindsay's partial parametrization
proposal was intended to improve Algol 68 in this respect, if memory
serves.

(If I'm wrong about this, I'd love to hear about it.)

James Jones

Opinions herein are those of the author, and not necessarily those of
any organization.

George Russell

unread,
Jul 23, 2001, 10:30:35 AM7/23/01
to
James Jones wrote:
>
> Sian Leitch wrote:
> > It is actually possible to write FP-wise in Algol 68. Would anybody
> > care to write David' GOOD, SIMPLE introduction to FP's concepts using
> > Algol 68?
>
> Hmm. One can do a lot applicatively in Algol 68; a routine text is
> a lambda expression with different syntactic sugar--but I thought that
> the strict stack nature of Algol 68 made it difficult to do some things
> that functional programmers expect.
[snip]
Yes, this is correct. You can write anonymous functions in Algol68, but
they are nonetheless fixed. If an anonymous function has a free variable,
this variable will be the same wherever the function is used. If the
variable is out of scope, you may have problems . . .

Mark Horsburgh

unread,
Jul 24, 2001, 7:40:40 AM7/24/01
to
On Wed, 18 Jul 2001 19:05:05 +0200, Joachim Durchholz <joac...@gmx.de> wrote:
> Matthew M. Huntbach <m...@dcs.qmw.ac.uk> wrote:
>> So how is a potential student choosing between different universities
>> going to know who in them has the best personal authority?
>
> Hmm... university ratings? Those which consider input from both students
> and employers?

These things are difficult to measure, since people often want to measure
different things. However, I agree that some attempt should be made. I
don't accept the argument coming out of some teaching unions that these
things can't be measured. There are _plenty_ of professions where people
make judgements of the quality of work being done when the result is an
intangible - just because something is difficult to measure doesn't mean
that an attempt shouldn't be made.

>> > teaching well. Students get enough information to judge both with
>> > reasonable precision.
>>
>> I don't believe they do. Lacking in information and knowledge of the
>> subject, they will make decisions on very shallow grounds.
>
> Well, I had teachers who never had worked in a commercial environment. I
> ignored their advice on what to learn - not because I disrespected them,
> but because I knew they were talking about things that they weren't
> competent in.

I'm sorry. This is just complete bollocks. Their job is not to fill the
tickboxes on your job application:
C++ tick
Visual Basic tick
....
Their job is to teach you to _think_. In that they may not be perfect, but
the chances are that they have a much better idea of how to achieve it than
some snotty-nosed first year undergraduate. I don't want to get all Zen on
people, but education is a process, not a result. You need someone to lead
you through that process, because if you knew how to go about that then you
wouldn't need your lecturers, would you? More on this below.

>> In Computer
>> Science, this will often be "Are they teaching the stuff I read in job
>> ads and the glossy magazines?". This works against FP being accepted
> as
>> part of the curriculum. Students will write it off as "useless", and
>> either choose another degree programme in which it does not feature,
>> or put very little effort into doing it when it does come up in their
>> degree programme.
>
> So what? If they learn to quickly learn new languages (and paradigms),
> they will still be prepared when the Functional Hype comes. Keywords
> listed in ads aren't the worst source of information, at least if you
> want to have good positions initially (and are confident that you can
> continue to learn during your lifetime).

You are completely misunderstanding the _point_ of a University
education. Of course you are hardly alone in this day and age - the
American "pop quiz" educational culture seems to slowly taking over the
world. The point of educating people in a University is to teach them to
think. It is not to teach them facts (or programming languages). I have
both engineering and mathematics degrees. To me the engineering one is the
least useful, despite the fact that I almost never have any need of the
knowledge I was being explicitly taught during the maths degree. The reason
for this is very simple. What I took away from my maths degree was a way of
thinking about problems and a certain logical clarity - these are things
which took a long time to develop. Similarly, I imagine that learning FP
while at University will inform the _way_ that students think. Even if they
never program in a functional language again, it will still have been a
valuable exercise.

As to your point of being confident that you can continue to learn during
your lifetime: How do think that ability is created? It's not something
that happens automatically. When it comes to difficult, abstract subjects
most people have to be taught how to learn about them. Or more accurately,
they have to teach themselves by experience. How do they gain that
experience? By learning similar things - that's how. How should students
select which things will enhance their ability to learn in the future?
Should they ask an old, wise lecturer who has been learning similar new
things all through his life and can give them a broad understanding of a
subject upon which they can build for the rest of their lives? Or should
they just pick the top 2 things that job ads seem to be asking for and
restrict themselves to learning them and in that way miss out on the
opportunity to broaden their minds so they can be more useful in the
future?

>> A little cynicism is healthy, but a lot of cynicism is bad if it leads
>> you to the point where you refuse good advice.
>
> On the negative side, too little cynism is bad if it leads you to accept
> bad advice. And in my experience, most advice from university teachers
> was bad (unless you wanted a university career).
> Well, one exception was a professor who had been in the U.S. for a
> couple of years.

If you were looking for commercial career advice when you went to a
university lecturer then you were clearly going to the wrong place. Going
to your doctor for financial advice is probably also a bad idea.

Mark

Joachim Durchholz

unread,
Jul 24, 2001, 1:28:11 PM7/24/01
to
Mark Horsburgh <M.K.Ho...@damtp.cam.ac.uk> wrote:
> Joachim Durchholz <joac...@gmx.de> wrote:
> > Matthew M. Huntbach <m...@dcs.qmw.ac.uk> wrote:
> >> I don't believe they do. Lacking in information and knowledge of
> >> the subject, they will make decisions on very shallow grounds.
> >
> > Well, I had teachers who never had worked in a commercial
> > environment. I ignored their advice on what to learn - not
> > because I disrespected them, but because I knew they were
> > talking about things that they weren't competent in.
>
> I'm sorry. This is just complete bollocks. Their job is not to fill
> the tickboxes on your job application:
> C++ tick
> Visual Basic tick
> ....
> Their job is to teach you to _think_.

Well, yes. And in that area I learned and took their advice.
But they also gave advice on project management. Things like "you should
make sure that the software runs perfectly." "Software should not have
errors." "Design first, then code."
These were given as absolutes. Reality is shades of grey and trade-offs;
we never learnt how to deal with these. Which may be fine and dandy for
researchers, but most people with an exam go to engineering work, not
into research. (And actually I think that even research has its
trade-offs, though not in the subject of research but in things like
"what do we research first" and "where do we spend the funds").

> In that they may not be perfect, but the chances are that they
> have a much better idea of how to achieve it than some snotty-nosed
> first year undergraduate.

Professors aren't *that* much smarter than undergraduates. In fact some
professors are pretty monocausal, which is ok within their profession
but makes their advice worthless or worse outside a narrow domain of
expertise. What makes this dangerous is that professors don't usually
say what their domain of expertise is.
As usual, there are notable exceptions, and I'm painting this picture a
bit darker than reality is, but snotty-nosedness is something that works
well both sides, professors and undergraduates alike.

> >> In Computer
> >> Science, this will often be "Are they teaching the stuff I read in
> >> job ads and the glossy magazines?". This works against FP being
> >> accepted as part of the curriculum. Students will write it off as
> >> "useless", and either choose another degree programme in which it
> >> does not feature, or put very little effort into doing it when it
> >> does come up in their degree programme.
> >
> > So what? If they learn to quickly learn new languages (and
> > paradigms), they will still be prepared when the Functional
> > Hype comes. Keywords listed in ads aren't the worst source
> > of information, at least if you want to have good positions
> > initially (and are confident that you can
> > continue to learn during your lifetime).
>
> You are completely misunderstanding the _point_ of a University
> education. Of course you are hardly alone in this day and age - the
> American "pop quiz" educational culture seems to slowly taking over
> the world. The point of educating people in a University is to teach
> them to think. It is not to teach them facts (or programming
> languages).

I'm not promoting a pop quiz educational culture. I'm promoting a
culture where trade-offs are seen and accepted as a normal thing.

University professors usually sneer on trade-offs. Everything should be
pure and perfect. It took me nearly a decade to get rid of that habit, a
decade in which I could have been both happier and more productive if I
hadn't learned that damned sneer at university. This sneer even survived
a two-year period of self-employment, where I constantly did heavy
trading-off without even recognizing that I was doing exactly what would
have been beneath contempt if I had been an employee.

Of course, learning some tick-off-able technology would be helpful - not
to improve on job interviews (the buzzwords are going to be different
after four years anyway), but to see what the engineering trade-offs in
"real life" are.

> As to your point of being confident that you can continue to
> learn during your lifetime: How do think that ability is created?

It's a matter of self-assessment. I can't deny students the right to do
so; all I can do is to say "you may be confident in your abilities, but
our experience has been that most students need some experience". And
this data should be backed up by solid facts, not handwaving and
guesstimates. The level of (in)competence that I have found when it came
to assessing the usefulness of an education has been frightening.
(Again, as I said, there are exceptions.)

You said you learnt mathematics. Fine if it worked for you; I myself
didn't learn much from my numerics lessons (except that I hate
numerics).

An anecdote: Our numerics professor started his lessons with a statement
that Pascal may be fine but isn't suitable for numeric programming; he
failed to explain why. Actually, after a year or so, he admitted that
using Pascal was OK after all...
I don't object to his advice; it *can* be useful to use Fortran for a
numeric project (though I hate to admit that). I object that he left out
the reasons why one could be for or against using Fortran. He never gave
even a hint that there may still be valid reasons to use Fortran in real
life (such as: it's good enough for one-shot programming; most numeric
libraries are written in Fortran so you have less conceptual seams in
your software if you do the main program in Fortran as well).

> > On the negative side, too little cynism is bad if it leads you to
> > accept bad advice. And in my experience, most advice from
> > university teachers was bad (unless you wanted a university career).
> > Well, one exception was a professor who had been in the U.S. for a
> > couple of years.
>
> If you were looking for commercial career advice when you went to a
> university lecturer then you were clearly going to the wrong place.
> Going to your doctor for financial advice is probably also a bad
> idea.

Exactly my point. The sad truth is that there aren't may places beside
university where you can get a solid engineering background, but
universities still think they're teaching for a research career.
(Actually this was never the primary purpose of universities. They were
intended as a mix of theory and practice, the rationale being that the
best practitioners of an art should be the teachers. But the purpose of
universities has been subject to much political and philosophical
debate, so I'll break off at this point.)

Greg Michaelson

unread,
Jul 25, 2001, 6:56:53 AM7/25/01
to
James Jones (jej...@microware.com) wrote:

: Sian Leitch wrote:
: > It is actually possible to write FP-wise in Algol 68. Would anybody
: > care to write David' GOOD, SIMPLE introduction to FP's concepts using
: > Algol 68?

Have a look at:
Lloyd Allison, A practical introduction to denotational semantics, CUP, 1986
In chapter 7 he discusses the translation of standard semantics into Algol 68.
The SS notation is very like a FPL. He also refers to:
F.G.Pagan , Algol-68 as a metalanguage for denotational semantics, Computer
Journal, Vol 22, No 1, Feb 1979
and comments that "Pagan suggests the use of Algol-68 extended with
partial parameterisation."

Greg Michaelson

0 new messages