Loading...

LA PORTADA DE JAVA

Original

abril 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 me hizo sospechar de Java.

Algunas personas que han leído esto piensan que es un intento interesante de escribir sobre algo que no se ha escrito antes. Otros dicen que tendré problemas por parecer que estoy escribiendo 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 de los hackers (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 simples, 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 trabajan duro para hacer que la portada sea algo por lo que se pueda 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 mayormente frente a 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 verdaderos fracasos.

Hasta ahora, Java me parece un fracaso. Nunca he escrito un programa en Java, nunca he más que hojeado libros de referencia sobre él, pero tengo la corazonada de que no será un lenguaje muy exitoso. Puede que esté 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 la apariencia de Java:

  1. Ha sido tan enérgicamente promocionado. Los verdaderos estándares no tienen que ser promovidos. Nadie tuvo que promover C, Unix o HTML. Un verdadero estándar tiende a estar ya establecido para cuando la mayoría de la gente escucha sobre él. En la pantalla del radar de los hackers, Perl es tan grande como Java, o más grande, solo por el mérito propio.

  2. Está dirigido a lo bajo. En el documento original de Java, Gosling dice explícitamente que Java fue diseñado para no ser demasiado difícil para 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 tours organizados, los diseñadores de Java estaban conscientemente diseñando un producto para personas que no son 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.

  3. Tiene motivos ocultos. Alguien dijo una vez que el mundo sería un lugar mejor si las personas solo escribieran 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 sobre Java todo el tiempo no es porque tenga algo que decir sobre lenguajes de programación. Escuchamos sobre Java como parte de un plan de Sun para socavar a Microsoft.

  4. Nadie lo ama. Los programadores de C, Perl, Python, Smalltalk y Lisp aman sus lenguajes. Nunca he oído a nadie decir que ama Java.

  5. La gente se ve obligada a usarlo. Muchas de las personas que conozco que usan Java lo hacen porque sienten que tienen que hacerlo. O es algo que sintieron que tenían que hacer para conseguir financiamiento, o algo que pensaron que los clientes querrían, o algo que les dijeron que hicieran por la dirección. Estas son personas inteligentes; si la tecnología fuera buena, la habrían usado voluntariamente.

  6. 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é ha diseñado un buen lenguaje.

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

  8. Es pseudo-hip. Sun ahora finge que Java es un esfuerzo de lenguaje de código abierto de base como Perl o Python. Este solo sucede a ser controlado por una gran empresa. Así que el lenguaje es probablemente tan aburrido y torpe como cualquier otra cosa que salga de una gran empresa.

  9. Está diseñado para grandes organizaciones. Las grandes organizaciones tienen diferentes objetivos que los hackers. Quieren lenguajes que sean (creídos ser) adecuados para ser usados por grandes equipos de programadores mediocres-- lenguajes con características que, como los limitadores de velocidad en los camiones U-Haul, previenen que los tontos hagan demasiado daño. A los hackers no les gusta un lenguaje que les hable condescendientemente. 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 CTO de mañana.

  10. A las personas equivocadas les gusta. Los programadores que más admiro no son, en general, cautivados por Java. ¿Quién le gusta a Java? A los trajes, que no saben un lenguaje de otro, pero saben que siguen escuchando sobre Java en la prensa; programadores en grandes empresas, que se sorprenden al descubrir que hay algo incluso mejor que C++; y estudiantes que solo siguen instrucciones, que están listos para gustar de cualquier cosa que pueda conseguirles un trabajo (¿esto estará en el examen?). Las opiniones de estas personas cambian con cada viento.

  11. Su padre está en apuros. El modelo de negocio de Sun está siendo socavado en dos frentes. Los procesadores Intel baratos, del mismo tipo que se usan en máquinas de escritorio, ahora son más que lo suficientemente rápidos para servidores. Y FreeBSD parece ser al menos tan bueno como sistema operativo para servidores como Solaris. La publicidad de Sun implica que necesitas servidores Sun para aplicaciones de fuerza industrial. Si esto fuera cierto, Yahoo estaría primero en la fila para comprar Suns; pero cuando trabajé allí, los servidores eran todos cajas Intel corriendo FreeBSD. Esto presagia un mal futuro para Sun. Si Sun se encuentra en problemas, podría arrastrar a Java con ellos.

  12. Al DoD le gusta. El Departamento de Defensa está animando a los desarrolladores a usar Java. Esto me parece el signo más condenatorio de todos. El Departamento de Defensa hace un buen (aunque caro) trabajo de defender el país, pero les encantan los planes, procedimientos y protocolos. Su cultura es opuesta a la cultura hacker; en cuestiones de software tienden a apostar mal. La última vez que el DoD realmente le gustó un lenguaje de programación, fue Ada.

Tengan en cuenta que esto no es una crítica a Java, sino una crítica a su portada. No conozco Java lo suficientemente bien como para gustarme o disgustarme. Esto es solo una explicación de por qué no encuentro que estoy ansioso por aprenderlo.

Puede parecer imprudente descartar un lenguaje antes de haber intentado escribir programas en él. Pero esto es algo que todos los programadores tienen que hacer. Hay demasiadas tecnologías por ahí para aprenderlas todas. Tienes que aprender a juzgar por signos externos cuáles valdrán tu tiempo. Yo también he descartado imprudentemente Cobol, Ada, Visual Basic, el 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 esté equivocado. Podría ser que un lenguaje promovido por una gran empresa para socavar a otra, diseñado por un comité para una audiencia "mainstream", promocionado hasta el cielo, y amado por el DoD, resulte ser, no obstante, un lenguaje limpio, hermoso, poderoso en el que me encantaría programar. Podría ser, pero parece muy poco probable.