DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
  1. DZone
  2. Coding
  3. Java
  4. Is Ceylon Enterprise Ready?

Is Ceylon Enterprise Ready?

Akber Choudhry user avatar by
Akber Choudhry
·
Oct. 04, 13 · Interview
Like (1)
Save
Tweet
Share
16.99K Views

Join the DZone community and get the full member experience.

Join For Free
Not since GW-Basic printed "Hello World" on an IBM PC-AT have I been this excited about a programming language.  OK, there was Java and the servlet API!  Taking Ceylon for an extended spin over a couple of months on a real life project, the language appears to address the three items on the wish-list of any enterprise software development: end-to-end type safety, built-in modularity and an elevated syntax that eases re-factoring and maintenance of enterprise projects.

Although quite young (just released 1.0-beta), Ceylon holds a lot of promise in these very areas. Watching its development, it is clear that the arcane complexities of type theory are routinely decomposed into abstractions that a developer may never interact with, but it allows her to say more, more clearly – the motto of the language. More than just a slogan, it seems to be the guiding philosophy of the language and the lead, Gavin King (of Hibernate, Seam and CDI fame) has stuck to the specification and its lofty goals

Backed by RedHat, Ceylon is enterprise-ready.

A Subjective Comparison

Ceylon builds on top of Java, has bidirectional interoperability with Java (and even Maven) but is not a drop-in replacement for individual Java classes.

Java is the beloved old workhorse and its strictures and sober evolution have managed to bring library breadth, security and stability to enterprise development and inspired C# and many other languages. Java was the rightful heir to C and innovation in Java was reluctantly pushed on it by those who stretched its strictures.  That was the state of affairs before open-source was fully accepted.

Java's strength became its weakness in an open world.  Scala brought new theoretical constructs to the JVM and forced us to clearly distinguish between Java and the JVM. Its strength and weakness is that it is a drop-in replacement for Java.  Let's not provoke a flame war by commenting on its syntax! In my opinion, Go and Kotlin are still making it up as they go along.

In the non-JVM world, PHP, Ruby, and now server-side JavaScript, are the favorites of startup Web development, and they have all broken new ground in ease of adoption, web savviness, fluency and composability. Despite PEARs and gems, type safety and modularity are policed by the discipline of wizard programmers and not by the constructs of the language.  However, in the enterprise, built-in discipline and modularity is needed by the ranks of enterprise programmers delivering on tight budgets and deadlines.

Do you see where I am going with this? As with any language, strengths become weaknesses unless strictly constrained by force of character.  Ceylon promises to have that character, and if it develops an easy on-ramp for all levels of developers and sticks to its guns, we will be hearing a lot more of what can be said in it.

Technical Features

You will find a lot of the details on the website, but let me quickly recap the high-level technical features that I think developers, and their employers, will love:

  • The declarative syntax and static top-level objects and functions can be intuitively used from basic scripting and templating to building the most abstract of frameworks.  Once the ecosystem develops, Ceylon modules might be all that you need.
  • While a developer is concentrating on programming a solution to a business problem, Ceylon provides the kind of sure-footedness that is reminiscent of fast German cars. As you code, you naturally know what your variables are, their state and what they can become. The strictures of the language do not allow null-pointer exceptions or class-cast exceptions. The up-front time investment is immediately rewarded by fluency (despite a lot of indent levels), but the real reward is when you are pleasantly surprised that a major re-factoring resulted in just a few logic errors -- and no wiring errors.
  • Type manipulation.  Want to send back two objects from a function?  No problem, No need to wrap them in a holder ‘bean’ – just intersect/union them, or put them in brackets.  Want to accept a random iteration of many different types as a parameter, with at least one element?.  Just 'or' the types with a + at the end. Soon, the natural flow grows on you.  And once you have made an initial mess with all kinds of types floating around, re-factor to your heart’s content and the language will guide you along.  If the type definitions become too complex, alias the expression with a nice name.  Basically, Ceylon doesn't get in your way while the creative juices are flowing and then gives you the tools to mop things up nicely with its extremely sophisticated under-the-covers type wizardry.
  • Although compile-to-build-to-deploy modularity will continue to evolve, it is already ahead of what Java Jigsaw may offer next year.

The community around Ceylon is disciplined, agile and hyper-excited. That leads to quick and solid feedback to issues and any last-minute changes before 1.0.

Ceylon should be a definite consideration for when you question what framework or language you are going to use for your next enterprise project.



Ceylon (programming language) Java (programming language)

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Low-Code Development: The Future of Software Development
  • 5 Steps for Getting Started in Deep Learning
  • A Deep Dive Into AIOps and MLOps
  • Multi-Tenant Architecture for a SaaS Application on AWS

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: