You are on page 1of 27

Aprender Javascript en 2016

Son tiempos difíciles para el desarrollador frontend. Cada día vemos aparecer nuevas herramientas, sistemas
y paradigmas que desplazan a los anteriores volviéndolos obsoletos. Vivimos en una época de continuo
cambio, de continua renovación. En muchas ocasiones, no hemos tenido tiempo aún de analizar una nueva
tecnología cuando inmediatamente surge otra que reclama la atención de toda la comunidad obligándonos a
considerarla.

El siguiente artículo, publicado originalmente por Jose Aguinaga, ilustra perfectamente las dificultades con
la que se enfrentan los nuevos programadores; no nuevos en el sentido de que se asomen por vez primera al
mundo del desarrollo, sino de aquellos que, o bien han estado ausentes durante un tiempo, o bien llegan
desde otras ramas diferentes como ese subconjunto al que llamamos backend.

La conclusión final es simple y directa: son tiempos difíciles. Basta con que hayamos estados trabajando
durante más de un año en un mismo proyecto para que, a su conclusión, nos enfrentemos con una realidad
muy diferente a la que nos acogimos cuando lo empezamos… Incluso, y aunque el texto nos mienta en sus
primeras líneas, mientras estemos leyendo el texto, el imparable ecosistema frontend estará sacando a la luz
nuevas formas de hacer las cosas.

Un detalle final antes de pasar al artículo: el texto no está escrito en clave de humor y aún así, no podremos
evitar soltar una risota cómplice mientras compartimos la desesperación de su protagonista. Es la otra cara
de esta realidad que nos toca vivir: en el fondo, aunque participemos de ella, todos somos perfectamente
conscientes de la locura sinsentido en que se ha convertido el desarrollo moderno.

Disclaimer
El siguiente artículo es una traducción directa del original “How it feels to learn JavaScript in 2016”, por
Jose Aguinaga, publicado inicialmente en Hackernoon el 3 de octubre de 2016. El texto original puede
encontrarse aquí.

Aprender Javascript en 2016


Durante la escritura de este artículo no se ha desarrollado ningún nuevo framework Javascript.

El texto que sigue ha sido inspirado por el artículo “It’s the future”, de Circle CI. Puedes leer el
original aquí. Este fragmento es solo una opinión y, como cualquiera de los frameworks Javascript que
tenemos ahí fuera, no debe tomarse demasiado en serio.

En algún lugar de cualquier ciudad moderna…


¡Buenas! Tengo un nuevo proyecto web en mente pero, para ser honestos, hace algunos años que no toco
nada de código. He oído que la cosa ha cambiado un poco… Tú eres el desarrollador web más al día que hay
por aquí, ¿no?

– El término actual es ingeniero frontend, pero sí, yo soy el chico correcto. Desarrollo para la web actual:
gráficas, reproductores de música, drones que juegan al fútbol, lo que quieras. Acabo de volver del JsConf
y del ReactConf, por lo que conozco las últimas tecnologías para crear aplicaciones web.

Genial. Necesito crear una página que muestre los últimos registros de mis usuarios, por lo que solo tendría
que coger los datos de un servicio REST y pintarlos en algún tipo de tabla con sus filtros y mecanismos para
ordenar campos. Querría también que la tabla se actualice automáticamente si algún dato cambia en el
servidor. Estaba pensando que quizá podría utilizar jQuery para traerme los datos y pintarlos, ¿qué te
parece?

– Oh dios mio, no… nadie usa jQuery en 2016. Deberías echarle un ojo a React.

Ah, perfecto. ¿Qué es React?

– Es una biblioteca super puntera desarrollada por algunos chicos de Facebook. La gracia está en que
permite manejar cualquier cambio en las vistas de una manera sencilla y eficiente.

Suena muy bien. ¿Puedo entonces usar React para pintar los datos que me llegan desde el servidor?

– Por supuesto, pero primero necesitas añadir al proyecto tanto la biblioteca de React como la de React
DOM.

Un segundo, ¿por qué dos bibliotecas?

– Porque una es la biblioteca base mientras que la segunda, es una especializada en manipular el DOM
usando JSX.

¿JSX? ¿Qué es JSX?

– JSX es solo una extensión de la sintaxis Javascript muy parecida a XML. Es como una manera alternativa
de describir el DOM, mucho mejor que HTML.

¿Qué problema hay con HTML?

– Estamos en 2016. Nadie trabaja ya directamente con HTML.

De acuerdo… De cualquier modo, ¿si añado esas dos bibliotecas ya puedo utilizar React?

– No del todo. Necesitarías también añadir Babel para poder utilizar React.

¿Otra biblioteca? ¿Qué es Babel?

– Oh, Babel es un ‘transpiler’ que nos permite fijar una versión de Javascript mientras que programamos
en cualquier versión del lenguaje más reciente. Realmente, no TIENES que incluir Babel para usar ReactJS,
pero si no lo haces, te verás obligado a utilizar solo ES5… Y siendo prácticos, es 2016 y deberías
programar en ES2016+, como hace el resto de la comunidad.

¿ES5? ¿ES2016+? Creo que me he perdido aquí… ¿Qué son ES5 y ES2016+?
– ES5 viene de ECMAScript 5. Es la edición sobre la que todos trabajamos porque es la que implementan la
mayoría de navegadores actuales.

¿ECMAScript?

– Sí, ya sabes… El estándar Javascript se fijó en 1999 después de su lanzamiento inicial allá por 1995
cuando se llamaba Livescript y solo funcionaba en el navegador Netscape. Fueron tiempos complicados…
Afortunadamente, desde entonces, las cosas se han ido regulando y hoy contamos con unas 7 ediciones de
esta implementación.

7 ediciones… ¿Y ES5 y ES2016+ son…?

– La quinta y séptima edición respectivamente.

Un segundo, ¿y que pasó con la sexta?

– ¿Te refieres a ES6? Sí, me explico: cada edición es una revisión expandida de la anterior, por lo que si
usas ES2016+, realmente estás usando todas las funcionalidades de las versiones previas.

Ah, vale… ¿Y por qué usamos entonces ES2016+ en lugar de ES6?

– Bueno; tu PODRÍAS usar ES6, pero estarías desaprovechando todas las mejoras de ES2016+ como son
el async y el await . Eso quiere decir que si nos quedamos con ES6, nos podríamos utilizar las co rutinas
para bloquear llamadas asíncronas y modificar un flujo de control.

No tengo ni la más remota idea de qué significa eso último. Todos estos nombres son muy confusos. Mira,
solo necesito leer algunos datos desde el servidor. Yo solía incluir jQuery desde un CDN y obtener esos
datos mediante peticiones AJAX. ¿No puedo limitarme a eso?

– Es 2016 hombre… nadie utiliza jQuery. Eso siempre acaba con una maraña de código tipo espagueti.
Todo el mundo sabe eso.

Es verdad… Así que mi alternativa es cargar 3 bibliotecas para coger esos datos y mostrarlos en una tabla
HTML, ¿no?

– Bueno; tu incluyes esas tres bibliotecas, pero las empaquetas después con un gestor de módulos para
terminar cargando un único fichero.

Ah, ya veo. ¿Y qué es un gestor de módulos?

– La definición depende del entorno, pero en web, habitualmente nos referimos a cualquier cosa que
soporte módulos AMD o CommonJS.

Biiiien. ¿Y AMD y CommonJS son…?


– Definiciones. Hay varias formas de describir cómo varias bibliotecas Javascript y sus clases deberían
interactuar. Ya sabes… ¿exportar e importar? Puedes escribir múltiples ficheros Javascript siguiendo la
API AMD o CommonJS para luego, utilizando algo como Browserify, empaquetarlo todo junto.

OK, eso tiene sentido… creo. ¿Qué es Browserify?

– Es una herramienta que nos permite empaquetar las dependencias descritas en CommonJS en ficheros
que puede cargar un navegador. Esto lo hacemos porque la mayoría publican estas dependencias en el
registro npm .

¿Registro npm?

– Es un repositorio público gigantesco donde la gente inteligente sube sus códigos y dependencias en forma
de módulos.

¿Cómo un CDN?

– No exactamente. Es más como una base de datos centralizada donde cualquiera puede publicar y
descargar bibliotecas. Se puede utilizar de forma local durante un desarrollo y subir luego los módulos a un
CDN si eso te gusta más.

