Quali sono i vantaggi di Ceylon su Java? [chiuso]

11

Cercando i recenti e potenti linguaggi di programmazione in arrivo su Internet, mi sono imbattuto in Ceylon. Sono passato a ceylon-lang.org e dice:

Ceylon is deeply influenced by Java. You see, we're fans of Java, but we know its limitations inside out. Ceylon keeps the best bits of Java but improves things that in our experience are annoying, tedious, frustrating, difficult to understand, or bugprone.

Quali sono i vantaggi di Ceylon su Java?

    
posta Anuj Balan 17.05.2012 - 07:54
fonte

5 risposte

27

Il Ceylon sembra un bel linguaggio divertente, ma direi che ha relativamente pochi "vantaggi" su Java.

Penso che abbia una sintassi più gradevole e alcune caratteristiche linguistiche più "moderne" - sebbene questo sia soggettivo e direi che dovrebbero essere fattori relativamente minori nella scelta di un linguaggio di programmazione.

Fattori molto più importanti quando si sceglie una lingua / piattaforma per un progetto serio:

  • Ti consente di sviluppare un paradigma migliore per il tuo problema? (no - Ceylon è chiaramente l'ennesima lingua nello spazio OOP di tipo Java, sovrascritto staticamente. Contrasto con ad esempio Clojure che sta prendendo di mira lo spazio linguistico funzionale o Groovy che è un linguaggio JVM OOP molto dinamico in modo che stiano affrontando diverse nicchie )
  • Ha un ecosistema di libreria migliore? (nessuna possibilità ... Java non ha eguali in questo senso. Al massimo probabilmente si finirebbe semplicemente con l'uso delle librerie Java di Ceylon)
  • Puoi avere sviluppatori più esperti? (improbabile, poche persone stanno attualmente utilizzando Ceylon e anche se lo facessero ci sarebbe una grande curva di apprendimento da scalare)
  • Ha strumenti migliori? (no - gli strumenti Java sono molto completi e maturi)
  • Ti rende più produttivo? (discutibile - ha alcune caratteristiche del linguaggio produttivo, ma combinato con la curva di apprendimento e gli effetti degli strumenti che potrebbe effettivamente finire dietro)
  • Fornisce prestazioni migliori? (no - la JVM è ottimamente ottimizzata per Java, è un duro richiamo per qualsiasi altro linguaggio JVM a batterlo. Scala si avvicina, ma dopo molti anni di messa a punto ...)
  • Supporta più piattaforme di destinazione? (no - è un linguaggio JVM esattamente uguale a Java)
  • Il codice sarà più gestibile? (probabilmente no - Java ha superato la prova del tempo qui proprio perché è relativamente stabile, maturo e non ha molte funzionalità linguistiche avanzate che potrebbero confondere i futuri manutentori)
  • C'è una comunità grande, attiva e utile? (no, almeno non rispetto a Java o agli altri grandi linguaggi JVM come Scala, Clojure, Groovy ecc.)

Nel complesso, incoraggerei sicuramente le persone a sperimentare Ceylon e a divertirmi con essa dal punto di vista dell'apprendimento.

Ma al momento non vedo alcun vantaggio convincente che faccia sì che un gran numero di persone vogliano passare ad esso (o lo scelga prima di altri linguaggi JVM come Clojure, Scala, JRuby o Groovy).

    
risposta data 17.05.2012 - 09:52
fonte
3

Ha alcune caratteristiche interessanti non trovate in java:

  1. Reified Generics
  2. Tipo di inferenza
  3. Mixin (anche se questo è in arrivo su JDK8)
  4. Tipi di unione e intersezione (che è davvero bello e non trovato in molte lingue)
  5. "Funzioni di ordine superiore" (anche se non funziona come prima oggetti di classe)
  6. Chiusure (anche in arrivo in JDK8)
risposta data 11.09.2012 - 21:06
fonte
2

Per quanto ho notato, una delle più grandi differenze tra Ceylon e altri linguaggi JVM creati dagli hobby è che sarà supportato da Red Hat / JBoss. Quindi otterrà un set di strumenti veramente bello integrato in JBoss Tools / Developer Studio, buone interazioni con JBoss AS / Gatein Portal e tutto il Midleware / JEE 6 / BRMS. Quindi in alcuni casi potresti sviluppare applicazioni Ceylon complete in JSF, portlet molto produttivi con "cicli di aggiornamento e aggiornamento" di PHP e cosa no.

Come la maggior parte dei linguaggi basati su JVM, non lo vedo come un sostituto di Java per progetti che richiedono enormi basi di codice, ma per alcuni progetti di dimensioni medio-piccole, specialmente una volta molto modulari (come CRUD-intensive, portlet, ecc.). Penso che sarà molto ben accolto nel mondo del web, specialmente dai fan di JBoss.

    
risposta data 11.07.2012 - 14:24
fonte
1

Penso che Ceylon sia interessante in molti modi. E forse hanno ragione nel modo in cui devi allontanarti da Java in qualche modo se vuoi lasciarti alle spalle alcuni problemi di Java. Ceylon sembra avere alcune caratteristiche linguistiche e spero che questo faccia rallentare il compilatore come in Scala o anche peggio perché i tempi di compilazione non si ridimensionano con le dimensioni del codice (vedi Due anni di feedback sull'esperienza di Scala ). Il ritmo della squadra di sviluppatori di Ceylon è piuttosto impressionante.

Kotlin è ancora 0.6 e, a giudicare dalla loro velocità di sviluppo nell'ultimo anno, direi a circa un anno da 1,0. Non ha molte caratteristiche linguistiche come Ceylon (ma quelle importanti java mancano come tratti e metodi di estensione) e sembra essere più una sorta di Scala senza i suoi problemi. Immagino che i tempi di compilazione scalabili non costituiranno un problema. Ma Kotlin può essere solo un Java più carino come Groovy. Non può fornire una via d'uscita dalla programmazione delle materie prime Java con dipendenza XML, codice boilerplate, manipolazione del codice byte, ecc. È qualcosa come Java e Scala fatti bene. Resta da vedere se Kotlin o Ceylon saranno in grado di fare la differenza. Penso che entrambi i tentativi valgano lo sforzo e auguro loro buona fortuna.

    
risposta data 15.11.2013 - 10:49
fonte
-2

Ceylon sta producendo una specifica durante il suo sviluppo, come tutti i grandi linguaggi JVM (cioè tutti quelli menzionati sopra tranne Groovy) ...

Ceylon (http://ceylon-lang.org/documentation/1.0/spec)

Clojure (http://clojure.org/Reference)

Scala (www.scala-lang.org/docu/files/ScalaReference.pdf)

Java (http://docs.oracle.com/javase/specs/jls/se7/html/index.html)

JRuby segue le specifiche di Ruby che devono essere pagate (http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579).

    
risposta data 11.09.2012 - 11:16
fonte

Leggi altre domande sui tag