[[rescue] flamewar question: Perl]

joshua d boyd rescue at sunhelp.org
Mon Jul 23 00:08:09 CDT 2001


On Sun, Jul 22, 2001 at 10:26:09PM +0200, Sebastian Marius Kirsch wrote:
> On Sun, Jul 22, 2001 at 03:00:23PM -0400, joshua d boyd wrote:
> > There perhaps are some languages that break that idea.  Scheme comes to
> > mind for one thing.  Actually, scheme might be the only one I can think
> > of.
> 
> Haskell and Prolog come to mind, as well as the more exotic dialects
> such as Oz and Alice. (Alice -- functional, constraint-based concurrent
> programming. Put that in Dijkstra's pipe and smoke it!) As long as you
> stay within one paradigm, such as, say, procedural languages, it's very
> easy to transfer your knowledge between the different dialects, but when
> you switch to another paradigm, (and there are many -- object-oriented,
> functional, constraint-based, aspect-oriented etc.) you either program
> in that language like you used to in the other one, without realizing
> its full potential, or you spend a lot of time learning the basics.

First, isn't haskell also functional?  However, not all function
programming languages really require a lot of work to learn to
use.  Common Lisp was easy.  It has all sorts of shortcuts to keep me from
actually having to do everything functionally.  It is scheme (which beats
you over the head with it's functional-ness) that is causeing me
trouble.  Never tried haskell.

Second, not all paradigm jumps are hard.  Picking up OO programming was
simple since it is still easy to think of it in procedural terms.  Just
think of a method as a structs pointer to a function, ie

int a() {
	return 5;
}

typedef struct {
	int * five;
} myclass;

myclass b;
b->five=&a;

Now, you have the procedural equiv. of class myclass { int five() return
5;};

I've never tried Oz, Prolog, or constraint-based, aspect-oriented type
systems.  I though that alice used TCL (stack based?) as it's programming
language.

-- 
Joshua D. Boyd



More information about the rescue mailing list