Duda con C++ (Introducción)

Iniciado por iUDEX, 8 Mayo 2015, 03:05 AM

0 Miembros y 2 Visitantes están viendo este tema.

iUDEX

Hola, pues verán, empecé el 5to año hace unos días (2ndo año de Bachiller) y mi especialización es Informática, es decir, recibo más horas de clase con cuestiones de computadoras y bla bla bla.

Algo que me llamó la atención es que nuestro profesor nos ha empezado a enseñar C++, y como yo soy el único friki en el aula XD estimo que pasaremos todo el año con este tema, y al final (como es típico) codificaremos alguna calculadora o algo que nos calcule el cuadrado de ni se qué y todo eso.

Tengo dudas.

1. ¿No creen que es muy pronto el C++? Mis compañeros no tienen mucha idea de lo que es realmente un lenguaje de programación, y ni siquiera dominamos los flujogramas (enserio, nunca aprendí del todo). Yo al menos, bueno, me he dedicado a estudiar por mi cuenta durante muchos meses en lo que es Python, ¿no creen que tendríamos que haber empezado por algo así?

2. El viejo nos dijo que C++ también se lo conoce como lenguaje C o (nombrequenomeacuerdo), y yo como WTF!, lo que tengo entendido es que C++ está basado en C y le añade a éste último muchas funcionalidades adicionales, pero él dijo "es lo mismo"...

3. Nos habló que C++ es portable y puede ser utilizado en otros SO aparte de WIndows, como Ubuntu (Linux), correcto, entiendo. Lo que no me gustó es que calificara el software libre como "inestable" y recomendó que usemos privativos porque "lo que hace Microsoft es mejor". Comentario medio... no sé... yo no soy usuario de Ubuntu, tampoco me gusta... soy tal vez usuario a muerte de Fedora y puedo decir que esta distro es una joya para programar en un entorno estable y con software libre efectivo (no hablemos de rendimiento de juegos). ¿Qué les parece este comentario? (No lo piensen hacia mí, sino hacia un joven usuario normal de PC).

Saludos!
Namasté, criatura.

Eleкtro

#1
Cita de: gecko1 en  8 Mayo 2015, 03:05 AM1. ¿No creen que es muy pronto el C++? Mis compañeros no tienen mucha idea de lo que es realmente un lenguaje de programación, y ni siquiera dominamos los flujogramas (enserio, nunca aprendí del todo). Yo al menos, bueno, me he dedicado a estudiar por mi cuenta durante muchos meses en lo que es Python, ¿no creen que tendríamos que haber empezado por algo así?

¿Pronto?, ¿por qué?, en mi opinión no es pronto, es el momento adecuado ya que la cuestión es aprender un lenguaje, y C++ es un lenguaje tan bueno de aprender cómo lo sería (casi) cualquier otro.

De hecho, y repito, esto es solo mi opinión personal, saldrías aprendiendo mucho mejor las diversas bases de la programación y los conceptos al empezar aprendiendo un lenguaje cómo C++ que está más cerca del hardware y por ende puede ofrecer una mayor comprensibilidad en lo referente al low-level, y no aprendiendo Python, que aparte de diferenciarse en eso, lo considero el lenguaje más horrible del mundo para mi gusto personal por muchos motivos que no vienen al caso, mira, para dar una comparación personal muy breve, los Cristianos recurren al hostigamiento, y los programadores recurren a Python





Cita de: gecko1 en  8 Mayo 2015, 03:05 AM2. El viejo nos dijo que C++ también se lo conoce como lenguaje C o (nombrequenomeacuerdo), y yo como WTF!, lo que tengo entendido es que C++ está basado en C y le añade a éste último muchas funcionalidades adicionales, pero él dijo "es lo mismo"...

No quiero creer que un profesor que está enseñando algo que se supone que debería saber, sea un ignorante de lo que intenta enseñar, quizás simplemente recurrió a la respuesta facil diciendo "es lo mismo" para que dejases de acosarle :P, pero por otro lado su trabajo consiste en explicar y aclarar dudas... es extraño.

