4 ms·
Interesting. By contrast, I wish I had used less Python and more Rust for my company's product because Rust is considerably more productive. We were building gR
by insanitybit 4y ago
Interesting. By contrast, I wish I had used less Python and more Rust for my company's product because Rust is considerably more productive. We were building gRPC and web services.
I just haven't found it to be the case that developers have a very hard time learning it, but we haven't grown to the point where that would maybe be the case. We also lean heavily into microservices so "oh there's no library in Rust but there's one in Python" is low cost, we can just write a service in Python.
- ravi-delia 4y agoI think that most of why Rust is popular is just that it's a very modern programming language. It has all the nice things people want and surprisingly little of what they don't. So it's no surprise that for some people it's more productive. But the article pretty clearly outlined a super simple CRUD app. These days that's a problem space so well defined you can practically specify the whole thing in command line flags. Rust really has little to add there. For other stuff, yeah Rust can be super cool.
- ahungry 4y agoperl6/rakudo has most the same convenience features, albeit a little less type checking
- creata 4y ago> Rust is considerably more productive [than Python] Can you expand on this, please?
- pclmulqdq 4y agoPython is extremely easy to write, but hell to read. Rust code tends to be very easy to read. On a big project, you are going to be reading a lot more code than you are going to be writing.
- jasonjmcghee 4y agoI've read and written a huge amount of python and rust, also a fan of rust and don't find it particular difficult to read. As long as there is proper linting, both should be readable. That being said, python is about the simplest language there is to read. Of course if you have many times nested and improperly indented list comprehensions- sure that gets confusing. But that should be fixed with proper linting (black on its own should do it) Curious about the examples you've seen that were difficult to parse!
- Casperin 4y agoI don't necessarily agree that Python overall is difficult to read, but one thing that seems to get my every time is the foo = x if y else z
- jasonjmcghee 4y agoI see where you're coming from. Many languages support the ternary operator, where it would be: foo = y ? x : z Which "feels better" but I think that's because I learned ternaries first. Some languages like Rust and Kotlin do support assignment of an if statement like foo = if (y) { x } else { z } And I think that's a good step, as it doesn't need to introduce new syntax, just allows assignment of "blocks"
- Casperin 4y agoYes. It requires that `if else` can be used as expressions, which for some reason in most languages that can not. In the beginning of doing Rust I was missing the ternary operator, but now I couldn't care less. foo = if y { x } else { y } Works well :-)
- Casperin 4y agoI can. I work on a ~20k loc Python service as well as a ~10k loc Rust service. The Rust service is only half the size, but the problem space is many times more complex. Whenever I work on the Python service I feel like I'm working in clay. Like, everything kind of sort of works. It won't at first, but then you just poke at it with a stick until it does. In Rust, it works or you're told exactly why it doesn't and then you fix it. I change a struct and the compiler provides me with a list of places that need updating. I have many reasons (mypy, type system, testing, venv, python 2), but really the big one is rust's superior type system as well as general tooling (lsp is way better, cargo and clippy are phenomenal).
- insanitybit 4y agoI'll just link you to the last time I responded to this: https://old.reddit.com/r/rust/comments/xbqdzi/anyone_use_rust_to_build_saas_web_apps/io38huy/?context=3 https://old.reddit.com/r/rust/comments/xbqdzi/anyone_use_rus...
- pclmulqdq 4y agoIn my experience, Python is one of the least productive programming languages for projects with more than 3 people. If you have a big project, you are going to spend a lot more time reading code than writing it. Python is write-optimized. By contrast, using Rust makes it easy to force a readable coding style on yourself and others.
- 762236 4y agoAbsolutely agree. I've wasted hours trying to deduce the data types being passed around in Python when this takes milliseconds in other languages. My steadfast rule: if a team is using Python, I don't join that team.
- krosaen 4y agoWait what? Python, if anything, has a reputation for being readable! Perhaps this is more of a criticism of dynamically typed languages in general? As the team grows, adding mypy types can help a lot.
- pclmulqdq 4y agoPersonally, it's the scoping that drives me nuts more than the weird version of dynamic typing (which is awful, but can be fixed). A lot of "pythonic" syntax is also very python-specific and hard to read if you aren't a python person. There is also the implicit type conversion and the runtime errors for things a linter or a compiler would catch in another language. If you only work on <1000 line scripts, Python is a blast. If you work on projects with >1M LoC, it gets very hard to keep everything you need in your head if you want to understand code that other people have written.
- optymizer 4y agoPython is not readable to you? The beginner friendly, whitespace-enforcing, almost-like-pseudocode-in-English language - that Python? - is not readable enough, but Rust, where you liberally sprinkle ', {}, !, &, :: or #[] everywhere _is_ readable to you? You must be trolling. You know what Rust looks like to me? Perl without the dollar signs. There's your write-only language, you just have it backwards.