Archivo del blog

miércoles, 12 de abril de 2017

Programación Declarativa

programación declarativa consiste en decirle a un programa lo qué tiene que hacer en lugar de decirle cómo debería hacerlo. En la práctica, este enfoque significa implica proporcionar un lenguaje específico de dominio (DSL, del inglés Domain-specific lenguage) para expresar lo qué el usuario quiere y resguardarlos de las arquitecturas o construcciones de bajo nivel (bucles, condicionales, asignaciones) que materializan el estado final deseado.

jueves, 6 de abril de 2017

Pensando en programación de dispositivos mobiles? para iOS este es el camino...

En la actualidad es necesario mantenerse ligado a la tecnológia de punta relacionada a la programación, principalmente para ahorrar tiempo y dinero a la hora de aprender, por eso si estas iniciando o pensando en programar dispositivos iOS debes tener en cuenta que lo que debes aprender es a trabajar con Swift 1.0.

Swift 1.0 es una plataforma de desarrollo estable y fuerte, la cual es seguro que evolucionará de manera interesante en los próximos años. Es el momento perfecto para comenzar a explorar este nuevo lenguaje ya que es, obviamente, el futuro del desarrollo iOS.

Nuestro aliado de Toptal han desarrollado un tutorial con una descripción rápida de las nuevas características del lenguaje Swift, ayudándote a dar el próximo paso y comenzar a adoptar Swift a tu trabajo de todos los días. aunque no explica el uso de Objective-C (anterior lenguaje de programación de iOS), vale la pena revisarlo.
Probando Swift vs. Objective-C

Para comenzar a explorar Swift lo que necesitas es descargar XCode 6 de la App Store y crear una zona de juegos para experimentar. Todos los ejemplos que se mencionan en éste artículo fueron hechos de ésta manera.
Página web de Apple Swift es la major referencia para aprender sobre programación Swift. Verás que es muy valiosa, y hasta que estés completamente al día con el desarrollo Swift Creo que regresarás aquí a menudo.

Para que te hagas una idea el tutorial comienza así:

Variables y Constantes

Para declarar una variable en Swift se usa la palabra clave var.
var x = 1
var s = "Hello"

Notarás que las dos variables s y x son de diferentes tipos. x es un Número Entero, mientras que “s” es una Cadena de Caracteres. Swift es un tipo de lenguaje seguro y deducirá los tipos de variables del valor asignado. Si deseas que tu código sea más legible, puedes anotar opcionalmente el tipo de variable:

var y: Int
y = 2

Las constantes son similares pero se declaran usando let en lugar de var. No es necesario saber el valor de una constante al momento de la compilación pero debes asignarle un valor exactamente una vez.
let c1 = 1 // Constante conocida al momento de la compilación

var v = arc4random()
let c2 = v // Constante conocida solo en momento de ejecución

Como su nombre lo indica, son inmutables, por esto el siguiente código causará un error al momento de compilación.
let c = 1
c = 3        // error

Otros tipos también pueden ser declarados como constantes. Por ejemplo, el siguiente código declara una matriz como una constante y, si intentas modificar cualquiera de los elementos, el compilador Swift reportará un error:

var arr2 = [4, 5, 6]
arr2[0] = 8
print (arr2)    // [8, 5, 6]
   
let arr = [1, 2, 3]
a[0] = 5    // error

Creador del tutorial Marco Mustapic, Belgium

miércoles, 22 de febrero de 2017

Variando el Tema: Porque aprender JavaScript

Por qué elegí JavaScript

