EDICIóN GENERAL

[ENG] Microsoft está valorando usar Rust

#52 #65
Con unique_ptr, const, move:
nercury.github.io/c++/intro/2017/01/22/cpp-for-rust-devs.html
Al fin y al cabo Rust lo que implementa son las semánticas de mover y el chequeo estático que lo asegure.

Con metaprogramación: medium.com/@bhuztez/emulate-borrow-checker-in-c-with-stateful-metaprog
Permite chequeo estático.

Es cuestión de tiempo que el estándar integre la funcionalidad. Como siempre, opcional.

Crítica a Rust: hackernoon.com/why-im-dropping-rust-fd1c32986c88
* Necesidad de usar C en algunos casos.
* Detalles de implementación de rasgos (traits) y conteo de referencias.
* Imposible de modificar el comportamiento del compilador.
#72

> Al fin y al cabo Rust lo que implementa son las semánticas de mover y el chequeo estático que lo asegure.

Ah bueno, si "solo" implementa eso...

> Therefore, a good practice in C++ is to avoid using move in the case like this, even if this means unnecessary deep copy of the value, to avoid the accidental usage of the moved value.

Nada más que decir.

> Con metaprogramación

En Rust es algo nativo.

> Es cuestión de tiempo que el estándar integre la funcionalidad.

Hablemos entonces.

> Como siempre, opcional.

O mejor no.

> Crítica a Rust:

www.reddit.com/r/rust/comments/5295nf/why_im_dropping_rust/
#95
Ah bueno, si "solo" implementa eso...
Pues sí, sólo implementa eso.

Nada más que decir.
Que Rust utiliza semánticas de movimiento siempre, y no es bueno usarlas siempre.

En Rust es algo nativo.
No, en Rust está «integrado» («nativo» es otra cosa). Y eso un coñazo porque no lo puedes desactivar.

Hablemos entonces.
Contigo no hay nada que hablar.

O mejor no.
No entiendes C++.

www.reddit.com/r/rust/comments/5295nf/why_im_dropping_rust/
#96

> Que Rust utiliza semánticas de movimiento siempre, y no es bueno usarlas siempre.

No. Lo que te está diciendo es que C++ es semejante mierda que la práctica recomendada es tremendamente ineficiente.

In C++, it is possible to accidentally use moved value. Therefore, the move operations usually set the original container size to zero.

> Y eso un coñazo porque no lo puedes desactivar.

O dicho de otro modo "déjame introducir bugs en producción que yo sé lo que hago".

> Contigo no hay nada que hablar.

Lo dice el del argumentazo de "no entiendes C++".
#97
No. Lo que te está diciendo es que C++ es semejante mierda que la práctica recomendada es tremendamente ineficiente.
No. Lo que dice es que las semánticas de movimiento no son siempre eficientes. No es que no entiendas C++, es que ni tan siquiera entiendes como funciona una arquitectura Von Neumann.

O dicho de otro modo "déjame introducir bugs en producción que yo sé lo que hago".
Eso lo dice alguien que utiliza un lenguaje con anotaciones para una de sus características fundamentales (ciclos de vida).

Lo dice el del argumentazo de "no entiendes C++".
Lo dice el que no tiene ningún argumento.
#98

> es que ni tan siquiera entiendes como funciona una arquitectura Von Neumann.

¿Puedes explicarte? No veo qué tiene que ver.
#98

> Eso lo dice alguien que utiliza un lenguaje con anotaciones para una de sus características fundamentales (ciclos de vida).

Un error con tus lifetimes solo puede generar más restricciones, no menos. Por su naturaleza no puedes introducir bugs. Como mucho harás que tu código no compile por haber hecho una restricción demasiado fuerte.
#100
En castellano, ciclos de vida.

Probablemente ya lo hayas leído, pero aquí te dejo otro enlace de bugs que puedes introducir con las características tan bondadosas de Rust: gankro.github.io/blah/only-in-rust/
TL;DR: don't infer lifetimes that unsafe pointers produce!

No son infalibles. ¿Esto también es un «déjame introducir bugs en producción que yo sé lo que hago» o es más bien un «es que no sabes Rust» o «no deberías escribir código potencialmente inseguro nunca»?

Balla, no me lo experava.

menéame