Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

With the announcement of Ceylon, and after observing the slides describing its intent and feature list, I reckoned this language to be a Scala competitor.

Furthermore, as a Scala programmer, I can see several points (as depicted in here) that state that Scala goes further in providing a quantum leap over Java, that is interoperable nevertheless.

However, this language may be a symptom of failed comprehension over Scala features and/or lack of knowledge of the language itself, which may not be only their fault.

Many great ideas have failed due to bad/insufficient marketing. Beta was, in some aspects, better than VHS but it lost its marketshare because of marketing.

So my question is: Are we doing enough to explain/disseminate/evolve Scala? How can Scala professionals/enthusiasts propel the language forward in terms of acknowledge from their colleagues (i.e. Marketing)? How can we make natural selection work and prevent it from failing?

Are sponsorships the way to go? Should there be already prepared presentations (e.g. like jrebel has on its page) to ease propagation?

share|improve this question
I don't think Ceylon will ever be a real competitor to Scala. – Oliver Weiler Apr 15 '11 at 14:40
I think the gaping hole that Scala filled was so noticeable to so many people that it's inevitable there will be numerous attempts to fill it. I guess Ceylon just came a little late. – Owen Aug 26 '11 at 0:37

Scala already has momentum, even I'm interested on it despite not liking the JVM a bit. In fact, while reading the Ceylon slides, I kept thinking "what does it do that Scala doesn't?". Finally, the whole thing only convinced me to give Scala another chance.

share|improve this answer

If you followed any of the forum threads about the Ceylon announcement (at Reddit, Slashdot, Hacker News, etc), I am sure you noticed that Scala was talked about more than Ceylon was. My take-away is that Scala is well enough known, and has sufficient adherents that marketing will not be the problem. Any press by any competitor to Scala will bring a lot of attention to Scala too.

If Scala fails, it will be because the language itself was not attractive enough. I am a C# programmer and I am very interested in Scala. The feature set is broadly attractive.

There is an impression though (not amongst Scala fans perhaps) that the Scala syntax is too different or that the language is too complex to fit the same niche as Java or C#. This is the issue that probably needs to be addressed before Scala sees mainstream adoption and establishes itself above competing languages.

share|improve this answer

The "symptom of failed comprehension" is a pretty good description.

There are certain minimum requirements a statically typed, object-oriented language has to provide, like a decent collection library for instance. People won't invest time even looking at a language, which can't explain how it will eventually support features in the future which people expect to be state-of-the-art now.

The free lunch for programming languages is over!

I found a comment by "steve" which describes the problem behind it very well:

Scala uses some complex-looking things to support designs many people consider state-of-the-art of language and library design now.

There are basically three possible ways to support e. g. useful collection libraries ranging from "very specific hack" to "general solution":

  • Use a special compiler hack
  • Implement a "virtual class" feature
  • Build a powerful, sound and safe type system

Scala took the last (and most general) path and has gained great benefits in many other parts of the language because important patterns have become expressible and statically verifiable by the compiler.

Ceylon will have to make this choice in a few years, too. There is no way ignoring that.

Personally I try to improve the documentation of the language, so that people trying out Scala have a better experience with ScalaDoc.

But really, I can't see how Ceylon can become a Scala competitor or even a Java competitor.

Remember how long it took until Java had decent tool support?

It took a team of several people 2 years to even figure out how Ceylon should look like. The problem is that the rest of the world has already figured out when and how Ceylon will the wall now and not in 10 years.

Have you seen how much beating Scala has gotten for having the second-best IDE-support of all JVM languages?

Ceylon lacks - a non-prototype compiler - a standard library - a well-thought and proven type system - documentation - tool and IDE support

Scala has already solved all these problems and with the release of Scala 2.9 there will be work to do to show people who formerly e.g. criticized lacking IDE support which improvements have been made.

share|improve this answer

Aside from competition - having read some slides about the type system I find it very interesting. I like it when people think about sane type systems.

Will try to find more information. Would like it if they did notice and worked around the following bad design choices in contemporary OO languages:

  • null is a value of any (reference) type
  • no way to declare/check which side effects a function has, or if it is pure
  • consequently, no way to restrict a subtype so that it can't do more than the type it inherits from. For example, if the base class is immutable and defines a pure method foo(...), derived classes must not be mutable or override foo() with a function that is not pure.
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.