Historias
Slashboxes
Comentarios
 

Login Barrapunto

Login

[ Crear nueva cuenta ]

Draco (3721)

Draco
  (email no mostrado públicam.)

Down Kill Up Publicidad

Bitácora de Draco (3721)

Viernes, 02 de Abril 2004

Usabilidad, otra vez

10:39h.
Kernel Linux

Aquella entrada de Eric S. Raymond en que criticaba la usabilidad de Linux, sigue generando comentarios. Éste critica el desprecio que destila ESR hacia el desarrollo de interfaces de usuario("It's not rocket science"). Hacer buenos interfaces de usuario es difícil y los buenos diseñadores no abundan. Y yo añadiría, es aburrido (para la mayoría de la gente al menos), y cuando programas en tu tiempo libre o cobrando menos de lo que podrías ganar haciendo otro tipo de software las tareas aburridas motivan aún menos.

Será casualidad o no, los desarrolladores con bitácora(y pasta) que suelo seguir (Jeremy Zawodny, Russell Beattie, Mark Pilgrim, Dan Sugalski...), todos usan Mac OS X. No sé si este sistema operativo está cuajando entre el usuario medio, pero está conviertiéndose en la plataforma preferida del geek.

<offensive mode-on>

Y aunque no tenga mucho que ver, sólo por meterme con ESR, diré que su "Art of Unix Programming" me parece puro humo. Además, tanto proclamar la superioridad de Unix, y que está hecho para el desarrollador, que si la línea de comandos y tal y Pascual, y cuando el tipo tiene que configurar una simple impresora en red, nos viene llorando porque no entiende los menús. ¿Cómo los vas a entender si vas diciendo que el programador Unix piensa en el interfaz gráfico al final? ¿Le pusiste interfaz gráfico al fetchmail?

Luego se inventa lo de la tía Tillie diciendo que nunca podría resolver la situación. ¡Si el que no lo sabe configurar es él! ¡Hazte tu propio protocolo de impresión! ¿No eras tan hacker? ¡ea!

<offensive mode-off>

Más en Slashdot

Jueves, 01 de Abril 2004

¿Java, Mono o seguir con C++?

08:08h.
Gnome

Havoc Pennington publicó ésto hace unos días. Básicamente plantea que hay que tomar una decisión, dentro de lo que el llama "comunidad" aunque probablemente debiera decir "comunidad Gnome", y adoptar un lenguaje moderno como Java o C# que no ponga a los proyectos de software libre en inferioridad de condiciones frente al soft comercial.

Antes de que os llevéis las manos a la cabeza:

  • No está proponiendo empezar a usar Swing en lugar de Gtk o empezar a cambiar las librerías más importantes. Sería un cambio que sólo afectaría a las aplicaciones y "evolutivo".
  • De usarse Java o C#, se haría con las implementaciones libres(gcj,Mono), aunque habría que decidir si sería conveniente cierto soporte
  • No hacer nada también es tomar una decisión: C/C++
  • Leeros el artículo :-)

Ha suscitado muchas opiniones, algunas se pueden ver(contestadas) en su blog y otras hay que buscarlas por la blogosfera. A Ian Bicking, por ejemplo, no le convence la idea.

Martes, 30 de Marzo 2004

¿Por qué complicar (inútilmente) las cosas?

08:03h.
Java

No soy programador Java, aunque en mi momento tuve que hacer ciertas cosas en Java. No me disgustó, en absoluto, aunque creo que está sobrevalorado, y tengo ciertas críticas que me guardaré porque no hay lenguaje perfecto, todo tiene muchos puntos de vista, y además, porque podría meter la pata :-)

Pero de todas las cosas que no me gustan de Java hay una que no es culpa del lenguaje sino de los que desarrollan en él y que nunca he visto plasmada tan claramente como en la siguiente metáfora de este artículo de LinuxWorld Why Do Java Developers Like to Make Things So Hard?:

Imagine if the Perl cafe and Javahut were across the street from each other. You walk into Javahut, and ask to sit down. "I'm sorry," says the person at the door. I'm not actually the hostess, I'm a Factory class that can give you a hostess if you tell me what type of seat you want." You say you want a non-smoking seat, and the person calls over a NonSmokingSeatHostess. The hostess takes you to your seat, and asks if you'll want breakfast, lunch, or dinner. You say lunch, and she beckons a LunchWaitress. The LunchWaitress takes your order, brings over your food, but there's no plates to put it on because you forgot to get a CutleryFactory and invoke getPlates, so the Waitress throws a null pointer exception and you get thrown out of the place.

