Sistemas & Desarrollo
222 meneos
3543 clics
El monumental impacto del lenguaje de programación C [ENG]

El monumental impacto del lenguaje de programación C [ENG]

C es un lenguaje tan fundamental que muchos de nosotros olvidamos cuánto ha cambiado. Técnicamente un lenguaje de alto nivel en el sentido de que requiere que un compilador para que el código sea ejecutable, aunque es lo más parecido al lenguaje ensamblador que a la gente le gusta tener en estos días (fuera de entornos especializados de poca memoria). También se considera que es el lenguaje que hizo posible casi todos los lenguajes que vinieron después.

| etiquetas: impacto , c , lenguaje de programación c , unix , pdp-7
107 115 0 K 61
107 115 0 K 61
Comentarios destacados:                    
#2 #1 Ya te digo. Y cuando falleció Steve Jobs tiempo después, todos los medios explotaron. Y días y más días hablando sobre un tío que:
- Su único y verdadero mérito fué fundar, dirigir y popularizar su empresa (Apple). No diseñó ni creó nada para la posteridad.
- Era un tipo de cuidado que maltrataba a sus empleados.
- Acabó por deshacerse como si nada de la verdadera mente pensante que diseñó sus primeros ordenadores, Steve Wozniak, el cual supuestamente era su amigo.
- Y más cosas que hubo y que seguramente no han contado.

