On Friday June 26 2009, Ben Hutchison wrote:
> ...
>
> <poetic license>I see a fork in the road.
>
> In one future universe, Scala pursues stability, and is very
> successful, loved by pragmatists the world over as a "better Java".
>
> In the other universe, there's some complaining as Scala keeps
> evolving, but it finally learns to control its own side-effects, goes
> on to integrate non-local type-inference with subtype polymorphism,
> somebody writes a compiler plugin for default lazy evaluation, and is
> finally recognized as a "better Haskell".
>
> What do you aspire to?
Perfection, of course.
And as we all know, the better is the enemy of the good.
But if the upwardly compatible effects system for Scala is possible
(well, feasible), then what's the rush?
Any deployed system that lacks certification as pure (or as having its
impure portions suitably identified and segregated) is still a
functioning system. Introducing purity can be done by its creators as
deemed necessary, including not at all.
Presumably those that care about functional purity and the proper
segregation of impure code are probably pretty close with what they
write, now, and bringing their code up to verifiable conformance won't
be a big problem.
If the setting is commercial software, then those people will, if
there's true value in functionally pure code, have an advantage in the
marketplace. The manifestation of that advantage will be that more and
more software projects will be managed in such a way as to prefer or
even demand functionally pure code. This next stage of improvement in
software engineering, if it's to take place at all, will have to be
evolutionary, not revolutionary.
So again... What's the rush?
And the flip side is the question: who is willing to defer the 2.8
release to get this major addition designed and incorporated? (Unless
it was a typo where you said "... an ideally suited Effect System for
Scala is added in 2.8.0, ...")
> -Ben
Randall Schulz