• Inicio
  • Buscar
  • Ingresar
  • Registrarse

    Seguridad en gadgets tecnológicos: todo lo que necesitas saber para protegerte

    • Hack x Crack - Comunidad de Seguridad informática »
    • Programación »
    • C / C++ »
    • Diferencia entre C y C++
    • Imprimir
    Páginas: [1]   Ir Abajo

    Autor Tema: Diferencia entre C y C++  (Leído 13952 veces)

    Desconectado stakewinner00

    • { L7 } Juanker
    • *******
    • Mensajes: 1010
      • Ver Perfil
      • http://david.mumei.space
    Diferencia entre C y C++
    « en: Junio 05, 2015, 04:16:30 pm »
    Visto que mucha gente se confunde entre C y C++ voy a explicar brevemente que es C y que es C++.
    • C no es C++
    • ni C ni C++ están obsoletos
    • ¿Que lenguaje aprender?

    C no es C++, C y C++ son lenguajes radicalmente distintos, y digo radicalmente porque siguen filosofías distintas. C y C++ no tienen relación alguna, no necesitas aprender primero C++ para aprender C ni necesitas C para aprender C++.
    Ahora alguien se podría preguntar porque "C/C++" esta junto en la misma sección, supongo que es porque C y C++ aunque son lenguajes completamente distintos tienen una sintaxis "similar", o mejor dicho la sintaxis de C es compatible con la de C++.

    Hay veces que por el hecho de que C y C++ fueron creados hace tiempo se piensa que están obsoletos, ni C ni C++ están obsoletos, es más, hoy en día siguen siendo los lenguajes clave para que funcionen nuestros ordenadores. Por ejemplo Linux esta en C, windows en C++ (en windows 10 y adelante no se si cambiaran algo), muchos juegos tienen el núcleo en C++ y muchos drivers estan en C por ejemplo. En concreto para C++, aún se está desarrollando la librería estándar, ahora se esta trabajando en un estándar para el 2017, así que anticuado no esta. En C no estoy tan al día pero aún se usa en el mundo real al igual que C++.

    Ahora que ya aclaramos que C no es C++ y que no están obsoletos queda discutir que lenguaje aprender, y en este punto hay bastante discusión como se puede ver en algunos post del foro (ej: https://foro.hackxcrack.net/c/c-o-c/).
    Si lo miramos desde el punto de vista de la fácilidad hay dos argumentos. El primero afirma que:
     puesto que C++ tiene una librería estándar mucho más amplia abarca muchos más problemas y por tanto al tener tantas herramientas disponibles no tenemos que complicarnos la vida creando nuestra herramienta, solo tenemos que buscar la adecuada y usarla. Por tanto es más fácil aprender C++ que C, aunque cuesta más ser un experto porque es más complejo al tener más librerías
    el segundo argumento afirma que
    C es más simple ya que tiene una librería estándar más reducida. Critica que la librería estándar de C++ solo añade complejidad innecesaria creando en ocasiones varias herramientas que hacen lo mismo o casi lo mismo. Por tanto es más fácil aprender C que C++, solo tienes que entender bien las cuatro cosas que hay y es más fácil ser un experto, aunque al comenzar pueda ser algo difícil con los punteros y demás.
    Entre estas herramientas hay una actualmente muy usada por la cual C++ es más famoso, la Programación orientada a objetos (POO) de C++ que no tiene C. Eso se puede ver tanto como una herramienta inútil o como una ventaja. C++ tiene por diseño POO y por tanto es más sencillo usar POO en C++, pero en C se puede simular la POO igualmente. C++ tiene muchas más herramientas que C no, pero según dicen los que defienden C, estas herramientas solo añaden complejidad. Aunque personalmente yo no usaría POO por norma general...

    Aquí se podría rellenar varias páginas con discusiones técnicas sobre si ciertas herramientas son útiles o no.

    Sobre la velocidad de ejecución y compilación entre C y C++. En ejecución la diferencia no es muy notable, si se usa el mismo algoritmo y en los casos esta bien programado y compilado usando un compilador moderno la velocidad de ejecución será muy similar. En cuanto a la velocidad de compilación, compilar un programa grande que este programado en C se tarda mucho menos que si esta programado en C++, la razón es que C++ añade complejidad al compilador para "facilitarla" al programador, lo que causa que compilar programas en C++ pueda ser más lento que en C.

    Así a modo de resumen, la filosofía de C es la de mantener un lenguaje sencillo (pocas herramientas pero polivalentes), mientras que C++ apuesta por tener muchas herramientas lo cual añade complejidad pero un buen programador tendría que saber escoger sabiamente. En realidad la discusión entre C y C++ se podría resumir a que se basan en filosofías distintas, a veces puede venir mejor trabajar en C y a veces en C++.

    En resumen, creo que es bueno mirarse un poco los dos lenguajes, aunque por norma general creo que es mejor C para trabajar a bajo nivel, kernels, drivers, etc y para lo otro a gustos de cada persona aunque grandes programas (como juegos) suelen hacerse en C++ (pero con tan pocas herramientas que casi es C) supongo para que se pueda mantener más "fácilmente".
    « Última modificación: Junio 05, 2015, 04:18:47 pm por stakewinner00 »
    En línea

    Desconectado xHulkMx

    • { L0 } Ñuub
    • Mensajes: 3
      • Ver Perfil
    Re:Diferencia entre C y C++
    « Respuesta #1 en: Agosto 11, 2016, 09:27:39 am »
    Hola stakewinner00 :

    Gracias por el tiempo que tomaste en explicar esto amigo, me sacaste de un dilema y con tu aporte sé dónde empezar y creo que empezare por c ya que me gusta agarrar el toro por los cuernos y creo que lo que busco me lo dará c.
    Saludos.

     ;D
    En línea

    Desconectado jaxk

    • { L2 } Nativo Digital
    • **
    • Mensajes: 76
      • Ver Perfil
    Re:Diferencia entre C y C++
    « Respuesta #2 en: Enero 14, 2017, 02:33:48 pm »
    Gracias por aclararlo
    En línea

    Desconectado euler-2,71

    • { L0 } Ñuub
    • Mensajes: 6
      • Ver Perfil
    Re:Diferencia entre C y C++
    « Respuesta #3 en: Marzo 10, 2017, 09:07:05 pm »
    Muchas gracias, buen post
    En línea

    Desconectado Humphrey

    • { L0 } Ñuub
    • Mensajes: 1
      • Ver Perfil
    Re:Diferencia entre C y C++
    « Respuesta #4 en: Marzo 14, 2017, 11:05:08 pm »
    Muy bueno el post, muchas gracias....
    En línea

    Desconectado Meta

    • { L0 } Ñuub
    • Mensajes: 23
      • Ver Perfil
    Re:Diferencia entre C y C++
    « Respuesta #5 en: Marzo 25, 2017, 12:42:19 pm »
    Buenísimo.

    Falta añadir algo más, que también para sistemas operativos, hay algo de asm (ensamblador) sobre todo en el arranque del sistema.
    En línea

    Desconectado ravenheart

    • { L7 } Juanker
    • *******
    • Mensajes: 1359
    • Todos mis mensajes están bajo la licencia WTFPL v2
      • Ver Perfil
    Re:Diferencia entre C y C++
    « Respuesta #6 en: Marzo 25, 2017, 04:56:55 pm »
    Cita de: Meta en Marzo 25, 2017, 12:42:19 pm
    Falta añadir algo más, que también para sistemas operativos, hay algo de asm (ensamblador) sobre todo en el arranque del sistema.

    ¿Qué tiene eso que ver con el hilo?
    En línea
    You do not need hope if you have drama to back you up.

    Desconectado simbades333

    • { L0 } Ñuub
    • Mensajes: 1
      • Ver Perfil
    Re:Diferencia entre C y C++
    « Respuesta #7 en: Enero 21, 2018, 05:54:18 am »
    gracias gracias
    En línea

    • Imprimir
    Páginas: [1]   Ir Arriba
    • Hack x Crack - Comunidad de Seguridad informática »
    • Programación »
    • C / C++ »
    • Diferencia entre C y C++
     

    • SMF | SMF © 2013, Simple Machines
    • XHTML
    • RSS
    • WAP2
    Va un mudo y le dice a un sordo: Hack x Crack usa cookies. Pues eso... Learn more