notifications Notificaciones

Marcar todas como leídas

Ver más

lightbulb_outline

651 veces ha sido leído este artículo

¿Qué tecnología elegir?

Lo lees en 3 Min.

En ocasiones cuando estamos a punto de comenzar un nuevo proyecto es probable que nos hagamos la siguiente pregunta, ¿Qué tecnologías debo utilizar? Existen cientos de opciones, ¿Qué lenguaje de programación utilizo?, ¿Qué librería?, ¿Qué framework? Queremos que nuestro proyecto sea el mejor en todos los aspectos, un excelente diseño, un alto performance y una usabilidad envidiable, por eso creemos que el stack de tecnologías a utilizar es indispensable, y no creemos mal, lo es, escoger las herramientas adecuadas podrán, en algunos de los casos, definir si el proyecto será exitoso o no. Entonces, ¿Debemos de invertir una gran cantidad de tiempo investigando los pro y contras de x o y tecnología? de forma personal opino que no. 😱 Espera, no me taches de loco, aun. 🤔 En esta ocasión me gustaría exponer mis argumentos del por que creo que es una muy mala idea invertir mucho tiempo en escoger una nueva tecnología para nuestro proyecto. Bien, una vez dicho esto comencemos.

No me coman por favor.

A la mayoría de las personas nos encanta comparar cosas, mucho más si es en el ambiente tecnológico, si Java es mejor que C#, si Rails sobre Django o Laravel, sí MySQL o SQLServer (Elige SQLServer 😬) etc.. Al final del día todas estas tecnologías son herramientas y se especializan en ciertas áreas, todas tienen pros y contras, ninguna es perfecta. El problema surge cuando en una misma área podemos implementar más de una tecnología, por ejemplo, hablemos del caso del desarrollo web, en donde podemos utilizar Django, Rails y Larevel excelentes frameworks webs en el mercado. ¿Cual elegir?.

Recuerdo muy bien una época en la universidad donde junto con unos amigos nos encontrabamos desarrollando un proyecto personal y no sabiamos que framework web utilzar, si Django, Rails o Laravel. La mayoría conocíamos Python, todos conocíamos PHP y nadie conocía Ruby. Apesar de nuestro nível de habilidades teníamos algo seguro, el proyecto, sí o sí, tendría que hacerse con algunos de estos tres frameworks web. Pasamos días investigando los pros y contras de cada tecnología, inclusive hacíamos preguntas a experto. En una ocasión tuvimos la oportunidad de acudir a una charla de Luis von ahn el creador de Duolingo. Nuestra mejor pregunta en ese momento fue : ¿En qué lenguaje esta hecho Duolingo y con qué framework? Esperábamos que su respuesta estuviera en entre nuestras opciones, pero no fue así, si no recuerdo mal nos comentó que Duolingo estaba hecho (En ese momento) con Python y Pyramid, no era la respuesta que esperábamos 🤯, nos comentó que lo más importante no es la tecnología per se, si no el producto final.

Con esto en mente dejamos de perder el tiempo y simplemente nos decidimos por la tecnología que más nos gustaba y más dominabamos en ese momento. Ya habíamos desperdiciado mucho tiempo indagando pros y contras y estábamos descuidando lo más importante, el producto. Sí, teníamos argumentos, diapositivas, uno que otro hola mundo por aquí y por allá, pero no teníamos nada que presentar al cliente, ni siquiera un login. 😓

En ocasiones visualizamos mucho a futuro y nos dejamos llevar por las grandes empresas y sus historias de exito. Un casos muy famoso es el de PHP con Facebook, si bien Facebook fue escrito en sus inicios con dicho lenguaje hoy en día la mayor parte de su desarrollo no es con PHP.

Aveces pensamos que al comenzar un proyecto debemos dejar todo listo para que nuestra aplicación responda a miles de peticiones por segundo y que nuestra base de datos esté preparada para almacenar terabytes de información, cuando la realidad es que para que esto ocurra, primero se debe comenzar con un usuario, después con diez, con cien, con mil, etc... El software no es estatico, en todo el tiempo que le tome a nuestra aplicación despegar podemos estar haciendo modificaciones.

Si una empresa deja de utilizar x tecnología no quiere decir que esta sea mala, en la mayoría de los casos el problema de performance, usabilidad e interfaz es culpa del desarrollador.

Para que un proyecto tenga la necesidad de migrar de un stack tecnológico a otro, por ejemplo, de Rails a Go, donde Go sale a relucir por la concurrencia, el proyecto debe tener un tráfico enorme de usuarios, es decir una gran fama, fama que sin duda (si el modelo de negocio está bien planteado), atrae capital. Con el dinero las grandes empresas pueden darse el lujo de cambiar de stack tecnológico cuantas veces quieran.

Es por ello que te recomiendo primero te enfoques en tu producto. Muchas de las tecnologías que están entre nuestras opciones a elegir son muy buenas y tienen el respaldo de miles de programadores alrededor del mundo. Te aconsejo que para un proyecto urgente vayas a la segura, utilicen las tecnologías que domines y sabes que funcionarán, no te arriesgues probando con tecnologías que están a la moda. Si por otro lado, no tienes ningún conocimiento sobre x o y tecnología elige la que más te agrade, en tus tiempos libres practica, crea proyectos pequeños, no está nada mal tener 40 hola mundos con diferentes tecnologías, recuerda, para saber que te gusta debes saber que no te gusta y para ello es necesario experimentar y salir un poco de tu zona de confort, mirame a mi, en un principio no me agradaba Rails, un par de proyectos y ahora quisiera hacer todo con este framework.🍻

Bien, estas serían mis razones por las cuales considero no es muy buena idea invertir mucho tiempo investigando qué tecnología utilizar, mejor utilicemos ese tiempo desarrollando nuestro producto.

Recomendaciones

Comunidad