Lucca Arancibia
@quplucca
Web & Software Developer. I like pizza and cats
Hernandarias, Paraguay

@quplucca
Web & Software Developer. I like pizza and cats
Hernandarias, Paraguay
Lucca Arancibia@quplucca
También es posible importar submódulos sin tener que subir el código a un gestor de repositorios. Esto es bueno para proyectos pequeños y de prueba nada más
Primero hay que crear un módulo en Go
1go mod init hello.com
Ahora considere la siguiente estructura
1// ./foo/foo.go 2package foo 3 4import "fmt" 5 6func SayHello() { 7 fmt.Println("Hello, world!") 8}
1// ./main.go 2package main 3 4import "hello.com/foo" 5 6func main() { 7 foo.SayHello() 8}
Ahora puede ejecutar el proyecto con el siguiente comando
1go run hello.com 2# go run . # Esto tambien funciona
Lucca Arancibia@quplucca
Es una duda que me surge después de ver tantos códigos fuente en JavaScript, y me hace preguntarme seriamente, ¿Es una mala práctica usarlos? ¿Solo es recomendable usar console.log indiferentemente del caso?
Lucca Arancibia@quplucca
Y eso que en esta estaba usando auriculares a tope de volumen jajajajajajajaja
Lucca Arancibia@quplucca
¡Cuidado para los que anden viendo el curso de noche!
Lucca Arancibia@quplucca
Tengo una duda ¿Es requerido que los nombres de los campos siempre sean escritos en mayúsculas? He visto que en algunos ejemplos de internet esto es común, y más avanzado, con encoding/json esto es obligatorio para su función Unmarshal, pero, ¿Es entonces esto una convención?
Lucca Arancibia@quplucca
Solo es un error de sonido, pero como lo estaba viendo de noche me asustó feo jajajajajaja
Lucca Arancibia@quplucca
Esta no es una duda o algo similar. Sin embargo, me pareció bastante curioso el comentario de un amigo mío, el cual mencionaba y sostenía que C y C++ están "muriendo". Y como se ha vuelto común ese mito desde la llegada de nuevos lenguajes de programación como Go o Rust he intentado hacer una especie de "investigación" acerca de lo que hace dudar a muchos de meterse a esta tecnología. Entonces, si no es una molestia, quería compartir esta información con la comunidad de EDTeam :)
Rebobinando un poco en el pasado, y empezando por el primer lenguaje a debate, C es un lenguaje de programación creado en los años 70 por Dennis Ritchie y el equipo de los Laboratorios Bell, y fue hecho con la intensión original de hacer al sistema operativo Unix multiplataforma (dentro de lo que cabía. Es decir, que pudiera compilarse fácilmente en una gran cantidad de sistemas)
En este video del canal oficial de EDTeam (en el minuto 12:28), el grande de @alvarofelipe introduce brevemente a este lenguaje (y curiósamente, también los otros dos lenguajes ya mencionados. Un grande ;) )
Y... ¿C++? Pues, ¡Es un superset del lenguaje C! Así como conocemos a TypeScript que vino para agregarle a JavaScript tipado estático, y terminó por agregarle cosas como modificadores de acceso a miembros de clases, entre otras cosas; El lenguaje C++ vino para agregarle Programación Orientada a Objetos a C ¡y terminó por agregarle sugar-syntax a más cosas también!
Entonces con esto podemos definir que C es un lenguaje de programación compilado y de muy bajo nivel, y que C++ es un lenguaje construido sobre C y que le agrega más funcionalidades a este
Un dato curioso es que, en la mayoría de casos, una vez te aprendes C++, ya no te es taaaaan necesario aprenderte C, ya que puedes hacer las mismas cosas que este lenguaje, aparte de que tienes todas las ventajas de C++
¿Me creerías si te dijiera que un compilador de C++ puede compilar los mismos programas de C en la mayoría de casos?
Mira estos dos programas Hello, world!
1/* Programa "Hello, world" escrito en C. Importas 2 * una librería con "#include" y luego usas su 3 * función "printf" 4 */ 5#include <stdio.h> 6 7int main() 8{ 9 printf("Hello, world!\n"); 10 return 0; 11}
1/* Programa "Hello, world" escrito en C++. Importas 2 * la librería con "#include" y luego usas su 3 * buffer "cout" definido en el namespace "std" 4 */ 5#include <iostream> 6 7int main() 8{ 9 std::cout << "Hello, world!" 10 << std::endl; 11 return 0; 12}
Si te das cuenta, ambos programas tienen una estructura similar. Ahora, ¿Sabías que puedes compilar el programa de C con el mismo compilador de C++? Solo basta con reemplazar #include <stdio.h> con #include <cstdio> (en este caso, puede que ni siquiera sea necesario hacer esto. O así fue cuando lo intenté con el compilador GCC de mí máquina)
Pues, ambos lenguajes son de bajo nivel, y tal y como lo describe @alvarofelipe en el video anterior, ¡Eso significa que con estos lenguajes se tiene acceso a los componentes físicos de la máquina! No te equivoques. Es muy normal que uno piense que Lenguaje de bajo nivel = Mucho poder en la máquina, fuaaaa soy imparableeee. En realidad no es del todo así, porque un lenguaje de bajo nivel puede resultar muy incómodo de usarse para desarrollar aplicaciones de mayor nivel como, por ejemplo, aplicaciones de escritorio, o desarrollo Web del lado del Backend
Pero aquí algo interesante con C++: Este lenguaje tiene mucho reconocimiento por ser utilizado para aplicaciones de alto nivel, los mejores ejemplos son la mayoría de aplicaciones de Adobe. Y todo ese reconocimiento nació de sus grandes características como la posibilidad de trabajar con el paradigma de Programación Orientada a Objetos. Y como dije, tienes compatibilidad con C usando C++, entonces, eso lo vuelve un lenguaje de programación muy utilizable para todo tipo de cosas, ¿No? ¡Algo así como Java!
Otra ventaja muy conocida es la enorme velocidad que ofrecen estas dos tecnologias, y se debe principalmente a que son lenguajes de programacion compilados. Y compiladores como GCC, LLVM, y C Builder generan un ejecutable muy optimizado, y eso hace que sea muy veloz y ligero (a diferencia de lenguajes como Python o JavaScript que son interpretados, y más lentos en general)
Si te interesa la diferencia entre compiladores e intérpretes, aquí tienes otro video de EDTeam
Aparte, estos dos lenguajes en particular, son extremádamente maduros. Lo que significa que hay muchas librerías y frameworks de muy buena calidad para realizar aplicaciones de todo tipo (por ejemplo, ahí tienes a Qt, GTK, Crow
Mucho sobre Programación Orientada a Objetos, ¿Verdad? Si no lo entiendes muy profúndamente, mírate este video de EDTeam ;)
Ahora que lo pienso, creo que estoy patrocinando mucho a EDTeam, ¿No? Jajajajajaja
Con esto podrías estar algo confundido, ¿No? ¿Por qué hay gente que cree que Go y Rust serán los nuevos lenguajes para este tipo de trabajos?
En primer lugar, creo que deberíamos sacarnos de la cabeza eso de que "C y C++ van a morir; Go y Rust son el futuro de esas areas, porque por si no lo sabías, Rust utiliza algunas de las librerías de C y C++ para funcionar (mira nada más esto)
Sin embargo, no nos hagamos los ciegos, y aceptemos que C y C++ tienen muchos problemas. En el video anteriórmente mencionado, @alvarofelipe comenta que C puede ser inseguro si no se usa corréctamente (cosa que soluciona, un poco, C++). Pero creo que hay otros problemas que también hay que mencionar:
No lo son ¡Son lenguajes muy buenos y bastante fuertes! Cabe destacar que puedes hacer de todo con ellos (y sí, con de todo hablo de de todo). Tanto como lo que cuentan de C#:
Estos lenguajes son bastante buenos, y no creo que deban ser subestimados. Pero hay que ser sinceros, no hay tanta demanda de estos lenguajes como la hay en otras tecnologías más modernas como Go y Rust. Si estos lenguajes son de tu gusto, ¡No te desanimes y no dejes de aprenderlos! No caigas en el engaño de que lo de hoy es Go y Rust, pero como siempre, no te cases con C y C++ y mejor aprende estos otros lenguajes porque se están volviendo tendencia, y muy merecidamente
Y si eres un programador principiante que solo entiende Python o JavaScript (como yo también lo fui) y crees que C y C++ tienen una potencia excepcional, tampoco te caigas en ese pensamiento, porque a día de hoy, esos lenguajes son bastante rápidos y solo notarás la necesidad de usar alternativas (como las ya mencionadas) si reálmente necesitas velocidad. No existe un lenguaje de programación perfecto
Muchas gracias por llegar hasta aquí :) Y ojalá le guste a la comunidad de EDTeam este intercambio de conocimiento ♥