Menú principal

Mostrando entradas con la etiqueta lenguaje de programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta lenguaje de programación. Mostrar todas las entradas

sábado, 18 de mayo de 2019

Cuando el ídolo de Steve Jobs, Bob Dylan, denunció a Apple por el nombre de un lenguaje de programación

Apple se ha enfrentado durante su historia a pleitos importantes a la hora de registrar nombres para sus productos. Ya hemos hablado aquí del caso de Carl Sagan, entre otros. Uno de los menos conocidos, a pesar de ser protagonista una leyenda de la música, es el caso de Bob Dylan contra Apple. Steve Jobs era un auténtico fan y seguidor de Bob Dylan, pero él no tuvo que ver nada en este asunto ya que estaba fuera de la empresa, en concreto en su querida NeXT. Vamos a ver en detalle la curiosa historia completa de "Dylan" y la demanda.

Todo empezó durante el desarrollo del Newton, dispositivo del cual hablamos el sábado pasado. Mientras el hardware iba avanzando, los ingenieros también estaban trabajando en paralelo en un lenguaje de programación orientado (en principio) al desarrollo de aplicaciones para el nuevo dispositivo de Apple, el Newton, denominado como nombre en código "Ralph".  Cuando vieron el potencial del lenguaje, lo exportaron a otras plataformas, en concreto al Macintosh, lo que también supuso un cambio en su nombre, rebautizándose como "Dylan".

Figura 1. Póster de Bob Dylan dentro de la campaña de Apple Think Different. Fuente.

"Dylan" nació formalmente a principios de 1990 y era (y lo sigue siendo) un lenguaje de programación funcional y orientada a objetos. De hecho, tiene como base Scheme y Common LISP. Como una de sus principales características, podemos encontrar es que cualquier valor (números, caracteres, funciones, etc) es un objeto de primera clase. Todas estas características lo convierten en un lenguaje de programación dinámico, y justo este término viene su nombre: Dynamic Languaje. 

Fue justo eso, llamar "Dylan" a un producto, en principio comercial, el motivo por el cual la leyenda de la música Bob Dylan inició acciones legales contra Apple en agosto de 1994. Bob Dylan ya había aparecido en alguna campaña de Apple, por ejemplo en Think Different como podemos ver en la figura 1. Además, Bob Dylan siempre había sido un héroe para Steve Jobs (por cierto, hasta 2004 no se conocieron en persona), pero justo durante este pleito entre Apple y el músico, Jobs no estaba en la empresa, ya que unos años antes había sido despedido de Apple. Volviendo al caso, después de algunas negociaciones con el artista, este acabó aceptando un pre-acuerdo que permitió finalmente autorizar que el lenguaje de programación llevara su nombre.

Figura 2. Ejemplo de código para una conexión http en lenguaje Dylan. Fuente.

Durante los noventa, "Dylan" se podía encontrar para los Macintosh con Motorola 68000 e incluso se llegó a desarrollar un entorno IDE bastante avanzando. Los desarrollos más conocidos bajo este lenguaje de programación son por ejemplo otro IDE pero esta vez compatible con Microsoft Windows y también un compilador de código abierto (Open Dylan) para múltiples plataformas. "Dylan". Como lenguaje de programación finalmente sobrevivió y de hecho está muy activo hoy día gracias a miles de voluntarios. 

Figura 3. Steve Jobs anunciando iTunes con un disco de Bob Dylan de fondo. Fuente.

No sabemos el acuerdo entre Apple y Bob Dylan para que ellos pudieran seguir utilizando el nombre. Lo que sí sabemos es que no fue productivo, ya que Dylan dejó de ser un producto comercial en 1995, debido entre otras cosas a la transición de PowerPC a Intel y también debido a las pérdidas de la compañía por aquella época. Una historia agridulce seguro para Steve Jobs, que por un lado veía como su ídolo denunciaba a su querida Apple pero por otro lado también se alegraría un poco de los males de la directiva actual de la compañía que lo había despedido. En este enlace podéis encontrar la historia completa de "Dylan", el lenguaje de programación claro ;)

martes, 8 de enero de 2019

Novedades de Swift 5

Swift lleva unos cuantos años siendo el lenguaje de programación predilecto de Apple. Desde su aparición en 2014 hemos visto como en cada edición de la WWDC ha ido cobrando más protagonismo, sustituyendo a Objective-C en la mayoría de demos y talleres. Muchas de las grandes deficiencias de este lenguaje se han ido subsanando a lo largo de las distintas iteraciones, hasta llegar a la última versión propuesta, Swift 5.

Esta versión se caracteriza por tener menos cambios en sintaxis y funcionalidad que sus predecesoras, pero cuenta con un gran característica que lleva aquejando a Swift desde sus inicios: la estabilidad de la Application Binary Interface o ABI. ¿Qué es ABI?, pues es una interfaz que permite a los binarios de Swift interactuar con otras librerías y componentes. Básicamente define detalles a muy bajo nivel como las llamadas a funciones, la representación de datos en memoria, donde se encuentran los metadatos o como acceder a ellos.

