171 meneos
4068 clics
Este es el curso gratis que usan en Google para aprender el lenguaje Rust. Tú también puedes hacerlo libremente
Como parte del esfuerzo de soporte al desarrollo con Rust en la plataforma Android, algunos de los desarrolladores del sistema operativo móvil han estado trabajando en la elaboración de un curso de este lenguaje para ayudar a sus compañeros a sumergirse en el mismo desde cero (aunque teniendo siempre conocimientos previos de C++ o Java). Dicho curso, bautizado como 'Comprehensive Rust' ('Rust integral') y pensado para ser cursado en cuatro días, se lanzó hace un mes y ahora está disponible de forma libre en GitHub, listo para cualquiera.
|
comentarios cerrados
survey.stackoverflow.co/2022/#technology-most-loved-dreaded-and-wanted
#teahorrounclick
-- Bjarne Stroustrup
www.youtube.com/watch?v=qMx6MogXOEE
Por otro lado, a pesar de su "expansión", carece de un IDE, de unas librerías gráficas multiplataforma más o menos mundanales y me continua espantando el tamaño mínimo de desarrollo (compilador + python + librerías) (ojo, no me leyó con el tema del ejecutable [caja negra o al menos muy oscura]).
1. Rust ofrece una seguridad más fuerte. Proporciona seguridad en tiempo de compilación, lo que evita errores comunes como desbordamientos de búfer y seguridad en tiempo de ejecución. Los programas escritos en Rust son menos propensos a ataques de seguridad y, por lo tanto, más seguros.
2. Entre 2 y 10 veces más rápido que Python. Rust es un lenguaje compilado. Más rápido y con mejor rendimiento.
3. Sintaxis más estricta. Los programadores tienen que seguir un conjunto estricto de reglas al escribir código. Ayuda a prevenir errores de sintaxis comunes.
4. Sobre todo, Rust ofrece una mejor concurrencia. Rust se ejecuta como un lenguaje de programación concurrente. Los programas escritos en Rust pueden ejecutar varias tareas al mismo tiempo. Esto ayuda todavía más a mejorar el rendimiento de los programas.
Yo de momento estoy mas interesado en aprender go que rust
aprendergratis.es/cursos-online/curso-de-traduccion-automatica-con-pyt
1. Rust ofrece una seguridad más fuerte. Proporciona seguridad en tiempo de compilación, lo que evita errores comunes como desbordamientos de búfer y seguridad en tiempo de ejecución. Los programas escritos en Rust son menos propensos a ataques de seguridad y, por lo tanto, más seguros.
2. Entre 2 y 10 veces más rápido que Python. Rust es un lenguaje compilado. Más rápido y con mejor rendimiento.
3. Sintaxis más estricta. Los programadores tienen que seguir un conjunto estricto de reglas al escribir código. Ayuda a prevenir errores de sintaxis comunes.
4. Sobre todo, Rust ofrece una mejor concurrencia. Rust se ejecuta como un lenguaje de programación concurrente. Los programas escritos en Rust pueden ejecutar varias tareas al mismo tiempo. Esto ayuda todavía más a mejorar el rendimiento de los programas.
Sí, este texto fue escrito por ChatGPT. Se enfoca en algunas de las ventajas de utilizar Rust como lenguaje de programación, como su seguridad en tiempo de compilación, rendimiento, sintaxis estricta y mejor concurrencia.
Hace dos años, Google introdujo Rust en Android como lenguaje de para el desarrollo del sistema operativo: no para las aplicaciones.
Descarta desarrollar el sistema operativo en Python.
Y ojo, que Rust es un gran lenguaje y personalmente me gusta más que Python, pero no tiene sentido compararlos ya que tienen objetivos y usos completamente distintos.
No llegué a pasar de matrices de punteros en C y Java no lo he visto nunca.
Con lo fácil que habría sido usar “const” para constantes y “let” para variables
¿Por que usar el token "function" al definir una función si podemos usar "def", "fn", "to", el tipo de retorno o cualquier otra ocurrencia? Así la gente me recordará a mi (y a mi madre) cuando intente definir una puñetera función y pierda unas décimas de segundo pensando cual era el palabro.
Python es un lenguaje interpretado y tiene una VM. Go es compilado pero tiene colector de basura. En ambos casos, además de tu programa hay más código corriendo de fondo (el runtime). Esto puede ser bueno o malo, según lo que necesites.
Tanto Rust como C/C++ no tienen runtime y permiten un control total de la memoria. Algunas de las ventajas de Rust frente a C/C++ son el borrow checker (algo así como el análisis estático de punteros que además permite escribir código multihilo más fácilmente), propiedades por defecto orientadas a escribir código robusto (cómo que las variables son por defecto inmutables), tipos extensibles, tipos de datos algebraicos, enumerados muy potentes, el operador match, ... y un montón de cosas más. Algunas existen o parcialmente existen en C++ pero ni las hueles en C y suelen estar bastante más pulidas en Rust que en C++ para mi gusto.
En cualquier caso, todos buenos lenguajes y cada uno útil o mejor para determinados proyectos.
En el caso de C, son famosos los libros de Kernighan y Ritchie, y el de Deitel y Deitel. Yo los he leído en inglés, aunque diría que hay versiones en español. De cualquier manera, todo el contenido bueno de programación suele estar en inglés.
La mayor dificultad de C va a ser en muchos casos configurar un entorno de programación. La gente suele instalarse Visual Studio Community (no VS Code), Qt (sobre todo si quieres manejar ventanas y otras librerías más fácilmente), o Code::Blocks (si quieres complicarte lo mínimo posible), y dejar que éste lo haga todo por tí. Todas estos entornos suelen valer tanto para C como para C++.
En el caso de Java no tengo ni idea. En mi caso, lo poco que he hecho de Java fue aprender con un ebook que te enseñaba Java a partir de lo aprendido en C, y en un par de tardes hice un proyecto pequeño. Tras eso, desde que probé C#/.NET no he vuelto a tocar Java. Lo único que puedo decirte que la gente suele instalarse los entornos de desarrollo IntelliJ (muy recomendable) o NetBeans para programar.
De cualquier manera, lo mejor para programar es plantearte proyectos que hacer en dicho lenguaje, a sabiendas de los puntos fuertes y flojos de cada uno.
Si quieres hacer cosas que usen redes o internet en C, por ejemplo, lo vas a pasar muy mal, ya que tienes que llamar a funciones de sistema operativo y no suele ser algo trivial, a menos que uses librerías aparte. En este caso sería mucho mejor Python, Java, PHP, C#, etc.
En general, para principiantes, yo recomendaría profundizar en Python, C#, o Java. Vas a lograr mucho más teniendo menos problemas que C, ya que éste está más pensado para interactuar más tanto con el hardware (especialmente en sistemas empotrados) como con el sistema operativo, mientras que en los otros usar librerías de redes, de internet, de gráficos, etc., suele ser mucho más sencillo.
De hecho, es tan fácil que Rust usa
"const" para constantes y "let" para variables
- plugins.jetbrains.com/plugin/8182-rust/docs/rust-quick-start.html
- www.eclipse.org/downloads/packages/release/photon/rc3/eclipse-ide-rust
- learn.microsoft.com/en-us/windows/dev-environment/rust/setup
de unas librerías gráficas multiplataforma más o menos mundanales
¿OpenGL y Vulkan no cubren tus necesidades?
#32 Si al menos Cargo estuviese programado en Rust
Cargo está programado en rust
No hables mal de él o una horda de Rust-izados te hará entrar en razón...
Pues es una pena, porque viendo lo puesto que estás en el tema estoy seguro de que serán críticas muy bien fundamentadas...
Tenía entendido que Cargo está a en Python, de ahí la instalación. De todas formas, ¿para que requiere se instalación Python?
Lo del IDE, en VS Code los plugins no son estables, y no admitían la depuración.
Te hablo de lo que intente este año pasado. Y no, no me dedico profesionalmente a esto. De ahí que no haya insistido mucho precisamente en el tema. Por ahora continuo aferrado a C.
Pero me gusta más la historia ésa de que la última sentencia de una función es su valor de retorno pero no debemos poner ";" al final excepto si queremos poner un "return", en cuyo caso sí que habría que usar el ";" final
Ése siempre uno de los campos en los que el ecosistema de un lenguaje tarda más en cubrirse adecuadamente. Además, ahora mismo, tiene mucha más tracción para desarrollo de sistemas, servicios, aplicaciones de consola o dispositivos embebidos que para desarrollo de aplicaciones de escritorio. Aunque es previsible que acabe ocupando el nicho de C++ en ese segmento.
Actualmente existen bindings de GTK y Qt (y QML) para Rust (y algunas librerías pequeñas). Yo he desarrollado una GUI muy simple para Windows con el binding de Qt para QML y ni tan mal, pero algún faltan comunidad y soporte en ese campo para que desarrollar una aplicación más grande en Qt sea tan cómodo como hacerlo con C++ o Python.
Lo del IDE, en VS Code los plugins no son estables, y no admitían la depuración.
Hace algún tiempo trabajar con Rust en VSCode no era una experiencia demasiado satisfactoria, pero ha mejorado enormemente en los últimos tiempos. La Rust Foundation ha deprecado el plugin "rust-lang", bastante regulero, y publica ahora "rust-analyzer", con análisis estático y debugging, que va como la seda.