Consideraciones sobre los IDES

Resulta que ultimamente he estado probando lenguajes de programación, aunque esta práctica tan entretenida la tuve que dejar por un tiempo. En mi breve y entretenido periplo por los lenguajes de programación, tuve la oportunidad de usar diversos ides para diversos lenguajes. Sí, soy de los que piensan que el vim es para hacer scripts pequeños, no para programar, y que un ide, o algo parecido, puede ayudar mucho, no solo a programar, sino a aprender a programar.

Conozco a más de uno que se habrá escandalizado por ese ultimo comentario, pero paciencia.

Está claro que quien comienza a programar debería hacerlo con un editor de textos y el compilador en la linea de comandos, yo lo hice, y de verdad que aprendí algo de como funciona el lenguaje, bueno, los lenguajes, pero luego, cuando la filosofía del lenguaje está más o menos asimilada, un ide nos puede ayudar a complementar un poco más nuestro aprendizaje de dicho lenguaje. Un ide normal genera código, aqui es donde viene bien haber programado a pelo, y ese codigo más o menos eficiente es nuestra herramienta, generalmente la más útil pues nos ahorra trabajo tedioso; pero además, si ya hemos estudiado como funciona el lenguaje, ese código generado sirve como escuela, a veces como muestra de buenas prácticas, a veces como lo contrario, pero siempre es una porción de codigo funcional que podemos contrastar con la que nostros hemos escrito para situaciones similares, cuando eramos unos penitentes de editor de texto+compilador.

Ahora voy a hacer un breve recuento de los IDEs que me he tropezado por ahí:

Para java

  • Eclipse, en realidad lo he usado poco, aunque hoy mismo descargué una de las "distribuciones" que se hacen aquí para programar del lado del servidor, que es a lo que me dedico, y no sé, tendré que dedicarle otro post, por lo pronto debo decir que el plugin para tomcat no me reconoció el tomcat6, pero eso puede ser cosa de configuración, nada del otro mundo.
  • NetBeans es el IDE que uso en el día a día, me ha ayudado mucho a trabajar y a aprender, lo recomiendo para quien luego de haber estudiado java quiera comenzar a producir rápidamente, pero repito, estudiar primero.
  • vim ;)
Para C++
  • DevC++, es un buen ide para programar en windows y no depender del VS, este ide usa el complidador de la gnu, es bastante amigable y con buena ayuda, además existe una versión(?) para programar visualmente utilizando las bibliotecas wxWidgets.
  • Visual Studio, si ya sé, bueno este exelente ide tiene el defecto de ser aberradamente propietario, pero esto no es una arenga política. De todas formas no lo he usado extensamente, solo un tiempo hace 1 año y medio y de mala gana, y ahora solo el plugin para ObjectARX; no obstante si me he dado cuenta que como ide automatiza mucho el trabajo, aunque el editor está un poco flojo, al menos en comparación con NetBeans y Eclipse(este ultimo dicen que tiene un editor salvaje).
  • Kdevelop, NPI
Para Haskell
  • Existe un plugin para eclipse bastante bueno, que usa la consola de eclipse. Por defecto busca la instalación del GHC, pero creo recordar que también funciona con Hugs, aunque cuando eclipse crea el proyecto hace un compilado que es el que se ejecuta cuando corremos el programa, y segun recuerdo Hugs no compila.También podemos usuarlo de manera interactiva en el intérprete, dentro de eclipse.
  • Kate, bueno esto no es un ide propiamente dicho, siendo estrictos kate no es mucho más que el criticado vim, pero tiene sus ventajas. Completamiento de codigo (más o menos), colores (para lo que sirva), una consola embebida, y ya. Bueno y guarda sesiones y esas cositas, en general es un editor de texto con esteroides.
  • Emacs, aqui estoy frito, cuando lo estuve explorando fue que me cayó el segundo trabajo y ahí quedó, ya lo recobraré.
