<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=Ceylon_%28lenguaje_de_programaci%C3%B3n%29</id>
	<title>Ceylon (lenguaje de programación) - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=Ceylon_%28lenguaje_de_programaci%C3%B3n%29"/>
	<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Ceylon_(lenguaje_de_programaci%C3%B3n)&amp;action=history"/>
	<updated>2026-05-22T22:42:52Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Ceylon_(lenguaje_de_programaci%C3%B3n)&amp;diff=3417911&amp;oldid=prev</id>
		<title>Javiermartin jc: Texto reemplazado: «&lt;div align=&quot;justify&quot;&gt;» por «»</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Ceylon_(lenguaje_de_programaci%C3%B3n)&amp;diff=3417911&amp;oldid=prev"/>
		<updated>2019-06-20T22:24:38Z</updated>

		<summary type="html">&lt;p&gt;Texto reemplazado: «&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;» por «»&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 22:24 20 jun 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot; &gt;Línea 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|desarrollador= Red Hat&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|desarrollador= Red Hat&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt; &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Ceylon''' es un [[lenguaje de programación orientada a objetos]], desarrollado por [[Red Hat]]. El lenguaje en sí mismo toma mucha de su sintaxis de Lenguaje de programación [[Java]]. Es de tipado estático y con inferencia de tipos que se ejecuta sobre la [[máquina virtual Java]] o también puede compilar a JavaScript. Este lenguaje ha sido creado por [[Gavin King]], creador de [[Hibernate]]. El propósito de Ceylon es mejorar deficiencias de Java, aunque a la vez pretende no ser excluyente de este; sino que también tengan código escrito en Java y en [[JavaScript]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Ceylon''' es un [[lenguaje de programación orientada a objetos]], desarrollado por [[Red Hat]]. El lenguaje en sí mismo toma mucha de su sintaxis de Lenguaje de programación [[Java]]. Es de tipado estático y con inferencia de tipos que se ejecuta sobre la [[máquina virtual Java]] o también puede compilar a JavaScript. Este lenguaje ha sido creado por [[Gavin King]], creador de [[Hibernate]]. El propósito de Ceylon es mejorar deficiencias de Java, aunque a la vez pretende no ser excluyente de este; sino que también tengan código escrito en Java y en [[JavaScript]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Características==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Características==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-2956664:rev-3417911 --&gt;
&lt;/table&gt;</summary>
		<author><name>Javiermartin jc</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Ceylon_(lenguaje_de_programaci%C3%B3n)&amp;diff=2956664&amp;oldid=prev</id>
		<title>Rosarino: Rosarino movió la página Ceylon a Ceylon (lenguaje de programación): hay otros artículos con este nombre</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Ceylon_(lenguaje_de_programaci%C3%B3n)&amp;diff=2956664&amp;oldid=prev"/>
		<updated>2017-09-21T15:41:57Z</updated>

		<summary type="html">&lt;p&gt;Rosarino movió la página &lt;a href=&quot;/Ceylon&quot; class=&quot;mw-redirect&quot; title=&quot;Ceylon&quot;&gt;Ceylon&lt;/a&gt; a &lt;a href=&quot;/Ceylon_(lenguaje_de_programaci%C3%B3n)&quot; title=&quot;Ceylon (lenguaje de programación)&quot;&gt;Ceylon (lenguaje de programación)&lt;/a&gt;: hay otros artículos con este nombre&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 15:41 21 sep 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;es&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Sin diferencias)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Rosarino</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Ceylon_(lenguaje_de_programaci%C3%B3n)&amp;diff=2180116&amp;oldid=prev</id>
		<title>Adrianeth jc.jiguani2 en 14:02 6 mar 2014</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Ceylon_(lenguaje_de_programaci%C3%B3n)&amp;diff=2180116&amp;oldid=prev"/>
		<updated>2014-03-06T14:02:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 14:02 6 mar 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l76&quot; &gt;Línea 76:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 76:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 26&amp;#160; &amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 26&amp;#160; &amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Con la clase simple definida, vamos a ver cómo usarla. A continuación se muestra un bloque de código que usa la clase Counter. Comienza por la instanciación de la clase del objeto cnt. Observe que no hay la palabra clave new en Ceylon. Con su nuevo objeto Counter definido, usted llama el método increment y luego emite el valor Counter usando su método getter. Observe que los operadores = y := son diferentes en Ceylon: se usa el especificador = sólo para valores inmutables, mientras que la asignación de variables es realizada con el operador := &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Con la clase simple definida, vamos a ver cómo usarla. A continuación se muestra un bloque de código que usa la clase Counter. Comienza por la instanciación de la clase del objeto cnt. Observe que no hay la palabra clave new en Ceylon. Con su nuevo objeto Counter definido, usted llama el método increment y luego emite el valor Counter usando su método getter. Observe que los operadores = y := son diferentes en Ceylon: se usa el especificador = sólo para valores inmutables, mientras que la asignación de variables es realizada con el operador &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;:=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 01&amp;#160; &amp;#160; Counter cnt = Counter(1);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 01&amp;#160; &amp;#160; Counter cnt = Counter(1);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 02&amp;#160; &amp;#160; cnt.increment();&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 02&amp;#160; &amp;#160; cnt.increment();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Adrianeth jc.jiguani2</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Ceylon_(lenguaje_de_programaci%C3%B3n)&amp;diff=2180111&amp;oldid=prev</id>
		<title>Adrianeth jc.jiguani2: Página creada con '{{Ficha Software |nombre= Ceylon |imagen= Ceylon00.jpg |familia= Lenguaje de programación orientada a objetos. |descripción= El propósito de Ceylon es mejorar deficiencias de...'</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Ceylon_(lenguaje_de_programaci%C3%B3n)&amp;diff=2180111&amp;oldid=prev"/>
		<updated>2014-03-06T14:01:13Z</updated>

		<summary type="html">&lt;p&gt;Página creada con &amp;#039;{{Ficha Software |nombre= Ceylon |imagen= Ceylon00.jpg |familia= Lenguaje de programación orientada a objetos. |descripción= El propósito de Ceylon es mejorar deficiencias de...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Ficha Software&lt;br /&gt;