Y de Ritchie, como muchos otros genios que si nos dejaron un legado científico/tecnológico/artístico, algo realmente útil para la humanidad, ninguna mención en absoluto.
  1. Sin embargo; la muerte de un genio de la informática como Dennis Ritchie, que creó este lenguaje para reescribir UNIX, pasó casi desapercibida para la inmensa mayoría de la gente.
  2. #1 Ya te digo. Y cuando falleció Steve Jobs tiempo después, todos los medios explotaron. Y días y más días hablando sobre un tío que:
    - Su único y verdadero mérito fué fundar, dirigir y popularizar su empresa (Apple). No diseñó ni creó nada para la posteridad.
    - Era un tipo de cuidado que maltrataba a sus empleados.
    - Acabó por deshacerse como si nada de la verdadera mente pensante que diseñó sus primeros ordenadores, Steve Wozniak, el cual supuestamente era su amigo.
    - Y más cosas que hubo y que seguramente no han contado.

    Y de Ritchie, como muchos otros genios que si nos dejaron un legado científico/tecnológico/artístico, algo realmente útil para la humanidad, ninguna mención en absoluto.
  3. Python sería mucho mejor en mi opinión si adoptara la estructuración mediante llaves de C.
    Y lo mismo podría decir de Lisp, que con tantos paréntesis no hay quién se aclare.
  4. #3 tienes Caml; que es como List of Insipid and Stupid Parenthesis, pero legible. :-D

    Con lo de Python discrepo. Cuantas menos llaves, paréntesis, corchetes, etc. mejor. :-)
  5. #4: Pues a mi la separación del código con llaves me ayuda mucho, lo de poner espacios me recuerda más a Whitespace que otra cosa.
    en.wikipedia.org/wiki/Whitespace_(programming_language)
  6. #3 ¿Sería mucho mejor en qué? ¿Funcionaría más rápido?

    Vaya tonterías que lee uno últimamente por aquí.
  7. #3 La pesadilla de los paréntesis vuelve en javascript, con librerías como lodash y con las funciones lambda.
  8. #4 Si quitas las llaves (que son visibles) y lo sustituyes con espacios o tabuladores (invisibles) tú me dirás en que mejoras..
  9. #3 ¿estás troleando?
  10. #9 el tabulado es visible. Y ahorra un montón de espacio.
  11. #11 A lo mejor será que yo no tengo esa habilidad, pero si abro en un editor un fichero de texto con 2 líneas, una de ellas un tabulador y un punto y la otra 8 espacios y un punto, no soy capaz de distinguir cual es cual sólo mirándolo.
  12. #12 Es que eso no es relevante para el código (aunque si estás usando 8 espacios para cada nivel de indentación tu código debe ser ilegible). 8 espacios y un tabulador (usando tabs = 8 espacios) son equivalentes tanto visualmente como a nivel de código para la mayoría de lenguajes. Única excepción que se me ocurre ahora mismo son los Makefiles.

    Las llaves sirven para tener discusiones sobre estilos, ocupan un montón de espacio (sobre todo vertical, salvo que las pongas junto al código y entonces pierden su utilidad visual).

    Una de las muchísimas cosas que Python hace bien es utilizar el nivel de intentación como marcador de bloque. Las llaves son innecesarias.
  13. #7: En ver mejor lo que se programa.

    Yo es que Python no tengo por dónde agarrarlo, es horroroso.
  14. #13 Como que no es relevante para el código?? En python no puedes identar con espacios y tabuladores, usas uno u otro, pero nunca los dos a la vez, y eso con un editor de texto estandard no lo ves.

    Ahora, y aunque no venga al caso, la forma estandard de representar un tabulador son 8 caracteres. Si tu tienes tu editor configurado para que el caracter tabulador se vea como 2 o 4 espacios genial, se verá así en tu editor, pero en un editor estandar tienes muchas posibilidades de que se vean 8 espacios, siendo como has dicho, ilegible.

    Y claro, si tienes un buen editor puedes hacer que reemplace los tabuladores con espacios, pero como algún día tengas que editarlo usando otro editor no tan bien configurado y pulses el tabulador, como todos estamos acostumbrados a hacer, estarás introduciendo errores que no detectarás hast que el intérprete te los escupa.

    Y esto de editar nos lleva al climax del sinsentido de usar identación para definir bloques.. El refactoring. En cualquier lenguaje normal que use llaves o bloques do end o lo que sea, tu mueves un pedazo de código de un lado a otro y no tienes que rezar porque no esté a distintos niveles de identación para que funcione sin tener que reidentarlo a mano, lo pegas y dejas que el editor idente eso por tí. Si estás en un apuro y usando un editor de mierda puedes hasta pasar de la identación, va a funcionar igual de bien.
  15. #7 Sería mucho más legible.
  16. #15 En python puedes editar con las dos cosas si quieres siempre y cuando el indentado calculado sea correcto.

    Python tiene un estándar de estilo de código (PEP8) para el que hay herramientas de validación (como flake8) que hacen todo el trabajo por ti, y por supuesto cualquier editor actual te ayuda en tiempo real. Convertir "todo a espacio" o "todo a tab" lo hace cualquier editor.

    Desde luego, no usar un editor en condiciones por si algún día tienes que hacer una edición en una puta mierda de editor es bueno, no sé que decirte :-) Trabaja con herramientas adecuadas.

    La tabulación de 8 caracteres, igual que los terminales de 80 columnas, son restos de un pasado al que no vale la pena tenerle tanto cariño si estás utilizando herramientas modernas y programando para entornos modernos. Python tiene su propias recomendaciones. Siguelas si usas python. Si no te gusta python pues no lo uses y ya está.

    Si usas un editor de código de mierda para cortar y pegar en cualquier otro lenguaje, al compilador le dará igual y el binario funcionará, pero el código será inteligible e imposible de mantener.

    ¿por qué estás usando un editor de mierda, para empezar? ¿te obliga alguien?
  17. #17 Pero quién ha dicho que yo uso un editor de mierda?? Para el dia a dia tengo mi querido Emacs que hace todo lo que necesito y más.. Pero no siempre estás editando algo tranquilamente en tu máquina.. Y en esos malos momentos los lenguajes que definen los bloques implícitamente te añaden una dificultad extra.

    Eso sí, el problema de tener que adaptar tu la identación en la refactorización no te lo quitas con ningún editor, precisamente por ser la identacion la que define los bloques y no los bloques los que definen la identación.

    Y en Python concretamente además no puedes usar los espacio y tabulador para identar, o uno u otro, o tendrás un TabError.

    Yo no he dicho que no me guste Python, aunque no me gusta.. Excepto cuando me he referido al TabError siempre he hablado genéricamente, porque me inflé a programar en coffeescript antes de poder usar es6 y las arrow function porque me compensaba más perder el tiempo arreglando identaciónes que escribiendo "function" 300 veces al dia. Lo que vine a decir con mi primer comentario es que reemplazar llaves por identación no solo no aporta nada, si no que empeora.

    O es que alguien te obliga a usar monitores pequeñitos pequeñitos y no te caben las llaves de apertura y cierre??
  18. #18 En python puedes mezclar tabs y espacios si quieres. Pruebalo.

    Reemplazar llaves con indentación soluciona muchos problemas. De espacio, de estilo y de legibilidad. Ahora, si no te gusta el lenguage el problema es otro.
  19. #15 Es que partes de la premisa absurda de que no tienes un editor en condiciones. Que vas a ponerte a programar en el bloc de notas de Windows? En editores así de básicos te puede tocar cambiar algún archivo de configuración o cosas así pero no programar python.

    Yo junto con c, son los únicos lenguajes que conozco y no hay color, me quedo con python mil veces. No lo uso a diario ni mucho menos pero cuando tengo que hacerlo es que me resulta super fácil e intuitivo.
  20. #20 anda, goto #18..
  21. #19 De www.python.org/dev/peps/pep-0008/#tabs-or-spaces:
    "Python 3 disallows mixing the use of tabs and spaces for indentation."
  22. #22 Yo lo he probado en p2
    Pero no edites con nada que mezcle...
  23. C es dios y Unix su profeta.
    Solo puedo decir eso sobre este pedazo de lenguaje. Mi preferido en todo.
  24. #2 Y se murió por hacer el estúpido. Y sus ordenadores funcionaban con software propietario.
  25. Es el primer lenguaje de programación que aprendí y gracias a su sintaxis me fue más fácil trabajar con otros después, utilizaba Turbo C allá por el 2001, como si fuera ayer, qué recuerdos :foreveralone:
  26. #14 Sin acritud, pero no tienes ni idea de lo que hablas.

    Python usa los tabuladores para separar los bloques precisamente para obligar a escribir código legible.

    Con bloques separados por llaves puedes escribir código de distintos bloques en el mismo nivel de indentación, con bloques separados por el nivel de tabulación no, por lo que te obliga a escribir código legible.

    Se entiende mejor con un ejemplo, este código en C, Java o en cualquier otro lenguaje con bloques separados por llaves es correcto:

    if (x==3) {
    funcion();
    }


    En cambio este mismo código en Python no es correcto;

    if (x==3)
    funcion();


    Y te obliga a escribirlo en distintos niveles de tabulación, haciéndolo más fácil de leer;

    if (x==3)
    —— funcion();


    Obviamente es un ejemplo tonto, que se podría poner en una línea e incluso sin llaves en la mayoría de lenguajes, pero creo que se entiende. Y sino imagínate lo mismo pero con un if, elseif, else con mucho código dentro, todo en el mismo nivel de indentación, suerte para leerlo sin hacerte la picha un lío.
  27. #27: Me imagino que respondiéndome habrás encontrado uno de los principales problemas de Python, y es que si copias y pegas el código en foros de Internet basados en HTML, este deja de funcionar. El código de C en cambio nunca pierde la funcionalidad.

    En C la indentación puedes hacerla a tu gusto, y esa libertad a mi me gusta. Pero además, hay indentación automática, muchos editores la tienen, así que si te pasan un código cuya indentación no te gusta, sólo tienes que usar es función y ya está, un código a tu gusto.

    Es que C incluso permite "ocultar" programas en Whitespace en su interior, con Python eso es imposible porque no tienes libertad de indentación. En todo caso, incluso creo que para programar un ciego, C es más accesible que Python.
  28. C es dios, C++ es su hijo legítimo directo todo lo que vino después relacionado con clases, objetos y demás parafernalia son sus nietos. Y es cierto que C tuvo "hermanos", pero no tuvieron tanta suerte.
  29. Vaya por delante que no sé nada de programación pero me gustaría iniciarme...¿algún lenguaje sencillo, con tutoriales, con ejemplos didácticos y accesible? ¿qué aconsejáis? Gracias
  30. #15 Ramen, hermano!
  31. #31 Pseudocódigo, jaja.
  32. #21 vale veo que en ese comentario te retractas con lo del editor :-P

    Lo de la indentacion si que es verdad. Yo no tengo ese problema porque el código que escribo son muy pocas líneas, pero me creo que pueda pasar.
  33. #29 Cierto, es muy molesto copiar ejemplos de código de ejemplo y que siempre estén dando por culo las indentaciones.
  34. #15 yo en el sublime y en el phpstorm veo los espacios perfectamente, sólo hay que activar la opción.
  35. #13 indentar con tabs = patada en la boca.

    Excepto en los lenguajes que te obligan, como Go.
  36. #2 Sobre un tio que amasó mucha pasta.
  37. #2 "No diseñó ni creó nada para la posteridad." Joer, un poco de justiia. Ese tirano reventó industrias enteras, para bien.
  38. #38 Todo tiene su origen y su explicación, que en tecnología de los 70 suele ser el coste de la memoria y el almacenamiento. Normalmente en estas discusiones puedes acertar la edad de los participantes por su preferencia personal.
  39. #36 Si precisamente #2 ha criticado eso, que estos mercaderes se hacen hiperfamosos y los que de verdad hacen los avances ni nos suenan.
    Has entrado a vendernos tu moto y ni lees lo que estás respondiendo.
  40. #1 Casi... me encanta que no hayas generalizado, como #2 cuando escribe "ninguna mención en absoluto"; porque, pocas menciones o muchas pero en un ecosistema muy técnico, no son ninguna.

    "Sencillamente, encontrar algo en el mundo de la computación actual que no haya sido tocado por el genio de Ritchie es una tarea muy difícil": thingoldedoriath.wordpress.com/2012/01/04/thompson-and-ritchie-the-phi
  41. Que recuerdos de la universidad cuando programabas en C en VI y como buen mal programador que se respete metías un ' } ' de mas a ver donde diablos no habías cerrado el código. :troll:
  42. #36 Algunos me consideran un poco friki... pero recuerdo que cuando me pusieron la vacuna de la Tuberculosis en un internado, en los papeles ponía Pasteur y las que no me pusieron porque por entonces (años 50) esa aún no era de uso masivo y la mayor parte de la gente del rural ni la conocía Poliomielitis: 1ª Jonas Salk. 2ª Albert Sabin.

    También recuerdo que me vacunaron contra la Viruela, pero no conozco al que la descubrió!! aunque he visto el método en un par de películas.

    El trabajo de Richie si lo conozco, porque: "Sencillamente, encontrar algo en el mundo de la computación actual que no haya sido tocado por el genio de Ritchie es una tarea muy difícil":
    thingoldedoriath.wordpress.com/2012/01/04/thompson-and-ritchie-the-phi
  43. #45 hace años que Linux estaría en el escritorio en la mayoría de los computadores.

    Aparte de las mentes de los que deseáis que GNU/Linux esté en el "escritorio"; yo no conozco a ningún desarrollador (de las principales distribuciones, en las que se inspiran todas las demás: Slackware, Debian, Red Hat) que se plantease ese objetivo o esa meta!! ninguno.

    Y no tengo claro que por el hecho de que un magnífico "director de orquesta" tan preocupado en acumular dinero (como Jobs o Gates), hubiese podido llevar un clon de UNIX a la mayor parte de las computadoras personales... entre otras cosas, porque de hecho, tanto el uno como el otro echaron mano (o compraron) sistemas UNIX propietarios Xenix y muy libres FreeBSD para desarrollar esos OS que copan más del 95% de los "escritorios", cerrando el software final y vendiendo licencias.

    Pero... supongo que en sus primeros tiempos pudo ser posible.
  44. #2 Como si hubieras descrito a Edison.
  45. #27 por algún motivo a algunos os parece mejor restringir la libertad de que cada uno pueda indentar como le salga de las pelotillas. En C, Java yo tengo la libertad de definir el estilo de código que yo quiera y hay herramientas para obligar a que los desarrolladores sigan ese estilo. En python tu tienes que codificar como te impongan y punto. Por qué motivo se piensan en posesión de la verdad? Vamos a obligar a indentar así, que si no los desarrolladores se nos desmadran. No lo veo justificable.
  46. #36 para empezar negativo por descalificar.

    Yo no me quejaba de que la gente los conociera o no, sino del agravio comparativo de los medios de comunicación a la hora de tratar las noticias. Menosprecio a los medios, no a la gente. No puedes ir tan de listo y con ese tono de autosuficiencia si no comprendes el sentido de lo que lees.
  47. #6 te obliga a formatear el codigo correctamente ;)
  48. No se puede negar el impacto de C, aún así debería morir y dejar paso a sus sucesores...
  49. #52 Si tu hubieses tenido Poliomielitis a los 3 meses de edad en los 50 y sufrieses las secuelas durante las décadas que yo las he sufrido, porque a tus padres nadie les dijo nada de esa vacuna (ni de ninguna otra en aquella época); te aseguro que nombres como, Salk/Sabin y Ottobock, los tendrías grabados a fuego en el cerebro.

    Si tu primer OS hubiese sido Unixware (principios de los 90), te aseguro que conocerías de sobra a Dennis Richie y Kenneth Thompson. Este enlace que puse en el comentario #47 thingoldedoriath.wordpress.com/2012/01/04/thompson-and-ritchie-the-phi lo escribí yo en 2012... y ahora llegas tu a decir que soy un "cansino" y a tirarte una de "tres vacunas" cuando a unos cuantos de los que venimos por aquí no nos pusieron más de 1 o 2 (porque cuando nacimos no había más.

    Y como te respondo las que conozco, sales con lo de la Wikipedia...

    Eso es de mal perdedor... la gente como tu siempre va a encontrar un viejo que responda a sus retos; pero no solo porque seáis jóvenes e inexpertos, sino por la "chulería" con la que os expresáis en muchas ocasiones.
  50. #51 Lo que tu digas :-D
  51. #59 No hay sucesor para C, y por favor no me digas Java, que me pego un tiro. xD
  52. #39 ¿Algún problema con Bash?
    No me no me no me ... que me conozco (es coña). xD xD
  53. #62 los sucesores de C son Rust y Go
  54. #64 Sinceramente, los desconozco. Llevo tiempo fuera de la programación.
    Pero, ¿se puede programar a bajo nivel como es capaz de hacer C? Pregunto.
  55. #53 Yo no conozco a Dennis Ritchie. No lo pillas.
  56. #31 No es coña... RUST
    Dale un tiento.
  57. #27 if x == 3:
    ----funcion()
    Aunque no me termino de apañar cuando por ejemplo, la línea se hace muy larga y hay que cortarla.
    Soy neófito, pero me gusta editar a veces con el Geany. Me cae bien.
  58. #31 Yo estoy bastante pez en el tema,tal vez por eso espero que mi consejo te pueda ayudar. Aprender a programar, así, por las buenas sin buscarle un sentido práctico no sé si tiene mucha salida. En ese sentido te aconsejaría python. Es muy claro y muy cómodo a la hora de instanciar objetos "cotidianos", como una lista.
    Pero buscando un sentido práctico, te aconsejaría que le echaras un ojo al tema Arduino, que son unos procesadores chiquititos y baratos, preparados con usb (el esp32 es parecido y tiene hasts wifi y bluetooth, lo puedes conectar con alexa,...) con muchos ejemplos. Va en una especie de java (java mola porque hay una parte de la programación para Android que va en otra especie de java). Con estos procesadorcillos puedes encender luces intermitente, sensores de temperatura y humedad, pitiditos, sensor de movimiento, pantallitas lcd, motorcitos... Muy divertido y didáctico.
    En todo caso, hay una aplicación para el móvil, SoloLearn, donde tienes cursos muy interactivos y con nada de paja. Te la aconsejo, hay de todo lo que quieras. No sé si también tendrán versión en web.
    Éxito!
  59. #70 No lo sabía, hubiera servido con un sí.
    Pero agradezco tu docu :-)
  60. #31 Puedes aprender con cualquier lenguaje aunque según matices los puede haber mejores y peores.

    Para aprender y tener una buena base yo también te recomendaría pseudocódigo (en papel) y C. Con C puedes aprender las estructuras de control típicas de la programación estructurada e implementar algoritmos clásicos y a parte entenderás y verás más allá que si empiezas con un lenguaje de más alto nivel, por ejemplo como se gestiona la memoria o hacer llamadas al sistema. Es poco abstracto y puedes aprender desde un punto de vista real como son las distintas fases dentro del proceso de desarrollo de un programa como editar código, compilarlo y enlazarlo o depurar. A parte con C puedes hacer casi cualquier cosa desde una aplicación gráfica hasta un servicio de red, aunque puede ser laborioso. Otra ventaja es que C++ es un superconjunto de C mientas que Java, Javascript, PHP, Perl, Rust y muchos otros tienen influencia de C en mayor o menor medida, por lo que C también te va a dar un buena base no solo para aprender a programar si no para aprender otros lenguajes.

    Si me tuviera que llevar un libro a la tumba sería el "Lenguaje C, de Kerninghan y Ritchie" y creo que este libro debería estar en los museos de antropología porque ha marcado el devenir de la humanidad.

    Si solo te interesa el desarrollo Web, tal vez puedas empezar con ECMAScript (Javascript), pero puro, nada de librerías ni frameworks imposibles. Con un editor de textos y un navegador que interprete lo que has escrito en el editor bastaría para empezar. Deben contarse por quintillones los tutoriales de Javascript que hay en la red pero no te recomiendo ninguno en particular porque no es mi fuerte.

    También está Python que cada vez se usa más y más. Es un lenguaje multipropósito y multiparadigma, de alto nivel que lo mismo se emplea para programación backend, administración de sistemas, machine learning o desarrollo de aplicaciones de cualquier tipo. Tiene una sintaxis bastante rígida lo que a mi no me gusta pero puede ser bueno para aprender buenas prácticas. En educación y para enseñar programación a niños se usa bastante, por ejemplo tienes un framework para hacer juegos que es pygame y un módulo parecido a la tortuga del lenguaje logo que es bastante pedagógico.

    Por último te propongo una combinación poco ortodoxa pero que podría funcionar si solo quieres usar la programación como medio para el crecimiento personal (y espiritual), no para ganarte la vida. Puedes aprender cualquiera de los dialectos de Lisp y usar el editor Emacs que se programa en Emacs Lisp. El editor GNU/Emacs es gratuito y libre, funciona casi en cualquier cosa con procesador y podrías aprender a usarlo y configurarlo combinado con el libro "Land of Lisp" que me pareció muy divertido.

    landoflisp.com/

    La programación es arte y expresividad, hay programas que son bellos poemas con exquisitas construcciones lógicas, la programación puede hacerte ver las cosas de otra manera, a pensar de otro modo, ser más organizado y puede resultar una actividad muy placentera. Otra cosa es que te metas de forma profesional, a interpretar código de otros, programar fuera de plazo, con presión o con especificaciones imposibles, así que si tu caso es el otro te animo a que des el paso.
  61. #72 Es que no se no por dónde empezar... C es gratuito? Dónde lo consigo?

    Tengo 40 tacos. Aún recuerdo mi ordenador con cassette y luego el de disco de 5 y cuarto. Ahí tenía el lenguaje basic. Había revistas que te enseñaban y que tenían mil ejemplos de programillas. Copiabas 500 líneas (a mano), y tenías un juego chungo, pero juego. Y aprendias.

    Eso es lo que hecho de menos hoy. Ejemplos y ejemplos para copiar y aprender, pero que veas resultados "chulos" más allá de Hello world

    Por cierto, de esa etapa no me acuerdo casi nada del basic... GOTO 2019 :-)
  62. #73 El lenguaje C, su sintaxis y su léxico (palabras reservadas) es un standard regulado por ANSI. Es como la lengua española, que el conocimiento de la misma es de dominio público y gratuito pero luego la regula la RAE. Un lenguaje en un concepto abstracto, no se puede cobrar por él. Otra cosa es la documentación, ciertas librerías o herramientas para programar con él, pero en el caso de C no hay problema, se puede programar en C sin pagar un duro.

    Una vez que conoces el lenguaje, debes plasmar tus ideas en C en texto plano, bien con un editor de textos o bien con un IDE que también es un editor de textos pero orientado al desarrollo. Para dar tus primeros pasos y realizar tus primeros programas es mejor que te olvides de usar un IDE ya que le va a añadir complejidad a la curva de aprendizaje y vas a distraerte de lo importante con sus mil opciones y herramientas.

    Es más yo ni usaría un editor, yo empezaría con pseudocódigo, algo que todavía uso cuando diseño una función. Es decir papel y lápiz. Lo malo es que necesitas alguien que te valide/corrija tu pseudocódigo.

    Por lo tanto abre el editor de textos más simple que ya conozcas como el bloc de notas en windows o nano en Linux. Se trata de que empieces motivado haciendo tus primeros programas en C que serán serán de 10 líneas al principio y posteriormente no pasarán de 50. Busca "hello world C languaje" casi todos serán ejemplos muy parecidos de un programa que imprime "Hello World!", cópialo a tu editor de textos y guárdalo como hello.c

    Luego necesitas un compilador de lenguaje C, que es el que traduce tu programa a código ejecutable por tu ordenador. gcc es el compilador de GNU y creo que es el compilador por excelencia. Es gratis y libre y lo tienes para casi todos los sistemas operativos.
    En sistemas Unix/Linux incluyendo MacOs viene de serie o es fácil de instalar, en Windows es mejor instalarte Cygwin en el que viene ya todo.

    Desde una consola en el directorio en el que hayas guardado hola.c, haces "gcc hola.c", si no te da mensajes de error ejecutas el programa resultante que será a.out.

    En resumen el proceso será este:

    Ideas >[tu]> lenguaje C -> [Compilador] -> Código ejecutable.

    El proceso de compilado es más complejo, pero de momento con saber esto te sirve. Ahora tienes que centrarte en el [tu]. Aprender a pensar de forma estructurada y dominar la sintaxis de C para transcribir tus ideas en código.

    Es mejor aprender poco a poco, aprender a usar correctamente las estructuras de control implica un cambio en la forma de pensar y eso es mejor hacerlo de cero y a tu ritmo. Es la forma en la que nos enseñan a usar otros lenguajes, comienzas con vocabulario y construcciones sencillas. La forma que me dices de copiar un tocho y trastear con el es como aprender ingles leyendo un fragmento de Shakespeare y jugar a modificar partes. Es mejor que nada pero cuando te den un folio en blanco no vas a saber ni como empezar a escribir.

    Dicho esto, si das el paso, aunque tengo muy poco tiempo, te ofrezco mi ayuda personal para que puedas al menos comenzar en este mundo. Me añades como amigo y me puedes enviar un correo con tus dudas también te puedo ir orientando hacia el siguiente paso y corregir tu pseudocódigo.
  63. #14 Ah entonces es tu opinión personal. Tu comentario daba a entender que Python sería mejor para todo el mundo, no sólo para ti.
  64. #29 Como esa libertad existe.... siempre encuentras código escrito como sale le sale a cada uno de ahí....Llaves que se abren y se cierran en diferentes puntos sin un orden aparente....Con Python llevas un orden porque la escritura siempre se realiza igual porque además el propio código te obliga a ello.
    La libertad que puede darte C, Java, PHP... y otros lenguajes que no tienen unas pautas de escritura específicas dan origen a un código a veces ilegible y mal organizado.
    Cada lenguaje tiene sus particularidades, pero no creo que Python sea mejor por utilizar {}
  65. #76: Eso es culpa del que programa, no del lenguaje.

    Es más, si está trabajando en un grupo y hay unas normas, tendrá que seguirlas y punto.
    Pero si esa persona hace el código en su tiempo libre o por su cuenta... programará como a él le parezca, no como el autor del lenguaje decida. Yo lo veo bien, porque siempre puedes usar un formateado automático, muchos editores tienen esa función.
  66. #14 Tiene usted razón.

    int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell
    o, world!n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}

    Donde va a parar. :troll:
  67. #64 Solo Rust podría ser sucesor de C, Go esta demasiado limitado como para programar sistemas.
    Y esto lo digo utilizando diariamente GO y con conocimientos leves de Rust.

    Go para crear utilidades de sistema, "backends" o incluso frontales web es casi insuperable por su balance de rendimiento, simplicidad y bajo esfuerzo en el desarrollo. El binario estático hace que los despliegues sean muy fáciles sin necesitar contenedores para las dependencias.

    Pero en sistemas empotrados, "firmwares", sistemas operativos, etc se necesita mas flexibilidad y rendimiento.
  68. #78: Al menos funciona, prueba a copiar y pegar código de Python desde un PDF y luego mira si funciona o no. :-P
  69. #80 Pero que casuística infernal es esta. Y si "pintas" el código de C en un png luego no puedes hacer copia/pega.
    El problema del lenguaje va a ser que un formato pensado para la impresión no te permite hacer copia/pega correctamente.

    Pero el origen de mi troleo esta dirigido a la supuesta legibilidad de C gracias a su delimitador de bloque.
comentarios cerrados

menéame