Gedit evoluciona a IDE

CS50 Curso MOOC de Harvard

Lo que me permitió descubrir esta nueva funcionalidad

Entre las cosas que hago estos días, está un curso MOOC dictado por Harvard, CS50 a través de edX.org, no sé cuantos de uds lo conocen pero se los recomiendo si su deseo es aprender a programar (viene con certificado gratis incluido, y si no te gusta la programación hay una gran cantidad de opciones para escoger), bueno el asunto es que ellos te proveen de una máquina virtual para que puedas trabajar y con todas las herramientas incluidas que ellos ya han preparado para ti, así no tienes que preocuparte por otra cosa sino por aprender.

Sin embargo, yo nunca he sido muy fan de las máquinas virtuales, así que leyendo por aquí y por allá y gracias al hermoso repositorio de AUR ya tengo instalado lo básico. Lo curioso es que en el curso se utiliza el compilador clang en vez de gcc, al principio esto me extrañó, de hecho antes no sabía que existía este compilador (ya luego me enteré que hay guerra santa entre los dos y Stallman le da un infarto cada vez que se menciona clang xD). Al principio decidí ignorar el nuevo compilador pues soy de esos que piensa ¿para que tener dos herramientas que hacen el mismo trabajo?

Gedit y Clang hacen equipo

Sin embargo al final decidí darle una oportunidad al compilador básicamente por dos razones, estaba teniendo problemas a la hora de compilar (específicamente con la etiqueta -Qunused-arguments que al parecer no existe en gcc) y segundo porque en una de las actualizaciones rutinarias noté que el Gedit me lanzó un tip de que para activar el “code assistance” (asistencia de código) era necesario instalar clang. En vista de esto decidí probar de que se trataba y ejecuté (solo válido para Arch y/o Manjaro)

sudo pacman -S clang

La magia vino al instante =). Si colocas el puntero sobre las advertencias te indica la pista de lo que está mal, lástima que en la captura de pantalla desaparezca.

Captura de pantalla

Las siguientes líneas pueden herir sentimientos
Por supuesto hay que resaltar que la magia no solo viene de gedit, de hecho esto no fuera posible sin clang, utilizando las APIs correctas los demás editores también podrían hacer uso de la asistencia de código. Sé que a los mas puristas esto les debe dar dolor de cabeza, pero hay que reconocer el buen trabajo de los desarrolladores de clang, y la conclusión inmediata a la que puedo llegar es,
  • La competencia siempre permite la evolución con beneficio a los usuarios.
  • No todo lo que no sea estrictamente GPL es malo
  • Quienes predican libertad de pensamiento deberían justamente hacer evolucionar los programas en base a las necesidades de los usuarios, porque los pensamientos de todos valen, no solo el de los desarrolladores. (Tu programa puede tener todo lo que quieras, pero si a los usuarios no les gusta fracasas, punto)

Tengo entendido que esto es algo que a gritos se venía pidiendo que se incluyera en gcc, pero como las mayores demandas al parecer venían de grandes empresas privadas pues se ignoraron. No creo que eso sea el mejor ejemplo de libertad de pensamiento y de lo que el open source predica y representa.

Para reflexionar
Soy un gran admirador del Open Source y Linux en general, lo utilizo a diario, pero últimamente me he comenzado a cuestionar ciertas cosas que pienso que deberíamos mejorar como comunidad. Creo que hemos perdido un poco el rumbo del verdadero significado de lo que significa libertad de pensamiento y lo que era el open source en un principio, ahora nos hemos convertido en caníbales que entre nosotros mismos nos vivimos odiando a nosotros mismos y a los demás, odio a los usuarios de Windows, odio a los usuarios de Apple, si uso Ubuntu odio a los debianitas y viceversa, si uso Arch odio a los de Gentoo y viceversa, y lo peor de todo es que a los nuevos potenciales usuarios los tratamos como coleto si es que se les ocurre hacer una pregunta “trivial” para nosotros que por supuesto para ellos no lo es.