Ah, ¡como Bower!

– Sí… pero estamos en 2016. Bower está bien muerto.

Vaya… entonces ahora necesito descargar las bibliotecas desde npm.

– Sí. Por ejemplo, si quieres usar React, te descargas el módulo React y lo importas en tú código. Haces lo
mismo con casi cualquier biblioteca Javascript popular.

Oh, ¡como Angular!

– Angular es de… ¿2015?. Pero sí… Seguramente Angular esté allí, junto a VueJS, RxJS y otras bibliotecas
punteras de 2016. ¿Quieres que te hable de ellas?

Estoy aprendiendo demasiadas cosas de golpe, vamos a centrarnos en React… En resumen, si quiero usar
React, tengo que coger su módulo desde el npm y empaquetarlo luego todo con Browserify, ¿no?

– Sí.

Parece un proceso algo complicado… tenemos que coger primero las dependencias y juntarlas después todas
en un único fichero.
– Sí, es complicado… por eso hay que utilizar un gestor de tareas como Grunt, Gulp o Broccoli para
automarizar el proceso. Puede que te vaya bien con Mimosa…

¿Grunt? ¿Gulp? ¿Broccoli? ¿Mimosa? ¿De qué diablos estamos hablando ahora?

– Gestores de tareas. Aunque la verdad es que ya no están de moda… Los usábamos en 2015… Luego nos
pasamos a Makefiles, pero ahora agrupamos todo con WebPack.

¿Makefiles? Yo pensaba que eso era de C o C++…

– Sí, pero aparentemente nos encanta complicarnos la vida en la web. Más o menos, una vez al año,
volvemos a una tecnología básica de toda la vida… De hecho, si esperamos un poco, en uno o dos años
estaremos todos programando web en ensamblador.

Qué cosas… Por cierto, ¿has mencionado antes algo llamado WebPack?

– Es otro gestor de módulos para el navegador que también puede funcionar como un lanzador de tareas.
Es como una versión mejorada de Browserify.

Ah, perfecto. ¿En qué lo mejora?

– Bueno… quizá no sea necesariamente mejor. Solo resulta más estricto a la hora de definir cómo se
empaquetan las dependencias. WebPack permite utilizar diferentes gestores de módulos no limitándose
únicamente a los de tipo CommonJS. Por ejemplo, soporta los módulos nativos de ES6.

La verdad es que estoy algo perdido con todo eso de CommonJS y ES6…

– Todo el mundo lo está, pero no tienes que preocuparte demasiado porque ahora estamos empezando a
usar SystemJS.

La Virgen… otra cosa más. De acuerdo, ¿qué es ese SystemJS?

– A diferencia de Browserify y WebPack 1.x, SystemJS es un cargador de módulos dinámico que permite
unir varios módulos en varios ficheros diferentes en lugar de hacerlo en uno único.

Pero, tenía entendido que era mejor tenerlo todo en un único fichero grande…

– Sí, pero eso era antes. Ahora, con HTTP/2 a la vuelta de la esquina, es mejor hacer varias peticiones
pequeñas HTTP que una sola de mayor tamaño.

Genial; ¿no podríamos entonces simplemente añadir nuestras tres bibliotecas para React sin utilizar nada
más?
– La verdad es que no. Verás, se podría añadir cada una desde un CDN por ejemplo, pero aún así, todavía
necesitas incluir Babel.

Ah, cierto. ¿Y cuál sería entonces el problema?

– Pues que de hacerlo así, tendrías que incluir el núcleo completo de Babel, y eso no es eficiente para un
entorno de producción. En producción, necesitas realizar una serie de pre tareas para preparar tu proyecto
que hacen del ritual de invocar a Satán algo similar a hervir unos huevos en un cazo: tienes que minificar
las dependencias, re formatearlas, crear reglas en línea para el CSS crítico, delegar la carga de los scripts,
además de…

Vale, vale, lo pillo… Así que no queremos incluir las bibliotecas directamente desde un CDN. ¿Cómo lo
harías tú entonces?

– Yo utilizaría un ‘transpiler’ a partir de Typescript usando una combinación de Webpack + SystemJS +


Babel.

¿Typescript? ¡Pensaba que estábamos programando en Javascript!

– Typescript es Javascript, o mejor dicho, un meta conjunto de Javascript, más específicamente de la


versión ES6. Ya sabes, la sexta versión que mencionamos hace un rato…

¡Pero pensaba que ES2016+ era ya un meta conjunto de ES6! ¿POR QUÉ necesitamos ahora esa cosa del
Typescript?

– Ah, porque nos permite utilizar Javascript como si fuera un lenguaje tipado, reduciendo los errores en
tiempo de ejecución. Es 2016, y todos deberíamos añadir algunos tipos a nuestro código…

Y Typescript, obviamente, hace eso…

– Sí, igual que Flow, aunque éste solo comprueba el tipado mientras que Typescript es un meta lenguaje de
Javascript que necesita ser compilado.

Diablos… ¿y Flow es?

– Es un validador de tipos estáticos desarrollado por algunos chicos de Facebook. Lo han programado en
OCaml… ¡la programación funcional es increíble!

¿OCaml? ¿Programación funcional?

– Es la moda más puntera a día de hoy. Ya sabes: programación funcional, funciones de orden superior,
currying, funciones puras…

Ni idea de qué me estás hablando…


– Bueno, nadie la tiene al principio. Mira, solo tienes que saber que la programación funcional es superior
a la POO, y es el paradigma a utilizar ahora en 2016.

Pero, yo aprendí POO en la Universidad… ¡pensaba que era la metodología más eficiente!

– Sí, pero solo hasta que Java fue adquirida por Oracle… Quiero decir que la POO estuvo bien hace
tiempo, y todavía se puede encontrar en algún proyecto a día de hoy… pero actualmente, todo el mundo
coincide en que modificar estados es similar a ir por ahí pateando bebés, por lo que ahora la comunidad se
ha mudado a la programación funcional y a sus objetos inmutables. Los chicos de Haskell lo han estado
proclamando a los cuatro vientos desde hace años, y ni hablemos de los de Elm… afortunadamente, ahora
tenemos bibliotecas como Ramda que nos permiten utilizar la programación funcional en Javascript plano.

¿Estás dejando caer nombre tras nombre solo para volverme loco? ¿Qué demonios es Ramnda?

– No, Ramda. Como Lambda. Ya sabes, la biblioteca de David Chambers…

¿Qué David?

– David Chambers. Un tío fantástico y uno de los responsables de Ramda. Deberías echarle un vistazo
también al trabajo de Erik Meijer si estás interesado en todo esto de la programación funcional.

¿Y Erik Meijer es…?

– Otro experto en programación funcional. Un máquina en el tema. Tiene un montón de presentaciones


donde aparece con esas horribles camisetas estampadas atacando al mundo Agile… También deberías
conocer el trabajo de gente como Tj, Jash Kenas, Sindre Sorhus, Paul Irish o Addy Osmani.

Vale, tenemos que parar esto. Todo suena muy bien, y estará correcto, pero creo que es exageradamente
complicado e innecesario para mi idea inicial. Solo necesito coger datos desde el servidor y mostrarlos.
Estoy seguro de que no necesito conocer a toda esta buena gente y aprenderlo todo para montar una tabla
con datos dinámicos. Vamos a volver a React… ¿cómo puedo traerme los datos desde el servidor con React?

– Bien… actualmente React no sirve para traerse datos, solo para pintarlos.

Maldición… Bueno, ¿entonces qué necesitamos para traernos los datos?

– Lo habitual es utilizar Fetch para eso.

¿Así que necesitar algo llamado Fetch para coger los datos? Quienquiera que esté poniéndole nombres a
estas cosas necesitaría un buen diccionario de sinónimos…

– Bueno, Fetch es el nombre de una implementación nativa para realizar peticiones XMLHttpRequests.

Ah, como AJAX.


– AJAX es solo el uso de XMLHttpRequest… pero sí. Fetch nos permite hacer AJAX basado en promesas.
Eso elimina el problema de la pirámide de callbacks del infierno.

¿La pirámide del infierno?

– Sí… cada vez que realizas una petición asíncrona al servidor, tienes que esperar la respuesta, lo cual
requiere de añadir alguna función dentro de otra. Eso, al final, termina generando lo que llamamos
‘Pirámide del Infierno’.