Obviamente llevas razón en lo que comentas, C++ es un lenguaje que hereda muchas características de C (la que se aprecia a simple vista es la sintaxis), pero tecnicamente no son para nada lo mismo, ambos son lenguajes multiparadigma pero C es un lenguaje que se usa con un paradigma procedural, mientras que C++ es un sucesor, y como tal incorpora "novedades" cómo los constructores (ctor), un soporte de excepcioens (Exception/Error Handling) y el soporte del paradigma OOP (Object Oriented Programming) gracias al uso de las Clases (Classes) y objetos (Objects), esto y más cosas permiten aplicar un estilo de programación que en C no es posible, cómo la encapsulación (encapsulation), el polimorfismo (polimorphism), la herencia (inheritance), o las interfaces (interfaces), entre otras características de su soporte del paradigma OOP, y otras características "novedosas" que diferencian a C++ de C.

A todo esto debo aclarar que yo C/C++ lo he manejado poco (casi nada), así que seguramente alguna otra persona con más experiencia puede elaborar una mejor comparación.




Cita de: gecko1 en  8 Mayo 2015, 03:05 AMLo que no me gustó es que calificara el software libre como "inestable" y recomendó que usemos privativos porque "lo que hace Microsoft es mejor". Comentario medio... no sé...

Por lo que comentas, parece que tu profesor no ha argumentado mucho esa afirmación, y por lo que cuentas también ...no me extrañaría que no supiera cómo argumentarla, pero aunque te cueste creerlo, es una afirmación totálmente cierta, o al menos yo estoy totalmente de acuerdo.

El software open-source implica la ausencia de un soporte decente sobre todo en proyectos de gran magnitud debido a la inevitable aparición de bugs que quizás jamás sean corregidos, tú te lo guisas tu te lo arreglas ...o esperas indefinidamente a que ocurra un milagro (que por suerte los milagros ocurren bastante en ese sentido), si esto lo traducimos a un proyecto de la magnitud de un lenguaje de programación, podemos decir que es altamente inestable, al menos en comparación con el software privativo.
Aparte, el software open-source, si está en constante actualización/refactorización por varias personas, eso suele derivar muy pronto estadísticamente en un código spaghetti insufrible.
(y por no hablar de la carencia de documentación oficial dependiendo del tipo de software libre... pero bueno)

Lo que hace Microsoft es mejor, desde luego, ¿cómo se podría comparar?, Microsoft es un tiburón cómo compañia y los peces pequeñitos no tienen mucho que hacer, Microsoft tiene un soporte de asistencia al cliente y un control de bugs o bugtracker extraordinario para todos sus productos;

Además, en lo referente a lenguajes de programación de Microsoft es practicamente lo mismo, lo que hace Microsoft es mucho mejor ...me refiero a su framework de desarrollo de aplicaciones, .Net Framework, a todo lo que compone este producto, desde los lenguajes C# y VB.Net, pasando por CLR, la IDE de Visual Studio, y TODO lo demás, ¿en que me baso?, pues en que por ejemplo los lenguajes que he mencionado, la IDE de VisualStudio, y todo lo demás que compone este framework es un conjunto de software que ha sido desarrollado por muchos equipos pequeños de desarrollo, es decir, no todo el mérito es del team de Microsoft ya que no lo han programado todo ellos pero se adjudican el nombre por que es de su propiedad,
lo que intento decir es, que a diferencia de un lenguaje open-source cómo por ejemplo Python ...el cual tiene cerca de 250.000 bugs reportados publicamente, en Vb.Net y C#, que por cierto son lenguajes mucho más extensos que Python ya que la librería de Classes de .Net Framework es de una magnitud incomparable com otra y requiere aun mayor mantenimiento que Python, pues apenas se conocen publicamente unos cuantos bugs que se pueden contar con los dedos de una mano (vale, exagerando), cuando el desarrollo de esos lenguajes ha sido llevado a cabo por muchos grupos distintos de desarrolladores, lo mismo ocurre con la IDE de VisualStudio, etc,
he ahí la diferencia entre un trabajo (casi) perfecto gracias a la organización, sincronización, y al control de calidad de una empresa privativa, comparándolo con lo que puede ofrecer a duras penas un equipo open-source, algo inestable (en comparación).

Saludos!








JoseluCross

