2008-09-25 35 views
13

¿Alguien aquí le ha dado un giro al Fantom programming language? (Juego de palabras intencionado)¿Primeras impresiones del lenguaje de programación Fantom?

Mi primera impresión:

  • me gusta la capacidad de tener el código de ejecución ya sea en el .NET o Java VM.
  • La sintaxis es agradable y limpia y no prueba nada elegante.
  • tengo la creencia de que "la biblioteca es el lenguaje" y los desarrolladores del ventilador believe that their USP is their APIs:

Sin embargo, conseguir un lenguaje para ejecutar en Java y .NET es la parte fácil - de hecho, hay hay muchas soluciones a este problema La parte difícil es obtener API portátiles. Fan proporciona un conjunto de API que resumen las API de Java y .NET. De hecho, consideramos que este es uno de los principales beneficios de Fan, ya que nos da la oportunidad de desarrollar un conjunto de API del sistema que son elegantes y fáciles de usar en comparación con los contrapartes de Java y .NET.

¿Alguna otra idea, primera impresión, pros y contras?

+1

Su retruécano: P – mdec

+0

Me gustaría saber por qué la pregunta está abajo votada. –

+5

porque las personas son idiotas. –

Respuesta

1

Parece muy inspirado en Ruby. Dice que es RESTful pero no veo cómo exactamente. Comparar con boo, que es más maduro pero similar en muchos aspectos (sin embargo, su sintaxis está inspirada en Python).

Las decisiones de diseño para mantener genéricos y espacios de nombres muy limitados son cuestionables.

+0

Boo puede realmente swtich entre Java y .Net como Fan ?? –

+0

No, pero puede cambiar entre Mono y .NET:) Cambiar entre Java y .NET no es motivo suficiente. ¡IKVMM es una JVM implementada en .NET! –

0

Esto es muy interesante.

Java (o C#) se creó para eliminar la dependencia de la plataforma mediante la creación de una JVM (o CLR) que compilará el código en un código de máquina específico en tiempo de ejecución.

Ahora, hay una languege que es Máquina virtual independiente? umm ... ¿qué demonios?!?!

Una vez más, este es un tema muy interesante, que podría ser el futuro ... :) ir a una sola languege universales

+0

¡Hola, escuché que te gusta la independencia de la máquina! – Ken

2

creo que su explicación resume:

"La primaria razón por la que creamos Fan es para escribir software que puede ejecutarse sin problemas en Java VM y .NET CLR. La realidad es que muchas organizaciones de software están comprometidas con una o la otra de estas plataformas. "

No se ve mejor que todos los demás lenguajes que no sean JVM/.NET. A falta de información sobre ellos (su blog es solo una página de error), no veo ninguna razón por la que necesariamente obtendrían este derecho más que otros. Cada lenguaje comienza bastante elegante para el conjunto de cosas para las que fue diseñado (aunque veo algo de torpeza en el pequeño código de Fan que acabo de ver): la verdadera pregunta es qué tan bien se adapta a cosas completamente nuevas, y simplemente aún no lo sabemos.

Pero si su organización tiene una regla de que "todo debe ejecutarse en nuestra VM", entonces puede ser un compromiso aceptable para usted.

Estás perdiendo muchísimo por la independencia de VM. Por ejemplo, la tuya es la primera pregunta de Fan aquí en SO - un par de órdenes de magnitud menos que Lisp.

¿Para qué problema es Fan la mejor solución? Python y Ruby ya pueden ejecutarse en ambas máquinas virtuales (o en ninguna de ellas), tienen grandes comunidades y grandes bibliotecas, y parecen tener el mismo nivel de abstracción, pero son mucho más maduras.

+0

+1 - forma inteligente de observar que este es un lenguaje bastante oscuro ("órdenes de magnitud menores que Lisp"). Estoy de acuerdo con sus observaciones RE: con respecto a Python y Ruby: son lo suficientemente nuevas y ya tienen una diversidad de opciones de soporte de VM. –

0

Creo que se ve como un gran lenguaje por características, pero no estoy seguro de lo útil que es. No creo que sea tan útil para apuntar .NET y JVM. Java ya es multiplataforma, y ​​.NET también, con Mono. Al dirigirse a dos máquinas virtuales, solo debe usar las API disponibles en ambos. No puede usar ninguna de las excelentes API nativas que están disponibles para Java y .NET. No puedo imaginarme que su API esté tan completa como las Java de .NET.

1

Nunca había oído hablar de Fan hasta hace un par de semanas. Desde el sitio web, tiene aproximadamente un año, por lo que todavía es bastante joven y no ha sido probado. Sin embargo, hay un par de puntos interesantes: Primero, el lenguaje está abordando el problema de la concurrencia proporcionando un modelo de actor (similar a erlang) y apoyando objetos inmutables. En segundo lugar, el objeto sigue el ejemplo de Scala con inferencia de tipo. La inferencia de tipo permite al programador omitir declaraciones de tipo, pero el compilador lo calcula y proporciona la ventaja de un código corto y más limpio como en un lenguaje de tipo dinámico, al tiempo que conserva la eficiencia de un lenguaje de tipo estático. Y, por último, parece un lenguaje muy rápido, casi tan rápido como Java y realmente se acerca o supera el segundo idioma más rápido en el JM: Scala. El punto de referencia que muestra el rendimiento se puede encontrar en http://www.slideshare.net/michael.galpin/performance-comparisons-of-dynamic-languages-on-the-java-virtual-machine?type=powerpoint.

Cuestiones relacionadas