Soy desarrollador web desde 1998 (Alejandro Hernandez). Por esas épocas usabamos Perl para la mayoría de nuestro desarrollo del lado del servidor, y aún desde esos tiempos teníamos JavaScript del lado del cliente. Las tecnologías web del lado servidor han cambiado inmensamente desde entonces: fuimos a través de oleada tras oleada de distintas tecnologías y lenguajes cómo PHP, ASP, JSP, .NET, Ruby, Python, solo por nombrar algunas. Los desarrolladores comenzaron a darse cuenta que usando dos distintos lenguajes para ambientes cliente y servidor estaba complicando las cosas. Los intentos iniciales para unificar bajo un mismo lenguaje intentaban crear componentes cliente del lado del servidor y compilarlos en JavaScript. Esto no funcionaba como se esperaba y muchos de esos proyectos fallaron (por ejemplo, ASP MVC reemplazando los formularios web de ASP.NET, y podría decirse que GWT será reemplazado por Polymer). en un futuro cercano). Pero era una excelente idea, en esencia: un lenguaje único en el cliente y el servidor, permitiéndonos reusar componentes y recursos (esta es la clave: recursos).
La respuesta era simple: usar JavaScript en el servidor.
De hecho, JavaScript nació con JavaScript Server Side en Netscape Enterprise Server, pero el lenguaje simplemente no estaba listo en esa época. Luego de años de prueba y error, Node.js finalmente emergió, lo cual no solo puso a JavaScript en el servidor, pero además promovió la idea de programación no-bloqueante, cambiando la forma en la que escribimos “fread”(I/O) para siempre (lee más aquí.
En una oración: la programación no-bloqueante apunta a poner tareas que consumen tiempo a un lado, usualmente especificando que se debería hacer una vez que estas tareas se hayan completado, y permitiendo que el procesador maneje otros pedidos mientras tanto.
Pero esas ideas no eran nuevas—entonces, ¿por que se volvieron tan populares con Node.js? Simple, la programación no-bloqueante puede ser alcanzada de distintas formas. Tal vez la más fácil es usar callbacks y un evento en bucle. En la mayoría de los lenguajes, esa no es una tarea fácil: mientras que los ‘callbacks’ son una característica común en algunos lenguajes, un evento en bucle no lo es y usualmente te encuentras aferrándote a librerías externas (por ejemplo: Python, con Tornado). Pero en JavaScript, los callbacks son construidos dentro del lenguaje, como también el evento en bucle, y casi cualquier programador que haya incursionado en JavaScript está familiarizado con ellos (o al menos los han usado, aunque no entiendan del todo que significa un evento en bucle). De repente, cada una de las startup en el Planeta Tierra podía reusar desarrolladores (por ej., recursos) tanto en el lado cliente cómo en el lado del servidor, resolviendo el problema de “Se necesita Gurú Python”.
De repente, cada una de las startup en el Planeta Tierra podía reusar desarrolladores (por ej., recursos) tanto en el lado cliente cómo en el lado del servidor, resolviendo el problema de “Se necesita Gurú Python”.
Entonces, ahora tenemos una plataforma increíblemente rápida (gracias a la programación no-bloqueante) con un lenguaje de programación que es increíblemente fácil de usar (gracias a JavaScript). Pero, ¿Es suficiente? ¿Perdurará? Estoy seguro que JavaScript va a tener un importante lugar en el futuro. Déjame decirte por qué:
  • Programación Funcional
    JavaScript fue el primer lenguaje de programación que llevó el paradigma funcional a las masas (por supuesto, Lisp llegó primero, pero la mayoría de los desarrolladores nunca han construido una aplicación en Lisp lista para ser usada en producción). Lisp y Self, influencias principales de Javascript, están llenos de ideas innovadoras. Esas ideas pueden liberar nuestras mentes para explorar nuevas técnicas, patrones y paradigmas. Y todos ellos llevan a JavaScript. Mira monadscodificación Church, o incluso (para un ejemplo más práctico) la colección de funciones](http://underscorejs.org/#collections), de Underscore.js las cuales pueden salvarte líneas y líneas de código.
  • Objetos Dinámicos y herencia Prototipada
    La programación orientada a objetos sin clases (y sin las interminables herencias de clases) permite rápido desarrollo (crear objetos, agregar métodos y usarlos) pero, lo más importante, reduce el tiempo de refactorización durante tareas de mantenimiento dejando que el desarrollador modifique instancias de objetos en vez de clases. Esta velocidad y flexibilidad pavimenta el camino para el desarrollo rápido.
  • JavaScript es Internet
    JavaScript fue diseñado para Internet, ha estado aquí desde el principio, y no va a irse. Todos los intentos por destruirlo han fallado, mira, por ejemplo, la caída de los Applets Java, el reemplazo de VBScript de Microsoft, TypeScript (que compilaba a JavaScript), y la caída de Flash en manos del mercado móvil y HTML5. Es imposible reemplazar Javascript sin romper millones de páginas web, así que nuestro objetivo a largo plazo debería ser el de mejorarlo. Y no hay nadie mejor para esa tarea que el Technical Committee 39 de ECMA.
    Ok, alternativas a JavaScript nacen todos los días, cómo CoffeeScriptTypeScript, y los los millones de lenguajes que compilan a JavaScript. Esas alternativas pueden ser útiles para etapas de desarrollo (por medio de mapeos de código fuente), pero fallarán al tratar de suplantar JavaScript a largo plazo por dos razones: sus comunidades nunca serán más grandes, y sus mejores funcionalidades serán adoptadas por el script de ECMA (por ej., JavaScript). JavaScript no es como un lenguaje ensamblador: es un lenguaje de programación de alto nivel con código fuente que puedes entender—entonces deberías entenderlo.
Por:  TOPTAL

https://www.toptal.com/javascript/init-js-una-gu-a-de-los-por-qu-y-c-mos-en-el-conjunto-de-tecnolog-as-de-javascript/es