A lo primero, si y no. C++ es un lenguaje muy potente y muy utilizado, es cierto que es complejo, pero no es tanto el lenguaje como la programación en si. Es tan bueno como cualquier otro.
A lo segundo es muy típico que los profesores para ahorrarse explicaciones digan cosas que no son verdad pero que tampoco es un gran problema.

En lo que si te doy la razón es que había que haber trabajado más la algoritmia y los diagramas de flujo.

A lo tercero creo que ya está todo dicho con Elektro
No hay problema sin solución, solo personas que no quieren resolverlo.

iUDEX

No sé, Elektro, pero Python ha sido un lenguaje muy popular en distribuciones Linux en lo que es Scripting y pequeños componentes en programas con lenguajes más complejos, como por ejemplo, el C++. Para Windows tenemos Batch!

Veamos como va el aprendizaje, recuerdo que leí un manual de C y apenas recuerdo como hacer una calculadora. No más me acuerdo el printf XD

CitarNo quiero creer que un profesor que está enseñando algo que se supone que debería saber, sea un ignorante de lo que intenta enseñar, quizás simplemente recurrió a la respuesta facil diciendo "es lo mismo" para que dejases de acosarle :P, pero por otro lado su trabajo consiste en explicar y aclarar dudas... es extraño.

De hecho, yo no dije nada nunca, soy de poco diálogo pero puede que tengas razón, a lo mejor lo dijo para terminar rápido con la explicación.

Aunque, hay software Open-Source que no pertenece a Microsoft y cumplen con muchas necesidades nuestras :P Hoy en día, el navegador de código libre más preferido por los activistas en Firefox, seguido por Chromium, y mira, el primero es de Mozilla y el segundo de Google, nada que ver con el gigante Microsoft, que después de muchos años ha tratado de ganarse la confianza con Internet Explorer, pero parece que todavía le falta.

Gracias por responder.

Citar
En lo que si te doy la razón es que había que haber trabajado más la algoritmia y los diagramas de flujo.

Hubiese preferido que nos enseñen pseudocódigo, para mí es tedioso estar graficando los cuadros y todo eso. Me daba pereza, de verdad.

Saludos!
Namasté, criatura.

Eleкtro

#4
CitarNo sé, Elektro, pero Python ha sido un lenguaje muy popular en distribuciones Linux en lo que es Scripting y pequeños componentes en programas con lenguajes más complejos, como por ejemplo, el C++. Para Windows tenemos Batch!

En ningún momento se estaba debatiendo sobre su popularidad ni soporte multiplataforma, sino de su estabilidad cómo proyecto libre (cómo cualquier otro proyecto libre).

¿Que tiene que ver que sea popular en alguna distro de Linux o que se utilice cómo lenguaje complementario del desarrollo de otro software?, nada en ese sentido.




Cita de: gecko1 en  9 Mayo 2015, 01:24 AMhay software Open-Source que no pertenece a Microsoft y cumplen con muchas necesidades nuestras

La cuestión es que mientras el software libre suele cumplir muchas necesidades, el software privativo (pero el de las grandes compañias) suele cubrir todas las necesidades.

Te pondré unos ejemplos:

  • Microsoft tiene la IDE de desarrollo de aplicaciones más completa a nivel mundial indiferentemente de sus lenguajes soportados, Visual Studio.
  • Microsoft tiene el framework de aplicaciones más completo a nivel mundial, .Net Framework.
  • Microsoft tiene las APIs para desarrollo de videojuegos más completo y explotado a nivel mundial, DirectX (Direct3D, DirectDraw, DirectSound, etc).
  • Microsoft tiene la suite de oficina más completa a nivel mundial, Microsoft Office.
  • Microsoft ha tenido el cliente de mensajería instantanea más completo y personalizable a nivel mundial, MSN Messenger.
  • Microsoft tiene las gafas de realidad aumentada más completas, HoloLens. (por poner un ejemplo de Hardware)

Cualquiera de esos productos incorporan un contenido más extenso/completo (y más elaborado y estable al ser privativo, todo sea dicho) que cualquiera de sus otras alternativas libres.