Para python
  • Boa-constructor, un buen ide sobre todo para programar python con wxWidgets, aunque me dio sus palos, en general me pareció demasiado pesado.
  • IDLE, este me encanta, es apenas algo más que una shell, pero con muchísimos esteroides, ademas de las labores usuales de una shell, puedes crear un fichero .py y depurarlo, sí paso a paso, sí sabiendo los valores de las variables y sus tipos en cada paso; tiene auto identacion, colores, y otras cositas.
Para Smalltalk
Una aclaración, en smalltalk como tal no es que haya varios IDEs, sino varias implementaciones, y el lenguaje está muy ligado a la interfaz gráfica, además es un lenguaje que todo programador de POO debe visitar alguna vez, algo así como la meca
  • gnu-smalltalk, mi primera elección fue esta, pero la descarté rápidamente, no es que esté mal, sino que el objetivo de los creadores era usar smalltalk como un lenguaje para pequeños scripts, no lo que yo andaba buscando.
  • Smalltalk/X, una buena implementación, pero me daba unos palos brutales en ubuntu, cuando me pasé a knoppix todo bien.
  • Squeak, este me ecantó, pero debo decir que no desde el primer momento, cuando lo instalé por primera vez en ubuntu la imagen por defecto tenía un monton de dibujitos y eso, por fortuna en una lista de smalltalk alguien vino en rescate de mi complejo de adulto y me dieron esto, aqui se puede descargar una imagen más "profesional", claro que luego de usar el squeak un poco me di cuenta que había sido una tontería mia juzgar el contenido por la apariencia, cosas de nosotros los humanos. Desafortunadamente, no le he prestado toda la atención que quisiera a smalltalk, ya veré.
Y hasta aquí mi experiencia, bueno faltan algunas cosas como el dreamweaver y el PHPEditor, pero son cosas que no pertenecen esta ultima etapa, y que tampoco me interesan demasiado, noten que no hablé de VB6 ni de C++Buider.

Mi presente no ha cambiado, sigo con Netbeans y VS, solo quisiera que algun día haskell y smalltalk paguen mis cuentas, pero por el momento es solo un sueño.

VC++ y AutoCad

Como ya he comentado aqui, acabo de iniciarme en el software privativo como freelancer. El trabajo es con Visual Studio 2005, más específicamente con VC++ y AutoCad, utilizando la biblioteca ObjectARX, pues bien, terrible.

Llevo programado en java y usando linux por 1 año y medio, y la verdad que ya me habia olvidado un poco de los diabólicos punteros y el incomprensible Windows, pero eso no es el problema, pues en definitiva los punteros los recordé y a Windows lo aguanto con paciencia; la cosa es la manera de hacer las cosas de esta biblioteca, o se trabaja así normalmente en C++?

En java estoy acostumbrado a que si una operación puede salir mal, pues la envuelves en un try-catch y evitas que la cosa se trabe, sé que en C++ tambien existen excepciones, pero estos de autocad parece que no, cuando un método puede salir mal pues hacen que el valor de retorno sea un tipo Acad::ErrorStatus, que puede ser Acad::eOk, Acad::eDuplicatekey, o lo que sea, y si tu objetivo con dicho método es obtener la referencia a otro objeto, pues nada, vivan los punteros! le pasas un puntero como parametro y cuando termina el metodo ya tienes tu referencia, siempre verificando que el método dio un Acad::eOk, por supuesto.

Claro que esta manera de trabajar tiene sus ventajas, puedes hacer una función que segun sus operaciones devuelva un Acad::ErrorStatus, que no necesariamente tiene que ser un error. Pero estoy seguro que esto se puede lograr con un mejor diseño.

La verdad creo que en general podría aprovechar mi experiencia de java con estas bibliotecas, pero por el momento, que solo estoy aprendiendo, el codigo me sale un poco espeguetizado, y es que esta manera de trabajar casi te invita a llenar de condiciones tu codigo, mis ejercicios parecen serpientes.

Ya se que en java están los thrown, pero vamos.

Me acabo de dar cuenta que estoy poniendo a java por los cielos y a ObjectARX(VC++?, C++?) por el piso. Es dificil no hacerlo claro, tras un tiempo usando java me resulta relativamente facil pensar mejor el diseño de un programa, por sencillo que sea, mientras que con estas bibliotecas aun comienzo, ya les contaré si el futuro es tan incómodo como promete el presente o si hablé mucha basura.

Habana Blues

Hace unos minutos volví a ver Habana Blues, es cierto, es solo una comedia sentimental, sin granes valores cinematográficos, pero cojones, siempre me saca las lágrimas. Y es que vivir en este país es siempre lo mismo, la espera, la infinita espera por una esperanza que, a falta de algo mejor es casi siempre un avión o una lancha. Cuba es un país maravilloso, me encanta vivir en Cuba, pero es muy difícil la escasez, es muy difícil despedir a los amigos que se van, que no se quieren ir, pero tampoco quedarse. Es difícil la esperanza tonta de los planes de encontrarnos algún día en algún lugar, al final siempre es una jodida despedida, al final es un singao adiós.

No quiero irme, pero se que lo haré, se que viviré una despedida de esas en las que tendré que reír y emborracharme para no llorar estúpidamente, y guardaré el dolor para la soledad.

Si algún día me voy me llevaré una copia de esta película, mi novia me pregunta si es que me gusta sufrir, no, es para mostrarle a mis anfitriones la otra cuba, la de verdad, la universal. Para mostrar que los cubanos somos como todos, que los amigos somos para siempre. Y que los inmigrantes tenemos un país, que no salimos de la nada, y que si venimos es por esa estúpida costumbre humana de querer sobrevivir. Estoy divagando, pero la fuerza de la tristeza, la que anticipo si algún día me marcho y la que vivo ahora que he despedido a dos amigos, junto a las lágrimas que se me secan, hacen que permita que lo incorrecto pulule, pues todo esto es incorrecto, esta situación, todo es tan ridículo, la emigración es ridícula. Innecesaria. Pero hay mucho dolor, un dolor que se intenta compensar regresando un día, triunfal, en el que se le muestra a los que quedaron todo el dinero que no han visto, pero estoy seguro que no es suficiente, estoy seguro que eso no vale una mierda.

NOTA: Disculpen las palabras obcenas, pero en un texto como este me resultan imprescindibles.

Democracia no representativa... la trae internet?

No soy un estudioso de la socio-política, ni siquiera un aficionado, mi preparación son los libros de historia que me he leido de puro placer y las noticias diarias.

Actualmente todas las democracias del mundo, hasta donde sé, son representativas, esto es: un grupo de personas elije a alguien para que represente sus intereses frente a un grupo de otros que también fueron elegidos para representar a otros, etc. Este modelo es también usado en muchos sitios de internet, los moderadores de forums por ejemplo; pero además he notado que también hay otros tipos de sitios como mename y javahispano en los que las noticias y los comentarios no son moderados por una persona, ni siquiera un grupo de personas, sino por la misma comunidad.

Obviamente hay una diferencia inmensa entre decidir que noticia sale y cual no y dirigir un país, pero creen que exista la posibilidad de que algún día nuestras democracias evolucionen a un modelo semejante? Está claro que la tecnología es primordial. Se imaginan un país en que las decisiones importantes se hagan a travez de algun tipo de referendum?

Esto implicaría un problema nada trivial en nuestros días, que las personas estén inmersas en los problemas del país, también se puede pensar que a la larga habra una mayoría acomodada a las desiciones de los que sí participan, como de hecho ocurre en estos sitios de los que hablo, pero a la vez tendrían la posibilidad de actuar en el momento que quisieran.

De hecho cada vez más seguido me llegan noticias de denuncias hechas por internet, quizás sean los primeros pasos, no sé.

El futuro es infinito, es muy difícil predecir algo, y yo no lo hago, solo me hago la pregunta y la comparto: Creen en la posibilidad de una democracia no representativa, de una democracia más real? Creen que internet modifique hasta ese punto la vida en la tierra? O, lo que es más probable, algunos la modifiquen, conduzcan, para seguir en las mismas pero de manera diferente.