Translate

Mostrando las entradas con la etiqueta Dart. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Dart. Mostrar todas las entradas

miércoles, 3 de febrero de 2021

Ubuntu renovará su instalador de sistema con Flutter


Normalmente hago post de como utilizar tecnología pero no de quien o donde se usa. Y creo muy importante esta noticia porque es un ejemplo de un uso de tecnología. 

Flutter es una tecnología que permite hacer aplicaciones mobile multiplataforma utilizando el lenguaje de programación Dart. Y la empresa canonical (dueña de Ubuntu) ha elegido esta tecnología para reescribir su instalador de sistema. 

Por lo tanto en un futuro cercano vamos a tener un intalador de Ubuntu hecho en Flutter. 

Y eso, dejo link: https://discourse.ubuntu.com/t/refreshing-the-ubuntu-desktop-installer/20659


viernes, 28 de agosto de 2020

Que lenguaje de programación debo aprender?


Este es un post de opinión no me apoyo en ninguna encuesta o nada, es opinión de lo que voy leyendo. A la vez ya hice post similares pero lo actualice a 2020. 

Dicho esto, me pongo a opinar. Si queres aprender un lenguaje de programación, lo que primero que debes hacer es pensar a que te queres dedicar. Dado que la programación tiene varios objetivos y si bien hay lenguajes que son buenos para todo pero no son populares en todo, por lo tanto, dependiendo a que te queres dedicar es el lenguaje que debes aprender. 

Voy a listar temas y poniendo los lenguajes. 

Backend : Java, C#, Kotlin, Scala, Groovy, PHP, Python, Haskell, Go, SQL, Ruby

Frontend : Javascript, Typescript, Elm

Mobile : Java, Kotlin, C#, Dart

Data science : SQL, Python, Julia, R

Sistemas (bajo nivel) : Rust, Go, C

Sistemas concurrentes : Rust, Go, Scala, Haskell, Erlang, Elixir

Juegos : C, C++, Rust, Go, Lua, Elm, C#



sábado, 23 de noviembre de 2019

Estado del Octoverso


GitHub ha publicado Estado del Octoverso que es un informe anual detallando, una serie de cifras y datos interesantes sobre los desarrolladores, repositorios, proyectos y lenguajes de programación que alberga la plataforma.

Con más de 40 millones de desarrolladores, incluyendo 10 millones de nuevos usuarios registrados en 2019, GitHub ya alcanza más de 44 millones de repositorios. En lo que va de año esos desarrolladores colaboraron usando más de 370 lenguajes de programación.

Lo que más me llamo la atención este año es que Python ha pasado a Java. Esto claramente se debe a que han aumentado los proyectos en maching learnig y sin duda en esta disciplina, python es el rey.



Entre los lenguajes que más crecieron esta dart y Rust :


Sin más dejo link : https://octoverse.github.com/


viernes, 1 de noviembre de 2019

Cual es el lenguaje más utilizado y el más moderno?

Es muy interesante saber cual es el lenguaje que más se usa hoy día, para poder aprenderlo si no lo sé y para saber por dónde anda el mercado.

Por eso dejo estas 2 imagenes que son por demás interesantes:


Otra cuestión es saber cual es el lenguaje más moderno de los más utilizados, porque es licito pensar que este tendrá mayor futuro : 




¿Cuál es el mejor y más nuevo lenguaje de programación?


