Comments by "Anony Mousse" (@anon_y_mousse) on "Theo - t3․gg" channel.

  1. 28
  2. 15
  3. 13
  4. 7
  5. 7
  6. 6
  7. 5
  8. 5
  9. 5
  10. 4
  11. 4
  12. 3
  13. 3
  14. 3
  15. 3
  16. 3
  17. 3
  18. 3
  19. 3
  20. 3
  21. 3
  22. 3
  23. 2
  24. The only thing good about it is the concurrency because it uses BEAM. It's literally a less effective Rust. I wonder how long he had been working on it because I'm still not ready to release my language, but mine will have function overloading and allow using whatever Unicode characters you want. And I still take issue with the fake inference that modern languages have. let as a keyword to define an object, is just dumb. It's basically a weaker version of the auto keyword in C++ because now you're asking for permission. In my language you can infer by just doing foo := bar; The only reason for the : notation in setting a value in my language is to tell the compiler to create something there. It's just a way of catching mistakes, so you won't be likely to do foo = bar; and later baz = foO; and get a value or error you don't expect. It also works as a conditional guard so you don't accidentally set the value in a conditional. I also take issue with the import systems for every modern language, even C++. If I'm importing a library I expect it to be immediately accessible. So import io; and everything in the io subsection of the library is accessible, but you can also do import io as io; and keep it in its own namespace or import io as fluffernutter; if you want. I also took the approach of inferring meaning in cases where the context tells me what you're referring to, such as enum Color { Red, Green, Blue }; Color c = Green; instead of requiring Color:Green to explicitly get at the namespace, though you can still be explicit if you want. I did the same for switch. switch c { Red: foo(); break; Green { bar(); baz(); } Blue { print( "Green doesn't fall through because it enclosed the case in braces.\n Red does fall through because it designates a section.\n" ); } }. I also avoided the Java style keyword duplication by allowing a modifier to enclose a block or start a section. So say you want to make a group of functions public, just do public: and everything until the next section is public, and you can stack them. I still don't understand why everyone wants to copy Java and JavaScript for function syntax. No need for a keyword, just use a regular pattern.
    2
  25. 2
  26. 2
  27. 2
  28. 2
  29. 2
  30. 2
  31. 2
  32. 2
  33. 2
  34. 2
  35. 2
  36. 2
  37. 2
  38. 2
  39. 2
  40. 2
  41. 2
  42. 2
  43. 2
  44. 2
  45. 2
  46. 2
  47. 2
  48. I think that maybe some people missed your overall point, which is a very valid point that applies no matter what language the project was written in or what language they want to move the project to. For my own perspective on this constant RIIR mentality, I've found nearly universally that when rewrites happen, features are lost. Even if the program runs faster, if it does less, as the user of that program I don't care if it's now viewed as a "safer" program. Of course, as anyone who knows more than one systems language can tell you, there's more than one way to skin a cat and Rust isn't any safer than other languages, even C. There are plenty of tools to do analysis of your code and keep your program error free that are far better than the Rust compiler and target languages like C. You can write high quality code in nearly any language, it's just a matter of skill. One could claim all they want that "Rust forces you to do things a certain way", but if you already write your code in that way then you shouldn't have problems with C, and if you don't already write your code that way then you were using C wrongly anyhow. If you didn't already know how to correctly write code, then you probably shouldn't have been a programmer in the first place, or you should just use JavaScript. As for the comments on async, I have always believed it's the wrong solution for the problem at hand. It's an attempt to merge the concept of a coroutine with threads and make them take less effort than threads, but it's still just threads with you having less control over what happens. True coroutines don't require separate threads, but the concept has been bastardized by everyone who keeps incorporating async garbage into languages. I look at them as being unnecessary work because it's better overall to just use the OOP method of saving state in memory somewhere, maybe even on the stack, and then just calling a function to update that state, which is more or less the generator concept. Consider that C already has that in its standard library with FILE's, where you can read some input or write some output and it's buffered. If you really want to read input in the background, then just use a separate thread, which even C has in its standard library now too. Although, I doubt anyone will read all of this, and it's most likely that someone will see this last line and comment that they read the whole post when they didn't.
    2
  49. 2
  50. 2