<story><title>Effective Rust (2021)</title><url>https://www.lurklurk.org/effective-rust/</url></story><parent_chain><item><author>softirq</author><text>&amp;gt; Beauty is a useless concept in a programing language.&lt;p&gt;Maybe not aesthetic beauty, but readability in many contexts matters more than performance. Code that isn&amp;#x27;t readable hides bugs and can&amp;#x27;t be maintained (FYI Rust doesn&amp;#x27;t stop you from writing bugs into your code). A language like C or Go where you can fit most of the syntax and mechanisms into your head are simply easier to read and reason about than a language where you need a PhD in type theory to understand one signature.&lt;p&gt;&amp;gt; If it is not memory safe, does not support static typing with algebraic data types, and does not have null safety it does not meet those minimum requirements and is not suitable for use.&lt;p&gt;You&amp;#x27;d better stop interacting with technology then, because the vast majority of it is still running something compiled from C. We&amp;#x27;re talking about control systems, life saving technology, technology that&amp;#x27;s running in outer space.</text></item><item><author>brigadier132</author><text>&amp;gt; I have to say that I find Rust just as ugly and cumbersome as C++&lt;p&gt;Ok, so you don&amp;#x27;t like it aesthetically. Do you have problems writing unmaintainable software in it? What about incorrect software? Is there any specific feature in the language that you object to that will cause confusion and lead to people writing bugs?&lt;p&gt;C is a very beautiful and &amp;quot;simple&amp;quot; language, people also write a lot of security vulnerabilities with it.&lt;p&gt;Beauty is a useless concept in a programing language. Most of the time it just relates to someone&amp;#x27;s bias towards what they are familiar with. A lot of people find Python &amp;quot;beautiful&amp;quot;, I&amp;#x27;m unfortunately very familiar with python and as I&amp;#x27;ve become more and more familiar with it I find it uglier and uglier.&lt;p&gt;Same with C, I remember all the many hours I&amp;#x27;ve spent in valgrind debugging problems other people have made for me and I find it ugly too.&lt;p&gt;When I look at a programming language, I don&amp;#x27;t think about aesthetic &amp;quot;beauty&amp;quot; or even &amp;quot;simplicity&amp;quot;.&lt;p&gt;I think, does this programming language allow me to represent the concepts I want to represent accurately and correctly?&lt;p&gt;If it is not memory safe, does not support static typing with algebraic data types, and does not have null safety it does not meet those minimum requirements and is not suitable for use.&lt;p&gt;Edit: I want to add, it&amp;#x27;s not just accuracy and correctness that are important. Performance is very important too and many functional languages absolutely flounder because of strict immutability and the adoption of patterns that have terrible memory access patterns.</text></item><item><author>softirq</author><text>After writing primarily no standard library C for 15 years, I have to say that I find Rust just as ugly and cumbersome as C++ (not debating its safety guarantees). It seems like languages that add sufficiently advanced type&amp;#x2F;macros systems always spiral into unwieldy beasts where you spend a bunch of your time arguing with the type systems and writing blog posts about some new piece of type theory to solve a problem you would have never have had with C. People just get greedier with deriving code and wanting more &amp;quot;magic&amp;quot; until every program only makes sense to its author.&lt;p&gt;I don&amp;#x27;t think I will ever like kitchen sink languages. Experience has taught me that the most effective tool is the simplest one, which for most use cases today would be Go. For systems programming I just shudder to think how convoluted and hard to read things will become when we take already extremely complex code written in the simplest terms in C and port it to Rust.</text></item></parent_chain><comment><author>satvikpendem</author><text>&amp;gt; &lt;i&gt;FYI Rust doesn&amp;#x27;t stop you from writing bugs into your code&lt;/i&gt;&lt;p&gt;You are committing the perfect solution fallacy [0]. Rust won&amp;#x27;t make you have no bugs in your code but don&amp;#x27;t conflate some number of bugs with a reduced number of bugs, a reduction is still a meaningful outcome, otherwise we&amp;#x27;d still be writing in assembly.&lt;p&gt;&amp;gt; &lt;i&gt;We&amp;#x27;re talking about control systems, life saving technology, technology that&amp;#x27;s running in outer space.&lt;/i&gt;&lt;p&gt;Indeed, that&amp;#x27;s why we &lt;i&gt;should&lt;/i&gt; use more memory safe languages, because we are dealing with critical systems. Just because they were written in C does not mean that they should continue to be. It&amp;#x27;s like digging a hole with a stick, and when someone suggests a shovel or backhoe, you mention that all previous holes were made with a stick. There is no relationship between the previous work and what should be done in the future.&lt;p&gt;[0] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Nirvana_fallacy#Perfect_solution_fallacy&quot; rel=&quot;nofollow noreferrer&quot;&gt;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Nirvana_fallacy#Perfect_soluti...&lt;/a&gt;</text></comment>
<story><title>Effective Rust (2021)</title><url>https://www.lurklurk.org/effective-rust/</url></story><parent_chain><item><author>softirq</author><text>&amp;gt; Beauty is a useless concept in a programing language.&lt;p&gt;Maybe not aesthetic beauty, but readability in many contexts matters more than performance. Code that isn&amp;#x27;t readable hides bugs and can&amp;#x27;t be maintained (FYI Rust doesn&amp;#x27;t stop you from writing bugs into your code). A language like C or Go where you can fit most of the syntax and mechanisms into your head are simply easier to read and reason about than a language where you need a PhD in type theory to understand one signature.&lt;p&gt;&amp;gt; If it is not memory safe, does not support static typing with algebraic data types, and does not have null safety it does not meet those minimum requirements and is not suitable for use.&lt;p&gt;You&amp;#x27;d better stop interacting with technology then, because the vast majority of it is still running something compiled from C. We&amp;#x27;re talking about control systems, life saving technology, technology that&amp;#x27;s running in outer space.</text></item><item><author>brigadier132</author><text>&amp;gt; I have to say that I find Rust just as ugly and cumbersome as C++&lt;p&gt;Ok, so you don&amp;#x27;t like it aesthetically. Do you have problems writing unmaintainable software in it? What about incorrect software? Is there any specific feature in the language that you object to that will cause confusion and lead to people writing bugs?&lt;p&gt;C is a very beautiful and &amp;quot;simple&amp;quot; language, people also write a lot of security vulnerabilities with it.&lt;p&gt;Beauty is a useless concept in a programing language. Most of the time it just relates to someone&amp;#x27;s bias towards what they are familiar with. A lot of people find Python &amp;quot;beautiful&amp;quot;, I&amp;#x27;m unfortunately very familiar with python and as I&amp;#x27;ve become more and more familiar with it I find it uglier and uglier.&lt;p&gt;Same with C, I remember all the many hours I&amp;#x27;ve spent in valgrind debugging problems other people have made for me and I find it ugly too.&lt;p&gt;When I look at a programming language, I don&amp;#x27;t think about aesthetic &amp;quot;beauty&amp;quot; or even &amp;quot;simplicity&amp;quot;.&lt;p&gt;I think, does this programming language allow me to represent the concepts I want to represent accurately and correctly?&lt;p&gt;If it is not memory safe, does not support static typing with algebraic data types, and does not have null safety it does not meet those minimum requirements and is not suitable for use.&lt;p&gt;Edit: I want to add, it&amp;#x27;s not just accuracy and correctness that are important. Performance is very important too and many functional languages absolutely flounder because of strict immutability and the adoption of patterns that have terrible memory access patterns.</text></item><item><author>softirq</author><text>After writing primarily no standard library C for 15 years, I have to say that I find Rust just as ugly and cumbersome as C++ (not debating its safety guarantees). It seems like languages that add sufficiently advanced type&amp;#x2F;macros systems always spiral into unwieldy beasts where you spend a bunch of your time arguing with the type systems and writing blog posts about some new piece of type theory to solve a problem you would have never have had with C. People just get greedier with deriving code and wanting more &amp;quot;magic&amp;quot; until every program only makes sense to its author.&lt;p&gt;I don&amp;#x27;t think I will ever like kitchen sink languages. Experience has taught me that the most effective tool is the simplest one, which for most use cases today would be Go. For systems programming I just shudder to think how convoluted and hard to read things will become when we take already extremely complex code written in the simplest terms in C and port it to Rust.</text></item></parent_chain><comment><author>plandis</author><text>C is not what I would call a very readable language. I don’t think you could drop someone who newly learned C and have them be effective looking at glibc for example.</text></comment>