Encontré dicha pregunta en quora, y la respuesta :

  • Julia (Influenciado por: Fortran, Lisp, Lua, Python, Perl, Ruby y MATLAB)
  • Kotlin (Influenciado por: JavaScript, Java, C# y Scala)
  • Elm (Influenciado por: Standard ML, F#, Haskell y OCaml)
  • Elixir (Influenciado por: LFE, Clojure, Erlang and Ruby)
  • Rust (Influenciado por: C#, Ruby, C++, Alef, Haskell, NIL, Cyclone, Limbo y Erlang)
  • Crystal (Influenciado por: C, Ruby, C# and Python)
  • Groovy (Influenciado por: Python, Java, Smalltalk, Objective-C y Perl)
  • R (Influenciado por: S, XLispStat, Common Lisp y Scheme)
  • Hack (por Facebook)
  • Go (Influenciado por: C, Python, Smalltalk, Alef, CSP, Modula, Pascal, Limbo y BCPL)
  • Dart (por Google)
  • Bosque (Nuevo lenguaje de programación de Microsoft)
  • Ballerina (Basado en Java, Javascript, Go, Rust, C#)
  • V (Basado en Go y Rust)

La verdad no conocía a Bosque, Ballerina y V. 

Más allá de dicha respuesta, a mi entender, todo depende de a que te vas a dedicar, por ejemplo: 

Si vas a hacer una aplicación base, base de datos, sistema operativos, aplicaciones de escritorio: 
  • V
  • Go 
  • Rust

Si te queres dedicar a ciencia de datos : 
  • Julia
  • R

Si queres hacer back-end de aplicaciones : 
  • Kotlin
  • Groovy
  • Bosque
  • Ballerina
  • Hack
  • Elixir

Aplicaciones front-end :
  • Elm
  • Dart

Me puedo equivocar, pero es mi opinión. 

Otra cosa, faltan lenguajes que siempre nuevos, como Scala, Idris, Swift o tantos otros...

Opinen!


jueves, 1 de agosto de 2019

Primeros pasos con Flutter parte 3, más Flutter que nunca!

Seguimos con Flutter. No nos basta un ejemplito.

Veamos el directorio de un proyecto en Flutter.

Directorio lib, donde va a estar toda la acción de desarrollo, y el archivo main.dart el cual es el punto de entrada de ejecución de la aplicación.

También podemos ver:
Directorios Android / IOS: contienen proyectos generados, 100% nativos, que pueden abrirse en las IDE correspondientes a cada plataforma.

Assets: Directorio para incluir imágenes/fuentes. Todos los archivos en esta carpeta se incluirán de manera automática en el bundle final. También podemos agregar directorios y archivos.

Test: Directorio para clases y archivos de unit testing.




El archivo main es el punto de entrada de una aplicación. El runtime buscara el método “main” dentro de este archivo y debe invocar el método runApp con un widget.

En flutter, todo es un widget. Un icono, una imagen, un botón y hasta los elementos de layout, como un contenedor, una Column, Row o un Stack todos son widgets; y tanto cada pantalla como nuestra app final, será simplemente, una composición de dichos widgets.

Un widget es representado por una clase, que debe heredar de la clase del framework StatelessWidget o StatefulWidget (dependiendo de si nuestro widget tiene información estado o no), y debe además sobrescribir el método build. Dicho método debe estar en todo widget, y debe retornar un Widget.

Cada widget puede contener un hijo, que se especifica en su propiedad child. En el caso de algunos widgets de layout como “Row” o “Column”, se pueden especificar varios widgets hijos, en la propiedad children. Flutter construye los widgets a modo de árbol, invocando el método build de cada widget.

El manejo de estado más básico de un widget en Flutter, se hace mediante llamados al método setState. SetState notifica al framework del cambio de estado, y redibuja los widgets que sean necesarios.

El manejo de estado mediante el método setState puede funcionar para aplicaciones muy pequeñas, o para manejo de estado relacionado al widget en sí, Flutter ofrece mejores maneras para manejo de estado más complejo. 


Una pregunta muy común que surge a la hora de ver setState como método de manejo de estado es, ¿“Que pasa si quiero compartir información entre pantallas y widgets?” Si bien siempre podemos pasar la información mediante parámetros en los constructores, es una solución poco práctica y engorrosa. Para eso, Flutter ofrece Inherited Widget

Antes hablamos como los widgets en Flutter se anidan y estructuran en un árbol. Para que un widget pueda acceder a otro que se encuentra arriba en el árbol es que tenemos Inherited Widget. A nivel de código, no es más que otro widget, simplemente debe heredar de la clase InheritedWidget e implementar el método updateShouldNotify, para definir condicionalmente cuando disparar la notificación de update.

Con este código, ya tenemos un widget que puede ser accedido por todos los widgets hijos en el árbol. El acceso al InheritedWidget se logra utilizando el método “of”. Claramente leyéndolo así suena todo muy abstracto, en un próximo post vamos con un ejemplo. 

Dejo link: https://flutter.dev

domingo, 21 de julio de 2019

Primeros pasos con Flutter parte 2, la venganza de Flutter

Ahora voy a utilizar Android studio. Ya aprendi la lección lo mejor es utilizar Android Studio si queremos renegar menos. Antes que nada debemos instalar el sdk, como lo instalamos en el post anterior.

Primero instalar android studio, se puede bajar de aquí o yo en mi caso lo instale del market de linux:

Al iniciar android studio vamos a intalar el plugin de flutter :


Ahi elegimos el plugin de flutter :

Y nos va a pedir instalar el plugin de Dart y le decimos que si.

Y luego reniciamos la IDE.

Ahora ponemos new Flutter Project. Y le metemos...




Como se puede ver en las imagenes es un wizard muy simple. Lo único para destacar es que tenemos que indicar donde se instalo la sdk de fluter.

Con este proyecto, el wizard crea un proyecto de ejemplo. Así que ya tenemos nuestro ejemplo ahora prodremos probarlo, peeeeeero antes debemos crear un dispocitivo a donde probarlo. Ahora tenemos que ir a AVD manager y crear el device. El wizard es simple tambien, tenemos que elegir el tipo de dispositivo, luego el sistema operativo, si no tenemos instalado ninguno te permite bajar alguno,




Y con el dispositivo, ahora si podremos probar nuestra aplicación. Listo, para cerrar el post vamos a ejecutar la aplicación y ver como funciona. Y funciona!!!




miércoles, 10 de julio de 2019

Primeros pasos con Flutter


Antes de empezar tenemos que bajarnos el SDK de aquí: https://flutter.dev/docs/get-started/install

Como tengo linux ;) debo bajar el siguiente archivo: flutter_linux_v1.5.4-hotfix.2-stable.tar.xz

Y luego de bajarlo debemos hacer :

mkdir ~/development
 cd ~/development
 tar xf ~/Downloads/flutter_linux_v1.5.4-hotfix.2-stable.tar.xz

Y luego agregamos flutter a la variable PATH y lo hago en el archivo .bash_profile :

 export PATH="$PATH:`pwd`/flutter/bin"

La herramienta de flutter descarga los binarios de desarrollo específicos de la plataforma según sea necesario. Para los escenarios en los que es preferible descargar estos artefactos , los binarios de iOS y Android se pueden descargar por adelantado ejecutando:

 flutter precache

Ejecute el siguiente comando para ver si hay dependencias que necesita instalar para completar la configuración:

 flutter doctor

En este punto me dice que no tengo device, por lo tanto tengo que bajar la sdk de android. Para lo cual tengo que ir a este link : https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip

A esta altura me doy cuenta que es más fácil con android studio, pero bueno... medio tarde :P

Luego de descomprimir el Sdk, hacemos :

cd tools/bin
./sdkmanager --update
./sdkmanager "platform-tools" "platforms;android-28"
./sdkmanager "system-images;android-25;google_apis;x86_64"

flutter config --android-sdk /path/to/android/sdk

Después hacemos

flutter doctor --android-licenses

Para solucionar un tema de licencia y luego

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.5.4-hotfix.2, on Linux, locale es_AR.UTF-8)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[!] Android Studio (not installed)
[!] IntelliJ IDEA Community Edition (version 2016.3)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    ✗ This install is older than the minimum recommended version of 2017.1.0.
[✓] VS Code (version 1.35.1)
[!] Connected device
    ! No devices available

! Doctor found issues in 3 categories.

Y ahora tenemos SDK pero no device :(

avdmanager create avd --package "android-28" --name "foo" -k "system-images;android-28;google_apis;x86_64"

Como voy a utilizar visual code instale el plugin de flutter :


Tenemos 2 caminos 1 usar visual code :

  • Ir a View > Command Palette..
  • Escriba "flutter", y seleccione Flutter: New Project.
  • Ingrese un nombre de proyecto, como myapp, y presione Enter.
  • Cree o seleccione el directorio principal para la nueva carpeta del proyecto.
  • Espere a que se complete la creación del proyecto y aparezca el archivo main.dart.

o por consola :

flutter create myapp
cd myapp
flutter devices
flutter run

En la carpeta lib podremos encontrar el archivo main.dart que sera la función que se ejecute en mi aplicación.

Si hicimos la aplicación por consola podemos abrir la carpeta, luego.

Ahora a correr el ejemplo con consola será

flutter run

o por visual code, vamos a debug -> Start debug.

Puff por esta vez es demasiado....


lunes, 1 de julio de 2019

Flutter, la nueva forma de hacer applicaciones mobiles



Flutter es el nuevo kit para desarrollo (SDK) de aplicaciones móviles multiplataforma, creado por Google. Se puede utilizar para desarrollar aplicaciones para Android y iOS con un solo code-base. Además admite también web y escritorio (preview). Desde ya el método primario recomendado para crear aplicaciones para Google Fuchsia (el futuro sucesor de Android).

Esta entre el top 20 repositorios más activos en GIT. Y finalizo periodo BETA en diciembre (V1.0 official release) y ya tiene 250.000 desarrolladores activos. Además tiene mucho soporte y movimiento de parte de Google. Anunciado por Google como plataforma preferida de desarrollo para el futuro sucesor de Android (Fuschia)

Futter es un SDK completo con rendering engine propio. Al renderizar sus propios widgets, copias exactas de los originales usando API gráfica de bajo nivel OpenGL (permite uso de, por ejemplo, widgets Android de API 26+ en cualquier versión de Android, ya que no depende de los widgets OEM)

Características : 
  • Open-source y gratuito.
  • Desarrollo rápido, gran librería de widgets material design “out of the box” listos para usar.
  • No requiere conocimiento de plataformas especificas en lo absoluto.
  • No necesita XML (o ningún otro mark-up) para vistas
  • Compilación a código ARM, por lo tanto cuenta con performance nativa
  • Stateful Hot Reload
  • Compatibilidad con IDEs existentes VS Code, Android Studio, IntelliJ, etc..
  • Portable
  • Lenguaje DART, no muy popular pero fácil de aprender.
  • Curva de aprendizaje para desarrollo declarativo, sin mark-up para vistas.
  • Ecosistema de librerías de terceros ya es muy bueno.

Flutter no utiliza los widgets de sistema, renderiza sus propios widgets usando las api gráficas de bajo nivel.  Flutter ya viene con un kit completo de Widgets, que son la copia exacta (“pixel perfect”) de los widgets Material Design (Android) y Cupertino (IOS), pero si deseamos tener un look diferente en IOS, aun debemos “decidir” en runtime mostrar un widget u otro basado en la plataforma.

Dejo un video:



Dejo link: https://flutter.dev
https://flutter.dev/docs/get-started/install

lunes, 10 de septiembre de 2018

Dart 2 fue lanzado


Alguien recuerda a Dart? Hace mucho que no tenemos noticia, pero ahora nos encontramos que se a lanzado la versión 2 de este lenguaje.

Lo que más destaca de Dart 2 a nivel del propio lenguaje y las bibliotecas es que ahora está fuertemente tipado, las palabras clave de creación de instancias son ahora por lo general opcionales, el modo verificado ha sido eliminado y tanto el lenguaje como las bibliotecas principales han sido modificadas en parte como resultado de los cambios en los sistemas de tipos.

A nivel de herramientas, Pub ya no soporta transformadores, por lo que se recomienda utilizar el nuevo sistema de compilación en su lugar, además de haberse cambiado las herramientas relacionadas con el desarrollo web. Junto a todo lo introducido en Dart 2, también se ha publicado en el anuncio oficial el proceso general sobre cómo migrar proyectos de la primera a la segunda versión.

Si el relanzamiento funciona, seguiremos hablando de este lenguaje.

Por ahora dejo link: https://www.dartlang.org/dart-2

miércoles, 17 de mayo de 2017

Desde java a Dart



Encontre esta pagina para aprender Dart para los programadores Java. Esta muy bueno, con ejemplos concretos y es muy pedagojico. Muy recomendado!!

Dejo link:
https://codelabs.developers.google.com/codelabs/from-java-to-dart

jueves, 7 de mayo de 2015

¿Podrá ser Dart y no Java el futuro de Android?

No era de esperar? Google es dueño de dos lenguajes Go y Dart. Tiene latente la amenaza de denuncias por patentes utilizando java, si bien todo eso ya paso Oracle no es una empresa que reconozca que perdio y se va a quedar en el molde.

A la vez java es un lenguaje que evoluciona a su ritmo, ritmo que Google debe esperar.

Por lo tanto, yo que google, cambio de lenguaje hace rato. Lo raro es que se haya inclinado por dart y no por go. Tendrá pensado en algún futuro hacer la plataforma Android multilenguaje? Lo veo bastante fácil y abarcaría a todo tipo de desarrolladores.

Dejo un link a un buen articulo: http://hipertextual.com/2015/05/dart-android

domingo, 26 de abril de 2015

Web Frameworks Benchmark 2015

InfoQ publico un benchmark por demás interesante sobre frameworks web. Básicamente este benchmark compara frameworks web de diferentes lenguajes y tecnologías. Y la velocidad se mide en request por segundo.
Veamos el benchmark:


Como es de esperar cuando hablamos de performance el ganador es C y le sigue C++.

Otra cosa que saco de este benchmark es que existen varios Framework que no conozco. Tendré que estudiar más.

Dejo link: http://www.infoq.com/news/2015/04/web-frameworks-benchmark-2015



sábado, 15 de marzo de 2014

Discover Dart

Hola quería compartir un nuevo curso de code scholl sobre Dart. Recuerdan que Dart es el lenguaje de google que quiere desterrar a Javascript.

Dejo link:
http://dart.codeschool.com/

miércoles, 4 de septiembre de 2013

Learn X in Y minutes

Una muy buena pagina para aprender lenguajes de programación, muestra un resumen de los lenguajes para que se puedan aprender rápidamente; entre otras cosas tiene:

  • Where X=c
  • Where X=clojure
  • Where X=coffeescript
  • Where X=Common Lisp
  • Where X=c#
  • Where X=dart
  • Where X=elisp  
  • Where X=elixir
  • Where X=erlang
  • Where X=F#
  • Where X=Go
  • Where X=Groovy
  • Where X=haskell
  • Where X=haxe
  • Where X=java
  • Where X=javascript
  • Where X=julia
  • Where X=LiveScript
  • Where X=lua
  • Where X=Matlab
  • Where X=Objective-C
  • Where X=perl
  • Where X=php
  • Where X=python
  • Where X=R
  • Where X=racket
  • Where X=ruby
  • Where X=Scala
  • Where X=Visual Basic
  • Where X=whip

Dejo link: http://learnxinyminutes.com/

jueves, 27 de diciembre de 2012

JEdit versión 5 soporta Scala y Dart


Si no conocen JEdit, que les puedo contar? Es un editor de texto hecho en Java por lo tanto es multiplataforma. Es muy bueno, soporta plugins y más de 200 lenguajes, es configurable y de licencia GPL; lo único que le falta es que cebe mate.

Yo lo uso mucho en linux porque en linux no esta el notepad++ que personalmente me parece muy bueno también.

Lo interesante de la noticia es que ahora en su versión 5 va a soportar Scala y Dart. Se puede ver el crecimiento de este editor pero tambien de estos dos lenguajes que cada vez más se van haciendo espacio.

Dejo links:
http://www.infoq.com/news/2012/12/jedit5
http://www.jedit.org/

lunes, 10 de diciembre de 2012

Mixins, Mixins y más Mixins...


En el post anterior vimos la tecnica de Mixins en Scala, pero no solo Scala tiene esta técnica. Muchos lenguajes denominados modernos utilizan Mixins un ejemplo claro es Ruby. En Ruby definimos módulos y podemos importar estos módulos en nuestras clases.


module Debug
   def who_am_i?
      "#{self.class.name} (\##{self.id}): #{self.to_s}"
   end
end

class Phonograph
  include Debug
  # ...
end

class EightTrack
  include Debug
  # ...
end

ph = Phonograph.new("West End Blues")
et = EightTrack.new("Surrealistic Pillow")

ph.who_am_i? #Phonograph (#935520): West End Blues
et.who_am_i?  #EightTrack (#935500): Surrealistic Pillow

El caso de groovy resuelve el mixins con anotaciones, es como una fusión de java y ruby.


class Dog {
  def talk() {
    "Woof, woof"
  }
}


@Mixin(Dog)
class Talk {
  // other stuff here
}

Y listo! Pero a la vez groovy permite hacer mixins con instancias no solo con clases de la siguiente manera:

someoneElsesClass.mixin(Dog)

Como es dinámicamente tipado, no hay problema si hacemos:

someoneElsesClass.talk()

Si recuerdan el post anterior en Scala si queríamos hacer esto usábamos with en el constructor tipando de esta manera al objeto:


val snowy = new Cat("Snowy" ) with Friend
val friend : Friend = snowy
friend.listen

El método mixin de Groovy tiene la ventaja que se puede utilizar en cualquier momento, no como la palabra reservada de Scala with que solo se puede utilizar en el constructor.

Por ejemplo Dart implementa el mixins muy similar a scala, es decir tiene trait que pueden ser agregados a las instancias o a las clases. Lo que agrega es que también tiene interfaces, veamos un ejemplo:


interface Shape {
   num perimeter();
}

trait Rectangle implements Shape {
   final num height, width;
 
   Rectangle(num this.height, num this.width); // Compact constructor syntax.
 
   num perimeter() => 2*height + 2*width; // Short function syntax.
}

class Square extends Rectangle {
   Square(num size) : super(size, size);
}

En Ceylon existen las interfaces que al igual que Scala pueden contener código; es decir una interface de Ceylon es igual a un trait de Scala:

shared interface Writer {
    shared formal Formatter formatter;
     
    shared formal void write(String string);
     
    shared void writeLine(String string) {
        write(string);
        write(process.newLine);
    }
     
    shared void writeFormattedLine(String formatString, Object... args) {
        writeLine( formatter.format(formatString, args) );
    }
     
}

shared class ConsoleWriter()
        satisfies Writer {
     
    formatter = StringFormatter();
     
    shared actual void write(String string) {
        writeLine(string);
    }
     
}


Uff, como podemos ver la idea es la misma cambia un poco la forma de implementarla, cambia un poco más si el lenguaje es dinámicamente tipado o estáticamente tipado.

Mixins es una característica de los lenguajes modernos que esta bueno ir aprendiendo.

Que implementación les gusto más?

viernes, 6 de enero de 2012

10 lenguajes que podrían influir en el futuro


Estuve leyendo un articulo sobre 10 lenguajes que podrían influir en el futuro. Los lenguajes son: Dart, Ceylon, Go, F#, Opa, Fantom, Zimbu, X10, haXe, chapel.

La verdad es que a Opa, Zimbu, X10, haXe, chapel no los conozco; pero por lo que veo creo que los demás lenguajes no dejan muchas cosas nuevas. Me parece que el que falta es Scala que es un gran lenguaje la innovación es tener lo bueno de muchos lenguajes. Erlang otro que falta.

Cual piensa que falta?

Dejo el link:

http://www.infoworld.com/d/application-development/10-programming-languages-could-shake-it-181548

sábado, 22 de octubre de 2011

jdart

jdart es compilador a código java el nuevo lenguaje de google Dart. El objetivo es poder portar codigo dart a la plataforma. Actualmente se encuentra en desarrollo.
En la pagina del proyecto podemos ver un ejemplo del compilador:

main() {
  print("hello world");
}


Y esto compilaría a este código java:

public class test {
  public static void main(java.lang.String[]);
    Code:
       0: invokedynamic #18,  0             // InvokeDynamic #0:__main__:()V
       5: return        

  public static java.lang.Object __main__();
    Code:
       0: ldc           #21                 // String hello world
       2: invokedynamic #27,  0             // InvokeDynamic #1:print:(Ljava/lang/String;)V
       7: aconst_null   
       8: areturn       
}



Me parece una buena idea, todavía esta en desarrollo pero pinta lindo!
Dejo links:
http://code.google.com/p/jdart/
http://www.dzone.com/links/r/jdart_dart_to_jvm_bytecode_compiler_using_invoked.html
http://www.dartlang.org/

lunes, 10 de octubre de 2011

Google Dart



Como habíamos dicho el post anterior google presento su nuevo lenguaje como alternativa a Javascript. Dart tienen las siguientes características:


  • basado en clases, herencia simple con interfaces
  • tipado estático opcional
  • un hilo de ejecución
  • lexico similar a Javascript
  • funciones Lambda (x) => x
  • recarga de operadores
  • interpolación de String: "Hello ${foo}"
  • multiproceso basado en actores


Veamos un ejemplo:


main() {
   var name = 'World';
   print('Hello, ${name}!');
}


Simple. Veamos como escribir la función que calcule la secuencia de figonacci:


int fib(int n) {
   if (n <= 1) return n;
   return fib(n - 1) + fib(n - 2);
}


main() {
   print('fib(20) = ${fib(20)}');
}


Veamos un ejemplo con clases:


class Point {
  
  Point(this.x, this.y);
  
  distanceTo(Point other) {
    var dx = x - other.x;
    var dy = y - other.y;
    return Math.sqrt(dx * dx + dy * dy);
  }
  
   var x, y;
}


main() {
  Point p = new Point(2, 3);
  Point q = new Point(3, 4);
  print('distance from p to q = ${p.distanceTo(q)}');
}


Por lo poco que leí no tiene mayor innovación, es un lenguaje con algunas mejoras ante javascript. Pero no creo que sea capaz de desplazarlo.


Dejo links: 
http://www.dartlang.org/
http://www.dartlang.org/docs/getting-started/
http://googlecode.blogspot.com/2011/10/dart-language-for-structured-web.html