Ah, sí… me suena. ¿Y esa promesa resuelve el asunto?

– Exactamente. Manipulando las callbacks a través de promesas, podemos escribir un código mucho más
asequible y sencillo. También nos permite crear mocks, testearlos e, incluso, realizar varias peticiones
simultáneas y esperar a que todas ellas hayan cargado.

¿Y eso se puede hacer con Fetch?

– Sí, pero solo si tus usuarios utilizan un navegador moderno; de otro modo, necesitas incluir un pollyfill de
Fetch, o usar Request, Bluebird o Axios.

Por el amor de Dios, ¿cuántas bibliotecas necesito conocer? ¿Cuántas hay?

– Es Javascript… Debe haber como miles de bibliotecas que hacen exactamente lo mismo. De hecho, lo que
tenemos que conocer son solo los nombres de las mejores. Pero vamos… sí: son muuuuuuchas, e incluso a
veces, añadimos en ellas alguna imagen de Guy Fieri…

¿Acabas de mencionar a Guy Fieri? ¿El restaurador, autor, presentador, comediante y celebrity? Pasemos
del tema… ¿Qué hacen estas Bluebird, Request o Axios?

– Son bibliotecas para realizar peticiones XMLHttpRequest basadas en promesas.

¿El método AJAX de jQuery no devolvía promesas también?

– No usamos ninguna palabra que empiece por ‘J’ en 2016. Limítate a Fetch y su polyfill cuando el usuario
no lo soporte. O Bluebird, Request o Axios en su lugar. Luego, solo tienes que gestionar la promesa
con await dentro de una función asíncrona y ¡boom!, tienes control total del flujo.

Es la tercera vez que mencionas eso de ‘await’, pero no tengo ni idea de qué es.

– await nos permite bloquear una petición asíncrona. Eso mejora el control sobre cuándo recibimos los
datos y aumenta la legibilidad general del código. Es realmente increíble, solo tenemos que asegurarnos de
añadir las reglas ‘stage-3’ a Babel, o usar algún plugin de ‘syntax-async-functions’ y ‘transform-async-to-
generator’.
Esto es una locura.

– No, la locura es tener que precompilar el código Typescript para luego pasarle Babel y así, poder
usar await .

¿Ein? ¿Pero es que eso no está incluido en Typescript?

– Lo estará en la próxima versión, pero actualmente solo funciona con ES6, por lo que si queremos
usar await en el navegador, primero tenemos que compilar el código Typescript en ES6 y luego pasarlo a
ES5 con Babel.

La verdad es que llegados a este punto no sé qué decir…

– Bueno; es fácil. Se programa todo en Typescript. Todos los módulos que utilizan Fetch, se compilan a
ES6; luego, se utiliza Babel con las reglas ‘stage-3’ para convertirlos en ES5 y los cargamos con SystemJS.
Si nuestros usuarios no tienen Fetch, entonces tenemos que utilizar el polyfill, Bluebird, Request o Axios.
Por último, todas las promesas las manejamos con await .

Tenemos un concepto diferente de lo que significa ‘fácil’. Entonces, después de todo ese ritual, ¿podemos
finalmente traernos los datos del servidor y mostrarlos con React?

– ¿Va tu aplicación a manejar cambios de estado?

Eh… creo que no. Solo necesito pintar los datos.

– Oh, gracias a Dios. De lo contrario, tendría que explicarte Flux y sus implementaciones como Flummox,
Alt, Fluxible… Aunque, para ser honestos, deberías utilizar Redux.

Creo que voy a pasar de todos esos nombres… Te repito que solo necesito pintar los datos.

– Perfecto; si solo quieres eso realmente no necesitas React. Irías sobrado con un motor de plantillas.

¿Me estás tomando el pelo? ¿Esto te parece divertido? ¿Así es como tratas a la gente que quieres?

– Solo te he explicado qué deberías utilizar…

Para for favor; ahora mismo.

– Quiero decir… incluso aunque uses un sistema de plantillas, yo seguiría con la combinación Typescript +
SystemJS + Babel si fuera tú.

Solo necesito mostrar datos en una página, no realizar el fatality original de Sub Zero. Solo dime qué
sistema de plantillas necesito y lo retomamos desde ahí.
– Hay muchos… ¿cuál te resulta familiar?

Ummm… no recuerdo los nombres. Hace tiempo que no uso esas herramientas.

– ¿jTemplates? ¿jQote? ¿PURE?

No me suenan… ¿Algún otro?

– ¿Transparency? ¿JSRender? ¿MarkupJS? ¿KnockoutJS? Ese último es de tipo ‘two-way binding’.

¿Otro?

– ¿PlatesJS? ¿jQuery-tmpl? ¿Handlebars? Algunos todavía usan este…

Quizá… ¿Hay alguno más similar a ese último?

– ¿Mustache? ¿Underscore? Creo que hasta Lodash tiene uno… pero son todos herramientas del 2014 o
así.

Mmmm… me quiere sonar algo, pero quizá sea más reciente…

– ¿Jade? ¿DustJS?

No.

– ¿DotJS? ¿EJS?

No.

– ¿Nunjucks? ¿ECT?

No.

– No sé… nadie a día de hoy usaría CoffeeScript… ¿Jade?

No… ya habías mencionado antes Jade.

– Quería decir Pug… no, Jade… la cuestión es que Jade ahora se llama Pug.

Pues no… no me acuerdo. ¿Cuál usarías tú?


– Pues, seguramente… usaría el sistema de plantillas nativo de ES6.

Y, por supuesto, necesitamos entonces ES6.

– ¡Correcto!

Entonces, dependiendo del navegador que esté usando, también necesitaré Babel…

– Exacto.

Y, si quiero incluirlo sin tener que añadir la biblioteca completa, necesito cargarlo como un módulo desde el
npm.

– Eso es.

Y eso nos lleva a necesitar de Browserify, Webpack o -incluso mejor- SystemJS.

– Ahí lo tienes.

Y, a no ser que estemos usando WebPack, necesitaremos automatizarlo todo con un gestor de tareas.

– Lo has pillado.

Pero, como ahora se lleva eso de la programación funcional y los lenguajes tipados, necesitamos pre
compilar primero Typescript o añadir ese Flow.

– Justo.

Y luego, enviar el resultado a Babel para poder disponer de ‘await’.

– Estás ‘on-fire’.

De este modo, podemos utilizar Fetch, promesas, control de flujo, y toda esa magia…

– No te olvides de incluir el polyfill de Fetch en caso de que no lo soportemos. Safari todavía no lo maneja.

¿Sabes qué? Creo que lo tengo todo… Una idea general del mundo web, y todo Javascript de paso.

– Eso está genial. En unos años, sin embargo, estaremos todos programando en Elm o WebAssembly.
Me vuelvo al backend. Simplemente, no puedo con todos estos cambios, y versiones, y ediciones, y
compiladores, y ‘transpilers’. La comunidad Javascript se ha vuelto completamente loca si piensa que
alguien puede manejar todo esto.

– Te entiendo. Deberías echarle un ojo a la comunidad de Python entonces…

¿Por qué?
– ¿No has oído nada sobre Python 3?

Bonus
El texto anterior, ya de por sí magnífico, ha removido de forma innegable las arenas de la comunidad. Al
artículo original no le faltaron un gran número de comentarios y foros externos donde aún hoy se continúa
discutiendo sus implicaciones.

A modo de corolario, quería traer el comentario realizado por uno de los pesos pesados en el mundo del
desarrollo actual (citado por cierto en el mismo texto) como es Addy Osmani:

Addy Osmani, destacado miembro de la comunidad Javascript; ingeniero Google y miembro del Chrome
Team.

Entiendo perfectamente tu frustración

Animo a todos aquellos que quieran estar al día con el ecosistema Javascript a que sigan estos tres simples
consejos: primero, hazlo; luego, hazlo bien; entonces, hazlo mejor.

Primero, hazlo
Coge aire y conciénciate de que eres totalmente nuevo en este mundillo. Es perfectamente razonable no
utilizarlo todo. De hecho, es mejor así. Piensa en un simple prototipo que sirva para cumplir tu propósito: no
hay nada malo en utilizar como base HMTL/CSS/JS.

