Hace 1 año | Por blodhemn a genbeta.com
Publicado hace 1 año por blodhemn a genbeta.com

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

Jakeukalane

#5 ¿y para aprender lo básico de C y Java que dicen que es requisito previo?
No llegué a pasar de matrices de punteros en C y Java no lo he visto nunca.

SaulBadman

#29 Si sabes programar en cualquier lenguaje estructurado u orientado a objetos podrás aprender Rust, aunque te aviso que no es un lenguaje fácil para nadie

Jakeukalane

#38 no sé programar. Tengo nociones de Python, C, JavaScript y PHP.

SaulBadman

#c-40" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3773115/order/40">#40 Perdón, he releído tu comentario y lo he comprendido ahora mejor. En internet vas a encontrar muchos tutoriales básicos para aprender lo mínimo de esos lenguajes, aunque lo suyo en siempre algún libro para profundizar algo más.

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.

Jakeukalane

#44 muchísimas gracias por tu comentario. Lo tomaré muy en cuenta todo.

P

#4 Toma tu voto positivo, anda. Pero te lo doy cabreado lol

blockchain

#41 it's not much, but it's honest work

P

#42 lol lol

Shinu

#3 vba antepenúltimo, yo que he trabajado con eso puedo entender por qué.

e

#12 pues MATLAB último. no me lo esperaba

SaulBadman

#21 Por lo que tengo entendido, el problema de MATLAB es que hayas usado antes Python con las diferentes librerías numéricas que hay. Muchas cosas que son triviales en Python tiene una vuelta de tuerca en MATLAB, y eso hace que esa gente se frustre bastante con el lenguaje.

#3 Una encuesta en la que Clojure queda como tercer lenguaje más querido no me produce ninguna confianza.

t

#34 Lo mejor es cuando en unos lenguajes es function, en otros func, en otros fun,...

c

Que sensación mas extraña volver a usar "let" para las variables. Al final parece que, como con la moda de vestimenta, todo vuelve.

bitman

#19 pero no te olvides del mut si la variable no es constante.
Con lo fácil que habría sido usar “const” para constantes y “let” para variables

Cuñado

#33 Con lo fácil que habría sido usar “const” para constantes y “let” para variables

De hecho, es tan fácil que Rust usa
"const" para constantes y "let" para variables

bitman

#48 cierto, "let" para variables inmutables y "let mut" para variables mutables (corrígeme si me equivoco)
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

Cuñado

#52 El implicit return es una de esas características "relativamente" modernas que Rust, al partir de cero, se ha podido permitir el lujo de implementar, Uno de los factores por los que Rust tiene tan buena acogida (a parte de obviamente por la seguridad) es porque a pesar de ser un lenguaje de bastante bajo nivel, y por tanto necesariamente explícito, tiene una sintaxis muy elegante.

Shinu

#30 el propio chatgpt te lo dice.

Jakeukalane

#35 gracias. Lo tendré que añadir a la página de detectores de inteligencia artificial.

El_Señor

#35 Correcto.

D

ventajas sobre Python?

s

#7 Probablemente debas usarlos para cosas distintas.

Lito

#13 chatGPT a tope.

Laro__

#20 merlín

El_Señor

#13 Esto fue escrito por chatgpt?
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.

Jakeukalane

#22 ¿Nombre de la web que usas para detectar? ¿O es el propio chatgpt?

D

#13 Todas esas ventajas se tienen que contraponer a los inconvenientes: lenguaje difícil, tosco, con una curva de aprendizaje muy alta, y con herramientas y bibliotecas de terceros aún inmaduras en su mayoría.

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.

bitman

#7 #13 se te olvida el más importante, Rust no te obliga a tener el código indentado como hace Python, permitiéndote usar llaves para delimitar bloques de código (“¡jamás te lo perdonaré, Guido, jamás!”)

prejudice

#7 Supongo que con lo que habría que compararlo sería con go (Golang)
Yo de momento estoy mas interesado en aprender go que rust

m

#15 En realidad habría que compararlo con C/C++, que esa lo que aspira a reemplazar. O a lo que está reemplazando.
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.

samuelCan

#7 Según díce el artículo:
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.

D

Rust. Ese lenguaje tan guay que todos queremos programar pero que luego casi nadie necesita.

lgg2

#6 Y añado, parece una secta la comunidad de Rust. No hables mal de él o una horda de Rust-izados te hará entrar en razón...

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]).

m13z

#11 Por favor, habla con propiedad. Se dice Rust-áceos.

bitman

#11 Supongo que es porque meterán el framework en el binario. Pero sí, 150 KiB para un “hola mundo” es algo que da que pensar

lgg2

#28 No, no iba por el tamaño base del binario, si no por el "kit" mínimo de programación (+ de 1 GB). Si al menos Cargo estuviese programado en Rust no sería necesario Python para acompañarlo.

lgg2

#49 Por librerías gráficas me refería a librerías de GUI.

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.

Cuñado

#50 Por librerías gráficas me refería a librerías de GUI.

É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.

MacMagic

Interesante, gracias por el aporte kiss

blodhemn

#1 De nada.

j

En cuatro días, eh? Me ha recordado esto lol lol lol

MacMagic

¿Y que ofrece Rust que no ofrezca Go?

samuelCan

#16 Go para aplicaciones, Rust para sistemas operativos. Si intentas hacerlo al revés, oh, señor, que el cielo te pille confesado.

frg

#16 ¿Un lenguaje bien diseñado?

HijosdeKroker

Pensaba que usaban Python para por ejemplo Google Traslate, justo vi algunos de traducción automática ayer
https://aprendergratis.es/cursos-online/curso-de-traduccion-automatica-con-python/

t

Yo cuando vi que print era una macro....