Dusting yourself off, you walk across the street to the Perl cafe. The person at the door asks what kind of seat you want, what you want to eat, and how you want to pay. They sit you at your seat, bring over your food, collect the money, and leave you to eat in peace. Sure, it's not the most elegant dining experience you ever had, but you got your food with a minimum of pain.

En mi entorno, en el que hay unos cuantos conversos Java todos están de acuerdo y es que es difícil no estarlo, ¿cuántas veces habéis tenido que instanciar tres o cuatro clases para llamar a una puñetera función que luego habéis invocado así como absurda.getInstance(new Noseque).lamadre.quemepario(), con el peligro de obtener en algún momento un NullPointerException como una catedral?. ¿Y enchufaros la API de una jerarquía de clases e interfaces de 100 folios para hacer alguna trivialidad?. Si habéis programado en Java seguro que más que una.

Así que el primer consejo de hoy (que seguro que ya conocíais) es: aunque hagas una API que hasta un programador de BASIC pueda usar no vamos a dejar de pensar que eres un rato listo...

Y el segundo es: cuando os tengáis que enfrentar con un engendro de librería así (que os pasará), usad el interprete de Jython para familiarizaros con la API. Ayuda mucho porque puedes ver en que orden hay que instanciar las cosas y cómo sin tener un ciclo "compilar/ejecutar".

Por cierto, he llegado a este enlace a trave de la bitácora de Ian Bicking. También pensaba escribir sobre algo que ha comentado Havoc Pennington en su weblog durante estos días pero lo dejo para más adelante... o no

Viernes, 12 de Marzo 2004

Un gobierno de unidad

11:35h.
Lo Social

Como todos aquí, siento un gran dolor por lo que ayer sucedió, mezclado con impotencia, rabia y por último desorientación. Es muy doloroso ver semejante horror sentado sin poder ayudar, sólo observar. Lo último en lo que te apetece pensar es en las elecciones, pero la actualidad manda y las elecciones se celebraran estemos preparados o no.

Desde todos los partidos se está haciendo un llamamiento a la respuesta ciudadana el 14 de Marzo, para que acudan a votar sea cual sea su opción. Creo que está fuera de toda duda que la gente responderá, está de más pedirlo. La gente de bien se vuelca en estas ocasiones y así lo hemos visto hoy, ayer y siempre. Sin embargo, creo que la ciudadanía no es la única que debe dar ejemplo sino que también la clase política debería hacerlo.

Por eso me sorprende no haber leído todavía en ninguna columna de opinión, el planteamiento de un gobierno de unidad nacional, en el que entren al menos los principales partidos. Sé que apenas hay tiempo para la reacción, pero me gustaría ver un compromiso entre los partidos para formar Gobierno mixto que gobierne hasta que se esclarezca lo sucedido y se detenga a los culpables. Después de eso que convoque nuevas elecciones, porque pretender que esta tragedia no va a alterar su resultado es un absurdo (sea en la dirección que sea). Éso sería verdadera unidad. Mucho más que coincidir en una manifestación.

No sé si la constitución prevee algún mecanismo para este tipo de situaciones, de ser así tal vez fuese otra solución.

Nada más. Simplemente un abrazo muy fuerte a los afectados por esta barbarie, que me parece que somos todos, en mayor o menor medida.

Viernes, 27 de Febrero 2004

Genéricos en C#, C++ y Java

10:42h.
Tecnología

En Artima hay publicada una entrevista a Anders Hejlsberg (por fascículos, como es tradicional en Artima), co-creador C#, en el que se discuten las principales características del lenguaje y de la plataforma.

Es una lectura interesante, al menos la parte que he leído referente a los genéricos en Java, C# y C++. Pero he leído una cosa que me ha llamado mucho la atención, en este caso referente a Java:

