#3 que unos asaltantes desquiciados te obliguen a mirar mientras violan y arrancan la piel a tiras a tus hijos? afortunadamente siempre te quedará el consuelo de que no quisieron estudiar periodismo...
#53 Y si resulta que lo que estás expresando es que te preocupa poco mostrarte intolerante, incompasivo, maleducado, soez, faltón, prejuicioso y repelente? Nunca has pensado eso?
#48 me da mucha pena que pudiendo llegar a estar de acuerdo contigo, tus formas sean tan reputísima mierda que se carguen toda esperanza de entendimiento mutuo. A ti no te preocupa eso?
#55 pero no con lighting network que es lo que pretenden usar para las operaciones cotidianas. su modelo de seguridad se parece más a un mysql que a bitcoin
#23 Las de 1 y 2 no suelen dar tanta información útil, las de 3 sin embargo suelen dar más detalles complementarios, y es menos probable que sean de la competencia.
#60 Usa C o incluso ensamblador para un proyecto muy complejo si es lo que te gusta, nadie dice que no se pueda. Pero Rust ofrece herramientas y abstracciones modernas para hacer la gestión de la complejidad mucho más sencilla y con menos riesgo de cometer errores. Y eso no es ninguna bobada.
#47 Rust nos muestra el espejo de nuestras limitaciones, mientra nos tienta con la promesa de un poder absoluto, pone a caldo nuestro ego cuando no somos capaces de comprender extraños jeroglíficos que nos escupe a la cara el compilador...
de todas formas si pretendes hacer cosas complicadas con muchas referencias compartidas, rust no te lo pone nada fácil, es mejor pasar a otras abstracciones, como punteros inteligentes, arenas, sistemas de actores... que te den más libertad de interconexión de elementos sin que los tiempos de vida ni las garantías de posesión te pongan la zancadilla cada dos por tres. Cosas como listas doblemente enlazadas o grafos, no te va a dejar si no...
Hay un tutorial muy chulo que implementa una lista enlazada una y otra vez de diferentes maneras en rust, desde las que no funcionan, y aprendes por qué, hasta la mejor que se puede hacer. rust-unofficial.github.io/too-many-lists/
por otro lado, te recomiendo mucho el libro "programming rust" de o'reilly, (la segunda edición saldrá en junio creo), es una joya didáctica y complementa muy bien al "the book"
#27 Pues para mí sí que tiene mucho que ver la complejidad de uso, ya que precisamente está muy bien pensado para poder soportar proyectos de una tremenda complejidad. Su sistema de módulos es maravilloso, cargo es sencillamente el mejor gestor de paquetes que podría desear y sus garantías de seguridad lo hacen más sólido y confiable.
#37 Te entiendo, me pasa un poco igual, mi cerebro está más acostumbrado a pensar en procedural u objetos que funcional, pero Rust te pone a huevo usar esos 3 modos (y async, pero eso es otro cantar), y me está convenciendo poco a poco, para ciertas cosas es muy cómodo.
Los iteradores en Rust por ejemplo están muy bien integrados en el lenguaje y los puedes aplicar a las colecciones de la librería estandar, a las cadenas de texto... Son un paradigma funcional donde puedes encadenar funciones como si fuera un builder pattern, pero construyendo una salchicha de funciones, una cadena de montaje que se te compila a un código igual o incluso un pelín más rápido del que puedes haber hecho a mano, sin el overhead de tener que ir contando bucles en los elementos de una colección, y con la ventaja de poder se aplicado a colecciones en las que no puedes indexar... Y breves y concisos.
#4#1 la sintaxis en general es limpia y sencilla, con abstracciones muy potentes y mucho esfuerzo en evitar obligarte a escribir morralla si no es necesario. Esos símbolos por ejemplo no se ven hasta que empiezas a tocar cosas más complicadas, como genéricos y referencias con tiempos de vida, que añaden verbosidad... Ya que mientras el compilador pueda inferir esas cosas por sí solo no te pide más información, como relaciones y constricciones de los parámetros genéricos que estás usando, o cuánto deben durar las vidas de las referencias... Todo tiene mucho sentido, pero como digo en otro comentario primero hay que leerse el libro, si no el lenguaje te castiga.
#18 En javascript no sé, pero en Rust se llaman Closures, y se diferencian de las funciones en que, por ejemplo pueden capturar variables externas de su contexto, en el que han sido definidas, y puedes controlar si se hacen dueñas de las variables que capturan, o sólo las referencian (in)mutablemente. Y según hagan una cosa u otra tienen un Trait asociado diferente, y es usado para aceptarlas como argumentos de funciones... y su sintaxis además en general es mucho más breve... `|x| x+1` son anónimas y se pueden guardar en una variable.