Por lo general, no solemos tener en cuenta que cualquier tema nuevo requiere de un tiempo de aprendizaje y
experimentación para dominarlo. Los principiantes no deben agobiarse por utilizar la biblioteca más puntera
o el patrón reactivo de la semana. A mí, me tomó varias semanas el comprender correctamente Babel y
React. Bastante más el hacerme con IsomorphicJS, Webpack y todas esas bibliotecas que hay
alrededor. Preocúpate de empezar por lo más sencillo.

Entonces, hazlo bien


Itera: mejora todo aquello que ya hayas conseguido. ¿Ves algún problema que aún tienes que resolver? Tal
vez puedas apoyarte en alguna biblioteca o módulo para ello. No hay ninguna razón para plantearse el
reescribir un proyecto en otro lenguaje o framework sin tener la certeza de que eso te permitirá continuar
con las necesidades que te has fijado. Todo aquello que añadas al proyecto tiene que aportar algún valor. Si
en lugar de eso, estás complicando las cosas, o haciéndolo el trabajo más difícil a tu equipo, no vale la pena
continuar por ahí.

Finalmente, hazlo mejor


Domina tus herramientas. Una vez que te encuentres cómodo navegando por las aguas de herramientas y
bibliotecas, sabrás cómo añadir valor a tu flujo de trabajo. Encontrarás que incluir todas esas cosillas
aprendidas, ‘tiene sentido’. Yo, por ejemplo, me encuentro ahora utilizando a fondo unas 9 o 10
herramientas diferentes en mi proyecto… pero he aprendido lo suficiente de ellas como para evitar caer
aquellos aspectos de cada una que me exijan tiempo resolverlas. Yo nunca sugeriría a un principiante usar la
mayoría de cosas que aparecen en el artículo. Serían una receta segura para pasarlo realmente mal. En lugar
de eso, de nuevo, recurre a lo más básico. Ve poco a poco familiarizándote con el ecosistema; busca aquello
que gradualmente añada valor y te haga más efectivo.

También es importante recalcar que todos, incluidos aquellos programadores que escriben las herramientas
mencionadas aquí, pasan por los mismos estadios de frustración y fatiga durante el aprendizaje y puesta a
punto de esto que llamamos Javascript moderno. Me gustaría animar a los programadores a recordar que
todos estamos en el mismo barco, y que nuestras herramientas están aquí para ayudarnos. Si no lo están

haciendo, entonces tenemos que deshacernos de ellas

Sobre la traducción
Por lo general, siempre he defendido el uso de términos castellanos para todo aquello que tiene que ver con
la programación: considero que nuestro idioma dispone de un vocabulario lo suficientemente vasto como
para no estar recurriendo continuamente a los palabros anglosajones.

Sin embargo, durante la traducción de este artículo, me he permitido respetar algunos de los términos
originales, bien sea porque no tienen una traducción directa al español, o bien porque ésta, al ser muy
forzada, desdibuja la idea original del autor. Es por lo anterior que podemos encontrar palabras como
transpilers, polyfill y similares.

Muchas gracias por el esfuerzo, la verdad actualmente me siento así, estube aprendiendo Javascript con Node.JS para
querer montar una pequeña página mientras aprendía, al inicio iba todo bien creando modulos, pero conforme querías
realizar algo más completo, te encontrabas con un sin número de librerías y frameworks que adoptar. Que al final
termine desplazandoe a seguir aprendiendo Backend haciendo uso de jQuery para manejar el DoM y el Ajax ya que no
soy muy de front-end pero personalmente me gusta dejar un acabado bonito y presentable en un producto final. Quizá
después aprenda Angular-2 o Vue.js cuando me sienta completamente seguro y confiado en mis capacidades de
BackEnd y así mejorar un poco en FrontEnd. Ojala algún día la comunidad se ponga de acuerdo en facilitar este
mundillo, porque se está volviendo un verdadero caos.

Me has obligado a realizar ciertas búsquedas.


Mientras tanto, me atengo al original javascript, ampliamente soportado, y que, con algunas dificultades, me permite
realizar todo lo que quiero. Si no me subí al carro de jQuery en su día, hoy menos aún.

Excelente artículo.
Hice backend cuando se llamaba “webmaster” y lo dejé un tiempo. Ahora volví con front-end y son miles de
cosas que aparecen y todo el mundo habla pestes de jquery por ser “viejo” y mencionan todos los términos
que salen en el artículo y me perdia cuando tenía que aplicar uno u otro.

Voy a imprimir esto porque está genial!!!


1. Felicidades gracias, excelente articulo. Y muy bien con la opion del experto. Gracias por

compartir.
Genial! Excelente articulo estoy empezando con JavaScript y me parece de locos,vengo del back-end,pero
me ha aclarado mi duda que deberia de aprender primero y cosas así,aparte que me he partido a risas ,por
que estoy en la misma situacion que el que tenia la duda jajajaajjajaja
De hecho se basa en un paneo bien hilado de las tantas de herramientas que surgen a a diario para el
ecosistema JS.

Y lo notamos en la siguiente cita con un tinte irónico….:-)


“Durante la escritura de este artículo no se ha desarrollado ningún nuevo framework Javascript.”

Da mucho que pensar y por supuesto mucho que planificar para actualizarse o estudiar, pero en mi humilde
opinión siento que lo más importante, eso que a veces llamamos el santo grial no está en la superficie del
articulo, está en sus aguas profundas..

La clave: El crecimiento exponencial de JS implosionando un ecosistema que crece sin parar.

A modo serie éxitosa: Debemos adentrarnos en una lucha desencarnada por controlar los 7 reinos de JS
hasta llegar a su trono.

Luego comienza la diversión…

Comprimir, Transpilar, Currificar, Refactorizar, ser Reactivos, Imperativos o funcionales.

Será como andar en bicicleta.

En fín el cielo es el limite.

Joey Clover
Co-fundador técnico en Tabb Drink
Manchester, Greater Manchester, Reino Unido

Anterior 1. Intoware ,
2. Apposing ,
3. Cielo
Educación1. Xaverian College

Luchando por aumentar la bebida ...


21 de junio de 2017

Si usted es responsable de garantizar que su lugar obtenga una gran cantidad de ventas de bebidas para aumentar sus ingresos, ha venido al
lugar correcto. Muchos establecimientos luchan por encontrar formas de vender bebidas. ...

Grados, ¿son inútiles?


13 de febrero de 2015
Ahora estamos en la era en que Internet tiene todas las respuestas, ¿por lo que los grados son redundantes o sin valor? La respuesta es muy
clara, no. Sin embargo, se está convirtiendo en un tema más controvertido ya que ...

Un consejo de los solicitantes para ...


12 de febrero de 2015

En primer lugar, estoy dando este consejo basado en mi experiencia personal al ser contactado por más de 200 reclutadores. Voy a explicar el
camino para llegar a mi puesto actual a través de un reclutador y lo que mi ...
 Joey Clover ha compartido
Activado los martes - La catástrofe de Cuphead - Joey ...
Esta serie se activa los martes. Hablo sobre temas que desencadenan grupos de personas. Hoy estoy...
¿Tienes curiosidad acerca de Microservicios? Si tu quieres saber...
Si está buscando mudarse a Microservicios, tengo algunos consejos extremadamente útiles para usted que ...
 Joey Clover ha compartido
Mi artículo reciente ahora se publica bajo HackerNoon. Si tu...
He estado construyendo mi carrera en los últimos años. He tenido varios trabajos en una variedad de ...
 Joey Clover ha compartido
Bueno, ¿verdad?
He estado construyendo mi carrera en los últimos años. He tenido varios trabajos en una variedad de ...
Extracto
Tengo un enfoque sensato para el desarrollo de software.

Tengo mucha experiencia en una gran cantidad de idiomas y plataformas.

Creo que una empresa no tendrá éxito a menos que invierta en su personal.

Mi área de especialización más sólida radica en la plataforma móvil, específicamente iOS.

Tengo años de experiencia en empresas que van desde empresas de nueva creación hasta corporaciones multinacionales.

Aunque me enfoco principalmente en el desarrollo de software móvil nativo, tengo un fuerte apego a las aplicaciones 3D, como
los juegos. He pasado mucho tiempo estudiando renderización 3D, sombreadores, geometría, bibliotecas y los géneros para
mejorar mi experiencia en estas áreas. Si no estoy usando Unity o Unreal, normalmente estoy haciendo mi propio uso de C ++ con
SFML y OpenGL.

