This page is no longer maintained — Please continue to the home page at www.scala-lang.org

RE: Complexity of Scala versus Kotlin/Ceylon

No replies
Detering Dirk
Joined: 2008-12-16,
User offline. Last seen 42 years 45 weeks ago.

> -----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

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland