06 diciembre 2006

Anjuta ha muerto! Viva Geany!

No, siendo estrictos eso no es totalmente cierto. Anjuta no ha muerto, pero ha evolucionado.

Anjuta es un IDE (entorno de desarrollo integrado) para Linux, que permitía crear con rapidez pequeños programas, compilarlos y comprobar su funcionamiento. El editor de las versiones 1.x tenía refinamientos como realzar la sintaxis en colores, emparejar llaves y paréntesis, permitir completar el código...

Para mí era el rey para los pequeños programas, mucho más cómodo de utilizar que entornos más pesados, más orientados a proyectos de gran tamaño, como KDevelop. Pero el tiempo ha pasado, y Anjuta ha evolucionado. En las versiones 2.x es "casi imprescindible" crear un proyecto para cualquier cosa. Y si abrimos un único fuente (como el clásico "Hola Mundo"), podremos editarlo, pero no aparecerá en el menú la opción de Compilar. Además, el número de dependencias de otros paquetes ha aumentado, lo que hace que a más de una persona le haya costado incluso ponerlo en funcionamiento...

Por eso, para mí, ha llegado el momento de decir "El rey ha muerto! Viva el (nuevo) rey!", porque existe alternativa. Otro IDE de pequeño tamaño podría ocupar el (maravilloso) lugar de Anjuta 1.2. Se trata de Geany, con características muy similares, aunque todavía se encuentra en fase beta.



¿Geany es la solución para editar y compilar fuentes individuales desde Linux? Todavía no completamente. Aún tiene algún fallo y alguna carencia de relativa importancia. Por ejemplo, en la versión 0.8, la traducción al castellano tiene más de una errata (aun así, será más cómoda que trabajar en inglés para quien no maneje este idioma con soltura); cuando ejecutamos una aplicación en algunas distribuciones de Linux (pocas, afortunadamente *), la ventana de terminal se cierra inmediatamente, sin dar tiempo a leer lo que ha aparecido, y eso no es práctico para probar programas no interactivos; además, en mi caso, tras pulsar el botón "Guardar todo" la aplicación se ha cerrado misteriosamente, y luego no quería volver a arrancar, hasta que no he borrado su carpeta de configuración (".geany")... decididamente hay cosas por corregir.

Pero todavía es un programa en fase inicial. De hecho, insisto en que yo he probado la versión 0.8 y ya está disponible para descarga la 0.9. Quizá incluso esas "pequeñeces" ya estén corregidas. Y si no, la versión 0.10 se espera para Navidad de este año 2006.

Esperemos que este proyecto nos haga la vida más cómoda a los que con frecuencia trabajamos con pequeños fuentes bajo Linux. De momento, las expectativas no son malas...

¿Más detalles? http://geany.uvena.de

(*) Yo he tenido este problema con Ubuntu 6.10, pero no en Fedora Core 5. En un comentario posterior a este artículo tienes más detalles sobre cómo solucionarlo si te encuentras este problema.

12 comentarios:

Nacho Cabanes dijo...

Ya he descubierto por qué se cierra la ventana al ejecutar un programa desde Geany en ciertas versiones del sistema operativo Linux:

El script que lo pone en marcha es "geany_run_script.sh", que llama a /bin/sh y que termina con una orden "read".

Pero en Ubuntu 6.10 (y quizá en otras versiones también) /bin/sh es un enlace a /bin/dash, no a /bin/bash, y en dash no se puede usar "read" a secas para hacer una pausa, tiene que ser "read x" (o cualquier otra variable).

Solución momentánea: cambiar el enlace de /bin/sh a /bin/bash (hace falta ser root, claro).

Aun así, ya he informado del bug y de la solución "razonable" al desarrollador jefe, para ver si lo corrigen en una próxima versión (quizá la 0.10, prevista para navidad de 2006).

Anónimo dijo...

¿Y cuando compilas con Geany dónde aparece la consola con el resultado?

Nacho Cabanes dijo...

Si el "shell del sistema" está configurado correctamente (lee un poco más arriba), debería aparecer la consola en primer plano, mostrar el resultado y esperar a que pulses Intro.

Si no llegas a ver la consola, quizá tengas que corregir el enlaces, para que /bin/sh apunte a /bin/bash (mira el primer comentario)

Anónimo dijo...

Hola de nuevo, Nacho. A ver si me puedes ayudar.
Como no quiero usar Windows más, estoy intentando programar en C bajo Linux. Estoy probando Anjuta, Kdevelop, CodeBlocks, Geany, Kate, etc.
Bueno Code Blocks parece que es muy sencillo y que no hace falta crear proyecto para compilar un pequeño programa, o sea que se puede compilar sin crear proyecto, pero al ejecutarse el terminal con el resultado, me aparece esta línea:

sh: /la ruta que sea: permiso denegado