|nombre= Ceylon&lt;br /&gt;
|imagen= Ceylon00.jpg&lt;br /&gt;
|familia= Lenguaje de programación orientada a objetos.&lt;br /&gt;
|descripción= El propósito de Ceylon es mejorar deficiencias de Java, aunque a la vez pretende no ser excluyente de este.&lt;br /&gt;
|creador= Gavin King &lt;br /&gt;
|desarrollador= Red Hat&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt; &lt;br /&gt;
'''Ceylon''' es un [[lenguaje de programación orientada a objetos]], desarrollado por [[Red Hat]]. El lenguaje en sí mismo toma mucha de su sintaxis de Lenguaje de programación [[Java]]. Es de tipado estático y con inferencia de tipos que se ejecuta sobre la [[máquina virtual Java]] o también puede compilar a JavaScript. Este lenguaje ha sido creado por [[Gavin King]], creador de [[Hibernate]]. El propósito de Ceylon es mejorar deficiencias de Java, aunque a la vez pretende no ser excluyente de este; sino que también tengan código escrito en Java y en [[JavaScript]].&lt;br /&gt;
==Características==&lt;br /&gt;
Ceylon, un lenguaje de tipo estático que mantiene algunos de los mejores dispositivos del lenguaje Java (y ejecuta en la JVM) pero mejora la legibilidad de ese lenguaje, la modularidad integrada y la incorporación de dispositivos de lenguaje funcional, como funciones de orden superior. Ceylon también incorpora dispositivos de C y Smalltalk. Así como el lenguaje Java, ese nuevo lenguaje enfoca la computación empresarial, pero también es flexible y útil en otras áreas.&lt;br /&gt;
&lt;br /&gt;
Algunos llaman Ceylon de &amp;quot;matador de Java&amp;quot; (quizás debido a dudas acerca del futuro del lenguaje Java) pero en realidad Ceylon ejecuta en la JVM, por tanto, no es una sustitución, sino una ampliación de la tecnología Java. El uso de la JVM para soportar la ejecución de Ceylon es un modelo ideal, pues significa que Ceylon (como Java) es portátil a lo largo de una gran variedad de arquitecturas que actualmente soportan la JVM.&lt;br /&gt;
&lt;br /&gt;
La mayoría de los lenguajes actuales desafían una categorización simple y, en lugar de eso, representan una variedad de estilos de programación. Ceylon no es diferente. Es un lenguaje de tipo estático (es decir, la verificación de tipo ocurre en el tiempo de compilación, diferentemente de los lenguajes de tipo dinámico como Lisp, en el cual la verificación de tipo se realiza en el tiempo de ejecución). Ceylon es un lenguaje orientado a objetos, como el lenguaje Java, y también soporta funciones de orden superior (lo que significa que las funciones pueden tomar funciones como entrada o salida) con un estilo de sintaxis típico de C. Las funciones de orden superior no son soportadas directamente en el lenguaje Java; por tanto, esa funcionalidad representa una diferencia exclusiva en los dos lenguajes.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, a veces las mejorías tienen más que ver con lo que un lenguaje elimina, y no con lo que añade. Ceylon simplifica y elimina elementos del idioma Java, sustituyéndolos por un esquema más simple. Un ejemplo de simplificación es la eliminación de las palabras clave public, protected y private. En lugar de eso, Ceylon simplemente incluye la anotación shared, que define los elementos de una clase que son visible externamente. Ceylon también elimina la capacidad de sobrecargar, pero proporciona algunas soluciones alternas para esa funcionalidad (como parámetros con valores predeterminados y secuenciados) con sintaxis más simple.&lt;br /&gt;
&lt;br /&gt;
Incluye soporte de herencia, secuencias (matriz o construcción de lista), genéricos, argumentos nombrados, etc. Incluye dispositivos para gestión de tipo en tiempo de ejecución. El lenguaje se encuentra en desarrollo activo, por tanto, el conjunto final de dispositivos sigue abierto.&lt;br /&gt;
== Objetivos de Ceylon==&lt;br /&gt;
*Ser fácil de aprender tanto para desarrolladores Java como [[C#]].&lt;br /&gt;
*Eliminar la verbosidad de Java pero manteniendo la legibilidad.&lt;br /&gt;
*Mejorar el tipado estático de Java.&lt;br /&gt;
*Proveer una expresión declarativa para eliminar dependencias con [[xml]].&lt;br /&gt;
*Apoyar y fomentar un estilo de programación más funcional.&lt;br /&gt;
*Proveer soporte para meta-programación.&lt;br /&gt;
*Proveer construcción modular.&lt;br /&gt;
==Filosofía de diseño==&lt;br /&gt;
Los principios de diseño de Ceylon no giran alrededor de capacidades tecnológicas (ej. concurrencia, garbage collection) sino de cómo funcionan los proyectos de software, especialmente software empresarial de gran escala.  Aquí algunas de las características de este tipo de proyectos:&lt;br /&gt;
*Son sistemas grandes, medidos en el orden de decenas de miles de líneas de código.&lt;br /&gt;
*Los equipos de integrantes son grandes (más de 10 personas), diversos, distribuidos geográficamente y con alta rotación.&lt;br /&gt;
*Una vez liberados a producción, los sistemas requieren un alto grado de mantenimiento para incorporar cambios y mejoras. Y lo más probable es que las personas encargadas de hacer esto sean un grupo distinto a quienes lo desarrollaron.&lt;br /&gt;
&lt;br /&gt;
Es por ello que los principios de diseño fundamentales de Ceylon son:&lt;br /&gt;
*'''Legilibilidad'''. El código en Ceylon busca ser altamente legible y fácil de entender por terceros. Ceylon no se enfoca puramente en tener una sintáxis ni breve ni elaborada, sino fácil de entender.&lt;br /&gt;
*'''Predecibilidad'''. Cuando hay errores de compilación o ejecución, estos deben ser fáciles de entender y rastrear hacia su causa raíz.&lt;br /&gt;
==Tipos de datos en Ceylon==&lt;br /&gt;
Ceylon incorpora un conjunto tradicional de tipos que se implementan como clases ordinarias. Esos tipos son:&lt;br /&gt;
*Natural. Enteros no firmados, incluyendo cero&lt;br /&gt;
*Integer. Enteros firmados&lt;br /&gt;
*Float. Punto flotante&lt;br /&gt;
*Whole. Enteros firmados con precisión arbitraria&lt;br /&gt;
*Decimal. Decimales con precisión y escala arbitrarias&lt;br /&gt;
En forma predeterminada, los tipos Natural, Integer y Float son de 64 bits, pero usted puede anotarlos con small para especificar la precisión de 32 bits.&lt;br /&gt;
==Clase de Ceylon==&lt;br /&gt;
Ya que Ceylon es un lenguaje orientada a objetos, escribe código con el concepto de clases. Una clase es un tipo en Ceylon que encapsula un conjunto de operaciones (llamadas métodos) y declara también una definición de cómo se inicializa el estado cuando se inicializa un objeto de la clase (el inicializador de clase, semejante al constructor).&lt;br /&gt;
&lt;br /&gt;
Una clase simple ayudará a entender el enfoque de Ceylon. la clase se define con un valor opcional, lo que significa que el usuario puede proporcionarlo o no, y es denotado con el patrón Type?. En lugar de un constructor, el cuerpo de la clase contiene el inicializador de la clase. Ese código define la variable privada (nada es visible a no ser que sea anotado como compartido) y luego la lógica de inicialización. Se comienza verificando si la variable inicial existe. Si existe, se usa como el valor inicial para su conteo. Su primer método, anotado como shared y, por tanto, visible externamente desde la clase, define el incrementador. Cuando es llamado, ese método simplemente incrementa su contador.&lt;br /&gt;
&lt;br /&gt;
Finalmente, se define un método getter que retorna el valor actual del contador para el usuario y un método setter que define el valor actual del contador con un valor proporcionado por el interlocutor. Note el uso de la palabra clave assign aquí para crear un atributo de variable para definir el valor del contador. Además de manipular los constructores en forma diferente (código integrado dentro de la clase), no hay deconstructor y no hay una forma de implementar varios constructores (sólo una de las diferencias respecto al lenguaje Java).&lt;br /&gt;
 01    doc &amp;quot;Simple Counting Class&amp;quot;&lt;br /&gt;
 02    class Counter( Natural? start ) {&lt;br /&gt;
 03    &lt;br /&gt;
 04      doc &amp;quot;Class Initializer&amp;quot;&lt;br /&gt;
 05      variable Natural count := 0;&lt;br /&gt;
 06      if (exists start) {&lt;br /&gt;
 07        count := start;&lt;br /&gt;
 09      }&lt;br /&gt;
 10    &lt;br /&gt;
 11      doc &amp;quot;The incrementer&amp;quot;&lt;br /&gt;
 12      shared void increment() {&lt;br /&gt;
 13        count++;&lt;br /&gt;
 14      }&lt;br /&gt;
 15    &lt;br /&gt;
 16      doc &amp;quot;The getter&amp;quot;&lt;br /&gt;
 17      shared Natural currentValue {&lt;br /&gt;
 18        return count;&lt;br /&gt;
 19      }&lt;br /&gt;
 20&lt;br /&gt;
 21      doc &amp;quot;The setter&amp;quot;&lt;br /&gt;
 22      shared assign currentValue {&lt;br /&gt;
 23        count := currentValue;&lt;br /&gt;
 24      }&lt;br /&gt;
 25&lt;br /&gt;
 26    }&lt;br /&gt;
&lt;br /&gt;
Con la clase simple definida, vamos a ver cómo usarla. A continuación se muestra un bloque de código que usa la clase Counter. Comienza por la instanciación de la clase del objeto cnt. Observe que no hay la palabra clave new en Ceylon. Con su nuevo objeto Counter definido, usted llama el método increment y luego emite el valor Counter usando su método getter. Observe que los operadores = y := son diferentes en Ceylon: se usa el especificador = sólo para valores inmutables, mientras que la asignación de variables es realizada con el operador := .&lt;br /&gt;
 01    Counter cnt = Counter(1);&lt;br /&gt;
 02    cnt.increment();&lt;br /&gt;
 03    writeLine( c.currentValue );&lt;br /&gt;
Ceylon incentiva el uso de atributos inmutables siempre que posible. Eso significa que un objeto es inicializado con un valor y no reasignado.&lt;br /&gt;
==Reconocimiento de debilidades de Java==&lt;br /&gt;
Aunque Ceylon trata de aprovechar las fortalezas de Java, también reconoce sus debilidades y busca aprender de cómo hacen las cosas mejor otros lenguajes.&lt;br /&gt;
Un ejemplo es el caso de la modularidad. La modularidad (o falta de) siempre ha sido uno de los puntos débiles de Java. ¿Por qué tenemos que instalar el JRE completo para ejecutar un &amp;quot;hola mundo&amp;quot;? Ceylon reconoce la belleza/simplicidad de usar gemas en Ruby, o paquetes en Node, e incorpora algo similar.&lt;br /&gt;
==Aprovechamiento de herramientas==&lt;br /&gt;
Ceylon es un lenguaje de tipado estático (statically typed). Este tipo de lenguajes típicamente requiere más líneas de código que los lenguajes dinámicos, y por lo tanto pueden ser considerados menos productivos. Esto puede ser cierto cuando programas todo manualmente desde un editor de texto, pero cuando te apoyas en ambientes de desarrollo moderno el usar tipado estático se convierte más en una ventaja que desventaja. Dado que las herramientas pueden entender mejor tu código, pueden ayudarte más con él: a generarlo, depurarlo y probarlo. Y esto se extiende también al uso de librerías y frameworks. Otra ventaja de usar tipado estático es poder detectar errores desde compilación, y no hasta ejecución.&lt;br /&gt;
==Referencias==&lt;br /&gt;
*http://ceylon-lang.org&lt;br /&gt;
*https://github.com/ceylon‎&lt;br /&gt;
*http://sg.com.mx/buzz/por-que-ceylon#.Uxdhzc7op1s&lt;br /&gt;
*http://www.ibm.com/developerworks/ssa/linux/library/l-ceylon/&lt;br /&gt;
*http://www.javahispano.org/portada/2013/11/18/dos-nuevos-lenguajes-de-programacion-ceylon-y-dart.html&lt;br /&gt;
*http://in.relation.to/Tutorials/IntroductionToCeylon&lt;br /&gt;
[[Category:Programación]][[Category:Informática]]&lt;/div&gt;</summary>
		<author><name>Adrianeth jc.jiguani2</name></author>
		
	</entry>
</feed>