For example, with Java generics, you don't actually get any of the execution efficiency that I talked about, because when you compile a generic class in Java, the compiler takes away the type parameter and substitutes Object everywhere. So the compiled image for List<T> is like a List where you use the type Object everywhere. Of course, if you now try to make a List<int>, you get boxing of all the ints. So there's a bunch of overhead there. Furthermore, to keep the VM happy, the compiler actually has to insert all of the type casts you didn't write. If it's a List of Object and you're trying to treat those Objects as Customers, at some point the Objects must be cast to Customers to keep the verifier happy. And really all they're doing in their implementation is automatically inserting those type casts for you. So you get the syntactic sugar, or some of it at least, but you don't get any of the execution efficiency. So that's issue number one I have with Java's solution.

¡Para este viaje no hacían falta alforjas! Quiero decir, al final vamos a seguir teniendo estructuras de Objects, con montones de casts y de sobrecarga. Y ahora, además, sin ser plenamente conscientes....

¿Soy el único al que le parece que Sun, al menos con ésto, les está dando un caramelo a sus programadores para que queden contentos, en lugar de mejorar efectivamente la plataforma?

Domingo, 28 de Diciembre 2003

Windows es superior, vale ya de chorradas

08:52h.
Educación

Admitámoslo de una vez y dejémonos de hipocresías. Harto estoy de tanto software gratis y tanta tontería, y de que se mienta a la gente ¿a quién se le ocurriría dar algo gratis si pudiese venderlo? Ésa es la prueba más evidente de que es inferior. Supón que has invertido un montón de pasta para un producto y resulta que éste es una puta mierda. Sabes que nadie te va a dar un duro por él, ¿qué haces?. Lo publicas bajo una licencia Open Source. Acto seguido, millones de jovencitos con acné empezaran a clamar que es lo mejor que se ha hecho desde el queso en aceite. Gracias al hecho de que esos jovencitos con problemas de socialización son los que acaban haciendo el trabajo para las PYMES que no quieren gastarse dinero en contratar buenos Ingenieros Superiores, llegamos a la situación actual. Millones de Webs corriendo Linux+Apache+PHP+MySQL... de verdad que no sé cual de los cuatro es más triste como producto.

¿Ejemplos? ¿Queréis ejemplos? Mirad Zope sin ir más lejos. ¿De verdad creéis que con eso se puede hacer una Web decente? Maldita sea si ni siquiera se pueden editar los ficheros de una manera normal, es imposible encontrar nada en la documentación, sin contar con que se arrastra. Normal porque está hecho con un lenguaje cojonudo como proyecto de investigación, pero que es completamente inusablea día de hoy, al menos hasta que la velocidad de los procesadores se multiplique por 10.000. Comparadlo con servidores de aplicaciones como Weblogic o el Microsoft Application Center, y decir que le llega a la suela del zapato sin que se os caiga la cara de vergüenza.

¿Más? ¿Qué hay de OpenOffice? Sun metió la pata cuando lo compró, y lo único que se le ocurrió para rentabilizar la inversión fue darlo gratis. Ya que no servía para ganar dinero, por lo menos valdría para que la mejor suite del mercado se vendiese un poco menos.

¿Más? MySQL... no me hagáis hablar de MySQL que me dá la risa.

Si ya sé lo que me váis a decir. Que si la estabilidad de Linux y que no sé qué. ¡Mentira! ¿Cuál el último Windows que probastéis? ¿Windows 95? (Linux era cojonudo ya aquel entonces ¿eh?). El sistema operativo Windows XP, basado en tecnología NT, es la tecnología más avanzada a nivel de sistema operativo que jamás ha visto el ser humano. Es decenas de veces más estable y rápido que Linux, al tiempo que intuitivo y fácil de manejar. Pero no sólo eso sino que además es seguro puesto en buenas manos. Joder, si ni siquiera los gurús más radicales de Lunix(Debian) han podido mantener a los hackers fuera de sus servidores. ¿Qué grado de lavado de cerebro es necesario para que siguiéramos sin ver la realidad?

Bueno, destrozados los argumentos técnicos ¿qué nos queda? La ideología, la libertad del software. Propaganda anarco/comunista. Buscad las páginas de links de la CNT o del Partido Comunista y veréis como tengo razón. Antes de que os déis cuenta acaberéis pensando que la única opción que queda es votar a Llamazares, o cosas aún peores (anarquismo, ecologismo...). Ésta es la parte crucial, la parte del lavado de cerebro sin la cuál la parte técnica no se sostiene en absoluto. Pensad por vosotros mismos, pensad por qué la peor dictadura del mundo(China) va a apostar por el software libre, mientras el adalid mundial de la libertad(Estados Unidos), usa los productos de Redmond y tiene en MicroSoft a la compañía que mejor representa el sueño americano. Joder, si es que hay que estar ciego para no verlo...