Además, favoreciendo al programador, ninguna otra compañia open-source es capaz de ofrecer kits de desarrollo (SDKs) tan completos cómo los de Microsoft para todos sus productos ...por que realmente tienen un SDK para cualquier cosa, es así de simple, si se elige software libre se obtienen recursos mediocres y no hay derecho a la resolución de problemas, pero si se elige la privacidad, en este caso la de Microsoft, entonces lo tienes practicamente todo a tu disposición, el programador adquiere comodidad, estabailidad, documentación y soporte de usuario por doquier.

Ahora, vamos a lo malo:

  • Microsoft tiene una birria de antivirus, Windows Defender.
  • Microsoft tiene una birria de navegador web, Internet Explorer.

¿Pero que tienen en común?, que son aplicaciones gratuitas para cumplir los requisitos esenciales del end-user. (dejando a un lado los fallos de seguridad de IE blah blah blah, todos los programas tienen sus fallos)

(Seguro que me dejo algunos productos más por nombrar en los ejemplos positivos y negativos, pero son solo eso, un ejemplo.)




Cita de: gecko1 en  9 Mayo 2015, 01:24 AMel navegador de código libre más preferido por los activistas en Firefox, seguido por Chromium, y mira, el primero es de Mozilla y el segundo de Google, nada que ver con el gigante Microsoft

En parte tienes razón pero es que Internet Explorer, en esa comparación que has hecho es un producto gratuito más, estandarizado para cubrir las necesidades esenciales del consumidor de Windows.

Firefox y Chrome son gratuitos también ...claro está, a lo que me refiero es que es normal que la competencia pueda superar en esta ocasión a un producto privativo que es gratuito, siempre que se lo proponga.

Si Internet Explorer fuese un navegador de pago, entonces tal vez otro gallo cantaría, por que eso implicaría un nivel superior de prestaciones y calidad.




Cita de: gecko1 en  9 Mayo 2015, 01:24 AMdespués de muchos años ha tratado de ganarse la confianza con Internet Explorer, pero parece que todavía le falta.

Yo ya utilizaba IE en los años 90 antes de aparecer Mozilla, era un buen software, se lanzó FireFox y lo cambió todo con su alta personalización y fluidez (aunque hoy en día la fluidez de este navegador deja que desear con la aparición de los 64 Bits, y no estoy hablando de las build Nightly, que también),
tienes razón, IE quedó atrás cómo un mal producto lleno de fisuras que nadie quería ni ver...
pero déjame decirte que el motivo de que IE se considere el peor navegador desde hace muchos años no es precisamente por el impacto de sus fallos de seguridad (que todos los navegadores tienen sus fallos y agujeros), que si, eso influye muchisimo, pero es la imagen que esto fue generando en la compañia con el paso de los años, por que cuando aparece algo que criticar en la compañia que es número uno, esa crítica se extiende como el viento, las malas críticas a una compañia tan grande siempre vuelan, y los usuarios siempre tenian una mala opinión en la boca sobre IE, entonces llegó un punto en que ya no se podía revertir la imagen de este producto, pero bueno, Microsoft intentará empezar de cero con su nuevo navegador, Edge.


Saludos!








iUDEX

Bueno, puede que tengas razón, Microsoft se ha ganado bastante terreno con lo que ha hecho, aunque uno de los principales problemas para la empresa es que exista el Open-Source y la gran cantidad de voluntarios que participan en los proyectos, aunque sean programas mucho más simples comparados con los que hace Redmond. Esos programadores activistas se siente más seguros teniendo acceso al código fuente y modificándolo libremente. Microsoft ha sido objeto de críticas por violación de privacidad en muchas ocasiones... pero hoy en día la privacidad es un chiste en Internet, pero bueno.

Aunque, pensándolo bien, si Microsoft hubiese liberado el código de sus productos alguna vez, tal vez no sería lo que es ahora. Ahora último liberaron el código de una IDE que no me acuerdo el nombre, vamos a ver si eso le hace competencia a otras IDEs libres como Ninja-IDE. ¡¡Véase que está disponible en Linux también¡¡

Pero bueno, que me desvío del tema. Tomaré tu experiencia con esto, tendré que empezar a programar en C++ en alguna IDE de Microsoft y seguramente, cuando domine un poco más la Informática, puede que me pase a una IDE libre. ¡Gracias¡

Saludos!
Namasté, criatura.