En fin, sólo quiero algo sencillito como Dev C, pero en Linux. Compilar pequeños programas, ya sabes. A ver si me puedes aconsejar. Gracias.

Nacho Cabanes dijo...

Depende de la versión que uses de Linux, pero en principio Geany llama a /bin/sh, así que quizá el problema sea que en tu distribución no exista ese fichero o sea un enlace a un "shell" bastante limitado.

¿Solución? Puedes hacer que /bin/sh/ sea un enlace a /bin/bash

Sólo con eso es fácil que funcione. Al menos, así me funcionó a mi en Ubuntu 6.

Y si no, prueba a descargar la última versión de Geany, que quizá solucione el problema.

(Por cierto, si tu distribución incluye Anjuta 1.2, ese entorno también se puede usar sin necesidad de crear un proyecto).

Anónimo dijo...

como puedo saber la macro que usa devc++ en windows para ejecutar la sentencia:
system("pause");
Y poder ejecutar el mismo progrma en linux pero compilando condicionalmente y evitar que se ejecute dicha sentencia, que macro tendría que usar

Nacho Cabanes dijo...

Dev-C++ para Windows no hace pausa al terminar la ejecución del programa. Da la impresión de que ejecuta directamente el programa creado, en vez de usar ningún fichero BAT, con lo que no podrías forzar la pausa, salvo que te atrevas a descargar el fuente de Dev-C++ (está en su web), modificarlo y recompilarlo, (necesitarás Delphi 5, si no recuerdo mal).

La alternativa más habitual es añadir getch(); (o system("pause"); como tú dices)justo antes del final de tu programa, para que pare a que pulses una tecla antes de volver. (Aun así: recuerda quitar ese "getch()" si se trata de un programa que tengas que entregar en una universidad o centro de estudios).

En cuanto a que ese mismo programa funcione en Linux, tendrías que ver qué constantes simbólicas permite tu compilador, pero es muy fácil que te sirviera algo como

#ifndef LINUX
getch();
#endif

(es habitual que haya una constante simbólica con el nombre del sistema operativo).

Anónimo dijo...

Hola! a todos tengo instalado en mi computador Ubuntu y estoy utilizando GEANY para programar en JAVA, al momento de construir lo hace perfecto sin problemas pero al momento de ejecutar el programa este no lo ejecuta quisiera saber si a alguien le ha pasado lo mismo y como lo ha solucionado, ante todo Muchas gracias por su atencion,

Nacho Cabanes dijo...

El problema para ejecutar los programas en Java es que tienen extensión:

Un programa en C (por ejemplo) no tiene extensión en Linux, y tiene extensión .EXE en Dos/WIndows, por lo que se puede ejecutar si se llama directamente por su nombre.

En cambio, un programa en Java tiene extensión .class, por lo que para ejecutarlo, desde Geany o desde casi cualquier otro editor, tienes que indicarle que añada ".class" al nombre de fichero sin extensión, y, habitualmente, que lance al intérprete de Java:

java programa.class

cesabal dijo...

hola a todos estoy buscando y no he encontrado como.... la manera para modificar la sintaxis de colores para geany, me gusto muchisimo, creo que es el que mas se parece al ultraedit en win, pero yo trabajo en ubuntu asi que pues si alguien me puede ayudar se lo agradeceria...

cesabal dijo...

No pude esperar tanto, jeje y lo encontre pero lo dejo publicado por si alguno de uds lo llega a necesitar, la forma es la siguiente en /usr/share/geany hay un archivo que se llama filetypes.xml, pues en mi caso aca pongo los colores para php html y javascript que son los que me interesaban a mi, sin embargo, hay mas archivos que supongo son para editar colores en otros lenguajes, bueno la cosa entonces es que yo puse los colores mas o menos como esty acostumbrado, esto es asi:

php_default=0x000000;0xEFEFEF;false;false
php_simplestring=0x656565;0xEFEFEF;false;false
php_hstring=0x656565;0xEFEFEF;false;false
php_number=0xFF0000;0xEFEFEF;false;false
php_word=0x0000FF;0xEFEFEF;false;false
php_variable=0xFF7300;0xEFEFEF;false;false
php_comment=0x005442;0xEFEFEF;false;false
php_commentline=0x005442;0xEFEFEF;false;false
php_operator=0x196010;0xEFEFEF;false;false
php_hstring_variable=0x00FF00;0xEFEFEF;false;false
php_complex_variable=0xA020F0;0xEFEFEF;false;false

el primer color en hex es el color de la fuente, el segundo es para el fondo... muy util esto para acomodar los colores a como mas nos guste, espero haber ayudado a quien lo necesite!!

Anónimo dijo...

Hola
soy algo nuevo y estoy empezando a programar en python, el problema es que cuando quiero crear una linea no se como hacerlo ,porque pongo create_line() pro no aparece nada al ejecutar