Portál AbcLinuxu, 11. května 2025 01:10
- ma union a intersection types (je to imho jediny jazyk, ktery je ma) - vice typesafe, typovy system je cistsi a elegantnejsiTypový systém Ceylonu je IMHO jedna z jeho největších výhod. +1
- je to pokus vybudovat od zakladu uplne novou platformu, netahat sebou "java baggage", ale zaroven zustat s javou kompatibilniTo je asi nejdůležitější věc. Ceylon (stejně jako třeba Scala) je nová platforma, která shodou okolností používá JVM. Kotlin je jen nový jazyk, který dobře zapadá do existujícího ekosystému.
- kompilace do JSMají dneska skoro všichni. IMHO jediný alternativní jazyk, která dává pro programování v prohlížeči smysl, je Dart.
- podpora deklarovani stromovych struktur (konfiguracni soubory, html)Kotlin umí taky skrz velmi pěknou podporu pro typově bezpečná DSL. Myšlenka anonymních rozšiřujících funkcí se na první pohled zdá divná, ale ono to celé docela pěkně funguje.
- "String a" misto "a: String", pro me velka vyhoda oproti Scale nebo KotlinuPravda. Ale je to otázka chutě.
- podpora metaprogramovaniTypově bezpečný metamodel Ceylonu je hodně zajímavý. Kotlin je v tomhle mnohem pragmatičtější (či přízemnější, jak kdo chce), viz přednáška Andreye Breslava z letošního JVM Language Summitu.
- comprehensions - spousta dalsich drobnosti - else/then, vice regular syntaxe, srozumitelnejsi deklarace generickych typu, currying, spread operator, ...Souhlas, Ceylon má dost zajímavých drobností. Kotlin taky, kromě rozšiřujících funkcí bych zmínil hlavně podporu delegace a delegovaných properties. Jó, a enumy. Nic proti součtovým typům, ale enum je prostě enum
Kotlin nema reified generics? To me tesi, to je oproti Ceylonu celkem podstatna nevyhodaKotlin nemá reifikaci z výkonnostních důvodů. Scala je na tom podobně. Cituji příspěvek Martina Oderskyho o reifikaci:
The research with Enno was different: It was a essentially a C++-like expansion of everything at class loading time. So, more classes were generated yet on the other hand everything was specialized. We had to introduce some severe restrictions in the language to make the expansion process terminate. Essentially, a class could not contain a definition that had a type with a more complicated instance of itself. Things like zip in collections would be impossible. This is enforced by the language spec of C++ but it's definitely not OK for Java or Scala. We hoped that the scheme would trade larger codesize for better speed. So a 7% slowdown was not exactly considered a success. Michel Schinz implemented a scheme that looks close to what Ceylon did in his thesis work. His performance results were much worse than 7% (I remember twice as slow in some cases). For this reason we did not pursue it further.
ma union a intersection types (je to imho jediny jazyk, ktery je ma)Jazyky pro práci s XML to mají – například CDuce má kromě průniku a sjednocení i doplněk. Java má průnikové typy.
vice typesafe, typovy system je cistsi a elegantnejsiProč si to myslíte?
Jazyky pro práci s XML to mají – například CDuce má kromě průniku a sjednocení i doplněk. Java má průnikové typy.Diky, neznal jsem. Pokud tou Javou myslite
MyClass<T extends Comparable & Node>
, tak to se s tim co ma Ceylon neda vubec srovnavat.
Proč si to myslíte?Je to celkovy dojem po tom, co jsem procetl language tour (http://ceylon-lang.org/documentation/1.0/tour/types/), konkretne me napadaji intersection/union typy nebo syntaxe pro generika.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.