Sé que no todos son así, pero una buena parte de la comunidad linuxera seguro se siente identificada, y estoy convencido que como sigamos así, jamás podremos conquistar el escritorio. Tenemos que dejar el odio entre nosotros a un lado, tenemos que tratar mejor a los nuevos potenciales usuarios sin importar si hacen preguntas “tontas” o “repetidas” y no menos importante, los desarrolladores deben dejar de hacer guerra a las empresas privadas y centrarse en atender las necesidades, la fragmentación es una consecuencia directa de esto pienso yo. Seguro estoy que si se hubieran atendido las necesidades de los demás, sin importar de donde provinieran hoy la historia habría sido “gedit y gcc hacen equipo para formar un IDE” o “gcc permite a los pequeños editores convertirse en verdaderos IDEs”


45 comentarios

  1. Muy buen artículo, y estoy 100% de acuerdo contigo sobre eliminar el odio. Un solo árbol no constituye el bosque. Actualmente tenemos Linux, FreeBSD y la familia BSD en general, Mac, Windows, Solaris, UNIX, etcétera, y todos son árboles del bosque de software que usamos los seres humanos.

    La Diversidad es consustancial a La Humanidad.

  2.   joaco dijo

    Creo que exagerás con el odio. No creo que los desarrolladores tengan odio por otros proyectos, más bien algunos usuarios lo tienen.
    Con respecto a lo que decís sobre tener más tacto con el usuario, me parece perfecto.

  3.   Marcelo dijo

    Las libertades del software libre (que parece que confundes con Open Source) son:

    la libertad de usar el programa, con cualquier propósito (Uso).
    la libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a las propias necesidades (Estudio).
    la libertad de distribuir copias del programa, con lo cual se puede ayudar a otros usuarios (Distribución).
    la libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie (Mejora).

    Esto tiene poco que ver con la “libertad de pensamiento”, que es un concepto más bien relacionado con la política o, si me apurás un poco, con el liberalismo en economía.

    La libertad de pensamiento no tiene, en principio, ninguna incompatibilidad con el patentamiento de software, con que cierres tu código, etc. etc.

    Todo esto, claro, suponiendo que desde el punto de vista filosófico fuera posible una libertad de pensamiento casi descontextualizada como la que planteas.

    Saludos.

    1.    Daniel N dijo

      Tienes razón, pero hago el comentario de esa forma porque siempre se ven comentarios que precisamente tratan de hacer ver que software libre es libertad de pensamiento. Y no, el open source puede ser de pago o gratuito, el software libre es gratis y abierto, es lo que entiendo. Lo que mencionas está muy bien, pero recuerda que mas allá de lo técnico, el software libre es una ideología o filosofía, y aunque yo sé que lo hacen para protegerse, no permitir a entes privados tomar parte del código, y modificarlo y/o añadirle funciones privadas no me parece muy libre que digamos, y es justamente todo el rollo del por qué nació clang. Clang es software libre, sin embargo a diferencia de la GPL su licencia le permite ser modificado por quien quiera, como quiera, cuando quiera y sin que nadie se entere (a diferencia de la GPL no puedes modificar sin hacer públicas las modificaciones) me parece mucho mas libre. Por supuesto eso tiene la ventaja/desventaja de que las empresas añadirán partes privadas y son vulnerables al adoptar, extender y extinguir

      1.    Staff dijo

        “Y no, el open source puede ser de pago o gratuito, el software libre es gratis y abierto, es lo que entiendo.”
        Hay que evitar ese error tan difundido, y que tanto daño hace.
        El Software Libre, perfectamente puede ser de pago (o no, es una decisión del autor), de hecho, si lees la GPL (La licencia de SL mas popular del mundo) veras que fomenta el cobrar por el software que desarrollemos.

        Igual vale la pena distinguir entre privado (propio, particular) y privativo, este ultimo se refiere a que priva de las libertades (en este caso de las que el SL habla).
        El SL perfectamente permite que NO distribuyas tu versión modificada y la mantengas como privada, el problema viene cuando quieres lucrar con un trabajo derivado de otros sin respetar su derecho de autor.
        Lo que puedes hacer, si no quieres compartir tu código, es usar el de otros sin modificarlo, enlazarlo al tuyo(Por ejemplo como una libreria), dejas cada parte son licencias diferentes y listo, para eso esta la LGPL.

  4.   alguien dijo

    Es cierto nos hemos convertido en una jauría de trolls y mojigatos, vivimos despotricando en contra de esto o aquello por ejemplo hablamos y predicamos el software libre de una manera casi fanática pero cada vez que instalamos un sistema linux corremos a instalar chrome mientra despotricamos contra firefox pese a que este es menos intrusivo y no es desarrollado por una conpañia con fines monopolistas o despreciamos a gnome y su shell por mera envidia pues en el fondo sabemos que hoy por hoy es la joya de la corona en entornos de escritorio y preferimos apoyar a distros que a penas contribuyen a este proyecto y que solo actúan como garrapatas mientras la verdadera distro que lo representa y la empresa que lo patrocina cae en deshuso

  5.   blonfu dijo

    “Tengo entendido que esto es algo que a gritos se venía pidiendo que se incluyera en gcc, pero como las mayores demandas al parecer venían de grandes empresas privadas pues se ignoraron.”

    Pues en ese caso me parece bien, si son grandes empresas que modifiquen ellas el código y luego lo compartan con la comunidad, que para eso tienen mas recursos.

    1.    Daniel N dijo

      En realidad eso hicieron y por eso ahora existe clang, crees que esas modificaciones no intentaron entrar en principio a gcc?? Sin embargo la directiva de gcc liderada por el mismo Stallman no solo son cerrados a las sugerencias sino que además recuerdo haber leído que la programación del mismo fue hecha de forma que no fuese modular y no se pudiera utilizar partes de código sacrificando eficiencia para mantener el hermetismo. Ya vemos que en los benchmark clang compila mucho mas rápido, sin embargo aún le falta madurar ya que en la ejecución de los binarios, los de gcc van mas rápido.

      1.    artus dijo

        Nada más lejos de la realidad, GCC no lo gobierna Richard Stallman, está liderado por el GCC steering committee, desde 1998, el cual tiene miembros de la industria y de la academia.
        Cuando no conocemos un tema, es mejor quedar callados o preguntar o indagar.

        Disfrutemos la vida mientras podamos.

        https://gcc.gnu.org/steering.html

      2.    Daniel N dijo

        Jeje ok, hiciste la tarea, reconozco que hice un comentario ligero y me equivoqué, sin embargo es lo que inferí tras leer unas listas de correo donde se nota que Stallman supone muchísima autoridad y es altamente influyente en las decisiones que allí se puedan tomar.

        Igual no quita el hecho que ignoran las sugerencias.

  6.   artus dijo

    Hombre, creo que llegas tarde al mundo de la programación y por eso no te has enterado que esa funcionalidad se puede aplicar a cualquier editor usando GCC (Siempre que el editor lo permita, claro). Ese es un trabajo que hace gedit tras bambalinas no clang, clang es un compilador.
    Por otro lado no debes hablar cuando no conoces los hechos de fondo, si no te gusta GCC no lo uses pero no hables cosas que no conoces.
    GCC es de los mejores compiladores que existe al igual que clang. Además GCC es software libre y ese es uno de sus mayores méritos.

    Saludos y disfrutemos de la vida mientras podamos.

    1.    Daniel N dijo

      Nunca dije que no me gustara GCC, es el principal que uso, y si, puede que haya llegado tarde, pero aunque tienes razón de que las asistencias de código son de parte del IDE como netbeans o eclipse, los editores pequeños no contaban con dichas features para mantener si simplicidad y bajo consumo de recursos, Clang les permite tener asistencia de código, como lo hace? no sé, pero es algo que es gracias a Clang y que GCC no tiene 😉

      1.    artus dijo

        Si lees este blog sabrás como gedit hace la asistencia de código y no clang.

        https://blogs.gnome.org/jessevdk/2011/11/13/gedit-code-assistance-plugin/

        Saludos.

      2.    Daniel N dijo

        Yo creo que este link tiene mas validez que el tuyo y me da la razón
        http://clang-analyzer.llvm.org/

        Gedit utiliza la herramienta code static analyzer de clang para ejecutar su asistencia de código. Esta herramienta es posible y funcional gracias al diseño modular de clang.

        “Strictly speaking, the analyzer is part of Clang, as Clang consists of a set of reusable C++ libraries for building powerful source-level tools. The static analysis engine used by the Clang Static Analyzer is a Clang library, and has the capability to be reused in different contexts and by different clients”

      3.    artus dijo

        “Esta herramienta es posible y funcional gracias al diseño modular de clang.”
        No entiendo porque te empeñas en mencionar que GCC no es modular, si no fuera así cómo crees que puede compilar C, C++, ADA, Objetive-C, Java, Fortran.

        Otra cosa que me parece curiosa es tu empeño por hacer quedar mal a GCC, todos los proyectos tienen o han tenido problemas y GCC no es la excepción y los ha superado, por eso el kernel Linux sigue usando GCC para su compilación.

        Sólo me incomoda que hagas quedar mal a GCC, siendo esta herramienta la que ha hecho y sigue haciendo posible tanto sobre valioso y maravilloso que usamos en el día a día.

        Modular es GCC tanto como clang:
        http://lwn.net/Articles/457543/
        http://gcc-melt.org/
        http://stackoverflow.com/questions/14072779/how-can-i-run-gcc-clang-for-static-analysis-warnings-only

      4.    Daniel N dijo

        Me refiero específcamente a esto

        “Clang is designed as an API from its inception, allowing it to be reused by source analysis tools, refactoring, IDEs (etc) as well as for code generation. GCC is built as a monolithic static compiler, which makes it extremely difficult to use as an API and integrate into other tools. Further, its historic design and current policy makes it difficult to decouple the front-end from the rest of the compiler.”

        Extraído de http://clang.llvm.org/comparison.html, (lástima que no encuentro donde fue que leí que el mismo Stallman admitió que el diseño fue intencionalmente así para que precisamente no pudiera ser usado por otras herramientas)

        También vale la pena mencionar el otro punto de crítica.

        “Various GCC design decisions make it very difficult to reuse: its build system is difficult to modify, you can’t link multiple targets into one binary, you can’t link multiple front-ends into one binary, it uses a custom garbage collector, uses global variables extensively, is not reentrant or multi-threadable, etc. Clang has none of these problems.”

        De todas formas creo que me mal interpretas, no es que yo prefiera clang, lo que quise decir es que ojalá GCC hubiera sido el protagonista de este artículo.

      5.    artus dijo

        Hace tiempo publiqué en este foro una idea, la repito una vez más:
        “Creo que tu opinión es infundada, por encima de las cuestiones técnicas esta el software libre. Eso es lo que más preocupa al Sr. Stallman. Por lo que veo lo mejor para ti es la parte técnica y estas en tu derecho, pero cuando no tengas donde elegir porque una empresa se apoderado de tu tecnología lo pensarás dos veces.
        Por otro lado con GCC puedes verificar el código en tiempo real, como vuelvo a repetir tu opinión es infundada.”

      6.    Daniel N dijo

        Creo que has dado justo en el clavo, definitivamente soy mas objetivo y menos religión, y es justo lo que creo que se ha convertido el software libre, religión, de hecho creo que ahora entiendo el por qué de tanta guerra santa.

      7.    artus dijo

        Me parece que con éste artículo estás alejando más a la gente del software libre y de su verdadero enfoque.
        Sólo quisiera dejar dos enlaces a dos libros que ojalá tuvieras la paciencia de leer para entender mejor las ideas del software libre.

        Software libre para una sociedad libre
        https://www.gnu.org/philosophy/fsfs/free_software2.es.pdf

        Cultura libre
        http://www.worcel.com/archivos/6/Cultura_libre_Lessig.pdf

        Saludos y disfrutemos de la vida mientras podamos.

  7.   MariadeLaO dijo

    El -Qunused-arguments de CLANG supungo que se podrá replicar en gcc con alguna combinación de -Wunused-function / -Wunused-label / -Wunused-value / -Wunused-variable

  8.   juan dijo

    Yo creo, con todo el respeto hacia lo que has escrito y que en parte comparto, que lo que a veces se nos olvida es por qué y para qué nació el software libre, que luego evolucionó hacia el opensource.

    1.    msx dijo

      Involucionó: el OSS es SL sin la carga social y filosófica.

      El OSS es meramente la parte técnica que ya está contenida dentro del SL pero no viceversa.
      El OSS tomó fuerza simplemente porque se encarga de lidiar con aspectos técnicos sin tener que lidiar con cuestiones morales o éticas.

      En todo caso y para la práctica ambos se comportan de forma similar – no igual, similar. El problema con las licencias no GPL es que permiten cerrar ciertos forks en algún momento determinado; el “problema” con la GPL en el paradigma social actual ya que las empresas no pueden crear ventaja competitiva con el desarrollo en sí sino con los servicios y nichos de negocio asociados al mismo.

  9.   eduardo dijo

    Hola, te felicito por el artículo, me parece una postura bastante razonable la tuya, la cual comparto. Uso Linux desde hace unos 5 años, y lo elegí por la libertad que me da para seleccionar que cosas quiero usar y tener en mi PC y cuales no, lo cual Windows no te permite. Reconozco que es verdad que hay intolerancia de ciertos usuarios de Linux a otros que no lo son o que usan una distribución distinta, y creo que una cuestión cultural, de no saber aceptar a otros con distintos criterios. Ojalá todos lo entendamos y podamos aportar más a la comunidad. Un saludo desde Cordoba, Argentina.

  10.   mario dijo

    Aplaudo tu texto. La humanidad ha evolucionado como grupo gracias a priorizar unos pocos objetivos comunes, pero solo ha sido posible desde el respeto por las diferencias.

  11.   joanlequi dijo

    La libertad de pensamiento no significa que harán todo lo que se pida, el programador decide qué y cuando implementar (el tiene libertad de hacerlo como le parezca). La libertad es que si esto no te cuadra puedes hacerlo tu si sabes o pagar a alguien para que lo haga por tí.

  12.   Gabriel dijo

    Las herramientas están ahí para utilizarlas al margen de si te gustan o no, si no te gustan créate una o apoya para mejorarla como sucede con las comunidades en el software libre, si tienes dinero cómprate una … le duela a quien le duela en el mundo del software libre las cosas funcionan así, hay proyectos que son realmente buenos y siguen mejorando, otros no tan buenos y están estancados, otros que quedaron en el intento … es lo que hay no joroben al resto por usarlo o no, ahora en el tema del ñu-tux es inevitable que de vez en cuando nos salga nuestro “corazoncito arrogante” en contra del software privativo y más aun si se trata de winbug, que le vamos hacer es nuestro karma que hemos formado durante tiempo al ver las ENORMES BONDADES de usar ñu-tux y software libre!! (:

  13.   msx dijo

    No entiendo, este art. habla de Gedit como IDE – cof Builder: https://wiki.gnome.org/Apps/Builder cof – o es propaganda de clang?

  14.   Guillermo dijo

    Cuando hablas de odios supongo que te referirás a la lucha contra la imposición de cierto software y de formatos privativos que restringen la compentencia y la libertad de los usuarios. No es odio, es defensa ante el robo y la imposición del mismo. Por ejemplo en España si compras cualquier portátil de marca de imponen la compra de un software llamado Microsoft Windows aunque no lo quieras, sólo la marca Asus parece devolver el importe de Windows sin problemas, pero, luego desde las empresas hasta las Administraciones Públicas quieren imponerte comprar licencias de software privativo para hacer algo tan tonto como firmar una queja a través de la web, ejemplos: Seguridad Social, Defensor del Pueblo, …
    No es que los defensores del uso del software libre odien o no toleren otros pensamientos, el problema es cuando los que tienen otros pensamientos quieren imponer la compra de productos a terceros existiendo otras soluciones que respetan lo que cada uno quiera usar.
    Es muy diferente.

    1.    Daniel N dijo

      No, lo que describes es defender tu libertad, eso está bien, yo lo que describo, es usuarios linux arrmetiendo contra usuarios windows, usuarios expertos arremetiendo contra usuarios nuevos, debianitas arremetiendo contra ubuntuseros y así, cargado siempre de comentarios llenos de insultos y arrogancia.

  15.   Federico dijo

    Creo que ves o tenes la imagen estereotipada de las cosas, y comunidades. A mi entender el software libre se refiere a eso, hacer las cosas como uno cree que son mejores, entre muchas otras . No es obligatorio que un programador o equipo de desarrollo incluya caracteristicas que a otro le interesen. Imaginate si fueran fieles a esa regla, todos los programas estarian llenos de caracteristicas y serian interminables. Todos tendran sus buenas ideas y no se pueden incluir todas las variantes… seria un nunca acabar. Si a alguien le parece insuficiente como se a desarrollado un programa tiene que dejar de exigir, hacer un fork (y aprobechar la licencia GPL/GNU para reutilizar codigo ageno) e incluir su propia caracteristica/mejora/diseño y finalmente terminar aportando a la comunidad, y si alguien decide que es util lo implementara. Eso es libertad. Las demas criticas son parte del folckore humano, humor, caracter. No hay que tomarse las cosas como si fueramos protagonistas de una pelicula de marvel….. nada se va a perder por que el programador de turno mande a la mierda a NVIDIA, su codigo quedara igual para la posteridad y disfrute del resto de nuestra especie, conocimiento compartido y en constante evolucion, los hombres finalmente pereceran con sus cualidades y aspectos distintivos, caracter y demas. Pero su creatividad esfuerzo y trabajo perdurara para que todo aquel que lo considere util pueda reutilizarlo.
    Y algo importante que para mi hay que resaltar, vos decis “…….Quienes predican libertad de pensamiento deberían justamente hacer evolucionar los programas en base a las necesidades de los usuarios, porque los pensamientos de todos valen, no solo el de los desarrolladores. (Tu programa puede tener todo lo que quieras, pero si a los usuarios no les gusta fracasas, punto)” …….pero a mi entender es cambiar el enfoque, gnu pretende no poner en el centro al usuario como usuario tal, lo que pretenede es poner en el centro de la informatica al hombre, (repito no al usuario como mero cliente) sino al ser humano como parte de una comunidad, que algunas veces o en mayor medida participe de manera pasiva, sin desarrollar codigo no implica que este mal el enfoque. Y recordemos que el que adquiere compra o utiliza software dentro del mundo gnu lo hace no solo con sus funciones si no tambien con el codigo, que le permite adaptarlo a sus necesidades si estas no son satisfechas por el programa original o si en algun momento le surgen nuevas. Eso es lo unico que importa, y que hay que defender. Claro que hay muy buenos programas, y mejores que son privativos, pero el punto es que nos privan de libertad, nos estafan cuando nos venden un simple binario (si aderimos al concepto GNU) y muchos vulneran nuestra privacidad y confianza.

    PD: Exelente tu aporte/difusion/didactica y conocimiento. Es uno de mis blogs de referencia. Saludos y epero se pueda comprender mi enfoque y critica. Saludos.

  16.   juanfgs dijo

    ” los desarrolladores deben dejar de hacer guerra a las empresas privadas y centrarse en atender las necesidades, la fragmentación es una consecuencia directa de esto pienso yo. ”

    Eso digo yo, para que inventaron gEdit si podrían haber mejorado Emacs, y dicho esto para que inventaron Emacs si podrían haber mejorado vi que todos sabemos que es inútil si dedicás ese esfuerzo en mejorar ed . Claro que los hombres de verdad simplemente hubieran mejorado cat.

    Y ya que estamos para que usar Linux si podríamos seguir usando Unix viejo y peludo y nos sacamos de encima a Stallman y sus locuras de hippie.

    y como diría Homero: Por cierto eso fue puro sarcasmo…

    1.    Yukiteru dijo

      Justo al clavo @juanfgs. “Fragmentación” es algo que existe en todo sistema operativo, no importa cual sea, y no es precisamente algo malo, todo lo contrario, esa diversidad habla mucho sobre la salud de un sistema operativo y su adopción en el ámbito que sea.

      1.    Daniel N dijo

        Es como todo, y la exageración de juanfgs es muy acertada, yo no es que esté en contra, estoy en contra de la grosería de cantidad de fragmentación. Por supuesto, si no fuera por eso, no tendríamos linux y la evolución de software jamás se daría, pero tanta fragmentación hace imposible prosperar a linux en el escritorio.
        Desde mi punto de vista, si es necesidad hay que hacerlo, linux fue necesidad, devuan es capricho, emacs es capricho, ubuntu necesidad (y ojo que no me gusta). En fin, por supuesto que es válido no coincidir en cuales son y cuales no son, el punto es todo en exceso es malo, y linux sufre de exceso de fragmentación

      2.    juanfgs dijo

        “y linux sufre de exceso de fragmentación”

        Comparado con que?

        ¿comparemos, cuantos editores de texto para desarrollo o IDEs existen en el software libre y en el software privativo?

        http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#C.2FC.2B.2B

        Si te fijas en la tabla hay muchos IDEs libres que de hecho aparecen en más de una categoría mientras que los propietarios se concentran en hacer su producto para un solo lenguaje. Mirando esa tabla te diría que el software privativo se fragmenta más en terminos de buscar ganancias (en muchos casos innecesarios).

        Las fragmentaciones en programas de software libre se producen por lo siguiente:
        – Los programadores quieren agregar funcionalidad a X IDE pero no programan en el lenguaje que esta escrito
        – Los programadores no concuerdan con las filosofías de los IDEs existentes para un lenguaje
        – Los programadores quieren mejor soporte para X lenguaje y ningun IDE actual lo proporciona

        En el caso de GCC, es abrumadoramente lo contrario. Y es porque GNU siempre prefirio las colecciones, al estilo UNIX (en parte de ahí el acronimo GNU is not Unix si te fijas stallman lo explica en su página ), de ahi que emacs o GCC sean grandes colecciones integradas de componentes. Tu queja básicamente es: ” X developer no hace las cosas como YO quiero que las haga, y YO (que no contribuyo nada por cierto) quiero que se hagan así, entonces son unos estúpidos por no hacer lo que YO digo con SU tiempo”

        Pero como siempre, es más facil armar un culebrón de algo que se lee en una lista de correos, que simplemente poner el culo en la silla y contribuir código.

  17.   Diego dijo

    Estoy completamente de acuerdo con Federico y pienso que lo mejor es tener diferentes y múltiples herramientas a nuestra disposición. Por cierto muy buen artículo.

  18.   tmpusr dijo

    bueno…. otro post de un redactor confundido, que no tiene ni idea
    de las bases de SL y con un odio incomprensible a GNU.
    El sofware libre tiene un costo, mas alla del economico que se le pueda cobrar o no
    a los usuarios, es moral y cuesta mucho, por ello pocos lo pueden pagar y otros
    pocos menos contribuir, aunque todos lo podemos usar sin terner ni puta idea de que
    se trata, que quieres pasta, pues vendelo, que quieres fagocitarlo en tu proyecto?
    pues a pagar licenciando con GPL
    se libre, se GNU, jo jo jo

  19.   mario dijo

    La “Fragmentación” es inherente a la evolución, es una cualidad imprescindible: la capacidad de adaptación es lo que asegura la supervivencia de una especie.
    De no ser por la fragmentación tendríamos solamente autos Ford, y Linux jamas habría existido.

    1.    Daniel N dijo

      Tienes toda la razón, la cosa es que en Linux no hay fragmentación, hay es grosería de exagerada cantidad de fragmentación, y todo en exceso es malo. Solo entra en distrowatch y verás la cantidad de distribuciones de Linux que hay, como hace un programador para preocuparse porque su programa funcione bien en todas?

      1.    Staff dijo

        “como hace un programador para preocuparse porque su programa funcione bien en todas?”
        Eso no algo de lo que deba preocuparse el desarrollador, el pone su código fuente disponible y cada quien lo empaqueta como quiera.
        Quizás alguna distro no quiera ni siquiera incluir el programa en sus repos, y el desarrollador no tiene ni voz ni voto en algo como eso, y eso es lo correcto, el desarrollador no es lo mas importante en el mundo.

      2.    Morfeo dijo

        Te animo a comparar la cantidad de marcas y modelos de automóviles (cuya única funcionalidad es transportar personas) contra la cantidad de distribuciones de linux (sistemas operativos que tienen miles de funcionalidades y formas de uso) y te darás cuenta que la supuesta “fragmentación” de la que hablan no es ningún problema: ¿Qué pregunta es más dificil: “¿qué automóvil elijo?” ó “¿que distro elijo?”?
        O más bien ¿Cómo hace un fabricante de parabrisas para hacer que su “vidrio” funcione en todas las marcas y modelos del mercado?
        Por cierto, ¿por qué la “fragmentación” no hizo fracasar a linux en el mercado de servers? ¿y en el de routers? ¿y en el de moviles?
        Mu conclusión: La fragmentación no es un problema, es inherente al ser humano que es LIBRE de hacer lo que quiere. Lo contrario es la imposición de una única idea (o de un par), de una uníca forma de hacer las cosas. Eso es la “no-fragmentación”, que sólo se dá por el dominio de unos pocos sobre otros muchos.
        Saludos.

  20.   thisnameisfalse dijo

    El autor Daniel N quería informarnos de una funcionalidad que permite a los editores de texto plano recibir información externa de otro componente del sistema. Se trata de Gnome Code Assistance ( https://blogs.gnome.org/jessevdk/2014/04/11/gnome-code-assistance/ ) que a través de D-Bus permite comunicar los mensajes de error de un determinado compilador (en este caso Clang) con un editor de texto (Gedit). Los mensajes de error que lanza el compilador Clang incluyen el número de línea donde está el error, y el plugin de Gedit “gedit-code-assistance” permite mostrar dichos errores sobre el propio código fuente.

    Es algo parecido a SyncTex, que permite que nos posicionemos en cualquier línea de texto de un PDF generado por LaTeX, y nos abra un editor de texto, mostrando el código LaTeX que generó la línea del PDF (y vicecersa). Muy útil para depurar.

    Por tanto, es como si un editor de texto plano se convierta en un pseudo-IDE, que suele mostrar errores y código a la vez.

    Lástima que un artículo que podría resultar útil haya quedado tapado por tanto comentario off-topic sobre la libertad del software libre, que tiene su importancia, pero no en este contexto.

    De todas formas, la solución es sencilla: que los autores de los comentarios se reúnan y saquen un plugin para gcc que se comunique con D-BUS e implemente la funcionalidad Gnome Code Assistance.

    1.    Morfeo dijo

      ERROR:
      La solución es que los autores de Gnome usen GCC en lugar de CLang para su “Gnome Code Assistance”, ya que ambos tienen la misma funcionalidad, como ya alguien comentaba:
      http://stackoverflow.com/questions/14072779/how-can-i-run-gcc-clang-for-static-analysis-warnings-only
      El error del autor de este post es creer que porque los de Gnome optaron por Clang en lugar de GCC, es problema de GCC.
      Es como los que creen que la culpa es de Linux que no tenga drivers para cierto hardware, cuando son los fabricantes los responsables de crear los drivers para los SO donde quieren que funcione.
      ¿Vamos a tener que hacer ingeniería inversa también con Gedit para tener un “code assistant” con GCC? (al menos va a ser más fácil, porque tenemos el código)

    2.    Morfeo dijo

      Además, si lees el artículo que linkeas (https://blogs.gnome.org/jessevdk/2014/04/11/gnome-code-assistance/) ¡¡¡habla de los problemas que tienen con clang!!!
      “The second issue is that we do not really control libclang, so if there is any bug that could cause crashes, there is no way we can work around that easily”…”we found that libclang was not yet as stable as we’d hoped”
      “we couldn’t easily extend the plugin to other languages than those supported by libclang”…”In gedit, we only support C (and by extension Vala) and python”

      Queda claro que lo de clang vs gcc fue una decisión del equipo de gnome por algún motivo propio, no por las supuestas “deficiencias” de GCC como supone el autor de este post (de hecho están encontrando deficiencias a CLang, luego ningún software es perfecto, sea libre, abierto o cerrado)

      Saludos!

  21.   odio a windows dijo

    Blah blah blah.
    Si usas Linux y toleras a Windows….mejor regresate a Windows,no te necesitamos aquí

  22.   AdrianArroyoCalle dijo

    Estoy viendo muchos comentarios críticos con el autor que no tienen fundamento. Pongamos los hechos sobre la mesa, los desarrolladores de GCC son muy cerrados y nunca se abrieron a innovaciones. Las empresas entonces apoyaron a Clang y ahora este genera mejores mensajes de error y permite hacer análisis de código (y muchas más cosas) a través de libclang. Por ejemplo para pasar una librería de C a Rust se usan herramientas de libclang, no porque no nos guste GCC, sino porque directamente se negaron a poner esas características.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.