Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: loquequema en 17 Abril 2021, 20:24 pm



Título: programar con dev++ sin librerias
Publicado por: loquequema en 17 Abril 2021, 20:24 pm
Hola, estoy empezando con el lenguaje c++ y me estoy dando cuenta de que para programar se necesitan librerías, que según lo que entiendo, las librerías son códigos predefinidos a los cuales se pueden hacer llamadas a sus funciones para facilitar la programación. ahora bien, lo que yo quiero saber es se puede programar sin esas librerías?

Mi pregunta viene porque por ejemplo, con la librería iostream para imprimir en pantalla la función es -cout pero en la librería stdio la función es -printf

no creo que alguien logre memorizar todas las librerías del mundo que existen, además, un lenguaje es un lenguaje pero cada uno, ósea, cada librería lo interpreta como quiere.


Título: Re: programar con dev++ sin librerias
Publicado por: @XSStringManolo en 17 Abril 2021, 20:37 pm
Hola, estoy empezando con el lenguaje c++ y me estoy dando cuenta de que para programar se necesitan librerías, que según lo que entiendo, las librerías son códigos predefinidos a los cuales se pueden hacer llamadas a sus funciones para facilitar la programación. ahora bien, lo que yo quiero saber es se puede programar sin esas librerías?

Mi pregunta viene porque por ejemplo, con la librería iostream para imprimir en pantalla la función es -cout pero en la librería stdio la función es -printf

no creo que alguien logre memorizar todas las librerías del mundo que existen, además, un lenguaje es un lenguaje pero cada uno, ósea, cada librería lo interpreta como quiere.
Podrías programar sin algunas librerías, pero no vas a programarlas tú tan bien como los múltiples programadores profesionales que las crearon y los miles de programadores que han revisado el código, lo han mejorado, han reportado fallos, etc.

Algunas ni siquiera tienes la opción de programarlas y mabtenerlas para que funcionen porque cambian con cada versión.

No tienes que memorizar todas las librerías, solo tienes que utilizar las que te resulten útiles para lo que estás programando.

Printf de STDIO (STanDart Input Output) es una librería del lenguaje de programación C.
Cout de IOSTREAM (Input Output Stream) es una librería del lenguaje de programación C++.

C y C++ tienes unas librerías standart que es recomendable conocer.


Título: Re: programar con dev++ sin librerias
Publicado por: loquequema en 17 Abril 2021, 20:44 pm
Podrías programar sin algunas librerías, pero no vas a programarlas tú tan bien como los múltiples programadores profesionales que las crearon y los miles de programadores que han revisado el código, lo han mejorado, han reportado fallos, etc.

Algunas ni siquiera tienes la opción de programarlas y mabtenerlas para que funcionen porque cambian con cada versión.

No tienes que memorizar todas las librerías, solo tienes que utilizar las que te resulten útiles para lo que estás programando.

Printf de STDIO (STanDart Input Output) es una librería del lenguaje de programación C.
Cout de IOSTREAM (Input Output Stream) es una librería del lenguaje de programación C++.

C y C++ tienes unas librerías standart que es recomendable conocer.

muchas gracias por tu respuesta, como dije antes soy nuevo en esto y estoy esperando un cupo para poder entrar en la facultad de ingeniería, la carrera que voy a seguir es programación de computadoras y mientras tanto estoy buscando información y tratado de interiorizarme en el tema me di cuenta de que no es tan fácil, mas si no hay alguien que te explique y te saque las dudas, que obviamente voy a hacer preguntas estúpidas para un programador con experiencia.

P.D: Sabes si hay un manual para estudiar a profundidad las librerias antes mencionadas?



Título: Re: programar con dev++ sin librerias
Publicado por: WHK en 18 Abril 2021, 22:49 pm
Hola, estás programando para windows o linux? si es en linux es normal el uso de librerías pero hay algunas que son las bases y básicas como las de std, boost, etc, si estás en windows estas dependencias se resuelven de manera automática.

La gran diferencia entre print y cout es que uno se realiza a bajo nivel y el otro a alto nivel, por ejemplo, no puedes hacer un print con contenido mixto, o sea, con un int y un char array, recuerda que en c y c++ no existe el concepto de "string", por eso la librería std simula un string a traves de arrays, estructuras y manejo de datos variables en memoria, lo que de manera nativa tendrías que hacer con muchas líneas, redimensionar el array de chars, etc.

¿Eso incómodo y algo extraño?, si, y todos lo saben, c y c++ es un lenguaje muy antiguo con muy poca evolución, por eso muchos han destinado esfuerzo en crear un lenguaje derivado de c++ que sea mucho mas intuitivo y elimine estas barreras de tipo "parche" como las librerías de std, uno de estos intentos es golang el cual te permite programar a bajo nivel como en c++ y compilar tus binarios de manera totalmente nativa, pero a pesar de que tuvo mucha aceptación y hay mucho software profesional hecho en golang, no terminó de convencer, por eso nació otro lenguaje que dicen que es el definitivo y que probablemente reemplace a c++ y es el lenguaje rust.

Muchas personas ya están migrando sus proyectos de c++ a rust, es un lenguaje muy similar a c++ pero sin problemas de dependencias o manejo de memoria a bajo nivel, es tan moderno como lo es node, tiene su servicio de repositorio, puedes gestionar dependencias con el gestor "cargo" y no tener problemas de incompatibilidad o de librerías compartidas, de hecho se dice que el código fuente de linux, firefox y nodejs se están migrando de c++ a rust, microsoft también va a comenzar a incluir desarrollo en rust para la fabricación de sus productos y sistemas y google ya integró a rust como lenguaje oficial para el desarrollo de librerías a bajo nivel en android (ndk).

En resumidas, si yo fuera tu no seguiría invirtiendo tiempo en estudiar c++ y me iría de lleno a estudiar rust.

Saludos.


Título: Re: programar con dev++ sin librerias
Publicado por: @XSStringManolo en 19 Abril 2021, 14:15 pm
Go y Rust no son para lo mismo. Go es sencillo, rápido y fácil de adoptar, para sacar software fácil de mantener de forma ágil. Rust es complejo y muy rápido, para crear desde 0 o implementar las partes más criticas de un programa de forma cuidada.

Rust no nació porque go no funcionase. Rust era un proyecto personal que creo un empleado de Mozilla por el 2006. Go lo crearon en google también por esa fecha porque a los empleados no les gustaba C++, por lo que diseñaron un lenguaje que tuviese las partes esenciales de múltiples lenguajes. Son lenguajes que funcionan bien juntos. Debido a sus diferencias en complejidad es como decir que C va a substituir a Python porque puede hacer lo mismo.