- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
RE: Complexity of Scala versus Kotlin/Ceylon
Fri, 2011-07-29, 15:14
> -----Original Message-----
> From: scala-user@googlegroups.com [mailto:scala-user@googlegroups.com]
> On Behalf Of Ken McDonald
> I'd disagree about the comment that people who have problems with
> Scala's advanced features also have problems with advanced features in
> dynamic languages. Python is dead simply compared to Scala.
This is IMHO an unfair statement, as in that comparision so far you compare
Scala's advanced(!) features with (standard) Python. But ...
> If you want to get complex, you have to get into Python metaprogramming,
... _here_ we are.
> which isn't intended for general use--while Scala's advanced features are.
Hmmm.
AFAIC there is
1.) a mismatch about when the 'advanced' features begin and the
'standard' level ends.
2.) a documented intention about the feature set, which does not
really back up your statement: http://www.scala-lang.org/node/8610
The differentiation between application programmer and
library designer alone is just contradicting your statement that
Scala's advanced features are intended for general use.
> And even there, Python's metaprogramming is still simpler than the
> complex Scala stuff.
What is 'the complex Scala stuff' ? Without going into detail
of what exactly the problematic things are, this is a worthless debate.
And:
! ( dynamic languages == Python)
Python's metaprogramming may even be as simple in it's technique as
Scala's most often critized advanced features.
But it is as well confusing in an application when one is not trained
to think in meta-levels and it's correct application and is easily
scared by what's going on with the classes and objects at runtime:
Suddenly appearing methods (true reflection), changing scope ('delegate'
and other Builder stuff), or magic behaviour (missing method).
And e.g. delimited continuations exist in Ruby too, and are not
used or even understood by the ordinary programmer, and therefore
not needed by them. Same is true with Scala's delimited continuations.
It is not the language, it's the concept!
The people I would keep Scala's advanced features away from are the
same I would not put into framework development or codegenerator
maintenance with Java or even Python. They would shoot in the foot,
not only of themselves but also of their users.
"Scala is complex" _is_ FUD.
"Scala has very advanced features" is true.
"Scala provides concepts I had never before contact with" may be surely
true for many of us, but what the set of these concepts is depends on
the individual developer.
My 2ct
Det