{"id":1267,"date":"2008-06-23T03:05:00","date_gmt":"2008-06-23T10:05:00","guid":{"rendered":"http:\/\/kodegeek.com\/blog\/?p=1267"},"modified":"2008-06-23T03:05:00","modified_gmt":"2008-06-23T10:05:00","slug":"%c2%a1resulta-que-ahora-java-es-socialista","status":"publish","type":"post","link":"http:\/\/kodegeek.com\/blog\/2008\/06\/23\/%c2%a1resulta-que-ahora-java-es-socialista\/","title":{"rendered":"\u00a1Resulta que ahora Java es socialista!"},"content":{"rendered":"<p>Bueno, <a href=\"http:\/\/kodegeek.com\/2005\/08\/las-politicas-de-java-o-como-el.shtml\">hay ciertos temas que uno da por acabados<\/a> (si, el enlace a mi articulo es del<span style=\"font-style: italic;\"> 2005<\/span>), sobre todo cuando hay evidencias de sobra que indican que deber\u00eda ser as\u00ed, y sin embargo estos vuelven a aparecer. En este caso es el empe\u00f1o de <a href=\"http:\/\/kodegeek.com\/2005\/10\/porqu-me-ladilla-el-fanatismo-de-los.html\">Satanizar al lenguaje<\/a> (el cual ahora es Open Source y cuenta con una distribuci\u00f3n completamente funcional en Fedora Core, <a href=\"http:\/\/blog.softwhere.org\/archives\/196\">llamada <span style=\"font-weight: bold;\">IceTea<\/span><\/a>). El anuncio me lleg\u00f3 por el grupo de Yahoo <a href=\"http:\/\/tech.groups.yahoo.com\/group\/SoftwareVen\/message\/584\">SoftwareVen<\/a>:<\/p>\n<p><\/p>\n<blockquote><p>Como parte del trabajo de estudios de las tecnolog\u00edas libres el Centro<br \/>Nacional de Desarrollo e Investigaci\u00f3n en Tecnolog\u00edas Libres &#8211;<br \/>CENDITEL [0] ha publicado un documento titulado &#8220;Pertinencia de la<br \/>tecnolog\u00eda Java por y para el Estado Venezolano&#8221; [1].<\/p>\n<p>El mismo esta a disposici\u00f3n para el an\u00e1lisis y discusi\u00f3n sobre la<br \/>tem\u00e1tica, sean bienvenidos a participar y compartir ideas en el foro<br \/>de discusi\u00f3n de CENDITEL [2] en la tem\u00e1tica destinada para esto<br \/>llamada &#8220;Publicado documento tecnolog\u00eda Java&#8221; [3].<\/p>\n<p>[0] <a href=\"http:\/\/www.cenditel.gob.ve\/FundacionCenditel\" target=\"_blank\">http:\/\/www.cenditel.gob.ve<wbr>\/FundacionCenditel<\/a><br \/>[1] <a href=\"http:\/\/www.cenditel.gob.ve\/files\/u1\/PertinenciaJavaVenezuela.pdf\" target=\"_blank\">http:\/\/www.cenditel.gob.ve<wbr>\/files\/u1\/PertinenciaJavaVenez<wbr>uela.pdf<\/a><br \/>[2] <a href=\"http:\/\/www.cenditel.gob.ve\/foros\/\" target=\"_blank\">http:\/\/www.cenditel.gob.ve<wbr>\/foros\/<\/a><br \/>[3] <a href=\"http:\/\/www.cenditel.gob.ve\/foros\/viewtopic.php?p=28#28\" target=\"_blank\">http:\/\/www.cenditel.gob.ve<wbr>\/foros\/viewtopic.php?p=28#28<\/a><br \/>&#8212;<br \/>Atentamente<\/p>\n<p>T.S.U. Leonardo Caballero<br \/>E-Mail: leonardocaballero at <a href=\"http:\/\/gmail.com\/\" target=\"_blank\">gmail.com<\/a>, lcaballero at <a href=\"http:\/\/linuxmail.org\/\" target=\"_blank\">linuxmail.org<\/a><\/p><\/blockquote>\n<p>Debo comenzar diciendo que me fastidia de sobre manera el fanatismo de los programadores. No s\u00f3lo Leonardo Caballero se empe\u00f1a en pintar a Sun como la corporaci\u00f3n que se va a encarga de quitarle a Venezuela su autonom\u00eda tecnol\u00f3gica sino que adem\u00e1s ignora (a estas alturas) la existencia de implementaciones completamente funcionales como <a href=\"http:\/\/blog.softwhere.org\/archives\/199\">IceTea<\/a> y <a href=\"http:\/\/kodegeek.com\/2005\/10\/porqu-me-ladilla-el-fanatismo-de-los.html\">Classpath<\/a> en Linux.<\/p>\n<p>Este trabajo insiste en mezclar nacionalismo, tendencias politicias como el socialismo pero sin llegar a proponer alternativas ya que s\u00f3lo se limita a nombrar ciertos proyectos de software libre como Linux, Ruby, Subversion entre otros. Incluso se atreve a catalogar al lenguaje como mediocre en dise\u00f1o:<\/p>\n<blockquote><p>El tema se planteo\u0301 recientemente en la lista de discusio\u0301n de SOLVE, y alli\u0301 <span style=\"font-style: italic;\">Jose\u0301 Luis  Rey <\/span>(2008) argumento\u0301 que el lenguaje de programacio\u0301n Java \u201c<span style=\"font-weight: bold;\">es un lenguaje <\/span><br \/><span style=\"font-weight: bold;\">mediocre, que no permite implementar te\u0301cnicas de programacio\u0301n, que todo <\/span><span style=\"font-weight: bold;\">programador deberi\u0301a conocer y dominar. Lo peor es que ahora estoy seguro de que <\/span><span style=\"font-weight: bold;\">eso es asi\u0301 por imposicio\u0301n\u201d<\/span>. Sen\u0303ala que aunque el disen\u0303ador de Scheme fue contratado en la concepcio\u0301n de Java, en el resultado final se <span style=\"font-style: italic;\">eliminaron todas las capacidades poco convencionales como la herencia mu\u0301ltiple,<\/span> para evitar que el lenguaje fuera demasiado avanzado. Asi\u0301, Java la mediocridad de java no es casual sino intencionada5. Adema\u0301s, <span style=\"font-style: italic;\">el lenguaje Java cuenta con un sistema de tipo de datos esta\u0301tico y simplista<\/span> que no permite el manejo de caracteri\u0301sticas ma\u0301s<br \/>avanzadas <span style=\"font-style: italic;\">como metaprogramacio\u0301n o programacio\u0301n funcional.<\/span><\/p><\/blockquote>\n<p>El pasaje est\u00e1 genial. Ignora completamente el hecho de que Java fu\u00e9 dise\u00f1ado para simplificar el desarrollo de aplicaciones y que es una mejora sustancial sobre su predecesor, C++. Por ejemplo:<\/p>\n<ul>\n<li><span style=\"font-weight: bold;\">Java es un lenguaje mediocre<\/span>: Seguro, soporte de un API completo como Swing para el desarrollo de interfaces gr\u00e1ficas (m\u00e1s completo que<span style=\"font-style: italic;\"> TK<\/span> y m\u00e1s f\u00e1cil de usar que<span style=\"font-style: italic;\"> Motiff<\/span>), soporte de Threads, Networking y Garbage Collection dentro del mismo lenguaje. Ah, y que puede correr en cualquier dispositivo ya que todos los sistemas operativos importantes tienen una m\u00e1quina virtual de Java. Si se refiere a que ciertas caracteristicas <span style=\"font-style: italic;\">sintacticas<\/span> del lenguaje no est\u00e1n all\u00ed (como Schema) es un asunto diferente. \u00bfPorqu\u00e9 caer en los excesos? La comparaci\u00f3n no es objetiva, y eso es malo.<\/li>\n<li><span style=\"font-weight: bold;\">Datos de tipo est\u00e1tico<\/span>: Creo que estos dos han pasado demasiado tiempo escribiendo scripts. Yo en particular me siento comodo sabiendo de antemano de que tipo de datos son mis variables y que el compilador me pueda decir que hay asignaciones equivocadas. Si quiero utilizar scripts con su sintaxis relajada, entonces tengo <a href=\"http:\/\/beanshell.org\/\">BeanShell<\/a> (Java pero con sintaxis m\u00e1s relajada, sin declaraci\u00f3n de variables), <a href=\"http:\/\/jruby.org\/\">JRuby<\/a>, <a href=\"http:\/\/jython.org\/\">Jython<\/a>, etc. Si, mis &#8220;scripting languajes&#8221; corriendo sobre una m\u00e1quina virtual conocida y probada \ud83d\ude42<\/li>\n<li><span style=\"font-weight: bold;\">Herencia m\u00faltiple<\/span>: \u00bfUsted realmente la necesita? Con un dise\u00f1o cuidadoso y el uso de Interfaces se consigue lo mismo. <a href=\"http:\/\/www.parashift.com\/c++-faq-lite\/multiple-inheritance.html#faq-25.2\">Herencia m\u00faltiple no es mala (de hecho es muy \u00fatil) <\/a>pero cuando se usa hay que ser cuidadoso, sabiendo que es lo que se quiere al final. Tambi\u00e9n ignora el hecho de que utilizar herencia todo el tiempo para extender c\u00f3digo es malo y que existen otros patrones de dise\u00f1o que favorecen m\u00e1s la estabilidad del c\u00f3digo en contra de cambios de la clase padre como la agregaci\u00f3n (por ejemplo, el patr\u00f3n de dise\u00f1o <a href=\"http:\/\/en.wikipedia.org\/wiki\/Decorator_pattern\">Decorator<\/a>).<\/li>\n<li><span style=\"font-weight: bold;\">No soporta programaci\u00f3n funcional<\/span>: Java no es un lenguaje de programaci\u00f3n funcional, sin embargo hay implementaciones de lenguajes funcionales que corren sobre la m\u00e1quina virtual de Java como <a href=\"http:\/\/www.ibm.com\/developerworks\/java\/library\/j-scala01228.html\">Scala<\/a>. En particular es irritante como los detractores de Java se empe\u00f1an es decir que &#8220;<span style=\"font-style: italic; font-weight: bold;\">one size fits all<\/span>&#8221; (un s\u00f3lo tama\u00f1o para todo) cuando deberian ser m\u00e1s pragmaticos diciendo que <span style=\"font-weight: bold; font-style: italic;\">hay herramientas para cada problema<\/span>.<\/li>\n<\/ul>\n<p>Si usted alguna vez ha desarrollado c\u00f3digo del lado del servidor o cliente usando Java, se encontrar\u00e1 agradecido que el lenguaje tenga un manejo elegante de <a href=\"http:\/\/www.ibm.com\/developerworks\/java\/library\/j-thread.html\">Threads<\/a>, <a href=\"http:\/\/java.sun.com\/docs\/books\/tutorial\/networking\/index.html\">Networking<\/a> (con varios protocolos), y sobre todo el manejo de memoria autom\u00e1tico usando <a href=\"http:\/\/www.artima.com\/insidejvm\/ed2\/gcP.html\">Garbage Collection<\/a>.<\/p>\n<p>Todo el mundo sabe que Java no es perfecto y la escogencia del lenguaje a la hora de resolver un problema sigue dependiendo de la tarea, presupuesto y nivel de experticia de quienes van a desarrollar la soluci\u00f3n. Tambi\u00e9n en las Universidades deberian seguirse ense\u00f1ando no uno sino varios lenguajes de programaci\u00f3n, entre ellos C y C++ (pueden decir lo que quieran de esos dos lenguajes pero Linux, manejadores de dispositivos y muchas otras cosas a\u00fan est\u00e1n escritas en esos lenguajes).<\/p>\n<p>\u00bfPero que tiene que ver eso con la &#8220;muestra independencia tecnol\u00f3gica&#8221;? <a href=\"http:\/\/www.cenditel.gob.ve\/files\/u1\/PertinenciaJavaVenezuela.pdf\">Si usted lee con cuidado el articulo<\/a>, se dar\u00e1 cuenta que el escrito es un arroz con mango de tecnolog\u00eda, sazonada con politica. Nada le prohibe a Venezuela desarrollar su propio lenguaje de programaci\u00f3n, e incluso su propia implementaci\u00f3n del lenguaje Java, como hizo la gente de <a href=\"http:\/\/www.kaffe.org\/\">Kafee<\/a>:<\/p>\n<blockquote><p>Kaffe <span style=\"font-weight: bold; font-style: italic;\">is a clean room<\/span> implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment. The Kaffe virtual machine is free software, licensed under the terms of the <a href=\"http:\/\/www.kaffe.org\/ftp\/pub\/kaffe\/COPYING\">GNU General Public License<\/a>.<\/p><\/blockquote>\n<p>El nuevo <a href=\"http:\/\/openjdk.java.net\/\">OpenJDK<\/a> o <a href=\"http:\/\/www.kaffe.org\/\">Kafee<\/a> <a href=\"http:\/\/www.pcpro.co.uk\/news\/52737\/sco-lobbies-us-congress-against-the-gnu-gpl.html\">no cuentan con ninguna restricci\u00f3n de exportaci\u00f3n<\/a>, ya que est\u00e1n protegidos por la licencia GPL. Entonces, \u00bfque es lo que detiene a Venezuela en el desarrollo de una m\u00e1quina virtual o lenguaje de programaci\u00f3n?<\/p>\n<p>Esa es la pregunta incomoda <span style=\"font-style: italic;\">que ninguna de estas personas quiere responder<\/span>.<\/p>\n<p>No importa si usted decide no utilizar Java. Pero al menos hagalo por las razones correctas, entre ellas porque no es la mejor herramienta para el problema que quiere resolver, no porque se lo dijeron en la escuela y usted se tom\u00f3 el &#8220;<span style=\"font-style: italic;\">cool aid<\/span>&#8221; sin pensarlo dos veces.<a href=\"javascript:void(0)\" tabindex=\"10\" onclick=\"return false;\"><span><\/span><\/a><\/p>\n<p>Buscar en otros sitios:<\/p>\n<p>Blogalaxia:<a href=\"http:\/\/www.blogalaxia.com\/tags\/java\" rel=\"tag\">java<\/a>, <a href=\"http:\/\/www.blogalaxia.com\/tags\/venezuela\" rel=\"tag\">venezuela<\/a>, <a href=\"http:\/\/www.blogalaxia.com\/tags\/socialismo\" rel=\"tag\">socialismo<\/a>, <a href=\"http:\/\/www.blogalaxia.com\/tags\/decreto+3390\" rel=\"tag\">decreto 3390<\/a>, <a href=\"http:\/\/www.blogalaxia.com\/tags\/open+source\" rel=\"tag\">open source<\/a>, <a href=\"http:\/\/www.blogalaxia.com\/tags\/software+libre\" rel=\"tag\">software libre<\/a><br \/>Technorati:<a href=\"http:\/\/technorati.com\/tag\/java\" rel=\"tag\">java<\/a>, <a href=\"http:\/\/technorati.com\/tag\/venezuela\" rel=\"tag\">venezuela<\/a>, <a href=\"http:\/\/technorati.com\/tag\/socialismo\" rel=\"tag\">socialismo<\/a>, <a href=\"http:\/\/technorati.com\/tag\/decreto+3390\" rel=\"tag\">decreto 3390<\/a>, <a href=\"http:\/\/technorati.com\/tag\/open+source\" rel=\"tag\">open source<\/a>, <a href=\"http:\/\/technorati.com\/tag\/software+libre\" rel=\"tag\">software libre<\/a><br \/>To2blogs:<a href=\"http:\/\/www.to2blogs.com\/tag\/java\" rel=\"tag\">java<\/a>, <a href=\"http:\/\/www.to2blogs.com\/tag\/venezuela\" rel=\"tag\">venezuela<\/a>, <a href=\"http:\/\/www.to2blogs.com\/tag\/socialismo\" rel=\"tag\">socialismo<\/a>, <a href=\"http:\/\/www.to2blogs.com\/tag\/decreto+3390\" rel=\"tag\">decreto 3390<\/a>, <a href=\"http:\/\/www.to2blogs.com\/tag\/open+source\" rel=\"tag\">open source<\/a>, <a href=\"http:\/\/www.to2blogs.com\/tag\/software+libre\" rel=\"tag\">software libre<\/a><br \/>Del.icio.us:<a href=\"http:\/\/del.icio.us\/tag\/java\" rel=\"tag\">java<\/a>, <a href=\"http:\/\/del.icio.us\/tag\/venezuela\" rel=\"tag\">venezuela<\/a>, <a href=\"http:\/\/del.icio.us\/tag\/socialismo\" rel=\"tag\">socialismo<\/a>, <a href=\"http:\/\/del.icio.us\/tag\/decreto+3390\" rel=\"tag\">decreto 3390<\/a>, <a href=\"http:\/\/del.icio.us\/tag\/open+source\" rel=\"tag\">open source<\/a>, <a href=\"http:\/\/del.icio.us\/tag\/software+libre\" rel=\"tag\">software libre<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bueno, hay ciertos temas que uno da por acabados (si, el enlace a mi articulo es del 2005), sobre todo cuando hay evidencias de sobra que indican que deber\u00eda ser as\u00ed, y sin embargo estos vuelven a aparecer. En este caso es el empe\u00f1o de Satanizar al lenguaje (el cual ahora es Open Source y <a class=\"read-more\" href=\"http:\/\/kodegeek.com\/blog\/2008\/06\/23\/%c2%a1resulta-que-ahora-java-es-socialista\/\">[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[9],"tags":[371,757,107,372,199,760],"_links":{"self":[{"href":"http:\/\/kodegeek.com\/blog\/wp-json\/wp\/v2\/posts\/1267"}],"collection":[{"href":"http:\/\/kodegeek.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/kodegeek.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/kodegeek.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/kodegeek.com\/blog\/wp-json\/wp\/v2\/comments?post=1267"}],"version-history":[{"count":0,"href":"http:\/\/kodegeek.com\/blog\/wp-json\/wp\/v2\/posts\/1267\/revisions"}],"wp:attachment":[{"href":"http:\/\/kodegeek.com\/blog\/wp-json\/wp\/v2\/media?parent=1267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/kodegeek.com\/blog\/wp-json\/wp\/v2\/categories?post=1267"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/kodegeek.com\/blog\/wp-json\/wp\/v2\/tags?post=1267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}