@liw One of the most spectacular reasons I heard in favour of Rust is that it's actively used by Mozilla. On the other hand, when Google tried to require Go for new projects, they had to back down due to the backlash (or so https://retro.social/@freakazoid/101705096002677027 suggests, and I have no reason to doubt).
If Google isn't using Go for new projects, why should you?
@liw https://functional.cafe/@juliobiason/101705120439505426 is probably an even better explanation.
@algernon Mmm. I don't really need more reasaons to dislike Go (reading the Go programming language book seems to be enough for me), but let's try to avoid a Go bashing orgy, shall we?
Speaking of which, bash is not a great language, but it'll do for a few lines of tying together Unix commands. I like bash (or just plain sh, Debian's dash), until I need a dollar sign.
Like the comments on my blog are served by a Go binary, or proxy servers that handle authorization on remote procies for you. Go makes these things trivial to do. Also, you get a single binary you can easily deploy and sandbox - huge security win.
If I don't need concurrency, I do tend to use Python.
Go is nice for these things too, because you just declare a struct and the mapping and then tell the reader to read CSV/JSON into the struct.
Go does have some pretty nice concepts, the only thing that is missing is generics, and immutable types (honestly, I'd like to have linear mutable types like Rust has. My Master's thesis had a prototype for annotating that, but it was fairly terrible).
@liw ACK, my bad, sorry!
@algernon No worries, everyone feels like a rant from time to time.
@liw FWIW, Python these days has optional static typing with mypy and it works pretty well. Caught quite a few bugs in python-apt.
@juliank That's a good point, and I should've mentionted that in my blog post.
Unfortunately my feeling is that it's too little, too much, and too late.
Too little benefit, too much disrution, too much transition, and too late to keep me interested.
I'm going to keep using Python, and it's great for short scripts. The kind of scripts that don't really need a strong type system.
I don't think Python works well for the niche I'm occupying now. Which is OK, it's a fine language otherwise.
@liw good post. I have similar feelings with Ruby projects that get over 20k or so lines. Good luck on your Rust adventure.
@wezm Thank you.
@liw I was late to Python (although I based some features of an in-house scripting language on it way back in the day). I really took a liking to it through my use of IPython Notebook. However, my experience with Python mirrors your own. I mostly came from C/C++ before that. I've been following Rust development from the beginning, but I've yet to try to use it meaningfully. I keep trying to find a reason to use Rust at work. 😀 I look forward to hearing your experience with it.
@liw (The idea to have an in-house scripting language was not mine. I just supported it the best I could. 😅 I thought at the time we should've just used Python or Lua.)
@cstanhope I know well the lure of an in-house language. That's how I got to design and write my own LISP.
@liw That sounds very dignified compared to the one I worked on, which attempted to have natural language structure. So you'd write things like "open shutter" and "move X to 10". However, people did use it (extensively in some cases), and I gt to learn a lot, so I won't complain.
@cstanhope It was fun, and it made a difference to the quality of the software for my employer, and the development process. But it also smarted a little when we hired an expert to improve my implementation and their first rough draft was 600 times faster than mine...
@liw Yeah, I can feel the sting a little just with your description. But you led the way! After I left my company, I later found out they replaced the in-house scripting language with Python. On the one hand, it's what I thought should've happened all along. On the other hand, all that work I had done to make that language useful out the window. Oh well...
@liw Interesting! I'm still a big python fan but I've started to play with Haskell and Elixir and they have some cool concepts. I'm curious what makes you think Rust (which seems lower-level, less OO) will work better on large code-bases?
@KnowPresent Static, strong type system. A proper module system. Nice abstractions. Well designed in general.
Ask me more in a year or so, when I've learnt more, and used the language for real program, and not just toy ones.
@liw From the problems you're describing, I would also recommend Rust. It's static type system is especially useful with an editor that supports the rust language server and racer.
Nasqueron is a budding community of creative people, writers, developers and thinkers. We focus on free culture, ethics and to be a positive change. We share values like respect, justice and equity.