From: Dmitry A. Kazakov on
On Wed, 28 Jul 2010 18:47:40 +0100, (see below) wrote:

> I was at a short talk given by one of the leading FP propagandists.
> He drew an S-curve depicting technological penetration against time, and
> admitted that FP was still at the bottom left, far from lift-off. After 50
> years! (McCarthy's "Recursive functions of symbolic expressions and their
> computation by machine, Part I" was published in 1960. We still seem to be
> waiting for Part II: "real-world relevance".)

It is an interesting topic actually. There is a never ending struggle for
another computational platform. Any declarative framework is in the end an
attempt to replace our machines with something else. So were RDBMS, the 5GL
project (prolog etc, if anybody still remember that), modeling languages
like UML, and ones like Simulink. FP is very much alike. So far all these
attempts failed. I mean technically, RDMS and modeling tools are
commercially quite successful [*]. It is interesting to see what happens
when the platform indeed changes. The candidates might be quantum,
molecular machines, massively parallel systems.

-------------------
* To the OP, if you want to make FP successful, here is a simple recipe.
Make a tool chain. Name it functional-whatever. Advertise it for C and
Java. Managers like tools. They honestly believe that tools produce
software. I mean literally, you buy the tool X and the project Y is
advanced two weeks ahead. The more expensive the tool is greater is the
advance. Who would buy it otherwise? If you buy many most expensive ones,
you would need no these lazy overpaid guys, the programmers...

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
From: Warren on
Dmitry A. Kazakov expounded in
news:g24nvegdi17t$.1azxwn1rwjixi$.dlg(a)40tude.net:
> On Wed, 28 Jul 2010 08:24:08 -0700 (PDT), J.s wrote:
...
>> and
>> functions as values to make it easy to abstract units of a solution
>> into reusable pieces.
>
> Function as a value of what? And what is the difference? Maybe a side
> effect of the call? Anyway I don't see how values can be reusable.
>
>> Does anyone have any thoughts on this?

I think FP and procedural languages are like opposite ends
of a fourier tranform. In one system, one set of languages
are very effective at solutions in that domain, while the \
other set of languages (FP) struggles.

Do the transform into the other system, and then the other
(FP) languages provide simple answers to some problems,
while the traditional ones struggle.

Each collection of languages best solve problems in their
domain of applicability.

For my money, FP still is less generally effective because
it relies on special tricks/algorithms to narrow down the
huge number of paths for a solution. If the tricks/algorithms
do apply, then it works. For all other situations it is either
wrong or impractical (takes too long etc.)

Warren
From: Dmitry A. Kazakov on
On Wed, 28 Jul 2010 19:09:17 +0000 (UTC), Warren wrote:

> Each collection of languages best solve problems in their
> domain of applicability.

That reminds me someone's saying about 5GL in early 90's: "if 5GL is an
answer what was the question?"

What are the domains of poor languages? Since they must exist, but cannot
be observed, then in some outer dimension. Which is another proof that the
Universe must be multidimensional... (:-))

> For my money, FP still is less generally effective because
> it relies on special tricks/algorithms to narrow down the
> huge number of paths for a solution.

This universally applies to all declarative languages.

> If the tricks/algorithms
> do apply, then it works. For all other situations it is either
> wrong or impractical (takes too long etc.)

The problem is that any real system never belongs to a narrow domain. The
domain specific schism leads to the components in different paradigms
unable to talk to each other. Any gain one might get through applying
domain specific solutions is quickly spent on developing tons of software
needed to hold the mess together.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
From: Kulin Remailer on
The main thing is to never respond to google groups posts. I didn't see his
troll until you guys quoted it ;-)


From: deadlyhead on
Wow. I feel completely out of place here.

I regularly code in functional, imperative and use OOP strategies side-
by-side.

When I want to hack, I use Scheme (specifically Guile). I naturally
gravitate to doing everything in a functional style in Scheme because
it's so _natural_, but when a situation calls for it, I load up GOOPS
and get some OOP going. There's absolutely nothing wrong with using
the right tools for the job. Heck, I'll even write some functions in
Ada that never assign a variable, but instead construct a return
statement from a series of sub-functions.

My total perspective is thus: both functional programming and
imperative/OOP as implemented by Ada are designed for safety,
expressiveness and cleanliness/maintainability. Ada accomplishes this
via type safety, clear syntax and a host of other design decisions
that I don't particularly feel like ticking off. Functional languages
achieve much of the same safety, even with dynamic typing, by simply
doing away with assignment, and thus abusing conversion rules between
types. Perhaps I look at it as with Ada we must be deliberate with
each of our actions, but with functional languages we must be
deliberate with our _intentions_.

Call me crazy, but building a solid system in Ada and embedding a
powerful Scheme for extension seems like the beautiful middle way to
me.