Un día típico para mí consiste en usar y dominar las siguientes herramientas y tecnologías:
Git, Jira, Confluence, Jenkins, CircleCI, Travis, Swift, Objective-C, BDD (Pepino, Calabash, Appium), TDD.

Mis intereses y pasatiempos personales son mucho más grandes y consisten en:
GoLang, MongoDB, Haskell, ReactJS, AngularJS, TypeScript, C #, desarrollo de juegos, Android, Java, RealmDB, desarrollo
empresarial, StartUp + y muchos más.
Experiencia
Cofundador
Tabb Drink
junio de 2016 – actualidad (1 año 5 meses)Manchester, Reino Unido

Desarrollador Xamarin
Intoware
junio de 2017 – octubre de 2017 (5 meses)Nottingham, Reino Unido

Ingeniero Senior de Software (Contrato)


Apposing
marzo de 2017 – mayo de 2017 (3 meses)Liverpool, Reino Unido
Mi responsabilidad es principalmente desarrollar aplicaciones móviles iOS para clientes. También uso otras herramientas y
software como me pareció adecuado.
Ingeniero senior de iOS (contratista)
Cielo
mayo de 2016 – agosto de 2016 (4 meses)Leeds, Reino Unido

Proporciono mis servicios a un equipo llamado Varenberg. Construimos e integramos componentes independientes y reutilizables
para ser utilizados en todo el conjunto de aplicaciones móviles Sky. He estado expuesto a una serie de aplicaciones y he escrito un
código confiable y estable que se ejecuta en cientos de millones de dispositivos. La seguridad y la escala son primordiales en mi
toma de decisiones diaria. Con cada decisión, debo considerar seriamente los efectos que tendría en la seguridad y la escala.

Sigo el proceso de desarrollo Agile estándar. Utilizo herramientas como Jira, Confluence, Jenkins, Git, Xcode, entre otras, para
asegurar que el trabajo que realizo tenga la documentación y se rastree. Participo en sesiones de preparación de backlog, stand-ups
diarios, retrospectivas y otras actividades ágiles.

La cultura en Sky es fantástica. Las oficinas son geniales y cuidan de las personas que trabajan con ellos. Los edificios tienen sus
propias cafeterías donde los alimentos y bebidas son muy rebajados y muy deliciosos.

Ingeniero de Software Móvil
TheLADbible Group
enero de 2016 – abril de 2016 (4 meses)

Fui responsable del desarrollo de aplicaciones sofisticadas con un alcance masivo. Desarrollé las aplicaciones con un equipo de
ingenieros talentosos y al mismo tiempo me aseguré de que tuviéramos procesos establecidos para garantizar un desarrollo rápido
y eficiente. Implementé la integración y el despliegue continuo de las aplicaciones y también escribí una serie de guías que los
ingenieros deberían seguir cuando trabajen en las aplicaciones. Era mi responsabilidad garantizar que los ingenieros de
aplicaciones puedan desarrollar, construir y desplegar las aplicaciones de la manera más eficiente posible. Esto implica la creación
de pruebas de aceptación e historias de usuarios, utilizando confluencia para la documentación y Jira para administrar los sprints
utilizando la metodología scrum. Trabajé en estrecha colaboración con el equipo de Data Science para garantizar que rastreamos
los análisis correctos de las aplicaciones y también los utilizamos para implementar pruebas A / B en las aplicaciones. Trabajé con
el Administrador de desarrollo de software para crear una hoja de ruta para las aplicaciones e informarle cualquier
progreso. También trabajo con el equipo de UI / UX para que las aplicaciones sean hermosas y un placer de usar. Este papel ha
presentado muchos desafíos.

Desarrollador líder de iOS
Fatsoma
marzo de 2015 – enero de 2016 (11 meses)Manchester, Reino Unido

Desarrolla, mantiene y despliega aplicaciones que se distribuyen a miles de dispositivos en todo el mundo. Las aplicaciones
permiten a las personas navegar por eventos, comprar boletos y disfrutar de un nuevo tipo de experiencia social.

He sido responsable de desarrollar un flujo de trabajo mejorado al implementar un servidor de compilación con integración
continua (jenkins) y conectarlo con el software de comunicación dentro de la compañía que utiliza Hubot. Flowdock se utiliza
para la comunicación dentro de la compañía y tiene un bot (fatbot) que puede comunicarse con el servidor de compilación y
distribuir compilaciones de diferentes ramas de GitHub a quien lo solicite en la herramienta de comunicación.

Soy responsable de garantizar que la aplicación se libere sin problemas y sin errores. Hago esto introduciendo TDD en la base de
código existente. Appium también se usará para pruebas de integración y para garantizar que la aplicación sea lo más estable
posible.

También estoy integrando pruebas A / B en las aplicaciones móviles para asegurar que estamos tomando decisiones efectivas
sobre la copia y los diseños / experiencia del usuario dentro de la aplicación.

Professional iOS Developer
LateRooms.com
diciembre de 2014 – marzo de 2015 (4 meses)

Desarrolle, mantenga e implemente aplicaciones que se distribuyen a cientos de miles de dispositivos en todo el mundo. Las
aplicaciones permiten que las personas encuentren, visualicen y reserven hoteles a precios excelentes, a la vez que ofrecen una
excelente experiencia de usuario.

He trabajado con una gran variedad de software para mantener y desplegar las aplicaciones, que incluyen software de integración
continua, control de versiones, herramientas de administración de proyectos, suites de pruebas y más. El rol implica una gran
cantidad de programación de pares y revisión de código que ayuda a desarrollar habilidades vitales para convertirse en un buen
ingeniero de software.

Jenkins se utiliza para la integración continua y está estrechamente relacionado con Github. Jenkins está configurado para
verificar automáticamente las solicitudes de extracción en GitHub y ejecutar pruebas unitarias estándar y pruebas de
comportamiento. GitHub / Git se utilizan para el control de versiones. Tengo experiencia en el uso de una herramienta de gestión
de proyectos llamada LeanKit que se utiliza para crear historias y tareas para cada uno de los sprints.

Mientras se desarrollan las aplicaciones, se usan las prácticas TDD y BDD. Calabash / Cucumber se usan para BDD lo que
significa que está escrito en el lenguaje Ruby. Las aplicaciones necesitan pruebas unitarias y pruebas de comportamiento para casi
toda la funcionalidad de la aplicación y esto es lo que nos ayuda a crear un producto estable y fantástico.

Desarrollador líder de iOS
Rormix
julio de 2014 – diciembre de 2014 (6 meses)

Diseñe, desarrolle y mantenga una aplicación innovadora y rica en funciones para iOS. He sido responsable de reconstruir toda la
arquitectura de la aplicación desde el principio. Tengo una responsabilidad y es crear un producto receptivo y entretenido para la
audiencia.

He trabajado estrechamente con el desarrollador principal de Android y los diseñadores. Influí en el diseño de la aplicación e
implementé las características que se solicitaron. He usado una gran variedad de herramientas mientras trabajaba en la aplicación
Rormix. El mayor beneficio de este rol fue poder cometer errores y aprender de ellos y poder elegir cómo implementar las
funciones o qué características creía que eran demasiadas complicaciones.

La aplicación es rápida, receptiva, está bien diseñada y ayuda a los oyentes a encontrar nuevos gustos o talentos de artistas que no
son lo suficientemente populares como para ser considerados 'principales' o artistas que solo buscan aumentar su alcance para
publicitar a un gran número de usuarios.

Ingeniero de software
RealityMine
abril de 2014 – agosto de 2014 (5 meses)

Desarrolla, mantiene y despliega aplicaciones de calidad empresarial que se distribuyen a cientos de miles de dispositivos. Las
aplicaciones se crean para monitorear el comportamiento del consumidor en dispositivos móviles y ayudarán a avanzar
significativamente en la industria del marketing.

✔Desarrollo de software

