Hacía varios días que esta entrada estaba a la espera de ser redactada, y recién hoy que estaba husmeando un poco el framework de un amigo que realmente se ve muy muy prometedor, tengo que admitir que si su framework ve la luz mi publicación de los frameworks son una basura tendrá que ser retractada, analizando su código me surgieron algunas preguntas sobre como encararía ciertos aspectos, que para avisarles me dejó realmente satisfecho, al final de la charla surgió el gran dilema del a industria y quizá el soporte en el cual está apoyada esta entrada. ¿Mi código debe ser a prueba de idiotas, o para gente que tenga conciencia de lo que programa?
La respuesta más rápida que uno se pudiera figurar es "pues lo hago para programadores que tengan una idea de lo que hacen, si programan horrible no es mi culpa", pero entonces podemos analizar las distintas posturas que se tomaron en la industria del software.
Todos los lectores de mi blog sabrán que todas las entradas aquí son desde el punto de vista de software para desarrollo de carácter industrial, de modo que se trata de que las mismas sigan como mínimo apoyadas en los criterios de calidad que se explican aquí.
Ahora bien, todos mis códigos o los que se evalúan en este blog tienen la tendencia a ser vendidos o utilizados por terceros, por lo que esta es una de las preguntas más serias, esos terceros ¿tengo que prever que sean unos estúpidos o programadores de verdad?, veamos entonces el panorama, tenemos lenguajes como C++ que realmente no están diseñados para suponer que el que programa no tiene idea de nada, por lo que los programas en C++, unos cuantos tienden a ser bastante inestables, o con problemas, salvo que su programador hubiese tenido bastante bien claro los conceptos básicos de calidad, entre otras cosas y que no se le escaparan muchas cosas, muchos lenguajes de ese tipo son ásperos y realmente pueden generar aplicaciones inestables, que no solo le afecten al funcionamiento del programa sino de la plataforma sobre la que corren.
En una época y actualmente el sistema de Microsoft (Windows) fue considerado muy poco estable y con muchos problemas, esto es debido en parte (y solo en parte) a la cantidad de programas que existen y que son instalados en éste sistema, y entre tantos siempre hay alguno programado por un inútil sin vida que pasa su tiempo escribiendo líneas de código sin pensar. Por eso microsoft cuando lanzó su propio lenguaje que lo representara implementó ciertas medidas preventivas para no aumentar aún más el caos en su plataforma, creando un lenguaje simple y fiable, para que sus aplicaciones no pudieran causar estragos, eso es parte de lo que es visual basic (como vimos en entradas anteriores hay otras orientaciones de visual basic pero todas apuntan directamente al caso donde sean programadores de poco conocimiento) aunque vuelvo a reiterar como en entradas anteriores no quiero que se me mal interprete asumiendo que yo digo que los programadores de visual basic no tienen conocimiento, solo quiero expresar que el público para el que fue diseñado cumple con estas características, pero no necesariamente todos los programadores del lenguaje cumplen dichas características. Pero esta lenguaje no es el único y por evidencia no todos los programadores para windows usan visual basic como main lenguaje.
Pero entonces aquí surge una pregunta que quizá la explicación de arriba pueda responderla, por qué google (si bien compró android a una empresa de terceros) mantuvo como lenguaje único del sistema y principal a Java, veamos el historial de google, analicemos sus propios servicios, sus programas, la gran mayoría y cuando se puede los hacen en python, una empresa que considera como su lenguaje principal a python, ¿por qué razón dejaría que uno de sus grandes productos use java?, aquí es cuando todos los amantes de java dicen a coro "porque java es lo mejor", si java fuera lo mejor que existe, ¿por que una empresa como google tendría todos sus servicios más importantes en python? ¿por qué daría cursos y promovería python? y sobre todo considerando que tienen su propio lenguaje. No seamos hipócritas, java no es ni de cerca el mejor lenguaje tiene miles de defectos y no entraré en detalle porque me iré del hilo principal demasiado.
Java es una de esas grandes decisiones de la industria, java tiene algo que google necesitaba en su sistema, google no podía correr con el mismo problema que tuvo microsoft con windows, no podían quedar como estúpidos sacando un sistema completamente inestable, tenían que asegurarse que todos los programadores que crearan aplicaciones para android no metieran la pata y le hicieran inestable, no podía tener esa fama, entonces tomaron la decisión de usar java, ya que java tiene la máquina virtual, un entorno controlado para que las aplicaciones corrieran, un entorno controlado por ellos que les permiten que si una aplicación hace un consumo un poquito fuera de los limites, esa aplicación sea finalizada, evitando cosas como el exceso de consumo de recursos.
Es una simple razón que le permite a la gente de google despreocuparse de que aparezca un programador idiota que consuma recursos de forma totalmente exagerada y tirara el sistema por los aires, ellos pueden controlar ese entorno y asegurarse de que las cosas no se salgan de la raya, dejando al sistema en un entorno aparte libre de sanguijuelas, monstruos y de mases.
Entonces podemos concluir que java es una decisión de google que no tiene nada que ver con la calidad del lenguaje, solo les asegura que aquellos que hagan aplicaciones para su sistema no les pongan las cosas inestables. La calidad son dos mangos a parte y realmente dudo mucho que pensaran en poner un lenguaje de calidad a la hora de elegir este lenguaje.
Recordemos también que las aplicaciones hechas por terceros son algo sumamente importante para un sistema, ya sea móvil o de escritorio, porque representa las utilidades extras y agregados que se le pueden prestar al usuario, y ganar puntos contra la competencia, por lo que permitir que para tu plataforma no solo programen gurús, sino también programadores medios, y hasta programadores estúpidos, aumenta la cantidad de desarrolladores, futuras aplicaciones y aumenta los puntos para con su competencia, dando así una ventaja estratégica muy importante.
Saludos!Soy amante de la programación, me gusta ver y crear cosas nuevas... Me gusta el metal, rock, y también daftpunk jajaja