mmstick
@mmstick@lemmy.world
I’m a System76 engineer / Pop!_OS maintainer. I’ve been a Linux user since 2007; and Rust since 2015. I’m currently working on COSMIC-related projects.
- Comment on COSMIC DE: The Road to Alpha 10 months ago:
It wouldn’t be possible for us to build a platform toolkit, or the COSMIC platform itself, without a text editor or terminal, and it would be embarassing if we release our desktop without a terminal. Imagine telling people they need to switch to a TTY or use a software center to install a plan text editor or terminal.
- Comment on Hi, I want to start programming but dunno where to start and which language to learn 1 year ago:
I don’t need Google to tell me what I already know since writing software in Rust for the last 8 years. It was your argument that Rust is not suitable for newbies. So if you want to change the topic to what language a person should learn, then Rust is most definitely at the every top. It’s a life-changing experience that significantly boosts your programming skill once learned. There’s a reason why it’s been the most loved programming language on Stack Overflow for seven consecutive years. Not because it’s hard, but because it’s enjoyable to learn and use.
- Comment on Hi, I want to start programming but dunno where to start and which language to learn 1 year ago:
The Rust community is a very diverse group of people with many different opinions. It is not a universal truth that the Rust community believes Rust to be an awful first language. I’ve known plenty of people who started their careers with Rust. I started my career with Rust, too. The complaint with difficulty adapting to the borrow checker has been irrelevant since the 2021 edition of Rust. The borrow checker has become smarter about rearranging borrows and automatically tagging lifetimes in most cases. The remaining constraints that the compiler enforces are also hard requirements to learn when developing software in any other language. The same practices equally apply to all software. For example, mutating an array while iterating it in Python will lead to unexpected behavior. Python’s lack of a proper type system causes a lot of software to explode at runtime when you think inputs are always X but suddenly in one case it happens to be Y.
- Comment on Hi, I want to start programming but dunno where to start and which language to learn 1 year ago:
You’re not making the strong case that you think you are. Quite the opposite. The ease of “shooting yourself in the foot” is precisely what makes it so difficult to learn. Segmentation faults and random memory corruption make it incredibly hard to get started with programming. So much so that many people give up when it gets too difficult to diagnose them. The compiler typically providing no help at all for diagnosing where the memory handling flaws are.
Rust’s constraints are very clear and concise in comparison, with a helpful compiler that will teach you how to handle memory correctly. I believe you’re mistakenly assuming it’s more difficult to work with than it really is. For example, imagine telling someone that pattern matching in Rust is more difficult than constructing unions and casting pointers in C. I’ve worked with a number of people over the years that had little experience in programming outside Rust.
- Comment on Hi, I want to start programming but dunno where to start and which language to learn 1 year ago:
This is very over-exaggerated. A lot of people started with C or C++ as their first language. Both of which are significantly harder than learning Rust. In fact, I had a much easier time learning Rust than I had with Python and Java because the Rust compiler’s always had great error messages and documentation. Which then significantly boosted my ability to write C and C++. If, in an alternate reality, I had started learning programming today, I would recommend to my alternate self to start with Rust. Especially now that it’s gotten so much easier than when I had learned Rust when it was still in alpha. Error messages have gotten very detailed lately, to the point where many of them show the precise code to write to fix the error. The compiler’s also much less strict with borrowing and lifetimes.