Loading...

LA PORTADA DE JAVA

Original

April 2001

Este ensayo surgió 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 caso de estudio del radar del hacker.

Con el tiempo, los hackers desarrollan una nariz para la buena (y la 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 creen que es un intento interesante de escribir sobre algo sobre lo que no se ha escrito antes. Otros dicen que me meteré en problemas por parecer que escribo sobre cosas que no entiendo. Así que, por si acaso sirve de algo, déjenme aclarar que no estoy escribiendo aquí sobre Java (que nunca he usado) sino sobre el radar del hacker (en lo que he pensado mucho).

El aforismo "no puedes juzgar un libro por su portada" se originó en la época en que los libros se vendían con portadas de cartón liso, para que cada comprador los encuadernara según su gusto. En aquellos días, no podías juzgar un libro por su portada. Pero la edición ha avanzado desde entonces: los editores actuales trabajan duro para que la portada sea algo por lo que puedas juzgar un libro.

Paso mucho tiempo en librerías y siento que ya 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 librerías lo he pasado principalmente frente a las computadoras, y siento que he aprendido, hasta cierto punto, a juzgar la tecnología por su portada también. Puede que sea solo suerte, pero me he salvado de algunas tecnologías que resultaron ser auténticas porquerías.

Hasta ahora, Java me parece una porquería. Nunca he escrito un programa en Java, nunca he hecho más que echar un vistazo a libros de referencia sobre él, pero tengo la corazonada de que no será un lenguaje muy exitoso. Puede que me equivoque; hacer predicciones sobre tecnología es un negocio peligroso. Pero por lo que vale, como una especie de cápsula del tiempo, aquí tienes por qué no me gusta el aspecto de Java:

  1. Ha sido tan enérgicamente promocionado. Los verdaderos estándares no tienen que ser promocionados. Nadie tuvo que promocionar C, o Unix, o HTML. Un verdadero estándar tiende a estar ya establecido en el momento en que la mayoría de la gente se entera de él. En la pantalla del radar del hacker, Perl es tan grande como Java, o más grande, solo por la fuerza de sus propios méritos.

  2. Va dirigido a un público poco exigente. En el documento blanco original de 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. Como los creadores de comedias de situación, comida basura o viajes en paquete, 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 los usara otra gente 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.

  3. Tiene motivos ocultos. Alguien dijo una vez que el mundo sería un lugar mejor si la gente solo escribiera libros porque tenía algo que decir, en lugar de porque quisieran escribir un libro. De la misma manera, la razón por la que escuchamos hablar de Java todo el tiempo no es porque tenga algo que decir sobre los lenguajes de programación. Escuchamos hablar de Java como parte de un plan de Sun para socavar a Microsoft.

  4. A nadie le encanta. Los programadores de C, Perl, Python, Smalltalk y Lisp aman sus lenguajes. Nunca he oído a nadie decir que amaba Java.

  5. La gente se ve obligada a usarlo. Mucha de la gente que conozco que usa Java lo está usando porque siente que tiene que hacerlo. O es algo que sintió que tenía que hacer para conseguir financiación, o algo que pensó que los clientes querrían, o algo que le dijeron que hiciera la gerencia. Son personas inteligentes; si la tecnología fuera buena, la hubieran usado voluntariamente.

  6. Tiene demasiados cocineros. Los mejores lenguajes de programación han sido desarrollados por pequeños grupos. Java parece estar 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.

  7. Es burocrático. Por lo poco que sé sobre Java, hay muchos protocolos para hacer las cosas. Los lenguajes realmente buenos no son así. Te dejan hacer lo que quieres y se apartan de tu camino.

  8. Es pseudo-moderno. Sun ahora pretende que Java es un esfuerzo de base, de código abierto como Perl o Python. Este, en particular, está controlado por una empresa gigante. Así que el lenguaje es probable que tenga la misma torpeza sosa que cualquier otra cosa que salga de una gran empresa.

  9. Está diseñado para grandes organizaciones. Las grandes organizaciones tienen objetivos diferentes a los de los hackers. Quieren lenguajes que se crean que son adecuados para su uso por parte de grandes equipos de programadores mediocres, lenguajes con características que, como los limitadores de velocidad en los camiones U-Haul, evitan que los tontos hagan demasiado daño. A los hackers no les gusta un lenguaje que les hable mal. Los hackers solo quieren poder. Históricamente, los lenguajes diseñados para grandes organizaciones (PL/I, Ada) han perdido, mientras que los lenguajes de los hackers (C, Perl) han ganado. El motivo: el hacker adolescente de hoy es el CTO del mañana.

  10. 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 trajes, que no distinguen un idioma de otro, pero que saben que siguen escuchando hablar de Java en la prensa; a los programadores de grandes empresas, que están asombrados de encontrar algo aún mejor que C++; y a los estudiantes universitarios que se dedican a conectar y llevar a cabo, que están listos para gustarles cualquier cosa que pueda conseguirles un trabajo (¿esto estará en el examen?). Las opiniones de esta gente cambian con cada viento.

  11. Su papá está en aprietos. El modelo de negocio de Sun está siendo socavado en dos frentes. Los procesadores Intel baratos, del mismo tipo que se utilizan en las computadoras de escritorio, ahora son más que lo 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 necesitas servidores Sun para aplicaciones de resistencia industrial. Si esto fuera cierto, Yahoo sería el primero en la cola para comprar Suns; pero cuando trabajé allí, los servidores eran todos cajas Intel con FreeBSD. Esto es un mal augurio para el futuro de Sun. Si Sun tiene problemas, podrían arrastrar a Java consigo.

  12. Al DoD le gusta. El Departamento de Defensa está animando a los desarrolladores a usar Java. Esto me parece la señal más condenatoria de todas. El Departamento de Defensa hace un buen (aunque caro) trabajo de defensa del país, pero les encantan los planes, 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 DoD realmente le gustó un lenguaje de programación, fue Ada.

Ten en cuenta que esto no es una crítica a Java, sino una crítica a su portada. No conozco lo suficiente a Java para quererlo o no quererlo. Esto es solo una explicación de por qué no encuentro que tenga muchas ganas de aprenderlo.

Puede que parezca arrogante descartar un lenguaje antes de que incluso lo hayas probado escribiendo 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 tu tiempo. De la misma manera, he descartado de forma arrogante Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, el protocolo SET, VMS, Novell Netware y CORBA, entre otros. Simplemente olían mal.

Podría ser que en el caso de Java me equivoque. Podría ser que un lenguaje promocionado por una gran empresa para socavar a otra, diseñado por un comité para una audiencia "de masas", promocionado hasta el cielo, y amado por el DoD, sea a pesar de todo un lenguaje limpio, hermoso, poderoso que me encantaría programar. Podría ser, pero parece muy poco probable.