Usé herramientas como Perforce, Jenkins y Jira. Perforce estaba usando en armonía con Jira para administrar los proyectos de
manera muy efectiva y permitir revisiones de códigos mucho más flexibles. Los proyectos se completaron de forma ágil y se
requirieron revisiones de código para cualquier cambio en la base de códigos. Estaba sujeto a revisión de código y a ser un revisor
de código. Jenkins es un servidor de compilación que se utilizó para administrar la construcción de la aplicación en múltiples
plataformas y tiene pasos de compilación automatizados que ahorran una cantidad significativa de tiempo en lugar de hacerlo en
cada máquina local de los desarrolladores.

✔Desarrollo de cliente iOS

Usé Objective-C y XCode para desarrollar aplicaciones de iPhone que eran críticas para el rendimiento y que requerían técnicas
inteligentes para completar las tareas que se les asignaban. He tenido experiencia con frameworks privados y exponer el hardware
de nivel inferior en dispositivos iOS. Tuve que desarrollar, mantener, aprovisionar y desplegar aplicaciones a lo largo de todo el
ciclo de vida mientras construía una aplicación de marca blanca. Usé el servidor de compilación Jenkins para administrar las
compilaciones para las aplicaciones y fui responsable de mantener los certificados para las aplicaciones junto con el uso de un
servidor de aprovisionamiento.

✔Android Client Development

Usé Java y Eclipse para desarrollar aplicaciones de Android similares a las del iPhone. Dado que las plataformas son
completamente diferentes, me he enfrentado a diferentes desafíos y obstáculos que tuve que superar. Fui responsable de
desarrollar, mantener y desplegar las aplicaciones de Android. Usé el servidor de compilación Jenkins para administrar el edificio
y la certificación de las aplicaciones de Android.


Desarrollador de aplicaciones móviles
Bright Future Software
septiembre de 2013 – abril de 2014 (8 meses)

Paradero de BBC (iOS - Objective-C)

* Desarrollado y entregado la arquitectura de front-end completa para la aplicación.


