lunes, 31 de agosto de 2015

Lenguajes de scripting: ¿Re-inventar o no re-inventar la rueda? Esa es la pregunta.

¿Usar lenguajes de scripting o seguir usando ensamblador?

Cuando empecé la carrera de ingeniería en sistemas computacionales leí una pregunta en stackexchange cuyo título era algo así como “El programador no debe perder tiempo tratando de reinventar la rueda”, y decía que la mejor forma de innovar era reutilizando la mayor cantidad de recursos disponibles. Su argumento era que aunque en teoría podríamos seguir desarrollando en ensamblador los beneficios que obtendríamos no justificarían todo el esfuerzo extra que se tendría que invertir en ello.
Otras respuestas, decían que utilizar frameworks era como ir al gimnasio y que alguien levantara pesas por ti, “no obtendrás nada de ello”.

Una de las analogías que me agradaron por su simplicidad decía algo como “Conviene reinventar la rueda si te dedicas a hacer llantas, pero si tu trabajo es ensamblar automóviles te conviene confiar en las personas que se dedican a hacer las llantas y otros componentes”.

Y cito esta frase porque creo que se puede aplicar de la misma forma para la situación que presenta el artículo “Scripting: Higher-Level Programming for the 21st Century” que habla sobre los beneficios de lo que llama scripting programming sobre los lenguajes de “sistema” como  Java, C o C++.


Todo en diseño se software se resume a “trade-offs”,  cada paradigma tiene sus beneficios y sus complicaciones. Por lo que debes de encontrar el más adecuado para tus requerimientos.


El trade off en lenguajes de scripting contra lenguajes de sistema es el tiempo de desarrollo, ya que los lenguajes de scripting funcionan perfecto para unir otros componentes más robustos o resolver problemas que no requieran algoritmos complejos.
Esto acelera la producción de soluciones de software ya que el desarrollador no tiene que “re-inventar la rueda”. Únicamente utiliza los componentes según sus necesidades.
Quizá el mayor problema de los lenguajes de scripting es que suelen ser tener un rendimiento menor que los lenguajes de sistema. Sin embargo, ya que el poder computacional es mucho mayor que en 1980 cuando recién surgió este paradigma, el rendimiento cada vez es un problema menor para la mayoría de las soluciones de software.

Sin embargo, si necesitas un hacer un componente de bajo nivel la respuesta es sencilla, usar un lenguaje de sistema, tienes que “re-inventar” la rueda. Por ello el autor del artículo menciona que ambos paradigmas no son mutuamente excluyentes, al contrario, el desarrollador puede explotar los beneficios de ambos según sus necesidades.

Wololo.

Referencias:

Scripting: Higher-Level Programming for the 21st Century: http://webcem01.cem.itesm.mx:8005/s201513/tc2026/scripting_xxi.pdf

Is the phrase “never reinvent the wheel” suitable for students?




domingo, 23 de agosto de 2015

Innovar o ser innovado - La guerra de los navegadores

Browser Wars - Reflexión.

Liga al video:
https://www.youtube.com/watch?v=VANORrzKX50&index=1&list=PL_IlIlrxhtPMqW4b0-v8OgLvFZQes6SoZ

Silicon Valley: Un lugar que asemeja al mundo de la computación lo que Jerusalén al Islamismo, Cristianismo y Judaísmo.
Siguiendo la analogía, Silicon Valley es también terreno de guerra desde que
Frederick Terman junto con otras empresas de tecnología fundaron lo que se convertiría en la capital del mundo de la tecnología a mediados del siglo pasado.

Intel, Microsoft, Apple, Google y Netscape son unas de las muchas empresas, que han hecho de Silicon Valley su cuartel principal de operaciones. Todas ellas con un propósito claro: Revolucionar el mundo de la computación. Por lo que la competencia es dura, los ataques no siempre son transparentes. Innovar a toda costa. Derrocar a la competencia. Espionaje corporativo. Comer o ser comido. Esa es la filosofía de Silicon Valley.

Una de las batallas fue la batalla de los navegadores web. Sus protagonistas: Netscape vs Microsoft, el pez más grande de la pecera.
Como es de sospechar, fue una batalla sangrienta, en la que al final parece salir Microsoft como ganador, sin embargo, no fue una pelea sencilla. Microsoft tuvo que invertir mucho para poder derrocar a su competidor.
Desarrollar un producto mejor que el navegador de Netscape, proporcionarlo de forma gratuita junto con el sistema operativo Microsoft, impedir que Netscape creciera, aunque eso implicara recurrir a métodos dignos de un monopolio que busca conservar su lugar bajo cualquier costo.
Eso fue lo que hizo Microsoft, y aunque ganó la guerra. Perdió grandes batallas, batallas que tuvieron repercusiones legales contra la gran empresa de Bill Gates.
Sin embargo, al final de la guerra y con el paso del tiempo, el único vencedor claro fue el internet mismo.
Microsoft tuvo que enfocarse en otros asuntos, permitiendo que internet  creciera y otros navegadores fueran creados. Todos ellos permitiendo al usuario acceder a internet de forma gratuita.
Los ingenieros de Netscape ganaron bastante dinero. Y aunque su empresa quedó en el pasado, revolucionaron la forma en la que se accede a internet.
Ambas empresas ganaron y perdieron a su forma.

Como la guerra de los navegadores han existido muchas en Silicon Valley, en donde no siempre es fácil determinar quién fue el vencedor indiscutible, que casi siempre suele ser el progreso de la tecnología.



Innovar o ser innovado ¿no? esa es la filosofía en Silicon Valley.

martes, 11 de agosto de 2015

Introducción

Saludos terrícola.

Mi nombre es Kevin Islas Abud, estudio ingeniería en sistemas computacionales en el Tecnológico de Monterrey.

En este blog compartiré mi experiencia al cursar la materia de desarrollo de aplicaciones web por el profesor Ariel Ortiz Ramírez del departamento de tecnologías de información.

Mis expectativas acerca del curso es aprender sobre tecnologías de desarrollo web. Ya que hasta ahora no he tenido la oportunidad de explorar lo que es desarrollo web tanto del lado del servidor como del cliente.

Me interesa mucho el desarrollo de videojuegos, ya que combina la parte técnica del desarrollo de software con disciplinas artísticas como la música y el diseño.
Disfruto tocar guitarra o bajo cuando el estrés de la universidad/trabajo me lo permiten.

Mis juegos favoritos son algunos de la saga Legend of Zelda, Don't Starve, Leage of Legends, Age of Empires, Paper Mario, Star Fox. 



Disfruto mucho las películas que tienen algún trasfondo geek, como Interstellar, The Matrix, Vanilla Sky, cualquiera del universo Marvel, Wall-E, Never Say Never, cualquiera del santo, Twilight, etc.

Wololo.