Quiero aprender Gambas ¿Por donde empiezo?

48
13787

Bueno empezamos con explicar que es Gambas:

Gambas es un ambiente libre de desarrollo en Linux basado en un intérprete Basic con extensiones de objetos, un poco como Visual Basic™ (pero NO un clon !). Con Gambas, puedes diseñar rápidamente tu aplicación gráfica con QT o GTK+, acceder a bases de datos MySQL, PostgreSQL, Firebird, ODBC y SQLite, controlar aplicaciones con DBUS, traducir tu programa a cualquier lenguaje, crear Front End de comandos de linux, crear aplicaciones de red fácilmente, hacer aplicaciones 3D OpenGL , hacer aplicaciones web CGI, generar paquetes de instalación para diversas distribuciones, etc.


Comentaros que os podéis encontrar con dos versiones de Gambas: Gambas2 y Gambas3.

La más actual es Gambas3, y os aconsejo que utilicéis esta ya que esta más orientada a la programación por objetos que Gambas2, aparte que Gambas2, ya no se actualiza por el autor Benoît Minisini y usa Qt3 que esta en “deprecate” (deshuso).

Ide de gambas3
IDE de gambas3

¿Como lo instalo?

Para los usuarios de Debian/Ubuntu teneis un ppa para instalarlo:

$sudo add-apt-repository ppa:nemh/gambas3
$sudo apt-get update
$sudo apt-get install gambas3

También podéis compilarlo, desde el código fuente. El proceso esta aplicado en la pagina web del proyecto http://gambas.sourceforge.net/en/main.html, también podéis verlo explicado con capturas de pantalla en cuso de gambas: explicación de compilar el código fuente

Y para aprenderlo a usar ¿por donde empiezo?

Existen varios sitios web que podéis visitar:
http://gambasdoc.org/help/?es&v3: Página de la documentación oficial. Donde encontráis toda la información de la sintaxis del lenguaje (en varios idiomas).

Página web de la documentación de gambas2 y gambas3
Página web de la documentación de gambas2 y gambas3

http://www.cursogambas.blogspot.com.es: Es un curso de gambas que estoy montando y empieza desde cero conocimientos en programación, explicando las principales ordenes, bucles, ejemplos, etc….

Incluso se comentan ejemplos de aplicaciones de bases de datos, uso de patrones de diseño y ejemplos de gambas con Arduino.

Nota:
El propio Ide de Gambas3 trae un buen número de ejemplos, listos para usar. Para ver el código fuente tenéis que previamente “guardar como…” los ejemplos en otra carpeta, y abrirlos desde la nueva carpeta, para asi poder ver el código fuente.

Foro:
gambas-es.org: Foro en castellano, donde puedes consultar más de 20.000 mensajes publicados y con más de 2000 usuarios registrados

Libros:
Tenéis dos libros gratuitos:
1) En castellano: Gambas: Este libro era para la version 1.99, pero os puede servir mucho.
2) En ingles: http://beginnersguidetogambas.com/: Es para la versión 2 pero comenta sobre la versión 3.

Video Tutoriales:
Tengo hecho un canal en YouTube, donde subí varios vídeos tutoriales, la mayoría los hice con gambas2, pero también valen para Gambas3:
http://www.youtube.com/user/jusabejusabe

Algunos manuales:
http://jsbsan.blogspot.com.es/p/tutoriales-y-manuales-de-gambas.html

Otros blog donde podéis encontrar más artículos sobre gambas:
http://jsbsan.blogspot.com.es/
http://www.sologambas.blogspot.com.es/
http://gambas-basico.blogspot.com.es/
http://willicab.gnu.org.ve/componente-ncurses-en-gambas-3/
http://gambaslinux.wordpress.com/

Espero que lo disfrutéis, saludos

