On Thursday 16 May 2002 15:16, Rick Hedin wrote:
Hello. My friends are trying to convince me of the value of functional programming. Writing safer and clearer programs sounds good, but I am not inclined to learn Haskell.
Xotcl is a pretty flexible beast. Can I do functional programming in it? It seems as though classes are a variety of object in Xotcl, so that will be an advantage for passing classes around, but what else am I missing? I suspect that Gustaf and Uwe thought about functional programming when they designed their beast. Can I find out what their thoughts were?
hi rick,
nobody can find out today, what their thoughts really were :)
there is no exact answer to your question, here are some random thoughts...
well, functional programming is quite different in principle from oo programming which is in turn quite different to say logic programming. it's not a matter of "power" or "flexibilty", it's a matter, how the matter how one like to think about a certain problem area and what are the primary things of concern ... well in theory. in practice, many of the pure concepts are sometimes less important.
oo: think in things, classify things, encapsulate state, reuse code, build systems
functional programming: think in expressions, purists say that variables are not needed, support powerful nice things with funny names like "list comprehensions", "monads" etc.
logic programming: think in logic, expressing relations between things (like grammars), express "truth", don't focus on program flow, try theories
you can certainly program in a functional programming style in Tcl or XOTcl, but it does not make this necessarily a functional language. The much rumored "feather" project much more support in this direction.
i am a friend of varieties: use the right tool for the right task. There are many projects that i would start today in e.g. C, some other in Prolog/clp(R), some in Java or whatever, but most in xotcl (but i am certainly not objective).
There is no way, we could port all nice features of all programming languages to xotcl, and if we would, i am not sure whether i would like the result. xotcl is a theme, a way, we proceed. There are certainly other ways as well, and many of these will be better suited for certain tasks.
i would say, listen to your friends, look into haskell, make your own opinion, how you would like to solve your programming tasks, this will help you to make well-founded decisions.
I have never used Haskell for anything real. The next best was APL where i have written various programs; it was quite fun, but i a got the somewhat wrong impression what computers are for (i thought a computer is primarily is a big, powerful calculator). Today i would say that it is more important to use a computer to build systems. For this task, oo is quite ok, i would say....
hope this helps a little to make your mind up.
greetings -gustaf