Actualmente Swift tiene un gran problema, y es que no tiene una ABI estable, esto significa que cada binario compilado (o sea, cada aplicación escrita en Swift), empaqueta su propia versión de la Librería Dinámica de Swift, ya que esta no reside en el propio sistema operativo. Por ello, si una app usa Swift 3.0, contiene la Librería Dinámica con ABI 3.0, mientras que si otra está compilada con Swift 4.2 contiene la Librería Dinámica con ABI 4.2. Por lo tanto si con Swift 5 llegamos a tener una ABI estable, Swift podrá ser integrado en el sistema operativo y su ABI podrá ser compatible con todas las versiones de Swift posteriores a la 5.

Figura 1: App compilada con Swift 4.2

Esta mejora supone ciertas ventajas, como que el tamaño de las aplicaciones se reducirá, los cambios en la sintaxis de Swift serán menos drásticos, habrá menos migraciones y se podrán crear Frameworks pre-compilados en Swift. También acarrea ciertas desventajas, como que se limita los cambios en las Interfaces Públicas y los Símbolos, al igual que restringe el crecimiento y la evolución de Swift como estábamos acostumbrados. Aunque esto último, viendo el grado de madurez actual del lenguaje, ya no es tan problemático como en sus inicios.

Figura 2: Raw Strings y @unknown default

Por otro lado, se han introducido pequeñas mejoras, como la habilidad de crear “raw strings” mediante el símbolo # entre la cadena de texto. Esto es bastante útil en textos que tienen que escapar comillas o en expresiones regulares. También se han añadido “Dynamically callable types”, que permiten marcar un tipo como directamente invocable, esto permite a Swift funcionar mejor con lenguajes dinámicos como Python y Javascript. Junto a esto, también se ha introducido el atributo @unknown para diferenciar entre los casos por defecto en un switch de un enumerado y los casos no contemplados.

Así que, quitando de lado unas pequeñas mejoras de sintaxis y otras pocas incorporaciones, estas serían las principales novedades de Swift 5, un lenguaje de programación en alza, con sus grandes ventajas pero también con múltiples inconvenientes. La comunidad en torno a este lenguaje no hace más que crecer, teniendo un repositorio muy activo y una página donde poder informarte de todas las mejoras que animo a que consultéis.

sábado, 13 de octubre de 2018

El manual original y el código fuente del lenguaje de programación Apple Logo II ¿no sabes qué es Logo?

Los que ya tenemos unos años en esto de la Informática, crecimos con el lenguaje de programación BASIC pero otro lenguaje que estaba muy de moda allá por los 80 era el Logo. Este lenguaje de programación estaba orientado a la educación, extremadamente sencillo pero muy visual, ya que se basaba en dibujar usando un puntero (tortuga) en la pantalla y dándole órdenes como ahora veremos. Pues ahora se ha publicado el código fuente original del Apple Logo II (y el manual de referencia original también).

Logo era un lenguaje de programación muy básico diseñado en 1967 por Wally Feurzeig, Seymour Papert (uno de los pioneros de la IA) y Cynthia Solomon en el MIT. Fue programado en un mítico DEC PDP-10 que ejecutaba ITS (Incompatible Time Sharing, el sistema operativo de estos mainframes). Era una variante sencilla de LISP pero además tenía una característica muy llamativa, sobre todo para los niños. Permitía mover un puntero, una especie de tortuga (mascota y logotipo del lenguaje Logo) dándole órdenes sencillas como "Avanza 50 pixeles y gira 90 grados": 

  1. FD 50
  2. RT 90
  3. FD 100
  4. RT 90
  5. WAIT 100
  6. END
Figura 1. Ejemplo de movimiento de la tortuga Logo. Fuente.

Tenía también comandos para hacer bucles, subrutinas, imprimir en pantalla, utilizar listas,  etc. En el manual original de referencia que está publicado en Archive.org puedes echar un vistazo a todos ellos. La primera versión de Apple Logo II funcionaba en cualquier Apple II con 64KB de RAM, pero más tarde sólo funcionaba en aquellos que tenían 128KB como el Apple IIc o IIe. También se llegó a crear una versión en 3D para el Apple IIGS, el Apple II más potente que Apple fabricó por aquella época. También apareció una versión para el Macintosh 128KB, llamada ExpertLogo en 1985.

Figura 2. Arranque y creación de un dibujo en Apple Logo II. Fuente.

El Apple Logo II no fue escrito por Apple, sino por una empresa canadiense llamada Logo Computer Systems (LCSI), aunque Apple estuvo todo el tiempo detrás del desarrollo. La versión de Apple de este lenguaje fue realmente lo hizo popular por aquella época. Viendo las características de Logo para mover la tortuga, podemos fácilmente deducir que es un buen lenguaje de programación para enseñar también robótica. De hecho, el mismo Seymourt diseñó uno de estos robots en 1969 para pasar al mundo real su lenguaje de programación.

Figura 3. Robot Logo. Fuente.

Ahora es posible echar un vistazo esta pieza de la historia de la Informática, en concreto a esta versión para Apple programada en ensamblador 6502. Como bonus, puedes también echar un vistazo a la imagen del ITS, la cual incluso se mantiene actualizada hoy día.

Entrada destacada

Proteger tu cuenta de Google y de Gmail con Latch Cloud TOTP #Latch #Gmail #Google

La semana pasada se liberó la nueva versión de Latch y nuestro compañero Chema Alonso hizo un repaso de todo ello en su artículo Latch...

Otras historias relacionadas

Entradas populares