48 COMENTARIOS

  1. Hay una distribución llamada Daxos que usa un escritorio realizado en Gambas 3. Se supone que tiene por objeto ordenadores de bajos recursos. La versión principal se basa en Ubuntu y la de Rasperry Pi en Debian. No la he probado, pero por las capturas que he visto, se ve agradable. El juego de Iconos se parece bastante al que se usa en Haiku OS.
    Saludos !

  2. Hola, muy buen post. Se ve realmente interesante y da ganas de aprender. Quería hacer una consulta: ¡por casualidad hay librerías para controlar con gambas el puerto usb? El año pasado hice un proyecto para la facultad, y necesitaba usar el puerto usb, es por eso que en mi grupo terminamos usando visual basic con unas librerías especiales. Pero estaría muy bueno poder usar esta plataforma y quería saber si también hay librerías o algo por el estilo.
    Saludos.

  3. “Quiero aprender Gambas ¿Por donde empiezo?”

    POR SALIR CORRIENDO.

    Gambas, really? Habiendo tantos lenguajes y tantas cosas interesantes para aprender… Gambas!!!??
    No man, no…

      • @Jsbsan, es que justamente, ese es el problema, Gambas no es programación *seria* y peor todavía, deforma el aprendizaje y el primer acercamiento a la programación ofreciendo un híbrido RAD que francamente deja muchísimo que desear.

        @Daniel: depende lo que quieras hacer, por supuesto, pero en líneas generales: C++ (Qt, tranquilamente), stack PHP, Python, Ruby… depende lo que busques.
        Python viene hacendo mucho ruido ya que no sólo es scripteado sino que usa un precompilado que lo hace mucho más rápido, tiene librerías y bindings a otros lenguages como C++ para casi lo que quieras y además viene migrando exitosamente a la web. Lo mejor de Python es que el mismo código con muy pocos cambios funciona tanto de forma local como en cualquier otro entorno, de hecho hoy en día muchas herramientas de administración a nivel sistema se programan directamente en Python…

        Java es otra cosa horrible, alguna vez vieron su código? Su forma de crear clases y funciones? Y encima todo ello corriendo sobre una maquina virtual… no, gracias.

        • Perdon? Apoyas el uso de C++ pero no el de Java?… de donde crees que viene la mayoría de la sintaxis de Java? La forma de crear clases en Java me parece muy natural en relación con la POO a diferencia de C++ que fue pensado para que programadores de C pudieran hacer uso de la POO, es verdad que es verboso (que escribes muchas lineas) pero si quieres algo mas rápido de codificar puedes usar alguno de los lenguajes que corren en la máquina virtual de java, esta Ceylon por ejemplo, que es desarrollado por Gavin King quien trabaja para Red Hat, por cierto en Java no hay funciones (a excepción de los constructores) como tales, hay métodos.

          Además, te quejas de la máquina virtual de java? LOL es una de las mejores cosas que tiene esa plataforma. Pero eso no es todo, sino que apoyas el uso de PHP. PHP es el visual basic de estos tiempos, en mi humilde opinión PHP es un lenguaje creado para personas que no son programadores de verdad. Osea, que no son profesionales. Justo lo que comentas sobre Gambas.

          Sabes la cantidad de aplicaciones empresariales que corren sobre una máquina virtual de java? Y no solo eso, sino muchas otras aplicaciones desktop. El simple hecho de que java sea multiplataforma lo hace una buena plataforma de desarrollo.

          En Python y Ruby no te discuto nada, me parecen muy buenos lenguajes, claros, simples y útiles.

        • python es una mierda
          ni si quiera se necesitan declarar las variables
          y para que hablar de php

          de gambas
          son todos tontos aqui
          gambas no es para aprender a programar
          y tampoco para hacer programas poco serios

          gambas es para hacer el tipico programa administrativo
          el front end
          la interfaz para el usuario de la base de datos
          esos programillas que por lo general solo le sirven a una sola empresa/usuario

          • dile eso a google , que esta usando python ademas de otros muchos proyectos cientificos que tambien lo usan, o programas como bittorrent y el wallet oficial de bitcoin

          • “gambas es para hacer el tipico programa administrativo el front end la interfaz para el usuario de la base de datos esos programillas que por lo general solo le sirven a una sola eempresa/usuario”
            ¿y te parece poco?

        • @msx
          “Gambas no es programación *seria* y peor todavía, deforma el aprendizaje y el primer acercamiento a la programación ofreciendo un híbrido RAD que francamente deja muchísimo que desear.”

          Es cierto Gambas no es programación seria, de hecho es un lenguaje, más un IDE, más un compilador de bytecodes, más un intérprete. La programación la pone el programador y será seria o no dependiendo de si el programador es serio o no.

          Tampoco es que sea una herramienta RAD… o lo es tanto como lo puede ser cualquier IDE con un diseñador de formularios (es decir, nada).

          Respecto de que deforma el aprendizaje… tampoco. La tendencia de comenzar a escribir un programa por el interfaz gráfico no es el problema, sino la sugerencia de incluir todo tipo código en los manejadores de eventos de los controles gráficos.

          Nota: comenzar por el interfaz gráfico no es algo que a mi me guste, pero la metodología RAD que se basa en el desarrollo de prototipos que se puedan mostrar al usuario para obtener realimentación rápida, es válida. Un IDE como el de Gambas no puede enseñar una metodología, aunque hay que conceder que se podría hacer mejor.

          Pero es un problema de la mala implementación de RAD de casi TODAS las herramientas que se autodenominan RAD.

          https://en.wikipedia.org/wiki/Rapid_application_development

          Respecto de que Gambas deja muchísimo que desear… depende de qué es lo que deseas.

          La tecnología web deja mucho que desear: HTML, CSS, javascript, web-servers, todos desean que sea más sencilla, la complejidad accidental que introducen estas tecnologías es abrumadora.

          La tecnología que sirve de infraestructura a Internet deja mucho que desear: la pila de protocolos tcp/ip está muy lejos de algo que se piense como “serio” (en cuanto a su diseño).

          De C/C++ que se puede decir, las personas somos animales de costumbre C++ se diseñó pensando en los programadores de C. La complejidad de C++ es monstruosa y al día de hoy hay nuevos intentos de mejorar lo que C++ ofrece (aunque existen intentos que datan de hace mucho tiempo atrás): go language, Mozilla Rust, por ejemplo. Si no llegan a prosperar o no han prosperado las más antiguas es “gracias” a los programadores, a la necesidad de retro-compatibilidad y a los intereses comerciales.

          Gambas fue un intento de hacer un Visual Basic (6) para Linux que no fuera un clon. Su evolución a partir de ahí es buena. Hoy ofrece muchas características (pero no todas, claro) presentes en lenguajes como Java, pero de una manera mucho más sencilla.

          En ese sentido Gambas se parece un poco a Python, me refiero al enfoque pragmático: se intenta dotar al lenguaje de características que los programadores encuentran valiosas, aunque el resultado sea un lenguaje bastante heterogéneo (este problema en Gambas es mucho menor que en Python).

          Respecto de tus otros comentarios: si lo que alguien quiere hacer es aprender a programar (de forma amateur) tus sugerencias presentan muchos problemas:

          C++: muy complejo y propenso a errores, también requiere de mucho más trabajo para obtener el mismo resultado que con otros lenguajes (por ejemplo, Gambas) por lo que también será desmotivador para el aprendiz en la mayoría de los casos.

          Stack PHP: no es mejor que Gambas con respecto a sugerir malas costumbres de programación, mezclar código de negocio con código del interfaz de usuario es lo que propuso PHP desde sus comienzos al permitir embeber código en un fichero html. Más complejo de instalar y configurar todas las herramientas necesarias. No es de propósito general (no puedes hacer una aplicación de escritorio o al menos no es lógico hacerlo).

          Python: soporta 3 paradigmas lo cual puede ser confuso para un aprendiz y puede obligar a empezar por cosas complejas como comprender conceptualmente dichos paradigmas. No tiene un diseño elegante, sino pragmático. Es tan potente y permisivo que puede presentarle al aprendiz verdaderos desafíos cognitivos. En su favor, dispone de una amplia comunidad y material de estudio. Más allá de que intento mostrar que cada lenguaje puede presentar problemas e incluso enormes desafíos para un aprendiz, Python con la documentación adecuada es una muy buena opción para comenzar.

          Ruby: tiene el mismo problema que Python en cuanto a los paradigmas que soporta. Su sintaxis podría ser mucho más clara y fácil de aprender si la hubiera tomado (como tomó tantas cosas) de Smalltalk, pero su compromiso con otros lenguajes hace que aprender la sintaxis no sea tan fácil como podría ser, para un aprendiz. Definitivamente no es un lenguaje que haya sido diseñado para ser fácil de aprender, aunque tal vez sea algo más fácil que Python. Tiene muy buena documentación y comunidades que lo hacen una muy buena opción como 1er lenguaje.

          El único lenguaje que conozco que fue diseñado con inteligencia para facilitar su aprendizaje, pero sin ser sólo un lenguaje académico, es Smalltalk, para mí la mejor opción de todas si se consideran el lenguaje y las herramientas, ya que la documentación para aprender a programar con Smalltalk es algo anticuada. También dispone de comunidades donde se puede aprender.

          Considerando el contexto, usar Gambas para aprender a programar es perfectamente lógico, especialmente si el aprendiz ya tuvo contacto con alguna versión de BASIC.

          Se extrañan buenos materiales de estudio para Gambas ya que aún son escasos e incompletos, pero los esfuerzos de jsbsan en ese sentido están haciendo que Gambas como opción para aprender a programar (para un usuario de GNU/Linux, i.e., hobbist) sea una opción a considerar. Gambas también dispone de comunidades útiles para el aprendizaje.

    • Como dicen en mi pueblo: “El saber no ocupa lugar”
      Y para el que quiera aprender a programar, yo pienso que es una elección a tener en cuenta..
      Todos los que han hecho programas con interfaces gráficas con pyhton o java, estarán conmigo, en que con Gambas es mucho más fácil.

      • De nuevo, en mi humilde opinión, que sea “fácil” no quiere decir que sea bueno o mejor. Depende de varios factores. Tu proyecto es de ocio, o es profesional? Es de alto rendimiento? multiplaforma?, etc…
        Ademas hablando de GUI, no has visto la API de JavaFX? Esta bien padre, efectos, css y muchas cosas atractivas, y que desarrollas en muy poco tiempo.

        Pero si hablas de empezar a programar o de aprender, creo que Python es una buena elección. De allí iria a C con Ensamblador y después a cualquier otro lenguaje de alto nivel.

        • sea java sea “fácil” para multiplaforma no quiere decir que sea bueno o mejor.
          que python sea facil de aprender no quiere decir que sea bueno o mejor
          es pesima idea recomendacion para empezar
          de hecho todas son pesimas ideas para empezar a aprender a progamar

          • De que hablas… Yo nunca dije que Java sea mejor. Ningun lenguaje es el mejor, todo depende del proposito. Tampoco entiendo porque dices que Python sea mala idea como primer lenguaje. Muchas universidades utilizan python para enseñar la logica y los algoritmos, se usa porque es simple, claro y consiso. Al ser de script los estudiantes no se preocupan por temas como compilacion. El no tener que usar una estructura fija para crear un programa da simplicidad lo que hace que el alumno se concentre en los algoritmos y la logica.

            Una vez que el alumno tiene conocimiento sobre estos temas puede iniciar en temas mas avanzados, un buen lenguaje para ver estos conceptos es C. En C se aprende a realizar las cosas a mano, las estructuras, los punteros, etc. Ahora que ya conocen C es hora de ver instrucciones mas tediosas y mas cercanas a la maquina, algun lenguaje ensamblador para conocer el funcionamiento de la maquina.

            Ahora que el alumno tiene la logica, las estructuras, algoritmos y que sabe de la complejidad de las instrucciones de bajo nivel esta preparado para aprender un lenguaje de alto nivel.

            A mi esta forma de enseñanza me parece la adecuada, no das tu opinion respecto a porque no, simplemente dices que te parece pesima idea. Me gustaria saber tu opinion.
            Saludos.

      • Mi soy súper nuevo en este foro y en particular me gusta la electrónica y muchas otras cosas mas entre ellas programar.Primero cuando tome la decisión de dejar windows y me pase a Linux no tenia ninguna oferta mejor que gambas para dominar mi Bit.Segundo deje de jugar por el puerto paralelo para poder hacerlo por USB….un adelanto y tercero para al fin poder realizar mis proyectos me sobra paño.Por lo tanto creo que Gambas me dio un aliento a seguir con la programacion no como me paso con otros lenguajes que al fin pesque algo y salio ya otra cosa ejemplo del VB6 paso .net y sharp y ya no entendia un pomo y mis proyectos se estancaron.Gracias a Linux y gambas puedo continuar. Una abraso a todos

    • Desde mi punto de vista aunque no me gusta gambas, cualquier entorno que ayude a que las personas se inicien en la programación y que de forma satisfactoria incentive al desarrollo de aplicaciones es una joya. Desarrollo RAD tenemos al axcelente lazarus y a qtcreator.

      Personalmente lo que mas odio de gambas es que no es multiplataforma siendo un “Interprete”, no le veo la lógica, solo se puede decir que tuvo mala arquitectura de desarrollo, para que halla sido tan difícil portarlo a otras plataformas.

      • Yo he intentando aprender lazarus (de hecho, he realizado programas en este entorno), pero apenas encontré información ni manuales (hay uno que parece bastante bueno, pero cuesta bastante dinero y está escrito en inglés). Te invito a que hagas un post sobre lazarus donde comentes donde encontrar información para poderlo aprender.
        Saludos

      • “Personalmente lo que mas odio de gambas es que no es multiplataforma siendo un “Interprete”, no le veo la lógica, solo se puede decir que tuvo mala arquitectura de desarrollo, para que halla sido tan difícil portarlo a otras plataformas.”

        Se diseñó y desarrolló desde el comienzo para ser una herramienta de desarrollo para sistemas GNU/Linux. Jamás existió la intención de permitir que fuera multiplataforma, por lo que lo de la mala arquitectura de desarrollo es un error de apreciación tuya.

        Si eso es lo que más odias de Gambas probablemente odias: a C++ porque no es la mejor opción para el desarrollo web; a javascript porque no facilita desarrollar aplicaciones de escritorio; a Vala por su dependencia de GObject; a Messi porque no juega al tenis; y a Nadal porque no juega al fútbol.

    • Siempre termino identificándome contigo, coño xD

      La verdad es que si quieren programar, al menos desde mi punto de vista, lo mejor es Python, Ruby, PHP o, ¿Por qué no hace como yo y mandar a la chota todo y dedicarse a Javascript? Es un mundo ahí afuera y Gambas, bueno, no ofrece demasiado xD

  4. Interesante articulo, aunque le faltaron etiquetas como POO u programación.

    Al ser “un poco como basic” podria facilitar a muchos la posibilidad de comenzar desarrollos de aplicaciones bajo linux no creen??

  5. No es mi objetivo ofender pero siendo sincero, no le veo nada bueno aprender lenguajes poco serios como Gambas (al ver esa sintaxis tipo BASIC de los años 80’s) nomas falta que Microsoft los demande a Gambas por utilizar su lenguaje VB.
    Existiendo mejores lenguajes que aprender y que ofrecen mejores tutoriales como Javascript, Python, Ruby, Vala, Bash Script, C, C++.
    Esos lenguajes tienen futuro.

    • “Existiendo mejores lenguajes que aprender y que ofrecen mejores tutoriales como Javascript, Python, Ruby, Vala, Bash Script, C, C++.”

      La pegaste con Python y Ruby, las otras sugerencias que haces demuestran que nunca te tomaste 5 minutos para pensar qué dificultades presentan como 1er lenguaje.

  6. muchas gracias por dar a conocer este entorno, para los que ya usaron visual basic, gambas les resultara bastante fácil

    seria interesante un manual en formato epub de gambas

  7. mi estimado jbsan yo sigo tus tutoriales desde hace tiempo en lo personal me gusta gambas, por la facilidad de programación y algunos de sus controles, claro que aun puede ir mejorando su arquitectura pero en linux es una buena opción de programacion.

  8. Hubo un tiempo donde me pidiero utilizar el Visual Basic, como mi máquina solo es poseída por sofware del ñu hice las cosas en gambas.
    Es cierto que ambas plataformas son medianamente sencillas para acer cosas, pero la documentación es escasa en español.
    Personalmente no consideró este método programación real y si se quiere aprender verdadera progrgramacion útil para todo caso y pa siempre nada mejor que c/c++, emacs y el gcc

  9. Saludos JSBAN. excelente post, soy programador de gambas, y hasta estoy en el foro de gambas-es. Muy buena tu explicacion, gambas a mi parecer es un lenguaje, para iniciar el mundo de la programacion, pero si personalmente para proyectos serios, creo que no recomendaria gambas. Si quieren Programar como oficio profesional, existen otros lenguajes, C,C++,PHP, JAVA,JS,PYTHON. Saludos

  10. El repositorio de nemh ya no está activo. Para instalar el nuevo (y esperemos que definitivo) repositorio hay que usar:
    $sudo add-apt-repository ppa:gambas-team/gambas3
    $sudo apt-get update
    $sudo apt-get install gambas3

Dejar una respuesta