Por mi parte, me ha costado darme cuenta. A pesar de que todo me lo indicaba, me resistía a creerlo por toda la demagogia que me había tragado y llegado a creer. Por mí podéis seguir con vuestros navegadores ultra-lentos, suites ofimáticas marginales, sistemas operativos inusables, pero yo sé que en vuestro fuero interno sabéis que tengo razón. Por mucho que me insultéis la mayoría de vosotros acabaréis admitiéndolo como yo lo hago. Y los que no, será porque seguís en un estado de adolescencia perpetua.

Un saludo

P.D: No os molestéis en insultarme porque dudo que vuelva a visitar barrapunto. Feliz fanatismo.

Actualización: Como ya os habréis imaginado, ésto era una inocentada, mejor dicho, una maldita inocentada, y no que de repente haya "visto la luz". Sé que se veía de lejos, pero es que la he improvisado esta mañana al ver el día que era y me he metido tanto en el papel que al final me he pasado(esperaba un barrapunto más bromista como el de otros años). De verdad no me extraña que haya tantos Trolls porque es tremendamente divertido. Espero que os hayáis reído la mitad de lo que lo he hecho yo escribiendo ésto. Un saludo y gracias a todos los Trolls que por aquí merodean por su inspiración ;-)

Domingo, 21 de Diciembre 2003

Python 2.3.3 publicado

09:28h.
Python

BarraPython anuncia que la versión 2.3.3 de Python ya está disponible :-)

Sábado, 20 de Diciembre 2003

Un gran banco español usa Python en un proyecto importante

03:02h.
Python

Eso leo en la página de Pyro, una tecnología de componentes para Python. Cito:

Pyro is at the center of a credit derivatives distributed sytem (in use at one of the largest banks in Spain) consisting of a dozen financial components running on a Sun Enterprise 10000 server, and about twenty desktop workstations. Pyro connects the financial components on the servers with each other and also with the desktop applications on the workstations. Pyro is also used to connect calculation worksheets in Excel to the servers, using a COM proxy written in Python that makes it possible to speak PYRO from Excel macro's. This is a complex project, involving 150000 lines of code in C++, Python and VB, and Pyro is the glue that holds it all together.

El banco prefiere permanecer "en el economato", pero buscando en las listas de pyro se puede averiguar fácilmente.

Miércoles, 17 de Diciembre 2003

Python sobre .NET podría llegar a ser más rápido que CPython

10:16h.
Python

Ya se habló por aquí acerca de la posibilidad de ejecutar Python sobre la plataforma .NET. El proyecto en cuestión fue una "prueba de concepto", y los resultados no fueron en absoluto impresionantes. Sin embargo, Jim Hugunin, creador de Jython, ha realizado una primera implementación (llamada IronPython) que bate a CPython en algunas(bastantes) áreas. Como él mismo dice, dista de ser una solución a nivel industrial como ahora mismo lo es Jython, pero los resultados son prometedores.

Por otra parte, ésto entra en cierto conflicto con ciertas cosas que le había leído a Dan Sugalsky, creador de Parrot, acerca del hipotético pobre rendimiento de (Perl|Python|Ruby) sobre (.NET|JVM). Supongo que habrá que esperar a ver si cómo se siguen desarrollando las cosas.

Jueves, 11 de Diciembre 2003

IPython: Un inteprete Python mejorado

10:43h.
Python

Dado que las bitácoras de barrapunto podrían pasar fácilmente por un club de fans de Python (no hay día en el que no haya, al menos, una noticia sobre Python), sé que aquí se apreciará este programa. IPython, es un shell de Python mejorado. Tiene coloreado de sintaxis, autocompletado, acceso rápido a la documentación, capacidad de grabar las sessiones, acceso al shell, etc... Me he enterado de su existencia lurkeando en comp.lang.python, y las opiniones son bastante buenas. Espero que os resulte de utilidad.

Por mi parte, hace ya algún tiempo que devoro todo lo que cae en mis manos sobre Python, aunque la verdad, leo mucho más de lo que practico. A ver si consigo que eso cambie de aquí a poco...