Una definición quizás más "apropiada" para C++ es, más que orientado a objetos o "con" orientación a objetos, sería "orientado a abstracciones". El principio casi más nuclear del lenguaje es el de "zero overhead abstraction": implementar una abstracción, que simplifique tu capacidad de razonar sobre el código, NO DEBE tener un coste extra en ejecución. Es decir, ejecutar abstracciones (diseñadas por los usuarios del lenguaje, suponiendo que lo utilizan bien) debe ser gratis para la CPU, o lo más gratis que se pueda. Eso explica el gigantesco énfasis que tiene C++ en todo lo que sea cómputo en tiempo de compilación (que sea el compilador quién trabaje en traducir las abstracciones a código máquina COMO SI dichas abstracciones nunca hubieran existido): sobrecarga estática, plantillas, concepts, destructores, strong typing, etc, y por qué, pese a ser un lenguaje de tan alto nivel, aún así es el utilizado para sistemas, videojuegos, trading de alta frecuencia y todo lo que tenga que ver con extraer hasta el último nanosegundo de la máquina. El problema de C++ no es la herencia múltiple y esas cosas, sino las reglas de inicialización, son un auténtico infierno: inicialización por defecto, por valor, directa, de agregados, initializer-lists, type-deduction, deduction guides... y el problema es que no se puede "resetear" el lenguaje para simplificar sus reglas debido a la retrocompatibilidad histórica. Pues Carbon es dicho "reseteo", aunque como alternativa a C++ preferiría Circle, creo.
Gracias por tu comentario, realmente se aprende mucho de gente que se ve que está en C++ muy a fondo. Como definición del lenguaje la verdad es que hay mucha controversia, lo que sí nos queda clara es que no es "lenguaje orientado a objetos" per se y como tú indicas se orienta a abstracciones, ahora con la adición de generics más aún. Por último, no sé si has empleado Circle, en verdad no cambias de lenguaje ya que usa C++20 y el problema que señalan los ingenieros de Google y el porqué se está creando Carbon es porque los problemas no se pueden resolver con los estándares actuales. Circle es un cambio de compilador más que de lenguaje. Como dije al principio, gracias por tu comentario, has dado mucha y muy valiosa información. Espero seguir leyéndote en otros vídeos de nuestro canal.
@@programandootrahistoria No he utilizado Circle, pero he leído parte de la doc. Lo he citado como "alternativa" en el sentido de que, al permitirte activar y desactivar extensiones sintácticas manualmente, tienes una "puerta abierta" para resolver problemas históricos de C++, con esa idea de "burbujas sintácticas". ¿Qué las reglas de inicialización son muy complejas? Pues nada, activamos ciertos flags que solo afectan a nuestro módulo en cuestión y utilizamos otras nuevas (no sé si Circle tendrá tal cosa todavía, pero la idea general es esa, arreglar problemas con sintáxis de quita y pon). Y es una alternativa porque no es C++, es una especie de dialecto plurilingue. Esa estrategia escala mejor que cualquier otra. Lo que sea que Carbon defina, cualquier error que se cometa y que solo se observe tras años de experiencia, Carbon sufrirá las mismas consecuencias que C++: no puedes redefinir nada si no quieres romper código usuario existente.
Vamos por el top! Y creo que Rust y Go tomarán su propio camino, cada language crea su propia historia. Por el momento aún no veo muy lejano Rust como lenguaje para videojuegos.
Gracias por el comentario y nos apuntamos hacer el top. Sobre Rust, no sé, lleva muchos años ahí y no ha supuesto un cambio radical sin embargo sí está comenzando a verse cada vez más, ya se puede utilizar dentro del kernel de Linux y hay muchos lenguajes, como Erlang, donde se pueden escribir extensiones del lenguaje usando Rust. Sin duda dará de qué hablar.
@@programandootrahistoria en eso estoy de acuerdo está dando pasos más sólidos con cada avance que tiene y como dices se perfila para Linux. Aún así yo personalmente aún no lo veo como el sustituto de C o C++ aún lo veo un poco lejano. Pero veamos a donde llega.
No es solo el lenguaje, es la herramienta que desarrollan con el lenguaje y que le da oportunidad a la gennte para desarrollar cosas con mayor fácilidad
En eso tienes razón también muchas veces las herramientas que ofrecen los lenguajes rompen la barrera de entrada para los programadores y facilita su adopción. Yo mismo lo vi con Ruby y Rails.
Para mí C++ y Python son el combo perfecto para lo que yo hago. (Física computacional y análisis de datos) ya que son tan parecidos que mudarse de uno a otro no es nada difícil una vez te acostumbras. C++ se usa para cómputo y simulaciones pesadas mientras que Python es más conveniente para manejar los datos y graficarlos.
Tengo entendido que en física computacional hay centros que se han pasado a Julia para no tener que convertir código de Python a C o C++ y otros que emplean Nim que es como una versión de Python compilado y por ello tiene un rendimiento mayor, ¿has visto alguna de estas opciones? Gracias por el comentario.
@@programandootrahistoria conozco la opción de Julia, la otra no. Investigaré :). Igual sé de muchos códigos que se hacen en Fortran, Cuda o C. Pero igual, varios de los códigos de simulación más pesados que conozco en el área están escritos en C++, y es precisamente porque es un lenguaje muy útil una vez lo aprendes porque te permite utilizar lases, apuntadores, escribir y leer archivos bastante rápido, etc. Eso lo hace muy versátil a diferencia de otros lenguajes compilados como Fortran por ejemplo. Y ya todo el procesado de datos es mejor hacerlo en Python, por todas las librerías ya desarrolladas como numpy, pandas, scipy, libQt5, seaborn y un larguísimo etc.
@jojo989GD ya me generaste curiosidad, ¿es en ambiente profesional donde empleas C++ y Python? ¿combinados o unos proyectos con C++ y otros con Python? ¿entorno científico, transporte, financiero, qué vertical?
pues no, tengo 16 recien y uso c++ para cosas como modding de juegos o cosas de low level porque me gusta mucho la programacion de bajo nivel, python lo uso para proyectos mas simples como hacer simples scripts o bots@@programandootrahistoria
Yo sí creo que Rust reemplazará a C++, principalmente por su adopción, la integración dentro de los kernels de los principales sistemas operativos y el incentivo de diferentes empresas (como Google, que está haciendo de patrocinador) para mejorar la interoperabilidad entre Rust y C++.
De hecho Microsoft está reescribiendo bibliotecas de windows escritos en C++ a Rust y hay un proyecto de sistema operativo escrito en Rust llamado Redox OS
Redox OS es un buen ejemplo de que se pueden escribir sistemas operativos con Rust, pero no es un OS que se esté usando, así que no sabemos si llegará a ser un ejemplo a seguir o una efeméride como Plan9. No obstante, que se haga mucho código en Rust es positivo porque demuestra que es un lenguaje maduro sobre el que se pueden construir software de producción serio. Gracias por el comentario.
Después de estudiar Carbon y tratar de usarlo diria que esta a 2 años de una version funcional, sin embargo tiene potencial quizas le haga la competencia a rust.
Me alegra saber que hay gente interesada o con curiosidad en este nuevo lenguaje, desgraciadamente tal y como dices, está en un estadomuy inicial, por lo que de momento no sabemos cómo irá, Rust está fuerte en su posición como alternativa a C++ para nuevos proyectos por lo que también es difícil aventurar su destino en ese sector. Gracias por el comentario.
Haced el top todo lo que haceis se nota que es con cariño y ademas ya se ve de sobra que manuel sabe de lo que habla. Me encanta su canal lo digo otra vez. Y una duda, porque demonios python tambien implemento la herencia múltiple si ran peligrosa es???
Gracias por tus palabras, sobre la herencia múltiple en Python, yo diría que el hecho de que esté simplifica algunos casos y agrega complejidad innecesaria en muchos otros. Si has utilizado Python y has tenido que hacer herencia múltiple, te pregunto, cuando usas "super()" a qué clase te estás refiriendo? Es ambiguo y si las clases de las que heredas tienen "colisiones" (mismos atributos o mismos métodos) termina siendo confuso y origen de errores potenciales. Lo mejor es evitarlo.
@@programandootrahistoria se me había olvidado comentarlo, si os sobra tiempo que lo dudo, personalmente me encantaría un video sobre Linus Torvalds, es un señor que me parece todo un personaje.
Delphi era un gran lenguaje en los 90 y principios de 2000, no obstante, como no pertenecía a grandes compañías y tal y como son estas empresas de intentar destruir a la competencia, se veía claro que terminarían echando a Borland/Embarcadero/... del mercado. Pero comparto tu añorancia, nostalgia o deseo de que Delphi y Pascal hubiesen llegado fuerte a nuestros días. Gracias por el comentario!
@@programandootrahistoria 👍Así es, y hoy en día que Delphi tiene todas las capacidades del mundo, igual las empresas preferirán usar C# y Kotlin, yo en lo personal no los utilizo porque simplemente con Delphi puedo hacer todo lo que hacen estos dos, pero con un IDE mucho mas ligero, un compilador potente y multiplataforma y con un lenguaje bien estructurado y cómodo de usar y aunque kotlin me encanta precisamente por las características mas típicas y cómodas de los lenguajes modernos, la verdad no tolero los IDEs de desarrollo como android studio, en realidad nada de lo que hagan sus creadores, son en mi opinión un asco en rendimiento, no velo la necesidad de hacerlos tan pesados, lentos he ineficientes 😅 pero ojo esa es solo mi opinión, sin ánimos de agraviar a nadie 🙃
c++ es mi lenguaje favorito así que mi opinión es sesgada, pero creo que c++ lo quieren sacar del juego las grandes compañías ya que existen numerosas herramientas libres para este lenguaje que les está arruinando el negocio.
Es muy posible, uno de los motivos para crear Carbon fue las discrepancias entre Google y el comité de estandarización del lenguaje C++. No obstante, cada lenguaje tiene fortalezas y debilidades, si quienes usan un lenguaje requieren una característica que constituye la debilidad del lenguaje, es normal que surja otro lenguaje potenciando ese aspecto para convertirlo en fortaleza y desgraciadamente aparecerán otras debilidades. Gracias por el comentario.
Para mi no es solo el lenguaje, sino la herramientas que desarrollan con ese lenguaje.. Sigo insistiendo, una lastima que HAXE no despego como realmente tiene que despegar.. para mi que todavía no encontro el hueco, pero si lo encuentra seguro va a tener una gran oportunidad en la industria.
Yo veo a Rust como un buen sucesor, pero no como un sucesor de cambios, si no como un sucesor de llevar la delantera de los proyectos del futuro, si el kernel de linux ya usa y pasan codigo a rust, el gobierno de estados unidos está pasando su codigo, a de ser por algo, pero no lo veo como algo de pasar de codigo, si no de avanzar, si antes se hacía con cobol y fortran, ahora se hacen con c++ (ejemplo), pero si debo admitir que soy gopher y rust fan haha
por cierto, si no tengo mal entendido, rust si puede coexistir con c++, tiene interoperabilidad con lenguaje extranjero FFI, permitiendo a rust trabajar con cosas de c++ como bibliotecas o funciones escritas y viceversa. No lo he usado, pero si no tengo mal entendido, funciona bien
Gracias por el comentario, sobre Rust es verdad que va paso a paso creciendo y ya hay empresas buscando programadores de Rust, muy positivo. Sobre el kernel de Linux, si recuerdo bien, Rust se puede emplear opcionalmente para escribir módulos pero de momento no hay nada en el kernel, la base. Pero como bien dices, ya entró, así que es posible que siga creciendo.
En realidad y como decimos en el vídeo los ecosistemas son diferentes, es decir, con FFI puedes incluir código en C++ dentro de un proyecto Rust, pero para hacer una migración te obligaría a crear el proyecto Rust e inyectar todo el código vía FFI, no parece muy eficiente ni fácil, pero lo mismo se hace, gracias por los comentarios!
En la comunidad anglo he leído comentarios del tipo "No hay problema en el mundo de la informática que no se pueda resolver usando C++" por ese lado me motiva aprenderlo, pero primero Java y lograr el tan anhelado primer empleo
Ciertamente. Piensa que cuando una biblioteca aparece en algún lenguaje como Python, Ruby, PHP, Perl, ... si son referentes a temáticas muy nuevas o donde el rendimiento apremia, esa biblioteca suele programarse en el lenguaje C o en C++. De hecho, uno de los principales problemas con Whatsapp (en nuestro vídeo del chat lo mencionamos ua-cam.com/video/rAiP5IapcF8/v-deo.html ), fue que Erlang y FreeBSD tenían algunos problemas de rendimiento y el equipo se remangó, tomó el lenguaje C y se pusieron a resolver los problemas escribiendo código no en Erlang, sino en C. En resumen, muy de acuerdo con esa frase, pero eso sí, no hay que confundir "problema a resolver" con "hacerlo todo con" ;-) Gracias por el comentario.
Pff eso decían de Cobol, y ahi esta, al contrario creo que es el momento de aprender c y c++ muchos van de salida y nosotros estamos en medio asi que habra trabajo. Ademas de c++ depende. Muchas librerías y lenguajes, asi querepito, si no han podido salir de cobol dudo lo hagan con c++
C++ es unn lenguaje de bajo nivel con un proposito completamente distinto a Java o C#, son para cosas diferentes, dudo que se pueda suplantar en los próximos 10 años.. Y si que es una pesadilla y un completo caos que parece que nunca se termina de aprender porque es enorme... Sus paradigmas de programación completamente distinto a todo, realmente es un lenguaje para pocos... A mi el lenguaje que me llama mucho la atención en HAXE, pero no crecio como tendria que haber crecido, sobre todo en desarrollo web.... Existe una versión de unreal engine 4.11 que funciona con HAXE que es increible como pudieron adaptar ese lenguaje a c++.. Es una maravilla.. Incluso hasta tuvo soporte de EPIC GAMES con la empresa que lo desarrollo, una lastima que quedo en la nada, si buscan HAXE unreal engine van a ver una conferencia donde hablan de esto.. UNa lastima que los de unreal no le dieron una oporunidad y soporte oficial a HAXE con unreal engine.
Estamos de acuerdo contigo, además porque aunque se compare con Rust o Go que tienen una finalidad similar, en C++ como en COBOL, hay mucho código hecho y es muy difícil cambiarlo y la cercanía al hardware que proporciona C++ no la dan los otros lenguajes, quien adora esa característica de C++ no cambia a otro lenguaje. Gracias por le comentario!
@@programandootrahistoria hagan un video de HAXE, es un lenguaje que compila en muchas plataformas.. lo más incrieble de Haxe es que puede hasta importar librerias C++.. Por eso pudieron adaptarlo a unreal engine, hay una conferencia donde hablan de eso, el tiempo de compilado de HAXE, entre otras cosas..Es algo increible ese lenguaje y encima anda un repositorio donde esta implementado con unreal engine 4.11.. hagan un video de ese eso.. saludos
Por un lado estamos de acuerdo contigo en que no llegará a su fin, al menos no en las siguientes dos o tres décadas, por otro lado tu facultad no os quiere nada :-D saludos, ánimo y gracias por el comentario
En mi caso llevo un año practicando con c++ y la realidad es dolor de cabeza pero flexible y practico, en verdad me gusta, creo que ya me acostumbré a él
En los comentarios puedes encontrar opiniones de todo tipo, hay quien lo ama, quien lo odia y a quienes les da igual. Lo ideal es aprender más de un lenguaje de programación y si pueden ser diferentes, mejor, porque así puedes hacer comparaciones e incluso intentar resolver los problemas desde diferentes enfoques, esto te abre aún más la mente para resolver de forma eficiente y eficaz muchos de los problemas que se te presenten. Gracias por el comentario.
¡Nosotros ya hablamos de Go y los Gophers! te dejo por aquí un enlace al vídeo en cuestión y si quieres ver algo más específico de Go podemos verlo, deja un comentario en ese vídeo y nos lo apuntamos ;-) Gracias por el comentario, aquí el enlace: ua-cam.com/video/05xDgi80-yw/v-deo.html
El lenguaje de programación D si que existe, que se creo como sucesor de C++. Pero tenia problemas de compatibilidad y aportaba muy poco sobre java y c#.
Se creó muchas décadas después y por gente completamente diferente, por lo que el nombre en verdad pudo haber sido adrede o casual, ¿valdría la pena investigarlo un poco? ¿alguien lo usa? Son preguntas que bien podría contestar Iker Jiménez :-D Gracias por el cometario.
Los lenguajes buscan hacerle la vida más fácil al programador, alejandolo de la forma como la máquina trabaja, en el camino quedan las optimizaciones. Ahora vemos como sofrware qué hace años ocupaba poco y requería poco parece devorar los procesadores y requerir cada ves más ram.
Cierto. Antiguamente los programadores medían cada ciclo de reloj porque cada ciclo de reloj se hacía en segundos en lugar de nanosegundos y la optimización significaba ganar horas o días en la ejecución de un programa. A día de hoy, si un código no es óptimo y consume algo más solo se diferencia en el orden de segundos o minutos en el peor de los casos. Tenemos veloces CPUs, GPUs y aún mostrando gráficos en 3D y con gran cantidad de sombras, degradados y transparencias, hay pocos casos donde el software desarrollado requiera de una gran optimización. Sin embargo, tal y como dices, el software es cada vez más complejo y lo que premia ahora es hacer el código simple y claro, elegante. Así que es normal que C++ no sea el primer lenguaje de elección en muchos proyectos hoy en día, pero sí donde se requiere un control de recursos muy fino. Gracias por el comentario.
No tengo una opinión formada de Zig porque nunca lo he usado pero lo tengo en mi mente como un lenguaje que pretende ser un sucesor de C al igual que Hare, V o Vala. ¿Lo has emnpleado? ¿Qué te parece a ti? Gracias por el comentario.
No creo que C++ sea reemplazado así de fácil. Incluso Rust no ha reemplazado (o probablemente no tanto) a C++, para que pase eso con otro lenguaje o el mismo Rust (algo un poco improbable en mi opinión pero no imposible), esos lenguajes tendrían que implementar características superiores a las de C++, además de ser más seguros. Claro, sueno redudante y obvio, pero en fin. De paso, ¿ya conocían al lenguaje D (también conocido como Dlang)?. O sea D no existía en la época de los 80, pero hoy sí existe, desde el 2001 creo.
Siempre hemos entendido que hay lenguajes irremplazables o que realmente cuesta mucho trabajo reemplazarlo como para que sea factible. Ahí tenemos a COBOL también, pero en el caso de C++ no creo que el reemplazo llegue porque hay muchos programadores a los que les gusta el lenguaje y el lenguaje sigue progresando, no ha muerto y por tanto seguirá con nosotros :-) Gracias por el comentario.
C podría decirse que es más simple pero me gusta más C++ porque tiene muchas cosas interesantes. Como namespaces, sobrecarga de operadores, referencias y plantillas.
El principal cuello de botella de C en comparación con C++, para mí, es la ausencia de destructores. Eso, junto a la ausencia de excepciones, donde los errores deben manejarse a mano casi cada 3 líneas, hace que el código se convierta en unos pifostios spaguettoides muy rápidamente. C no escala muy bien a la hora de querer ser expresivo, a no ser que tengas muchíiiiiisima experiencia como programador.
Depende del caso de uso, en el libro de Historias de los Lenguajes de Programación, los programadores de los años 50 consideraban que la única solución era programar en ensamblador y entonces Backus trajo el primer lenguaje en el que era igual programar en ensamblador que en ese lenguaje de alto nivel. De hecho, con C ya tampoco se programa en ensamblador de forma directa, por lo que cabe decir que si mi necesidad o el cuello de botella de mi programa puede ser cierto tipo de cálculo, procesamiento de datos o acceso a estos datos y hay otro lenguaje de alto nivel que lo facilite, podré usarlo. Es un mal ejemplo, porque como bien dices se recurre a C, pero en PHP, Python, Ruby, Perl y otros lenguajes, cuando se necesita velocidad, se implementa parte de la librería en C, la parte crítica únicamente, como el caso de Numpy que tiene parte de su código en C e incluso algo tiene en C++. Lo que realmente ilustra bien mi ejemplo no es programar en estos lenguajes, por supuesto, ahí te doy la razón, si quieres velocidad tendrás que implementar en C o C++, los ejemplos que ilustran bien mi historia inicial con Backus son Nim, Crystal o Julia, que son versiones de Python o Ruby con un alto nivel de rendimiento. Si en algún momento requieres o necesitas Python con alto nivel de rendimiento, te recomiendo echarle un vistazo a Nim o si quieres darle mayor rendimiento a un proyecto de Ruby échale un vistazo a Crystal. Para todo lo demás, usa C :-) Gracias por el comentario.
No, me temo que tiene muy duras palabras para C++ y responde de forma poco amistosa a cualquiera que intente introducir C++ en alguno de sus proyectos. Linus es un amante de C. Gracias por el comentario.
NO!..por que uso mucho C/C++, trabajo con ASM y ESP32. El que deberia desaparecer es java, como dijo torvals : "esa mierda de lenguaje!". Saludos y muy buen canal.
Esa frase de Torvalds bien podría ser para C++, o cualquier otro lenguaje, creo que del único lenguaje que no habla mal es de C, pero tranquilo, queda C y C++ para largo tiempo. Saludos y gracias por el comentario.
@@programandootrahistoria use java durante un largo tiempo, y jamas me adapte la VM de java un asco, librerias desactualizadas y sin fin de problemas, no fue buena experiencia para mi, saludos amigo.
El dia que las Cacerolas de cocina vengan con puerto USB, de seguro los programas que se ejecuten seran hechos en C. Python esta vivo porque no hay librerias IA decentes para otros lenguajes. No por la hermosa sintaxis que tiene
El creador de Elixir está camiando eso poco a poco creando un ecosistema muy competente, el proyecto Bumblebee es genial, muy recomendable, pero volviendo al tema, sí, el lenguaje C y C++ tienen mucha vida por delante... y de hecho, espero tu comentario en el siguiente vídeo que hablaremos del lenguaje C ;-) Gracias por el comentario.
C++ no tiene fin todas absolutente todas las tecnologías especialmente de alto rendimiento están hechas en c++ y este año saldra el nuevo estándar, no pueden comparar lenguabes compilados con interpretados, así sean buenos go o rust internamente el compiler está hecho en c.
No todas las tecnologías están hechas en C++, hay muchas hechas en C y algunas comienzan a estar en Rust y otros lenguajes de alto rendimiento como Zig, V, Nim, Crystal, ... hay mucha competencia, pero te doy la razón en que C++ es el más maduro y el más extendido (si quitamos C). Gracias por el comentario.
Igual mano, c++ está hecho en c, python está hecho en c, pude debuguear zip y esta hecho en c, yo trabajo día a día en c++ y todos los núcleos de las grandes están en c, incluso solidity para la Blockchain está en c, yo estoy en c jajajaj saludos.
Pues no te creas, normalmente los programadores de Ruby que conocí a principios de 2000 miraban con malos ojos Python porque les obligaba a indentar correctamente el código, un error entre espacios y tabuladores y el código no funciona. A mi siempre me gustó, pero puedo entender que no todos los lenguajes son del gusto de todos. Sobre la compilación, toda la razón, con C++ puedes hacer drivers, sistemas operativos, IoT para dispositivos muy pequeños y aunque esto último sí sería posible con Python, se hace más complejo. Gracias por el comentario!
:-D muy buena esa, pero hay algo similar, ¿te suena Macro Assembler? Fue un lenguaje Ensamblador mejorado que estuvo en uso durante mucho tiempo, de hecho, su origen lo podemos trazar en Bell SAP y está incluido en el nuevo libro de Altenwald ( altenwald.com/historia-de-los-lenguajes-de-programacion-1960 ), te recomendamos su lectura y gracias por el comentario.
Gracias por el comentario y la puntualización, pero si te refieres a FFI para emplear código C++ desde Rust, en ese caso necesitarás aún así crear un proyecto Rust y tendrás que migrar todo el proceso de construcción además de que no todo puede ir bajo FFI. Otro de los mecanismos en los que podemos integrar Rust es a través de WebAssembly que nos permite incluir código en sistemas que integren una máquina virtual que ejecute código WebAssembly como los navegadores web. No obstante, lo que sucede en Android es muy diferente, según un artículo de un integrante del equipo de Android, están reescribiendo la máquina virtual de Android [1]. La máquina virtual de Android es un caso muy específico y no se puede extrapolar porque la forma en la que permite el código depende de su versión. [1] security.googleblog.com/2023/10/bare-metal-rust-in-android.html
Es una pregunta recurrente de muchos foros, ¿C++ está muerto? ¿será reemplazado? Obviamente C++ está más vivo que FORTRAN y COBOL y por tanto le auguramos aún unas cuantas décadas de seguir creciendo y siendo usado en proyectos, lo cual no quita que haya muchos proyectos que se comiencen a hacer con Rust, Go, Zig, Nim, Crystal, V, Vala, ... incluso comentaron por aquí el caso de Circle que podría revitalizar aún más C++, por lo que, no te preocupes, C++ nos durará mucho, mucho, mucho. Gracias por el comentario.
Creo que son los más famosos hoy en día, pero creo que hay muchos más que están intentando desplazar a C, no solo a C++, como por ejemplo Odin, Hare o V. Pero sí, tus ejemplos son muy buenos. Gracias por el comentario.
@@programandootrahistoria ah mira, no sabía, sabía de Zig por BUN JS, ya que ese lenguaje fue usado para el todo en uno BUN JS, entonces por curiosidad busqué Zig y que también es un lenguaje para usarse en vez de C
Cuando aparecio Java pensaron que C++ desapareceria. Luego con C# y con otros lenguajes mas. En serio creen que van a desaparecer? Pues lo siento pero no.
Tienes razón, al igual que FORTRAN y COBOL no creemos que C++ vaya a desaparecer, tal y como decimos en el vídeo ya se intentó con Java, con C# y con Rust, e incluso con Go, y aunque estos lenguajes se han hecho hueco para nuevos proyectos en según qué uso, C++ sigue estando muy presente y no creemos que esto cambie en al menos un par de décadas más, ya nos dirá el futuro. Gracias por tu comentario.
Sentimos no haber trasladado ese sentimiento en la conclusión final, pero sí, como programador y usuario de C++ no considero que sea reemplazado, al igual que Java no ha sido reemplazado por Kotlin, ni JavaScript por TypeScript :-)
@@programandootrahistoria No conozco LISP ni Prolog. Pero se que usa C++ o Fortran porque para hacer álgebra lineal y cálculos matemáticos, los tiempos de ejecución son bastante rápidos. Además de que hay muchas librerías y solvers corriendo sobre esos lenguajes.
hablan mucho del sistema de herencia pero no dicen nada sobre el infierno de las interfaces? Si bien esas cosas no deberían de ser tratadas sino por el compilador, la dedicación que los programadores les dedican a esas tonterías es absurda y que simplemente deberían de prescindirse o manejarse de una manera diferente. Otra cosa que molesta es que los nombres que les dedican los programadores a los conceptos es un desastre, mirar a google, ¿cómo le vas a llamar al sistema de conducción automática? Google Drive X Wimo :) Cómo le vas a llamar al sistema de almacenamiento en la nube? Google Cloud Storage X Google Drive :) Cómo le vas a llamar al sistema servicio de servidores? Google Server X Google Cloud Storage :) Programadores, ¿Cómo le vas a llamar a los paquetes de criterios? Criteria X interface :) Vayan y cómanse un cerro de 💩
Si te refieres a Google, depende del proyecto, del grupo de trabajo y muchos factores más. Sabemos que los que hacen Fucsia sí que usan Rust, en Android parece un cambio posible y se está haciendo, sin embargo en otros proyectos parece que no es tan fácil y por eso están haciendo Carbon. Quizás Carbon no quede en nada o pase más o menos desapercibido como Dart, será interesante ver su progreso y si realmente supone un cambio en el futuro. Gracias por el comentario.
me dan risas estos ytbr sacando videos para tener que comer, la última vez que ví uno así fue el fin de php y ahora esto, ytbe así deberían de ser baneado de por vida por desinformar o vender amarillismo
Pues si te digo que lo hacemos por el amor al arte, porque nos divertimos y porque lo pasamos bien como experiencia... no obstante, es solo curiosidad, viste el vídeo? Qué te pareció exactamente amarillista? Gracias por el feedback
Vivitos están... pero no muy boyantes. Te doy la razón en que C++ parece un caso diferente, hay muchas grandes empresas aún usándolo y ha habido muchos intentos (sin éxito) de reemplazarlo y salvo algunas excepciones en proyectos nuevos o pequeños que sí han sido portados a Rust o Go, C++ sigue siendo fuerte. Sobre las modas, en verdad C++ fue una moda al incluir POO en su momento. Gracias por el comentario.
Lo decimos en el vídeo, es una muy buena puntualización, porque sabemos que siempre se asocia a C++ como el C con clases/objetos o POO en general, de hecho si usas Boost o STL te obliga a usar clases y objetos y ahí radica parte de su potencia. Gracias por el comentario.
realmente JavaScript no deja a nadie indiferente, hay quien lo ama, hay quien lo odia, pero recuerdo aún cuando lo usaba en 2000 y de entonces a ahora hay que decir que ha mejorado muchísimo y no obstante, te da facilidades para poder utilizar otros lenguajes encima como es el caso de Gleam, Elm, TypeScript, CoffeeScript, ... creo que incluso puedes utilizar algún tipo de Python también. Para lo complicado puedes tirar de WebAssembly y usar Rust, C++ o cualquier otro. Vamos, que JavaScript en verdad no es requerido, pero nos apuntamos hacer un vídeo, seguro que es interesante profundizar en su Historia. Gracias por el comentario.
En verdad sí, el creador de C# (de donde evolucionó C++++) dijo que una de sus bases fue C++, que a su vez se basa en C ;-) Te recomendamos nuestro vídeo acerca de C# y gracias por el comentario
@@programandootrahistoria Realmente se basó más en Clipper y Pascal, ya que no le dejaron evolucionar el lenguaje en Borland y fue ent9nces fichado por Microsoft
@@programandootrahistoria Por cierto eo lenguaje es C#. Puse C++++ para identif8car el nonmbre, ya que la idea de Microsoft fuevhacerlo el sucesor de C++, de shi ponerle ++ adicional, aunque escrito de forma diferente
Clipper es muy diferente al Turbo Pascal y Delphi en los que estuvo involucrado dentro de Borland pero tienes razón que seguramente tomase ideas. No obstante, oficialmente él dice haber tomado referencias de C++ cuando se le pregunta si no es una copia de Java. Échale un vistazo al vídeo, no te defraudará ;-) ua-cam.com/video/UUQTjA0cRpQ/v-deo.html
@@oxioxpgracias por tu comentario y apoyo, no te preocupes, la postura del que ha comentado es algo infantil, pero si ha decidido invertir parte de su tiempo en ver parte del vídeo y escribir un comentario, por nosotros merece una respuesta. Es triste que la gente invierta su tiempo que es lo único valioso que tiene en dar un mal día (o intentarlo) a otras personas, pero bueno. Finalmente nuestros mensajes más elaborados y con cariño van para comentarios como el tuyo donde se nos apoya, así que de nuevo, gracias por tu comentario y tus palabras.
Python viendo la crítica a la herencia múltiple: 🗿
Ĵajajajs la cara de piedra
Una definición quizás más "apropiada" para C++ es, más que orientado a objetos o "con" orientación a objetos, sería "orientado a abstracciones". El principio casi más nuclear del lenguaje es el de "zero overhead abstraction": implementar una abstracción, que simplifique tu capacidad de razonar sobre el código, NO DEBE tener un coste extra en ejecución. Es decir, ejecutar abstracciones (diseñadas por los usuarios del lenguaje, suponiendo que lo utilizan bien) debe ser gratis para la CPU, o lo más gratis que se pueda.
Eso explica el gigantesco énfasis que tiene C++ en todo lo que sea cómputo en tiempo de compilación (que sea el compilador quién trabaje en traducir las abstracciones a código máquina COMO SI dichas abstracciones nunca hubieran existido): sobrecarga estática, plantillas, concepts, destructores, strong typing, etc, y por qué, pese a ser un lenguaje de tan alto nivel, aún así es el utilizado para sistemas, videojuegos, trading de alta frecuencia y todo lo que tenga que ver con extraer hasta el último nanosegundo de la máquina.
El problema de C++ no es la herencia múltiple y esas cosas, sino las reglas de inicialización, son un auténtico infierno: inicialización por defecto, por valor, directa, de agregados, initializer-lists, type-deduction, deduction guides... y el problema es que no se puede "resetear" el lenguaje para simplificar sus reglas debido a la retrocompatibilidad histórica. Pues Carbon es dicho "reseteo", aunque como alternativa a C++ preferiría Circle, creo.
Gracias por tu comentario, realmente se aprende mucho de gente que se ve que está en C++ muy a fondo.
Como definición del lenguaje la verdad es que hay mucha controversia, lo que sí nos queda clara es que no es "lenguaje orientado a objetos" per se y como tú indicas se orienta a abstracciones, ahora con la adición de generics más aún.
Por último, no sé si has empleado Circle, en verdad no cambias de lenguaje ya que usa C++20 y el problema que señalan los ingenieros de Google y el porqué se está creando Carbon es porque los problemas no se pueden resolver con los estándares actuales. Circle es un cambio de compilador más que de lenguaje.
Como dije al principio, gracias por tu comentario, has dado mucha y muy valiosa información. Espero seguir leyéndote en otros vídeos de nuestro canal.
@@programandootrahistoria No he utilizado Circle, pero he leído parte de la doc. Lo he citado como "alternativa" en el sentido de que, al permitirte activar y desactivar extensiones sintácticas manualmente, tienes una "puerta abierta" para resolver problemas históricos de C++, con esa idea de "burbujas sintácticas". ¿Qué las reglas de inicialización son muy complejas? Pues nada, activamos ciertos flags que solo afectan a nuestro módulo en cuestión y utilizamos otras nuevas (no sé si Circle tendrá tal cosa todavía, pero la idea general es esa, arreglar problemas con sintáxis de quita y pon). Y es una alternativa porque no es C++, es una especie de dialecto plurilingue.
Esa estrategia escala mejor que cualquier otra. Lo que sea que Carbon defina, cualquier error que se cometa y que solo se observe tras años de experiencia, Carbon sufrirá las mismas consecuencias que C++: no puedes redefinir nada si no quieres romper código usuario existente.
Vamos por el top! Y creo que Rust y Go tomarán su propio camino, cada language crea su propia historia. Por el momento aún no veo muy lejano Rust como lenguaje para videojuegos.
Gracias por el comentario y nos apuntamos hacer el top. Sobre Rust, no sé, lleva muchos años ahí y no ha supuesto un cambio radical sin embargo sí está comenzando a verse cada vez más, ya se puede utilizar dentro del kernel de Linux y hay muchos lenguajes, como Erlang, donde se pueden escribir extensiones del lenguaje usando Rust. Sin duda dará de qué hablar.
@@programandootrahistoria en eso estoy de acuerdo está dando pasos más sólidos con cada avance que tiene y como dices se perfila para Linux. Aún así yo personalmente aún no lo veo como el sustituto de C o C++ aún lo veo un poco lejano. Pero veamos a donde llega.
No es solo el lenguaje, es la herramienta que desarrollan con el lenguaje y que le da oportunidad a la gennte para desarrollar cosas con mayor fácilidad
En eso tienes razón también muchas veces las herramientas que ofrecen los lenguajes rompen la barrera de entrada para los programadores y facilita su adopción. Yo mismo lo vi con Ruby y Rails.
Para mí C++ y Python son el combo perfecto para lo que yo hago. (Física computacional y análisis de datos) ya que son tan parecidos que mudarse de uno a otro no es nada difícil una vez te acostumbras.
C++ se usa para cómputo y simulaciones pesadas mientras que Python es más conveniente para manejar los datos y graficarlos.
Tengo entendido que en física computacional hay centros que se han pasado a Julia para no tener que convertir código de Python a C o C++ y otros que emplean Nim que es como una versión de Python compilado y por ello tiene un rendimiento mayor, ¿has visto alguna de estas opciones? Gracias por el comentario.
@@programandootrahistoria conozco la opción de Julia, la otra no. Investigaré :).
Igual sé de muchos códigos que se hacen en Fortran, Cuda o C.
Pero igual, varios de los códigos de simulación más pesados que conozco en el área están escritos en C++, y es precisamente porque es un lenguaje muy útil una vez lo aprendes porque te permite utilizar lases, apuntadores, escribir y leer archivos bastante rápido, etc. Eso lo hace muy versátil a diferencia de otros lenguajes compilados como Fortran por ejemplo.
Y ya todo el procesado de datos es mejor hacerlo en Python, por todas las librerías ya desarrolladas como numpy, pandas, scipy, libQt5, seaborn y un larguísimo etc.
x2. uso python y c++ ero no para lo mismo que tu xd
@jojo989GD ya me generaste curiosidad, ¿es en ambiente profesional donde empleas C++ y Python? ¿combinados o unos proyectos con C++ y otros con Python? ¿entorno científico, transporte, financiero, qué vertical?
pues no, tengo 16 recien y uso c++ para cosas como modding de juegos o cosas de low level porque me gusta mucho la programacion de bajo nivel, python lo uso para proyectos mas simples como hacer simples scripts o bots@@programandootrahistoria
Yo sí creo que Rust reemplazará a C++, principalmente por su adopción, la integración dentro de los kernels de los principales sistemas operativos y el incentivo de diferentes empresas (como Google, que está haciendo de patrocinador) para mejorar la interoperabilidad entre Rust y C++.
Nunca podemos descartar ninguna opción aunque la trayectoria actual apunta a que seguirán conviviendo, gracias por el comentario
De hecho Microsoft está reescribiendo bibliotecas de windows escritos en C++ a Rust y hay un proyecto de sistema operativo escrito en Rust llamado Redox OS
Redox OS es un buen ejemplo de que se pueden escribir sistemas operativos con Rust, pero no es un OS que se esté usando, así que no sabemos si llegará a ser un ejemplo a seguir o una efeméride como Plan9. No obstante, que se haga mucho código en Rust es positivo porque demuestra que es un lenguaje maduro sobre el que se pueden construir software de producción serio. Gracias por el comentario.
Después de estudiar Carbon y tratar de usarlo diria que esta a 2 años de una version funcional, sin embargo tiene potencial quizas le haga la competencia a rust.
Me alegra saber que hay gente interesada o con curiosidad en este nuevo lenguaje, desgraciadamente tal y como dices, está en un estadomuy inicial, por lo que de momento no sabemos cómo irá, Rust está fuerte en su posición como alternativa a C++ para nuevos proyectos por lo que también es difícil aventurar su destino en ese sector. Gracias por el comentario.
Lo dudo, ultimamente todo lo que toca google se muere 😢
@@paolobooker4163ánimo, de momento Dart y Go siguen ahí, hay esperanza para Carbon!
no conocía este canal, muy buen trabajo
gracias, espero que disfrutes del resto de los vídeos y te leemos para cualquier duda o sugerencia que nos quieras hacer llegar ;-)
Haced el top todo lo que haceis se nota que es con cariño y ademas ya se ve de sobra que manuel sabe de lo que habla. Me encanta su canal lo digo otra vez.
Y una duda, porque demonios python tambien implemento la herencia múltiple si ran peligrosa es???
Gracias por tus palabras, sobre la herencia múltiple en Python, yo diría que el hecho de que esté simplifica algunos casos y agrega complejidad innecesaria en muchos otros. Si has utilizado Python y has tenido que hacer herencia múltiple, te pregunto, cuando usas "super()" a qué clase te estás refiriendo? Es ambiguo y si las clases de las que heredas tienen "colisiones" (mismos atributos o mismos métodos) termina siendo confuso y origen de errores potenciales. Lo mejor es evitarlo.
@@programandootrahistoria se me había olvidado comentarlo, si os sobra tiempo que lo dudo, personalmente me encantaría un video sobre Linus Torvalds, es un señor que me parece todo un personaje.
Me hubiese gustado que a través de la historia se adoptara Delphi en ves de C++, pero bue!, así se dieron las cosas, y tan mal no ah ido 😄
Delphi era un gran lenguaje en los 90 y principios de 2000, no obstante, como no pertenecía a grandes compañías y tal y como son estas empresas de intentar destruir a la competencia, se veía claro que terminarían echando a Borland/Embarcadero/... del mercado. Pero comparto tu añorancia, nostalgia o deseo de que Delphi y Pascal hubiesen llegado fuerte a nuestros días. Gracias por el comentario!
@@programandootrahistoria 👍Así es, y hoy en día que Delphi tiene todas las capacidades del mundo, igual las empresas preferirán usar C# y Kotlin, yo en lo personal no los utilizo porque simplemente con Delphi puedo hacer todo lo que hacen estos dos, pero con un IDE mucho mas ligero, un compilador potente y multiplataforma y con un lenguaje bien estructurado y cómodo de usar y aunque kotlin me encanta precisamente por las características mas típicas y cómodas de los lenguajes modernos, la verdad no tolero los IDEs de desarrollo como android studio, en realidad nada de lo que hagan sus creadores, son en mi opinión un asco en rendimiento, no velo la necesidad de hacerlos tan pesados, lentos he ineficientes 😅 pero ojo esa es solo mi opinión, sin ánimos de agraviar a nadie 🙃
c++ es mi lenguaje favorito así que mi opinión es sesgada, pero creo que c++ lo quieren sacar del juego las grandes compañías ya que existen numerosas herramientas libres para este lenguaje que les está arruinando el negocio.
Es muy posible, uno de los motivos para crear Carbon fue las discrepancias entre Google y el comité de estandarización del lenguaje C++. No obstante, cada lenguaje tiene fortalezas y debilidades, si quienes usan un lenguaje requieren una característica que constituye la debilidad del lenguaje, es normal que surja otro lenguaje potenciando ese aspecto para convertirlo en fortaleza y desgraciadamente aparecerán otras debilidades. Gracias por el comentario.
Excelente video!!!
Gracias por tu comentario, no olvides suscribirte si no lo hiciste, el siguiente vídeo también promete :-)
me parece una genial idea de crear un top de esas caracteristicas
Hágase ese top! Gracias por el comentario.
Para mi no es solo el lenguaje, sino la herramientas que desarrollan con ese lenguaje.. Sigo insistiendo, una lastima que HAXE no despego como realmente tiene que despegar.. para mi que todavía no encontro el hueco, pero si lo encuentra seguro va a tener una gran oportunidad en la industria.
Yo veo a Rust como un buen sucesor, pero no como un sucesor de cambios, si no como un sucesor de llevar la delantera de los proyectos del futuro, si el kernel de linux ya usa y pasan codigo a rust, el gobierno de estados unidos está pasando su codigo, a de ser por algo, pero no lo veo como algo de pasar de codigo, si no de avanzar, si antes se hacía con cobol y fortran, ahora se hacen con c++ (ejemplo), pero si debo admitir que soy gopher y rust fan haha
por cierto, si no tengo mal entendido, rust si puede coexistir con c++, tiene interoperabilidad con lenguaje extranjero FFI, permitiendo a rust trabajar con cosas de c++ como bibliotecas o funciones escritas y viceversa. No lo he usado, pero si no tengo mal entendido, funciona bien
Gracias por el comentario, sobre Rust es verdad que va paso a paso creciendo y ya hay empresas buscando programadores de Rust, muy positivo. Sobre el kernel de Linux, si recuerdo bien, Rust se puede emplear opcionalmente para escribir módulos pero de momento no hay nada en el kernel, la base. Pero como bien dices, ya entró, así que es posible que siga creciendo.
En realidad y como decimos en el vídeo los ecosistemas son diferentes, es decir, con FFI puedes incluir código en C++ dentro de un proyecto Rust, pero para hacer una migración te obligaría a crear el proyecto Rust e inyectar todo el código vía FFI, no parece muy eficiente ni fácil, pero lo mismo se hace, gracias por los comentarios!
@@programandootrahistoria definitivamente la solución perfecta es complicado, buen video!!
En la comunidad anglo he leído comentarios del tipo "No hay problema en el mundo de la informática que no se pueda resolver usando C++" por ese lado me motiva aprenderlo, pero primero Java y lograr el tan anhelado primer empleo
Ciertamente. Piensa que cuando una biblioteca aparece en algún lenguaje como Python, Ruby, PHP, Perl, ... si son referentes a temáticas muy nuevas o donde el rendimiento apremia, esa biblioteca suele programarse en el lenguaje C o en C++.
De hecho, uno de los principales problemas con Whatsapp (en nuestro vídeo del chat lo mencionamos ua-cam.com/video/rAiP5IapcF8/v-deo.html ), fue que Erlang y FreeBSD tenían algunos problemas de rendimiento y el equipo se remangó, tomó el lenguaje C y se pusieron a resolver los problemas escribiendo código no en Erlang, sino en C.
En resumen, muy de acuerdo con esa frase, pero eso sí, no hay que confundir "problema a resolver" con "hacerlo todo con" ;-) Gracias por el comentario.
Pff eso decían de Cobol, y ahi esta, al contrario creo que es el momento de aprender c y c++ muchos van de salida y nosotros estamos en medio asi que habra trabajo. Ademas de c++ depende. Muchas librerías y lenguajes, asi querepito, si no han podido salir de cobol dudo lo hagan con c++
Saludos amigo, a que te refieres cuando dices que muchos van de salida. Podrías darme una respuesta objetiva para tener un panorama? Gracias.
C++ es unn lenguaje de bajo nivel con un proposito completamente distinto a Java o C#, son para cosas diferentes, dudo que se pueda suplantar en los próximos 10 años.. Y si que es una pesadilla y un completo caos que parece que nunca se termina de aprender porque es enorme... Sus paradigmas de programación completamente distinto a todo, realmente es un lenguaje para pocos... A mi el lenguaje que me llama mucho la atención en HAXE, pero no crecio como tendria que haber crecido, sobre todo en desarrollo web.... Existe una versión de unreal engine 4.11 que funciona con HAXE que es increible como pudieron adaptar ese lenguaje a c++.. Es una maravilla.. Incluso hasta tuvo soporte de EPIC GAMES con la empresa que lo desarrollo, una lastima que quedo en la nada, si buscan HAXE unreal engine van a ver una conferencia donde hablan de esto.. UNa lastima que los de unreal no le dieron una oporunidad y soporte oficial a HAXE con unreal engine.
Estamos de acuerdo contigo, además porque aunque se compare con Rust o Go que tienen una finalidad similar, en C++ como en COBOL, hay mucho código hecho y es muy difícil cambiarlo y la cercanía al hardware que proporciona C++ no la dan los otros lenguajes, quien adora esa característica de C++ no cambia a otro lenguaje. Gracias por le comentario!
@@programandootrahistoria hagan un video de HAXE, es un lenguaje que compila en muchas plataformas.. lo más incrieble de Haxe es que puede hasta importar librerias C++.. Por eso pudieron adaptarlo a unreal engine, hay una conferencia donde hablan de eso, el tiempo de compilado de HAXE, entre otras cosas..Es algo increible ese lenguaje y encima anda un repositorio donde esta implementado con unreal engine 4.11.. hagan un video de ese eso.. saludos
Nos lo apuntamos, gracias por la información
Personalmente creo que c++ no llegará a su fin, de lo contrario, mi universidad no me seguiría rompiendo las bolas con ese lenguaje
Por un lado estamos de acuerdo contigo en que no llegará a su fin, al menos no en las siguientes dos o tres décadas, por otro lado tu facultad no os quiere nada :-D saludos, ánimo y gracias por el comentario
En mi caso llevo un año practicando con c++ y la realidad es dolor de cabeza pero flexible y practico, en verdad me gusta, creo que ya me acostumbré a él
En los comentarios puedes encontrar opiniones de todo tipo, hay quien lo ama, quien lo odia y a quienes les da igual. Lo ideal es aprender más de un lenguaje de programación y si pueden ser diferentes, mejor, porque así puedes hacer comparaciones e incluso intentar resolver los problemas desde diferentes enfoques, esto te abre aún más la mente para resolver de forma eficiente y eficaz muchos de los problemas que se te presenten. Gracias por el comentario.
Excelente canal, me suscribo
Poco se habla de Rust y Go :v
¡Nosotros ya hablamos de Go y los Gophers! te dejo por aquí un enlace al vídeo en cuestión y si quieres ver algo más específico de Go podemos verlo, deja un comentario en ese vídeo y nos lo apuntamos ;-) Gracias por el comentario, aquí el enlace: ua-cam.com/video/05xDgi80-yw/v-deo.html
El lenguaje de programación D si que existe, que se creo como sucesor de C++. Pero tenia problemas de compatibilidad y aportaba muy poco sobre java y c#.
Se creó muchas décadas después y por gente completamente diferente, por lo que el nombre en verdad pudo haber sido adrede o casual, ¿valdría la pena investigarlo un poco? ¿alguien lo usa? Son preguntas que bien podría contestar Iker Jiménez :-D Gracias por el cometario.
Los lenguajes buscan hacerle la vida más fácil al programador, alejandolo de la forma como la máquina trabaja, en el camino quedan las optimizaciones.
Ahora vemos como sofrware qué hace años ocupaba poco y requería poco parece devorar los procesadores y requerir cada ves más ram.
Cierto. Antiguamente los programadores medían cada ciclo de reloj porque cada ciclo de reloj se hacía en segundos en lugar de nanosegundos y la optimización significaba ganar horas o días en la ejecución de un programa. A día de hoy, si un código no es óptimo y consume algo más solo se diferencia en el orden de segundos o minutos en el peor de los casos. Tenemos veloces CPUs, GPUs y aún mostrando gráficos en 3D y con gran cantidad de sombras, degradados y transparencias, hay pocos casos donde el software desarrollado requiera de una gran optimización. Sin embargo, tal y como dices, el software es cada vez más complejo y lo que premia ahora es hacer el código simple y claro, elegante. Así que es normal que C++ no sea el primer lenguaje de elección en muchos proyectos hoy en día, pero sí donde se requiere un control de recursos muy fino. Gracias por el comentario.
Órale que buen contenido, se agradece el esfuerzo por el proyecto.
Gracias por tus palabras y comentario, así da gusto :-)
Grandes me encantó el vídeo nuevo sub saludos ❤
Gracias por el comentario y la suscripción, esperamos que disfrutes igualmente de nuestros otros vídeos. Saludos!
@@programandootrahistoria 👍
que opinas de zig?
No tengo una opinión formada de Zig porque nunca lo he usado pero lo tengo en mi mente como un lenguaje que pretende ser un sucesor de C al igual que Hare, V o Vala. ¿Lo has emnpleado? ¿Qué te parece a ti? Gracias por el comentario.
No creo que C++ sea reemplazado así de fácil. Incluso Rust no ha reemplazado (o probablemente no tanto) a C++, para que pase eso con otro lenguaje o el mismo Rust (algo un poco improbable en mi opinión pero no imposible), esos lenguajes tendrían que implementar características superiores a las de C++, además de ser más seguros. Claro, sueno redudante y obvio, pero en fin. De paso, ¿ya conocían al lenguaje D (también conocido como Dlang)?. O sea D no existía en la época de los 80, pero hoy sí existe, desde el 2001 creo.
También olvidé mencionar, que Dlang no permite la herencia múltiple, se optan por otras estructuras de código.
Siempre hemos entendido que hay lenguajes irremplazables o que realmente cuesta mucho trabajo reemplazarlo como para que sea factible. Ahí tenemos a COBOL también, pero en el caso de C++ no creo que el reemplazo llegue porque hay muchos programadores a los que les gusta el lenguaje y el lenguaje sigue progresando, no ha muerto y por tanto seguirá con nosotros :-) Gracias por el comentario.
a mi me gusta más C asi que por mi esta bien XD
Gracias por el comentario y no te pierdas nuestro siguiente vídeo porque irá precisamente del lenguaje C ;-)
C podría decirse que es más simple pero me gusta más C++ porque tiene muchas cosas interesantes. Como namespaces, sobrecarga de operadores, referencias y plantillas.
qué te parece la propuesta de Carbon? Gracias por el comentario.
El principal cuello de botella de C en comparación con C++, para mí, es la ausencia de destructores. Eso, junto a la ausencia de excepciones, donde los errores deben manejarse a mano casi cada 3 líneas, hace que el código se convierta en unos pifostios spaguettoides muy rápidamente. C no escala muy bien a la hora de querer ser expresivo, a no ser que tengas muchíiiiiisima experiencia como programador.
Todo programa que necesite velocidad usará C.
Depende del caso de uso, en el libro de Historias de los Lenguajes de Programación, los programadores de los años 50 consideraban que la única solución era programar en ensamblador y entonces Backus trajo el primer lenguaje en el que era igual programar en ensamblador que en ese lenguaje de alto nivel. De hecho, con C ya tampoco se programa en ensamblador de forma directa, por lo que cabe decir que si mi necesidad o el cuello de botella de mi programa puede ser cierto tipo de cálculo, procesamiento de datos o acceso a estos datos y hay otro lenguaje de alto nivel que lo facilite, podré usarlo. Es un mal ejemplo, porque como bien dices se recurre a C, pero en PHP, Python, Ruby, Perl y otros lenguajes, cuando se necesita velocidad, se implementa parte de la librería en C, la parte crítica únicamente, como el caso de Numpy que tiene parte de su código en C e incluso algo tiene en C++. Lo que realmente ilustra bien mi ejemplo no es programar en estos lenguajes, por supuesto, ahí te doy la razón, si quieres velocidad tendrás que implementar en C o C++, los ejemplos que ilustran bien mi historia inicial con Backus son Nim, Crystal o Julia, que son versiones de Python o Ruby con un alto nivel de rendimiento. Si en algún momento requieres o necesitas Python con alto nivel de rendimiento, te recomiendo echarle un vistazo a Nim o si quieres darle mayor rendimiento a un proyecto de Ruby échale un vistazo a Crystal. Para todo lo demás, usa C :-) Gracias por el comentario.
@@programandootrahistoria Gracias a tí. Saludos
min 0:9:00 epico
A nosotros también nos gustan las citas incisivas. Gracias por el comentario.
necesito el top de lenguajes de programacion
Lo trendrás, no hoy ni mañana, pero lo tendrás, gracias por el comentario
A Linus no le gustan los trapos sucios de C++
No, me temo que tiene muy duras palabras para C++ y responde de forma poco amistosa a cualquiera que intente introducir C++ en alguno de sus proyectos. Linus es un amante de C. Gracias por el comentario.
NO!..por que uso mucho C/C++, trabajo con ASM y ESP32.
El que deberia desaparecer es java, como dijo torvals : "esa mierda de lenguaje!".
Saludos y muy buen canal.
Esa frase de Torvalds bien podría ser para C++, o cualquier otro lenguaje, creo que del único lenguaje que no habla mal es de C, pero tranquilo, queda C y C++ para largo tiempo. Saludos y gracias por el comentario.
@@programandootrahistoria use java durante un largo tiempo, y jamas me adapte la VM de java un asco, librerias desactualizadas y sin fin de problemas, no fue buena experiencia para mi, saludos amigo.
El dia que las Cacerolas de cocina vengan con puerto USB, de seguro los programas que se ejecuten seran hechos en C.
Python esta vivo porque no hay librerias IA decentes para otros lenguajes. No por la hermosa sintaxis que tiene
El creador de Elixir está camiando eso poco a poco creando un ecosistema muy competente, el proyecto Bumblebee es genial, muy recomendable, pero volviendo al tema, sí, el lenguaje C y C++ tienen mucha vida por delante... y de hecho, espero tu comentario en el siguiente vídeo que hablaremos del lenguaje C ;-) Gracias por el comentario.
C++ no tiene fin todas absolutente todas las tecnologías especialmente de alto rendimiento están hechas en c++ y este año saldra el nuevo estándar, no pueden comparar lenguabes compilados con interpretados, así sean buenos go o rust internamente el compiler está hecho en c.
No todas las tecnologías están hechas en C++, hay muchas hechas en C y algunas comienzan a estar en Rust y otros lenguajes de alto rendimiento como Zig, V, Nim, Crystal, ... hay mucha competencia, pero te doy la razón en que C++ es el más maduro y el más extendido (si quitamos C). Gracias por el comentario.
Igual mano, c++ está hecho en c, python está hecho en c, pude debuguear zip y esta hecho en c, yo trabajo día a día en c++ y todos los núcleos de las grandes están en c, incluso solidity para la Blockchain está en c, yo estoy en c jajajaj saludos.
Yeah
Ya era hora XD
Por C++? por lo tarde que comenzamos el año? de qué es hora?!? :-D Gracias por el comentario.
No se olviden de zig...
A todos les gusta python, pero con python no puedo generar un binario 😢. Con c++ tienes libertad de compilar hasta tu propio sistema operativo
Pues no te creas, normalmente los programadores de Ruby que conocí a principios de 2000 miraban con malos ojos Python porque les obligaba a indentar correctamente el código, un error entre espacios y tabuladores y el código no funciona. A mi siempre me gustó, pero puedo entender que no todos los lenguajes son del gusto de todos. Sobre la compilación, toda la razón, con C++ puedes hacer drivers, sistemas operativos, IoT para dispositivos muy pequeños y aunque esto último sí sería posible con Python, se hace más complejo. Gracias por el comentario!
Hagan el video
lo haremos, lo haremos! síguenos y serás testigo :-)
ASM++??
:-D muy buena esa, pero hay algo similar, ¿te suena Macro Assembler? Fue un lenguaje Ensamblador mejorado que estuvo en uso durante mucho tiempo, de hecho, su origen lo podemos trazar en Bell SAP y está incluido en el nuevo libro de Altenwald ( altenwald.com/historia-de-los-lenguajes-de-programacion-1960 ), te recomendamos su lectura y gracias por el comentario.
Hay algunas faltas en este video, rust usa adaptadores para poder usar código c++ ya creado, prueba de ellos es Android el cual ya tiene código rust
Gracias por el comentario y la puntualización, pero si te refieres a FFI para emplear código C++ desde Rust, en ese caso necesitarás aún así crear un proyecto Rust y tendrás que migrar todo el proceso de construcción además de que no todo puede ir bajo FFI.
Otro de los mecanismos en los que podemos integrar Rust es a través de WebAssembly que nos permite incluir código en sistemas que integren una máquina virtual que ejecute código WebAssembly como los navegadores web.
No obstante, lo que sucede en Android es muy diferente, según un artículo de un integrante del equipo de Android, están reescribiendo la máquina virtual de Android [1]. La máquina virtual de Android es un caso muy específico y no se puede extrapolar porque la forma en la que permite el código depende de su versión.
[1] security.googleblog.com/2023/10/bare-metal-rust-in-android.html
C++ actualmente es un lenguaje que se sigue actualizando no me deis estos sustos! 😂
Es una pregunta recurrente de muchos foros, ¿C++ está muerto? ¿será reemplazado? Obviamente C++ está más vivo que FORTRAN y COBOL y por tanto le auguramos aún unas cuantas décadas de seguir creciendo y siendo usado en proyectos, lo cual no quita que haya muchos proyectos que se comiencen a hacer con Rust, Go, Zig, Nim, Crystal, V, Vala, ... incluso comentaron por aquí el caso de Circle que podría revitalizar aún más C++, por lo que, no te preocupes, C++ nos durará mucho, mucho, mucho. Gracias por el comentario.
Aquí hay una terna: C, Rust y Zig
Creo que son los más famosos hoy en día, pero creo que hay muchos más que están intentando desplazar a C, no solo a C++, como por ejemplo Odin, Hare o V. Pero sí, tus ejemplos son muy buenos. Gracias por el comentario.
@@programandootrahistoria ah mira, no sabía, sabía de Zig por BUN JS, ya que ese lenguaje fue usado para el todo en uno BUN JS, entonces por curiosidad busqué Zig y que también es un lenguaje para usarse en vez de C
Cuando aparecio Java pensaron que C++ desapareceria. Luego con C# y con otros lenguajes mas. En serio creen que van a desaparecer? Pues lo siento pero no.
Tienes razón, al igual que FORTRAN y COBOL no creemos que C++ vaya a desaparecer, tal y como decimos en el vídeo ya se intentó con Java, con C# y con Rust, e incluso con Go, y aunque estos lenguajes se han hecho hueco para nuevos proyectos en según qué uso, C++ sigue estando muy presente y no creemos que esto cambie en al menos un par de décadas más, ya nos dirá el futuro. Gracias por tu comentario.
@@programandootrahistoria Precisamente lo digo porque no creo que lo dejen del todo claro en el video.
Sentimos no haber trasladado ese sentimiento en la conclusión final, pero sí, como programador y usuario de C++ no considero que sea reemplazado, al igual que Java no ha sido reemplazado por Kotlin, ni JavaScript por TypeScript :-)
no se acaba cobol...se va a acabar c++
Mientras tanto cada semana se buscan postdocs sepan C++ y Fortran.
Curioso que se pidan estos lenguajes y no LISP o Prolog. Gracias por el comentario.
@@programandootrahistoria No conozco LISP ni Prolog. Pero se que usa C++ o Fortran porque para hacer álgebra lineal y cálculos matemáticos, los tiempos de ejecución son bastante rápidos. Además de que hay muchas librerías y solvers corriendo sobre esos lenguajes.
hablan mucho del sistema de herencia pero no dicen nada sobre el infierno de las interfaces?
Si bien esas cosas no deberían de ser tratadas sino por el compilador, la dedicación que los programadores les dedican a esas tonterías es absurda y que simplemente deberían de prescindirse o manejarse de una manera diferente.
Otra cosa que molesta es que los nombres que les dedican los programadores a los conceptos es un desastre, mirar a google,
¿cómo le vas a llamar al sistema de conducción automática?
Google Drive X
Wimo :)
Cómo le vas a llamar al sistema de almacenamiento en la nube?
Google Cloud Storage X
Google Drive :)
Cómo le vas a llamar al sistema servicio de servidores?
Google Server X
Google Cloud Storage :)
Programadores, ¿Cómo le vas a llamar a los paquetes de criterios?
Criteria X
interface :)
Vayan y cómanse un cerro de 💩
Hay solo dos cosas difíciles en Ciencias de la Computación: la invalidación de caché y nombrar cosas. -- Phil Karlton
Gracias por el comentario.
Están cambiando a Rust
Si te refieres a Google, depende del proyecto, del grupo de trabajo y muchos factores más. Sabemos que los que hacen Fucsia sí que usan Rust, en Android parece un cambio posible y se está haciendo, sin embargo en otros proyectos parece que no es tan fácil y por eso están haciendo Carbon. Quizás Carbon no quede en nada o pase más o menos desapercibido como Dart, será interesante ver su progreso y si realmente supone un cambio en el futuro. Gracias por el comentario.
me dan risas estos ytbr sacando videos para tener que comer, la última vez que ví uno así fue el fin de php y ahora esto, ytbe así deberían de ser baneado de por vida por desinformar o vender amarillismo
Concuerdo
Pues si te digo que lo hacemos por el amor al arte, porque nos divertimos y porque lo pasamos bien como experiencia... no obstante, es solo curiosidad, viste el vídeo? Qué te pareció exactamente amarillista? Gracias por el feedback
También era el fin de Cobol y Fortran hace tiempo y míralos, ahí vivitos y coleando. Dejaos de modas.
Vivitos están... pero no muy boyantes. Te doy la razón en que C++ parece un caso diferente, hay muchas grandes empresas aún usándolo y ha habido muchos intentos (sin éxito) de reemplazarlo y salvo algunas excepciones en proyectos nuevos o pequeños que sí han sido portados a Rust o Go, C++ sigue siendo fuerte. Sobre las modas, en verdad C++ fue una moda al incluir POO en su momento. Gracias por el comentario.
Gracias por tu comentario. Como nota, POO es perfectamente opcional en C++; se puede programar de manera procedural.
Lo decimos en el vídeo, es una muy buena puntualización, porque sabemos que siempre se asocia a C++ como el C con clases/objetos o POO en general, de hecho si usas Boost o STL te obliga a usar clases y objetos y ahí radica parte de su potencia. Gracias por el comentario.
Y para cuando el fin de Javascript? qué lenguaje de mierda... Pyscript debe ser el nuevo estandar
realmente JavaScript no deja a nadie indiferente, hay quien lo ama, hay quien lo odia, pero recuerdo aún cuando lo usaba en 2000 y de entonces a ahora hay que decir que ha mejorado muchísimo y no obstante, te da facilidades para poder utilizar otros lenguajes encima como es el caso de Gleam, Elm, TypeScript, CoffeeScript, ... creo que incluso puedes utilizar algún tipo de Python también. Para lo complicado puedes tirar de WebAssembly y usar Rust, C++ o cualquier otro. Vamos, que JavaScript en verdad no es requerido, pero nos apuntamos hacer un vídeo, seguro que es interesante profundizar en su Historia. Gracias por el comentario.
Pues tenemos C++++ y no viene de C
En verdad sí, el creador de C# (de donde evolucionó C++++) dijo que una de sus bases fue C++, que a su vez se basa en C ;-) Te recomendamos nuestro vídeo acerca de C# y gracias por el comentario
@@programandootrahistoria Realmente se basó más en Clipper y Pascal, ya que no le dejaron evolucionar el lenguaje en Borland y fue ent9nces fichado por Microsoft
@@programandootrahistoria Por cierto eo lenguaje es C#. Puse C++++ para identif8car el nonmbre, ya que la idea de Microsoft fuevhacerlo el sucesor de C++, de shi ponerle ++ adicional, aunque escrito de forma diferente
Clipper es muy diferente al Turbo Pascal y Delphi en los que estuvo involucrado dentro de Borland pero tienes razón que seguramente tomase ideas. No obstante, oficialmente él dice haber tomado referencias de C++ cuando se le pregunta si no es una copia de Java. Échale un vistazo al vídeo, no te defraudará ;-) ua-cam.com/video/UUQTjA0cRpQ/v-deo.html
@@programandootrahistoria Conozco muy de cerca el tema
C++ es el lenguaje peor diseñado.
Tanto como el peor, seguro que si echamos un vistazo encontramos otros igual o peores
@@programandootrahistoria En peor/popularidad es el peor. Literal fue agregarle mediante macros clases a C. Cero teoria de lenguajes, lexer y parser.
Alguien sabe en qué minuto está la conclusión de este video aburrido.
La hemos colocado en mitad, entre muchas y aburridas palabras ;-) ¡es un desafío! si lo consigues comparte el primero aquí el minuto en el que está!
@@programandootrahistoria No pierdas el tiempo contestando a gente estupida
@@oxioxpgracias por tu comentario y apoyo, no te preocupes, la postura del que ha comentado es algo infantil, pero si ha decidido invertir parte de su tiempo en ver parte del vídeo y escribir un comentario, por nosotros merece una respuesta. Es triste que la gente invierta su tiempo que es lo único valioso que tiene en dar un mal día (o intentarlo) a otras personas, pero bueno. Finalmente nuestros mensajes más elaborados y con cariño van para comentarios como el tuyo donde se nos apoya, así que de nuevo, gracias por tu comentario y tus palabras.
cppfront y a disfrutar...
No conocíamos cppfront, se ve como el lenguaje V, gracias por compartir y por el comentario.
@@programandootrahistoria No es como V, es totalmente C++, en un transpiler a C++ que además permite mezclar C++ y Cpp2 (cppfront)
@@agustinpizarrouna sintaxis nueva, ¿comparable a lo que hace Kotlin con Java?
@@programandootrahistoria Sí
El verdadero sucesor es rust
No decimos que no, aunque parece que de momento C++ no quiere sucesores, veremos cómo avanza la historia. Gracias por el comentario.