Ruby y Python, dos lenguajes con los que puedes trabajar en la nube elástica de Facilcloud, siempre comparados por sus similitudes. Lo cierto es que a pesar de que son muy parecidos, tienen diferencias en aspectos importantes.
Ruby es un lenguaje de programación reflexivo y orientado a objetos, que combina una sintaxis inspirada en Python y Perl; con características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU.
Este es un lenguaje de programación interpretado en una sola pasada y su implementación oficial es distribuida bajo una licencia de software libre. Fue diseñado para la productividad y la diversión del desarrollador, siguiendo los principios de una buena interfaz de usuario; minimizando la confusión de los usuarios experimentados.
Ruby es orientado a objetos; y como todos los tipos de datos son objetos, toda función es un método. Asimismo, las variables siempre son referencias a objetos, no los objetos mismos.
Entre sus principales características, destaca que posee cuatro niveles de ámbito de variable: global, clase, instancia y local; es posible el manejo de excepciones; así como la posibilidad de redefinir los operadores; es altamente portable; posee hilos de ejecución simultáneos en todas las plataformas usando green threads; amplia librería estándar; soporta inyección de dependencias, alteración de objetos en tiempo de ejecución continuaciones y generadores.
La sintaxis de Ruby es similar a la de Perl o Python; la definición de clases y métodos está definida por palabras clave. Sin embargo, en Perl, las variables no llevan prefijos. Cuando se usa, un prefijo indica el ámbito de las variables. La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de código sin llaves. Los saltos de línea son significativos y son interpretados como el final de una sentencia; el punto y coma tiene el mismo uso. Una de las diferencias entre Ruby, Python y Perl, es que Ruby mantiene todas sus variables de instancia privadas dentro de las clases y sólo la expone a través de métodos de acceso (attr_writer, attr_reader, entre otros). A diferencia de los métodos «getter» y «setter» de otros lenguajes como C++ o Java, los métodos de acceso en Ruby pueden ser escritos con una sola línea de código. No requiere el uso de paréntesis, es trivial cambiar una variable de instancia en una función sin tocar una sola línea de código o refactorizar dicho código.
Los descriptores de propiedades de Python son similares, pero tienen una desventaja en el proceso de desarrollo; si se comienza en Python usando una instancia de variable expuesta públicamente, y después se cambia la implementación para usar una instancia de variable privada; el código interno de la clase necesitará ser ajustado para usar la variable privada en vez de la propiedad pública.
Ruby elimina está decisión de diseño obligando a todas las variables de instancia a ser privadas, pero también proporciona una manera sencilla de declarar métodos set y get. Esto mantiene el principio de que en Ruby no se puede acceder a los miembros internos de una clase desde fuera de esta; en lugar de esto se pasa un mensaje (se invoca un método) a la clase y recibe una respuesta.
Por su parte, Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje orientado a objetos, interpretado, usa tipado dinámico y es multiplataforma.
Usando el lenguaje Python se puede crear todo tipo de programas; programas de propósito general y también se pueden desarrollar páginas web. Debito a la su naturaleza de Open Source, ha sido modificado para que pueda funcionar en diversas plataformas: Linux, Windows, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE y PocketPC.
Facilcloud permite emplear cualquiera de estos dos lenguajes según la preferencia y conveniencia del usuario.
0 comentarios