JAVA'S COVER
Originalabril de 2001
Este ensayo se desarrolló a partir de conversaciones que he tenido con varios otros programadores sobre por qué Java olía sospechoso. ¡No es una crítica a Java! Es un estudio de caso del radar de los hackers.
Con el tiempo, los hackers desarrollan un olfato para la buena (y mala) tecnología. Pensé que podría ser interesante intentar escribir lo que hizo que Java me pareciera sospechoso.
Algunas personas que han leído esto piensan que es un intento interesante de escribir sobre algo de lo que no se ha escrito antes. Otros dicen que me meteré en problemas por parecer estar escribiendo sobre cosas que no entiendo. Así que, por si de algo sirve, déjame aclarar que no estoy escribiendo aquí sobre Java (que nunca he usado) sino sobre el radar de los hackers (en el que he pensado mucho).
El aforismo "no se puede juzgar un libro por su portada" se originó en los tiempos en que los libros se vendían en cubiertas de cartón simple, para ser encuadernados por cada comprador según su propio gusto. En esos días, no se podía juzgar un libro por su portada. Pero la publicación ha avanzado desde entonces: los editores actuales se esfuerzan por hacer que la portada sea algo por lo que se pueda juzgar un libro.
Paso mucho tiempo en las librerías y siento que he aprendido a entender todo lo que los editores quieren decirme sobre un libro, y quizás un poco más. El tiempo que no he pasado en las librerías lo he pasado principalmente frente a las computadoras, y siento que he aprendido, en cierta medida, a juzgar la tecnología por su portada también. Puede ser solo suerte, pero me he salvado de algunas tecnologías que resultaron ser realmente apestosas.
Hasta ahora, Java me parece una apestosa. Nunca he escrito un programa en Java, nunca más que echar un vistazo a los libros de referencia sobre él, pero tengo la sensación de que no será un lenguaje muy exitoso. Puede que resulte estar equivocado; hacer predicciones sobre tecnología es un negocio peligroso. Pero por lo que vale, como una especie de cápsula del tiempo, aquí está por qué no me gusta el aspecto de Java:
-
Ha sido tan enérgicamente promocionado. Los estándares reales no tienen que ser promocionados. Nadie tuvo que promocionar C, o Unix, o HTML. Un estándar real tiende a estar ya establecido cuando la mayoría de la gente se entera de él. En la pantalla del radar de los hackers, Perl es tan grande como Java, o más grande, solo por la fuerza de sus propios méritos.
-
Apunta bajo. En el documento original sobre Java, Gosling dice explícitamente que Java fue diseñado para no ser demasiado difícil para los programadores acostumbrados a C. Fue diseñado para ser otro C++: C más algunas ideas tomadas de lenguajes más avanzados. Al igual que los creadores de sitcoms o comida chatarra o paquetes turísticos, los diseñadores de Java diseñaron conscientemente un producto para personas no tan inteligentes como ellos. Históricamente, los lenguajes diseñados para que otros los usen han sido malos: Cobol, PL/I, Pascal, Ada, C++. Los buenos lenguajes han sido aquellos que fueron diseñados para sus propios creadores: C, Perl, Smalltalk, Lisp.
-
Tiene motivos ocultos. Alguien dijo una vez que el mundo sería un lugar mejor si la gente solo escribiera libros porque tenían algo que decir, en lugar de porque querían escribir un libro. Del mismo modo, la razón por la que escuchamos tanto sobre Java no es porque tenga algo que decir sobre los lenguajes de programación. Escuchamos sobre Java como parte de un plan de Sun para socavar a Microsoft.
-
Nadie lo ama. Los programadores de C, Perl, Python, Smalltalk y Lisp aman sus lenguajes. Nunca he oído a nadie decir que ama a Java.
-
La gente se ve obligada a usarlo. Mucha de la gente que conozco que usa Java lo está usando porque sienten que tienen que hacerlo. O es algo que sintieron que tenían que hacer para obtener financiación, o algo que pensaron que los clientes querrían, o algo que les dijeron que hicieran los directivos. Estas son personas inteligentes; si la tecnología fuera buena, la habrían usado voluntariamente.
-
Tiene demasiados cocineros. Los mejores lenguajes de programación han sido desarrollados por pequeños grupos. Java parece ser dirigido por un comité. Si resulta ser un buen lenguaje, será la primera vez en la historia que un comité haya diseñado un buen lenguaje.
-
Es burocrático. Por lo poco que sé de Java, parece haber muchos protocolos para hacer las cosas. Los lenguajes realmente buenos no son así. Te dejan hacer lo que quieras y se quitan de en medio.
-
Es pseudo-moderno. Sun ahora finge que Java es un esfuerzo de lenguaje de código abierto y de base como Perl o Python. Este solo resulta estar controlado por una gran empresa. Así que el lenguaje probablemente tendrá la misma pesadez apagada que cualquier otra cosa que salga de una gran empresa.
-
Está diseñado para grandes organizaciones. Las grandes organizaciones tienen objetivos diferentes a los de los hackers. Quieren lenguajes que se consideren adecuados para ser utilizados por grandes equipos de programadores mediocres, lenguajes con características que, como los limitadores de velocidad en los camiones U-Haul, eviten que los tontos hagan demasiado daño. A los hackers no les gusta un lenguaje que les hable como a niños. Los hackers solo quieren poder. Históricamente, los lenguajes diseñados para grandes organizaciones (PL/I, Ada) han perdido, mientras que los lenguajes de hackers (C, Perl) han ganado. La razón: el hacker adolescente de hoy es el director de tecnología de mañana.
-
A la gente equivocada le gusta. Los programadores que más admiro no están, en general, cautivados por Java. ¿A quién le gusta Java? A los ejecutivos, que no saben distinguir un lenguaje de otro, pero saben que siguen escuchando hablar de Java en la prensa; a los programadores de grandes empresas, que se asombran de encontrar que hay algo incluso mejor que C++; y a los estudiantes de pregrado que hacen "plug-and-chug", que están listos para amar cualquier cosa que pueda conseguirles un trabajo (¿saldrá esto en el examen?). La opinión de esta gente cambia con cada viento.
-
Su papá está en apuros. El modelo de negocio de Sun se está viendo socavado en dos frentes. Los procesadores Intel baratos, del mismo tipo utilizados en las computadoras de escritorio, ahora son más que suficientemente rápidos para los servidores. Y FreeBSD parece ser al menos tan buen sistema operativo para servidores como Solaris. La publicidad de Sun implica que se necesitan servidores Sun para aplicaciones de alta resistencia. Si esto fuera cierto, Yahoo estaría a la cabeza de la fila para comprar Suns; pero cuando trabajé allí, los servidores eran todos cajas Intel que ejecutaban FreeBSD. Esto augura mal para el futuro de Sun. Si Sun se mete en problemas, podrían arrastrar a Java con ellos.
-
Al Pentágono le gusta. El Departamento de Defensa está alentando a los desarrolladores a usar Java. Esto me parece la señal más condenatoria de todas. El Departamento de Defensa hace un trabajo excelente (aunque caro) defendiendo el país, pero aman los planes y los procedimientos y los protocolos. Su cultura es lo opuesto a la cultura hacker; en cuestiones de software tenderán a apostar mal. La última vez que al Pentágono le gustó un lenguaje de programación, fue Ada.
Tenga en cuenta que esto no es una crítica a Java, sino una crítica a su portada. No conozco Java lo suficiente como para gustarme o disgustarme. Esto es solo una explicación de por qué no siento que tenga ganas de aprenderlo.
Puede parecer despreocupado descartar un lenguaje antes de haberlo intentado escribir programas en él. Pero esto es algo que todos los programadores tienen que hacer. Hay demasiadas tecnologías ahí fuera para aprenderlas todas. Tienes que aprender a juzgar por señales externas cuáles valdrán la pena de tu tiempo. Del mismo modo, he descartado a la ligera Cobol, Ada, Visual Basic, el IBM AS400, VRML, ISO 9000, el protocolo SET, VMS, Novell Netware y CORBA, entre otros. Simplemente olían mal.
Puede ser que en el caso de Java me equivoque. Puede ser que un lenguaje promocionado por una gran empresa para socavar a otra, diseñado por un comité para una audiencia "principal", promocionado hasta el cielo, y amado por el Pentágono, resulte ser sin embargo un lenguaje limpio, hermoso y poderoso con el que me encantaría programar. Podría ser, pero parece muy improbable.