* Trabajé junto con un diseñador de UX / UI para hacer una aplicación de gran apariencia y muy funcional.
* Desarrollé y entregué todo el servicio de back-end (incluyendo bases de datos, estructura de datos (JSON, etc.).
* Comunicación fuerte y continua con los clientes.

Salford University: On Location (Android SDK - Java) (http://onlocation.org. uk / app)

* Asumió la responsabilidad como Líder de equipo y realizó scrums regulares y administró el proyecto utilizando Agile PM
Techniques.
* Administró el empaque y la distribución de la aplicación.
* Desarrolló una sólida comprensión de la API de Youtube para Android
Proyectos
 Sr. Moore's Last Seconds
julio de 2013 – julio de 2013

El señor Moore es un juego que hice con un equipo de otras dos personas dentro de un plazo apretado de 72 horas y la descripción
es la siguiente: "El señor Moore sufrió un accidente automovilístico fatal y su vida brilló ante sus ojos. Recordó los eventos clave
en su vida, y él estaba preocupado por algunos. Tómate la vida del señor Moore y ayúdalo a alejarse del daño del destino ".
Miembros de equipo:

o Joey Clover ,
o Tomás Banzas,
o Paul Fredericks
 BBC paradero
Fecha de comienzo enero de 2014

BBC Whereabouts fue una aplicación creada para que la BBC la utilizara internamente para resolver el problema de la falta de
comunicación (o la falta de comunicación) entre los gerentes y sus asistentes personales. La aplicación permitiría a los gerentes
actualizar su ubicación para la próxima semana y les notificaría cada viernes para hacerlo. Durante el desarrollo de la aplicación,
tuve la responsabilidad de desarrollar y entregar la arquitectura front-end para la aplicación. Trabajé junto a un talentoso diseñador
de UI / UX para hacer que la aplicación no solo fuera funcional sino también receptiva y visualmente atractiva. También fui
responsable de diseñar, desarrollar y entregar el lado del servidor de la aplicación (API del servidor) para permitir que la
aplicación interactúe eficientemente con los datos dentro de la base de datos.
Miembros de equipo:

o Joey Clover
 TheLADBible
Fecha de comienzo enero de 2016

Entre las aplicaciones que se están desarrollando en TheLADBible, la aplicación de iOS fue una de ellas. El equipo de
TheLADBible trabaja arduamente para garantizar que la aplicación sea de alta calidad y brinde a los usuarios el contenido que
esperan.
Miembros de equipo:

o Joey Clover
Aptitudes
 Mobile Applications
 iOS development
 Objective-C
 Android
 Programming
 Java
 Game Programming
 ActionScript
 Software Development
 Swift
 Object Oriented Design
 Systematic Approach
 CSS3
 JavaScript
 Flash
 HTML 5
 jQuery
 C++
 Android Development
 Game Development
 PHP
 OOP
 Web Development
 JSON
 C
 Agile Methodologies
 Eclipse
 JIRA
 iOS
 Databases
 Perforce
 Agile Project Management
 C#
 Software Design
 Git
 Web Applications
 Continuous Integration
 HTML5
 CSS
 Ver menos
Certificaciones

Fundamentos del desarrollo de software
Microsoft, Número de la licencia: E498-8034
diciembre de 2013 – actualidad

Cursos
 Xaverian College
o Biología
o Química
o Informática
Idiomas
 Inglés
Educación
 Xaverian College
Ciencias de la Computación
2011 – 2013

Informática
de Nivel
Avanzado Química de Nivel Avanzado Biología de Nivel Avanzado
Actividades y grupos: Junior Robot Competition (1st place regional, 3rd place national), Rugby
 Sale High School
2008 – 2012

Todas las asignaturas en GCSE (A * -C)


BTEC IT - Distinción
Actividades y grupos: Student Council
Experiencia de voluntariado y causas benéficas
Causas benéficas que le importan a Joey:
Recomendaciones

Aquí tienes un anticipo de lo que los miembros de LinkedIn opinan sobre Joey:

 Joey es un excelente desarrollador móvil con una gran capacidad para aprender rápido, incluso en áreas nuevas
para él. Esto se aplica a las nuevas tecnologías, así como a nuevos campos de negocios o procesos. Es una gran
persona para trabajar en equipo y tiene la capacidad de comprender e idear una solución a un problema complejo.

Ver menos

 Joey es un desarrollador altamente motivado, que a menudo trabaja las 24 horas para cumplir con sus plazos. Joey
sería una excelente incorporación a cualquier equipo y se ha ganado mi más alta recomendación.

Grupos

Solución de quiosco basada en Linux (android, ios)

Developers - Android, iOS developer , Blockchain, Ethereum, Java, Ruby, .net, php, django, etc


Gente de TI en el mundo

Grupo de desarrolladores de iOS

Todo móvil


NCD CDI


Empleos de Desarrollador de iPhone


Universo Aplicaciones Móviles


Plain Old C Programming


Desarrolladores de iOS


SUPERCODERS


Programación Funcional


Introbiz (UK) Ltd

IOS y Android North West + Yorkshire
 Ver menos

LUIS TORRES MARISCAL


Ingeniero de Sistemas de la Universidad de Lima y MBA de la Universidad de Harvard. Fue distinguido por
la Universidad Nacional Mayor de San Marcos con un Doctorado Honoris Causa por su por su trayectoria
profesional y liderazgo en iniciativas orientadas a cerrar la brecha digital en el Perú. Con más de dos
décadas de trayectoria en la industria de tecnologías de información, Luis lidera la estructuración
inversiones en empresas de tecnología de la región. En Microsoft, fue Director Gerente General de
Microsoft Perú, Director de Marketing & Negocios en Microsoft Latino América y Director de Ventas en
Microsoft Estados Unidos. Asimismo, fue Gerente de Producto y Gerente de Marketing de soluciones de
productividad empresarial, inteligencia de negocios y bases de datos a nivel mundial. Previamente, lideró el
Grupo de Software de Business Consulting & Technology Services (BCTS), compañía de consultoría en
Tecnologías de Información basada en Lima. Luis es Director y Primer Vice-Presidente del Instituto
Peruano de Acción Empresarial (IPAE), así como Presidente de CADE Ejecutivos 2012 y Presidente del
Centro de Innovación de IPAE. Asimismo, es Director de Perú 2021, Freedom from Hunger, Junior
Achievement y Ashoka. Fue Vice-Presidente de la Cámara de Comercio Americana (AmCham), Director
del David Rockefeller Center for Latin American Studies de la Universidad de Harvard y co-fundador del
Círculo de Investigación en Tecnología Aplicada (CITA) de la Universidad de Lima.

Guzmán-Barrón: "El Perú vivirá una revolución tecnológica"


El gerente general de Microsoft Perú comparte sus expectativas del desarrollo
y adopción de la tecnología en mercado local

Guzmán-Barrón: El Perú vivirá una revolución tecnológica


Gonzalo Carranza06.03.2016 / 09:00 am

Juega Xbox, su aplicación favorita es Excel y un Microsoft Band le dice que


duerme mal. La misión del líder de Microsoft Perú, Guillermo Guzmán-Barrón, es
que sus productos tengan fans. Él es el primero.

El Perú tiene un déficit tecnológico preocupante. ¿Qué deberíamos estar


discutiendo en una época como esta para superar esa situación?
Microsoft lleva 22 años en el Perú y, posiblemente, ahorita estamos frente a
una revolución justamente en nuestro país. Te doy tres razones fundamentales.
La primera es el acceso a la conectividad. El plan de red dorsal va a duplicar
el número de personas que tienen acceso [a banda ancha] en las zonas
rurales.

La segunda razón es que se va a triplicar el uso de los teléfonos inteligentes


en los próximos años. Eso va a hacer que todos tengamos un dispositivo
computacional y móvil disponible.

Y la tercera es que ya se lanzó el número de peruanos que tendrá dinero


electrónico. Estas tres acciones cambiarán radicalmente el Perú de los
próximos cinco años a nivel de tecnología.

¿A la altura de qué país vamos a estar?


De vecinos como Colombia y Chile.

¿Y por qué no estamos ya a ese nivel? Los avances tecnológicos estuvieron


disponibles para todos al mismo tiempo.
Lo que pasa es que el Perú venía de atrás económicamente. Nuestra geografía
tampoco ayuda. Pero la creación de una clase media más fuerte, que quiere
consumir estos productos, va a impulsar la revolución tecnológica de los
próximos tres o cuatro años.

¿Cómo Microsoft aprovecha esto?


Nuestra misión es empoderar a todas las personas y organizaciones de este
planeta para que alcancen sus metas. Bajo este concepto tenemos tres grandes
aspiraciones. La primera es redefinir la productividad y los procesos de
negocios.

La segunda es que estamos creando la nube inteligente. En cloud computing ya


somos una de las empresas más grandes del mundo.

Y la tercera es que desarrollamos mejores experiencias personales en la


computación. Sin importar qué dispositivo tenga alguien, le ofrecemos con
Windows 10 una experiencia integrada en móviles, tabletas e incluso en
computación holográfica.

Desde hace seis meses nuestros reportes financieros se organizan en esos tres
pilares. Microsoft va a hacer estas tres cosas, no va a hacer más.

¿De dónde vienen estos tres pilares? ¿De la nueva gerencia?


Satya Nadella asumió como CEO de la compañía hace unos dos años y él venía de
haber creado toda la estrategia de computación en la nube. Cuando se le dio
este cargo, obviamente se buscaba empujar ese lado del negocio. Lo interesante
de la nube no es solo su componente tecnológico, sino lo financiero y lo
operativo. [...] Hoy, la empresa más grande del Perú y una pyme pueden acceder
a un servicio en la nube sin importar dónde estén ni qué dispositivo usen. La
nube democratiza y Microsoft siempre ha buscado la democratización del acceso
a la computación.

Ustedes consideran un éxito el número de dispositivos conectados a Windows 10,


pero en móviles y tabletas pareciera que les cuesta encontrar la clave.
La propuesta de valor de Windows 10 es que la experiencia será la misma sin
importar el dispositivo. Eso es algo que muchas empresas están apreciando. Un
ejemplo típico: ¿cuántas personas se mandan un documento por e-mail desde la
computadora de la oficina para acceder a este desde una tablet en su casa? Eso
ya no existe en el mundo de Windows 10. Es la computación según la persona, no
según el dispositivo.

Pero queda mucho por hacer. En PC somos líderes, en tabletas ha habido una
mejora sustancial y en móviles la región de América Latina siempre ha sido uno
de los lugares donde se usa muchísimo Windows Phone. Quizás a nivel mundial no
se vea así, pero la adopción en esta región ha sido muy importante. En el
Perú, Windows Phone es el segundo sistema operativo más utilizado en
celulares.

Es un dato sorprendente.
Así es, mucha gente no lo sabe.

Te tocó lanzar Windows 8, luego Windows 10. Ya has cumplido cinco años al
frente de la oficina en el Perú. En muchas transnacionales, eso significa
tiempo de cambios.

¿Cómo ves tu futuro?


Del futuro próximo no hay mucho que comentar. Creo que en estos últimos años
Microsoft ha vivido una gigantesca transformación y el Perú también ha
experimentado un cambio: estar más cerca de sus clientes y de sus canales. Ha
sido un trabajo arduo, pero hemos sido uno de los países de gran crecimiento.

Entre el Microsoft al que entraste hace 20 años y el de hoy, ¿qué ha cambiado?


¡Uf! Yo entré con Bill Gates. Primero, la compañía se volvió mucho más grande.
Cuando yo entré había 15.000 empleados y hoy son unos 110.000. El producto que
estábamos lanzando entonces era Windows 3.11, no teníamos producto de
servidores, no teníamos consola de juegos y no había, obviamente, nada de la
nube. Recién habíamos juntado Word, Excel y algo llamado Power Point –que
acababa de comprar a otra compañía– en un paquete que se llamaba Office.

En esos 20 años, ¿qué le fue dejando cada CEO a la empresa?


En 20 años hemos tenido tres CEO. Bill Gates fue el fundador y el espíritu
competitivo de esta empresa –siempre hacer más, buscar retos y desarrollar
nuevas tecnologías– , viene de su ethos. Con Steve Ballmer se buscó mucha más
eficiencia, mucho más foco y un mayor peso a la creación de valor. Las ventas
en la época de Steve Ballmer crecieron de una manera gigantesca. Creó grandes
líneas de productos. Si muchas de estas se vieran independientemente, estaría
entre las compañías tecnológicas más grandes del mundo. Y en el caso de Satya
Nadella, lo que va a dejar es la transformación y la innovación. Cómo cambiar
la compañía para ponerse a la vanguardia de este nuevo mundo.

¿Y a ti qué te han dejado estos ciclos y cambios?


Alguien me preguntó en una reunión del MBA cómo me había quedado 20 años aquí.
Y la verdad es que la empresa se reinventa a cada rato. Además, estamos en la
industria de mayores cambios e innovaciones. Para trabajar aquí hay que tener
mente abierta: uno aprende y desaprende todos los días.

¿Cómo es tu relación personal con la tecnología?


En la oficina siempre bromean con que mi computadora no es una laptop, sino un
servidor “used as a laptop”. Siempre voy a preferir tamaño y capacidad de
cómputo. No me importa que pese mucho.
¿Y los dolores de cuello y de hombros?
La arrastro. Eso lo aprendí con los muchos viajes cuando trabajaba para
Latinoamérica. En mi casa todos tienen celulares Windows Phone.

¿Y cuándo dices “ya no quiero más tecnología”?


Eso es difícil. Tengo una Xbox porque me gustan mucho los videojuegos, de
chico aprendí a programar. Me gusta mucho estar atento a las tendencias de
innovación y desarrollo.

¿Cuál es tu aplicación favorita?


Excel.

¿Y alguna vez te ha pasado ver un dispositivo de otra empresa y desearlo


aunque no fuera de Microsoft?
Mi esposa me dice mucho eso. “Tienes que abrir los ojos y ver los productos de
la competencia”. [Piensa durante varios segundos] Cuando salió el iPhone
claramente cambió la categoría de móviles. ¡Y todos decían que nunca
abandonarían su teclado!

“Necesitamos empresarios que participen más activamente en política” Jueves, 23 de agosto del 2012

EMPRESAS07:16 Luis Torres Mariscal, presidente de la CADE 2012, adelantó que la conferencia de este año

tendrá como protagonista al empresario y su compromiso con el país en lugar de la coyuntura.

© Copyright Gestion.pe - Grupo El Comercio - Todos los derechos reservados.

Guillermo Guzman-Barron: “La colaboración es clave en el vínculo entre un


proveedor y su cliente”
Guillermo Guzman-Barron, Director y Gerente General de Microsoft para Perú,
cree que Office 365 es un socio fundamental en cualquier relación de BPO.
“Office 365 es una oportunidad para las relaciones de tercerización,
fundamentalmente porque más allá de ser un estándar, brinda las herramientas
necesarias para que ambas partes puedan trabajar de una mejor manera,
permitiendo a los usuarios desarrollar su mayor potencial”.

Con una extensa trayectoria en Microsoft, Guzman-Barron tiene hoy el desafío de dirigir las
operaciones de la compañía en Perú. Su convencimiento sobre las ventajas que brindan los
productos de su empresa al ecosistema BPO no muestra grietas, “Al suscribirse a Office 365 los
usuarios cuentan con las aplicaciones de Office que ya conocen, pero siempre actualizadas e
instaladas en su totalidad para su uso en diferentes dispositivos y adicionalmente encuentran
herramientas que les permiten trabajar mejor en equipo y a ser más productivos” indicó.

¿Cómo es su visión del negocio del BPO en Perú?

Es un mercado que está creciendo, no solo en Perú sino en toda la región. El BPO permite a las
empresas enfocarse en el core de su negocio y asegurar que todos sus esfuerzos y talento este
dedicado a generar lo que sea más productivo y estratégico para la compañía.

¿Cuáles son los principales drivers que impulsan ese crecimiento?


La computación en La Nube es la herramienta tecnológica que brinda mayor soporte a este
crecimiento. Las compañías están en constante proceso de transformación y esto debido a cómo
está cambiando el mercado. El crecimiento gigantesco de información que actualmente las
empresas reciben, tramitan y almacenan, requiere de una gran capacidad, lo que anteriormente
significaba grandes inversiones y extensos procesos de adquisición, instalación y capacitación y
varios años para obtener un retorno de inversión, ahora se reduce a la apuesta por La Nube.

Era toda una apuesta!

Claro, hoy el cliente es un usuario, aprende y empieza rápido, con una muy baja inversión inicial y
utiliza un servicio que se adapta constantemente. Pasamos de la adquisición de grandes activos,
asociados a gastos operativos también grandes, a un mundo donde solo se paga por uso. A su
vez, esta serie de facilidades les exige a las empresas ser más ágiles, ahora se ven forzadas a
cambiar la forma de administrar sus proyectos, y nuestra misión es ayudar a producir el cambio.

¿Qué compañías están hoy más predispuestas a incorporar el BPO a sus operaciones?

La tercerización arranca por el tamaño y la especialización de las empresas. Las grandes


empresas son las que empiezan, obviamente, con lo que no es core de sus negocios. Por lo
general, una de las actividades que primero se tercerizan son los servicios de IT. Creo que es una
tendencia bastante clara. Lo otro son los servicios de contabilidad y las operaciones de recursos
humanos.

¿En qué medida las soluciones de CRM como Microsoft Dynamics estimulan la
tercerización de procesos?

Comenzando por la premisa de que muchas compañías tienen una solución de CRM, pero no la
utilizan, básicamente porque están abocadas a esquemas de ventas, entonces nosotros con
Microsoft Dynamics nos abocamos a lograr una visión de 360 grados de la relación con sus
clientes.

Esta herramienta ayuda a las empresas a interactuar correctamente con sus clientes,
permitiéndoles obtener ventajas de su información manteniendo la privacidad y protección de sus
datos, generando eficiencia a la operación. En este mundo cada vez más conectado, es clave ver
cómo la plataforma de CRM interactúa con los clientes a través diferentes plataformas digitales,
porque la relación de una compañía con su cliente no termina en el community manager, en
muchas ocasiones ahí comienza.
Aquí también la nube es un aspecto importante…

En efecto, gracias a que Microsoft Dynamics está en la nube, permite una rápida implantación.
Por otro lado, hay que tener en cuenta que el CRM es una estrategia que, para generar valor,
requiere a su vez una serie de procesos más precisos.

Guillermo Guzmán-Barrón, nuevo gerente general de Microsoft Perú


[26/08/2011] Microsoft anunció el nombramiento de Guillermo Guzmán-Barrón como nuevo Gerente General de
Microsoft Perú, a partir del próximo 1 de Septiembre. Guzmán-Barrón es un profesional con más de 18 años de
trayectoria en Microsoft, a la cual se unió en EEUU, en las oficinas centrales de la ciudad de Redmond en el estado
de Washington, sobre la costa del Pacífico. Originario del Perú, ha trabajado en el pasado en su país, en distintos
roles de mercadotecnia y ventas, así como también ha ejercido roles en Colombia y en las oficinas regionales de
América Latina en Florida. Más recientemente, Guzmán-Barrón se desempeñó como líder de ventas y mercadotecnia
de pequeña y mediana empresa en México, triplicando la tasa de crecimiento de la industria en ese negocio e
impulsando la productividad e innovación de los emprendedores mexicanos.

“Como peruano, estoy feliz de volver a mi país para llevar nuestro negocio a su máximo potencial e impulsar la
relevancia de Microsoft en Perú como un agente de cambio en beneficio de nuestros clientes, socios y empleados”,
dijo Guzmán-Barrón. “Toda mi familia está muy contenta haciendo los preparativos para volver”.

Después de una década exitosa en Microsoft, Luis Torres Mariscal, actual Director Gerente General de Microsoft
Perú, ha decidido retirarse de la compañía. “Durante su reconocido liderazgo en el país, obtuvo excelentes
resultados llevando Microsoft Perú a un nuevo nivel de éxito, relevancia e impacto en el mercado, por lo cual tiene
todo nuestro reconocimiento y gratitud”, señaló Hernán Rincón, presidente de Microsoft Latinoamérica, añadiendo
que “tenemos un gran optimismo por el potencial del Perú y creemos que la tecnología será el gran habilitador para
hacerlo realidad; esa será la misión de Guillermo en el país, tal como la misión de Microsoft a nivel mundial”.

De igual forma, desde la misma fecha, Simón Santoro asumirá la dirección del segmento de pequeña y mediana
empresa, y César Oviedo la dirección de la organización de servicios para la subsidiaria peruana.

CIO, Perú

https://cioperu.pe

Guillermo Guzman-Barron
Aptitudes

 Enterprise Software,Go-to-market Strategy,Business Alliances,Leadership,Management


 P&L Management,Product Management,Strategic Partnerships,Business Strategy
 Cloud Computing,Partner Management,Team Leadership
 SaaS,Solution Selling,Business Intelligence
 Strategy,Product Marketing,Sales Management,Business Development,Channel Partners
 CRM,Analytics,Sales Process,Pre-sales,International Business Management,Professional Services
 Cross-functional Team Leadership,Vendor Management,Sales Enablement,Consulting,Product
Launch,Start-ups,Multi-channel Marketing,Outsourcing,Executive Management,Business
Planning,International Sales,International Business,IT Strategy,Sales Operations
 Marketing Management,Mobile Devices,Strategic Alliances,Global Business Development
 Channel,Competitive Analysis,E-commerce,Lead Generation,Program Management,Mobile
Applications

Idiomas

 English : Competencia bilingüe o nativa


 Spanish: Competencia bilingüe o nativa

Experiencia de voluntariado y causas benéficas

Causas benéficas que le importan a Guillermo:

 Educación
Cursos

 Cursos adicionales
o Leadership Excellence (Columbia University)
o Strategic Marketing (Kellogg Business School)
o Marketing Innovative Technologies (Harvard Business School)
o Leadership Journey (Wharton Business School)

Web API
Una API es una interfaz de programación de aplicaciones (del inglés API: Application Programming Interface).
Es un conjunto de rutinas que provee acceso a funciones de un determinado software.
Son publicadas por los constructores de software para permitir acceso a características de bajo nivel o
propietarias, detallando solamente la forma en que cada rutina debe ser llevada a cabo y la funcionalidad que
brinda, sin otorgar información acerca de cómo se lleva a cabo la tarea. Son utilizadas por los programadores
para construir sus aplicaciones sin necesidad de volver a programar funciones ya hechas por otros, reutilizando
código que se sabe que está probado y que funciona correctamente.
En la web, las API's son publicadas por sitios para brindar la posibilidad de realizar alguna acción o acceder a
alguna característica o contenido que el sitio provee. Algunas de las más conocidas son las API's de:

 Google Search,,Flickr,Del.icio.us,Amazon,Google Maps