Frequently Asked Questions
On this page you'll find answers to a few of the most common questions about the Ceylon project.
- What is Ceylon?
- Where can I run Ceylon?
- Why a new language?
- How is Ceylon different?
- But there's already so many languages out there!
- How about Java interoperability?
- Where can I read more about some of your language design choices?
- The project and team
What is Ceylon?
Ceylon is a new programming language that's deeply influenced by Java, designed by people who are unapologetic fans of Java. It's a language designed specifically for writing large programs in teams.
Where can I run Ceylon?
You can run Ceylon anywhere a Java 7 Virtual Machine is available. The Ceylon compiler uses the bytecode generator in Open JDK to produce Java bytecode.
Note that not all Ceylon modules are available for both platforms.
A module might be cross-platform, it might by JVM-only, or it
Why a new language?
Well, we've been designing and building frameworks and libraries for Java for ten years, and we know its limitations intimately. And we're frustrated.
The number one technical problem that we simply can't solve to our satisfaction in Java - or in any other existing JVM language - is the problem of defining user interfaces and structured data using a typesafe, hierarchical syntax. Without a solution to this problem, Java remains joined at the hip to XML.
But much of our frustration is not even with the Java language itself. The extremely outdated class libraries that form the Java SE SDK are riddled with problems. Developing a great SDK is a top priority of the project.
How is Ceylon different?
Every language has its strengths and weaknesses. Ceylon is a great language if you want to create easily understandable and maintainable code with minimum fuss, especially if you like navigating and writing code with the help of an IDE. It's also an especially great language if you care about modularity.
There are five important concerns that guide the design of the language and platform.
But there's already so many languages out there!
How about Java interoperability?
Java interoperability is a major priority for the project. However, since Ceylon will be based on its own modular SDK, making a clean break from the legacy Java SDK, Ceylon will require new frameworks designed especially for Ceylon. That's reasonable, since Ceylon is a much nicer language for developing frameworks and libraries than Java!
Where can I read more about some of your language design choices?
Try the language design FAQ.
The project and team
Who's behind this project?
Ceylon is a community project sponsored by Red Hat. You can read more about the team here.
When will it be ready?
When it's finished ;-)
Seriously, it's impossible to give anything like an exact date, but we're planning for a 1.0 release later this year.
How is Ceylon pronounced?
There's some debate about that but the accepted pronounciation
in the team is /sɨˈlɒn/.
Or in less fancy schmancy phoneticsy,
(On the other hand, lot's of folks seem to pronounce it
with the emphasis on the first syllable so if you say it like that
we'll probably know what you're talking about.)
How can I contribute to Ceylon?
Are you interested in joining the team and helping improve the Ceylon language, the compiler, the class libraries, or the IDE? Then contact us on our dev mailing list.
Want to get your hands on the code? Read how to access the source.
Feeling adventurous and want to help us with the compiler backend? Read about how to work on that project.
Found a problem, how can I improve the website?
The website is fully open already and you can contribute typos, improvements, or new pages very easily.
What version of Java is required to run Ceylon?
Both Ceylon and Ceylon IDE require Java 7.
Can you tell me more about how it works?
You can read up on the architecture.
What license is Ceylon released under?
All the code, the language specification, and even our website is open source. It's extremely important to us that the entire platform be open and unencumbered.
What is the elephant's name?
His name is "Trompon".