"Unifying Hipsters and Enterprise Developers more, more clearly."
Download Coteline (F*** Me I'm Famous Spring 2014 Edition) Coteline on GitHub
Initially planned for then 7, then 8, ...then "eventually", the module system for the Java platform is still a long shot.
With Coteline the wait is over, you can use Jigsaw now!
"The best-ever ORM solution!"
license "http://www.wtfpl.net/"
jigsaw org.snoozebernate "3.0.0.beta" {
import coteline.collection "1.0.0";
import java.base "7";
public import java.jdbc "7";
}
Backwards compatibility is key to addressing the added business core value of enterprise developments.
Coteline is commited to the continued success of providing a stable foundation for the development of your critical IT assets.
Coteline is a strict superset of Ceylon where the TypeUnsafe experts leveraged their incredible gut feeling to provide a beautiful language that will equally appeal to Hipsters and lead enterprise architects.
Gavin made some fundamentally opiniated decisions when designing Ceylon. Coteline fixes them. Period.
public
as a service", because shared
is not a good keyword.implements
, because it is fancier than satisfies
and it
closes the gap for existing J2EE 1.3 developers.object
a singleton
.const
in lieu of value
.def
as a Hipster-compliant variant of function
.Unit
instead of void
in your fine-crafted Coteline
definitions.contract
and trait
carry more meaning than
interface
(and who cares about the actual formal semantics of these?).pray
is a better replacement for assert
, because
this is what you actually do when you write assertions.dynamic
blocks are better named as unsafe
blocks, because they
escape the wonderland of static type checks.in / out
for contravariance and covariance are hard
to manipulate. This is also way too reminiscent of the C# world. Coteline
provides salvation with covar
and contravar
.foreach
loops in Coteline."The classic Hello World program"
public Unit hello(String name = "World") {
const str = "Hello, `` name ``!";
def work() => print(str);
work();
pray(1 == 1);
plop.plop();
foreach (i in {1, 2, 3}) {
print(i);
}
}
singleton plop {
public Unit plop() {
print("Oh Plop!");
}
}
"Run the module `better.ceylon.is.coteline`."
public Unit run(){
if (nonempty args=process.arguments) {
foreach (arg in args) {
hello(arg);
}
}
else {
hello();
}
}
I can honestly say if someone had shown me the Programming in Coteline book by Philippe Charrière and Benny B back in 2012 I'd probably have never created Golo.
I am going to code a new web stack in Coteline to serve BackboneJS applications. I am also going to propose 10 lightning talks for the upcoming edition of Mix-IT.
Facebook Hack is dead, long live Coteline! (or whatever new language emerges within the next 2 weeks)
We are excited to report that our next human resources portfolio management platform
will be ported from EJBs 1.0 to Coteline through our outsourcing partner overseas offices.
Coteline fulfills all the requirements of an enterprise-class language, including the presence
of ;
to delimit instruction statements. We also envision to release as opensource
our server side "Coteline Server Faces" stateful web framework by making a donation to the
vibrant Eclipse Foundation.