OOPocalipsis



En muchísimos blogs se habla del día en que la Programación Orientada a Objetos dejará de ser relevante ante una tecnología que emergerá intempestivamente, es en este día que nos olvidaremos de Booch, TGofF y de los Three Amigos y abriremos paso a un nuevo paradigma que revolucionará todo de un día para otro, ¿esto realmente terminará pasando? Bueno, creo fervientemente que todo tiene un ciclo y lo viejo siempre servirá de base para dar paso a nuevas y mejores tecnologías pero ese día del que tanto se habla está más bien lejos que cerca. El tema de esta entrada ha dado lugar a debates acalorados en una gran cantidad de foros y creo que el día de hoy no será la excepción.

El lenguaje si importa


Imagina que quieres lanzar una aplicación web lo más pronto posible pero no cuentas con el efectivo suficiente para hacerla de una manera totalmente profesional, para una startup salvo algunas notables excepciones lo más importante es entrar en el mercado lo más pronto posible, ¿tú que harías? ¿Optar por un lenguaje estable y sumamente escalable pero con largos periodos de desarrollo? ¿O preferirás un lenguaje que esté apoyado por una comunidad creciente y que use un lenguaje sumamente flexible que te permitirá ver resultados casi de inmediato? Bueno, a esto se enfrentan muchas pequeñas empresas hoy en día y elegir el lenguaje adecuado para suplir sus necesidades se ha convertido en un infierno.

Java, Pascal, LISP, PHP, JavaScript, Golang, C, C++, Kotlin y Perl... La lista podría continuar hasta ocupar más de una cuartilla con todos los lenguajes que existen pero el punto aquí es que si no eliges el lenguaje adecuado lo más seguro es que tu proyecto nunca llegue a buen puerto. No solamente tiene que ver con la velocidad con la que quieres desplegar tu proyecto sino también con el propio problema que tu proyecto busca resolver, de nada te servirá elegir un lenguaje que tenga mucho soporte hoy en día si no tiene nada que ver con tu problema y con cómo es que tu hayas diseñado la solución al mismo.

Por la red encontrarás muchísimas opiniones y lo más sensato que te podría decir es que no te fíes de ellas, cada programador tiene sus propias preferencias y si haces búsquedas del tipo: qué lenguaje es mejor para una startup, sólo obtendrás respuestas son sesgos. En vez de eso, podrías realizar búsquedas sobre qué lenguaje es mejor para cada tipo de problema, esto te dará mucho mejor perspectiva que si haces la primera búsqueda. 

Objetos para todos
¿Qué pasa si tu proyecto está diseñado orientado a objetos pero descubres que es más fácil de desplegar las primeras versiones con un lenguaje que no es orientado a objetos? Qué pregunta más larga y qué respuesta tan corta. Bueno, realmente no pasa mucho pues puedes simular muchas características de los lenguajes orientados a objetos en lenguajes que no lo son en primera instancia, tomemos el ejemplo de Golang, un lenguaje que es muy veloz sobre todo en tareas propias de backend:

¿A qué te recuerda el código anterior? Bueno, a mi me suena mucho a herencia. Debido a que la herencia como tal no existe en Golang tu única opción es usar la composición y las structs, ¿lo ves? Nada para tirarse al piso a llorar. Hoy en día hay muchos lenguajes y de alguna u otra forma tienden a compartir ciertas características a pesar de que tienen una diferencia bien separada siempre hay alguna forma de imitar el comportamiento de uno en otro. ¿Otro ejemplo? Bueno, le podrías echar a un vistazo a lo que hace el superset de JavaScript por excelencia: TypeScript.

Conclusiones

El elegir un lenguaje de programación es una decisión crítica y lo peor es que la tienes que tomar al inicio de todo, yo sé que nunca seremos expertos en todos los lenguajes y menos en estos tiempos en que aparte de aprender lenguajes también tenemos que aprender a manejar frameworks y nadie te está pidiendo que lo seas, si no estás seguro de alguna decisión recuerda que tienes a tu disposición miles de opiniones a un sólo click de distancia, lo único que tienes que hacer es usar las palabras adecuadas. 

El Diseño Orientado a Objetos y la Programación Orientada a Objetos dista mucho de estar en sus últimos días y siguen siendo un referente para solucionar de manera efectiva muchos problemas de hoy en día así que no tengas miedo de elegirlos como tus primeras opciones. Si no te convencen los lenguajes Orientados a Objetos no tienes por qué abandonar de manera tajante el diseño Orientado a Objetos, recuerda que muchos lenguajes pueden emular estas características de manera más que adecuada. 

En fin, una entrada más que interesante de hacer y aún más de leer. 

¡Nos vemos a la vuelta! 





Comentarios

Entradas populares de este blog

Hagamos un breve repaso

El QQQ que no es malo

Casos de la vida real (en el diseño orientado a objetos)