DEV Community

Discussion on: That About Wraps It Up For Actix-Web

Collapse
 
leob profile image
leob

Ridiculous behavior by those 'haters' ... to all of them I would, say "get a life", contribute something instead of trashing other people's efforts.

Collapse
 
ghost profile image
Ghost

oh no, don't get a life, they will spread even more their emotional mess. We should make a special Internet, not connected to the main one, just for them to spread their hate, and put a couple of chatbots making controversial remarks and let then have their fun, away from the rest of humanity.

It doesn't even need to be well made, they will hate it anyway.

Collapse
 
leob profile image
leob • Edited

Haha brilliant :-)

Collapse
 
deciduously profile image
Ben Lovy
Collapse
 
leob profile image
leob • Edited

Haters hate because they're frustrated that they didn't accomplish anything significant themselves. In the meantime, there will no doubt be a gazillion forks of actix-web out there, so one of them could produce a new maintainer.

Collapse
 
ghost profile image
Ghost

Good read. I think we, as a species where never so exposed to so many "variants" of people, before the internet, we made contact with a few hundred maybe a thousand people in our life, and we didn't cross words with most of them, now we are realizing that some "variations" are more "visible" than others.

Sadly the bad experience of the Actix founder where because of 10 guys (somehow I can't picture a woman in that group, maybe is just my poor imagination) making him miserable, while thousands of us where happily enjoying and appreciating his job.

We had, in part, some of the fault, we didn't scream as loud as those 10 sad noisy and envious little people. We failed too, so accordingly we also pay for it. :(

Thread Thread
 
deciduously profile image
Ben Lovy

What's most concerning to me is that under the anger there's a real, important discussion trying to get out. The soundness conversation matters when discussing the only 1.0-stable web framework in the entire ecosystem. I'd hope that as a community we can figure out how to actually have the discussion despite these loud few.

Thread Thread
 
ghost profile image
Ghost • Edited

Oh yes, and it got muddied but the hatred. I don't know the reasons behind it but the fact that the whole load was taken by just 1 guy is a big part of the problem. Both, all the time before this event and now, even the Linux Kernel that is very Linus-centric have devs that could take charge as a head or as part of a head group, Actix apparently had no such group. I really think that this concerns the whole Rust community, after some lookout I found no real alternative, the closest would be plain Hyper which is much more barebone and Rocket that in all benchmarks doesn't do well (at all) and is still in 0.5 with nightly. Which is leaves Rust pretty much like 2-3 years ago. Even the wasm/rust is threaten because why use Rust for the front end if you can't use it in the backend too.

Even I'm wondering if I should move my Rust efforts back to Python or maybe Golang, which is very sad to me, because I really like Rust. But waiting god knows how long for Rocket to catch up or a couple of years for some other framework to get born and get stable.. tuff

Thread Thread
 
deciduously profile image
Ben Lovy

I'm wondering if I should move my Rust efforts back to Python or maybe Golang

Be the change you wish to see, etc... one slip up does not undo all the progress the community has made, and I think anyone who's bitten the Rust apple believes in the technical merit of the language as a platform, just maybe not necessarily the ecosystem as it stands today. I'm not going anywhere.

Thread Thread
 
ghost profile image
Ghost • Edited

but we'll have to see what happen with Actix, maybe someone else will take charge, but the fact is, if disappears I can't sit in my thumbs for who knows how long and sadly technically better doesn't make it viable (ask Haskell programmers).

My main interests in programming in general are embedded and webdev (mainly backend), to catch C in embedded Rust is years away and without Actix webdev seems to be also in the same situation.

But maybe all get sorted and this is a wake up call for the Actix founder to get more hands in the cooking, maybe get someone to deal with the community and him just code, which probably would make him happier (would make me happier).

Is hard to just leave your work of many years, I'm hoping his fingers get itchy. He released version 2 not long a go for Pete sake. Maybe some cold headed chillout put things in order and the blackout shuts the annoying haters and all of us start taking care of them in forums and github discussions.

Maybe this is just a necessary reset. Dramatic and terrifying but necessary.

Would be bad either if Mozilla or some other big dog pay some attention to Actix, because as I mentioned, the whole web backend is nowadays depending in 1 guy and is not a cold hard tuff almost inhuman Torvalds, that scolds Intel for their bugs or give the finger to Nvidia.

Meanwhile, it forced me to make some rework in a petproject tha have some coupled code, some layers mixed up that would make dificult to migrate from Actix to something else. :)

Thread Thread
 
leob profile image
leob • Edited

I've dabbled with Rust for a short while because I got involved in a project which used it on the backend - which later stalled, then failed, in large part because of the same sort of psychological/interpersonal issues which we're discussing here - headstrong, 'toxic' en self-centered people, prima donnas. I really had a deja vu feeling, different context, similar problems.

We used Rocket as that was apparently the 'standard' choice, I have no clue if it was good or bad but as far as I could see it worked.

I was (am) a total beginner in Rust but I liked the design and philosophy of the language a lot. It has a very well designed type system, it has a strong FP feel to it, and so on. Haskell but then less academic and more practical, that's how I see it. I don't see it as a better C since I'm not interested in C (or C++) at all :-)

After that I looked at Go and I was quite shocked at how incredibly simplistic the language is. What really sticks out like a sore thumb is the lack of generics in its type system, this means that any form of FP (functional programming) is almost impossible, as a result everything is coded imperatively with repetitive loops ad nauseam.

The good thing is of course its compiler which runs circles around Rust's (but then again the Go compiler doesn't do that much ...) but if Go didn't have its admittedly brilliant Goroutines then I wonder if people would care about it at all.

Sad to say that after that project which I mentioned went south there wasn't much motivation left for me to spend any more time on Rust.

Also a pity IMO if Rust gets framed too much as a "systems programming" language in the C/C++ corner, potentially it could be a very good web/network/backend development programming language as far as I could see.

Thread Thread
 
ghost profile image
Ghost

exactly, that's why I think that Actix is so important, it's the proof that you can make higher level stuff with it; I haven't lost hope on a Actix comeback, if not by Nikolay by someone else. Is too much and to good work to be lost and the Rust ecosystem is small enough that this event will not pass unnoticed. I wouldn't take Actix for dead yet. Imagine how awesome and how fast could Actix grow with a "big" dog behind it, it hasn't even need to be that big, maybe even take Nikolay as head dev and put people to deal with community, minor patches, etc. In a Linus like situation. If him almost alone built Actix in a few years. We sometimes think webdev as just more complex websites, but is also tooling for monitoring, interfaces for embedded, enterprise systems, ERP are basically huge webapps. And with Rust as one of the main wasm PL having a fast and robust backend is vital and now we know it can be done and used even by chumps like me :) and even without a huge documentation like Django, the fact that I can use it just with the API docs is a credit to buth, Rust and Actix.

I'll take a second look to Rocket but the fact that is a 0.5x version and that only works with nightly kills me.

Collapse
 
redoxeon profile image
Michael Harding

Sadly some of the people who became the haters did so because they tried contributing and felt their efforts were trashed. This doesn't excuse the reddit mob that was definitely over the line and disproportionate, however.

Collapse
 
deciduously profile image
Ben Lovy • Edited

This time around he actually deleted an issue that was receiving personally directed comments.

Everyone behaved poorly, but not proportionately so.

Thread Thread
 
redoxeon profile image
Michael Harding • Edited

I'm new enough to rust that I managed to completely miss each one of the storms relating to actix as they were happening, and it seems so foreign to my experience with the rust community so far.

Before today, my perception of "normal" in the rust community was that everyone was nice almost all the time, but now reading about this being the 3rd time with the same project, and it's just been perpetually escalating is just sad and disappointing to learn about.

I'm really feeling like I can't and shouldn't "pick a side" with this at all because it does just seem like everyone involved behaved really poorly, as you said, even from the start of it.

The worst part is that this is looking to be visible outside of the rust community itself, and so it makes a stain on both the perception of the language and it's community.

Thread Thread
 
deciduously profile image
Ben Lovy • Edited

my perception of "normal" in the rust community was that everyone was nice almost all the time

I may not be correct, but this is still generally my perception as well. The subreddit is full of super smart, super headstrong, super opinionated people, though. However, the subreddit is NOT "the community" at large.

It's not about picking sides, really. The correct thing to do for the (correctly) disgruntled was either a) use something else or b) fork it. Harassing the maintainer is unequivocally the wrong road to go down, and no matter how nice the majority is, that behaviour is enough to make anyone think twice about joining the community no matter how valuable their contribution.

This is deeply problematic and symptomatic of a larger systemic issue that needs to be overcome. Every language community is on the Internet, and at this stage of growth PR matters.

Thread Thread
 
redoxeon profile image
Michael Harding • Edited

Yeah, it's important to also keep in mind that the subreddit is not endorsed in any way by the core team, and I'm not even sure if members of the core team are even on the subreddit.

I'm not sure if it's the best solution, but I've seen it suggested in a few places now that at least one of the systemic issues that needs to be overcome by the language (either through docs, community, or both) is addressing what good and bad usage of unsafe itself is. Everyone seems to have a different idea of where the line between good and bad is, and that seems to be at least part of the root to the actix thing. From what I've gathered, the reason why it's still up to the discretion of the developer is because the rust team has internal differing opinions on this as well, which is a problem in and of itself.

Thread Thread
 
deciduously profile image
Ben Lovy

good and bad usage of unsafe itself is.

That's just it. I don't think there's any such thing. I think there are "best practices", but if Rust is to compete against the giants, there really shouldn't be prescribed way of doing things. Unsafe is what allows Rust to go head-to-head with C++ & co. I love that people can choose to use it to push performance boundaries or explore alternate solutions to problems, even if I might not want that particular crate in my dependency tree.

There are tools available to inspect the code you're bringing in. In any language and ecosystem, you should audit your dependencies and actively choose. I don't think we should start restricting how people use this core language feature, though, that's a slippery slope. If the core Rust team can't agree, I can't really imagine everyone who uses Rust agreeing, and I think that's a good thing.

I know what unsafe means to me, and how I want it handled in my projects, but if that was the "One True Way" and everything else is taboo, we close a door that I feel would be to our collective detriment.

Thread Thread
 
redoxeon profile image
Michael Harding

Don't get me wrong, I wholeheartedly agree that there shouldn't be a specific "One true way." What I understood to be the meaning was just more defined best practices or more examples of when unsafe is okay to use. I absolutely think that leaving it up to the developers is important, and feels somewhat related to freedom of expression in some ways.

What I've taken away from the reactions I've read has been that the rust community needs to chill when it comes to unsafe usage, so having it show up as the escape hatch it's meant to be is a good thing. It's become clear to me from today that at least a good chunk of the community simply views unsafe as a bad thing, which is different from the sentiments I've seen given by the language team that unsafe is as much a language feature as lifetimes are.

So I guess that's more of what I mean, unsafe needs to be brought more to the forefront in a way that it shows off great things that unsafe can be used for instead of making unsafe itself the taboo.

Thread Thread
 
deciduously profile image
Ben Lovy

Definitely, wholeheartedly agree. At least in this case, the actix-web repo should have had a disclaimer front-and-center on the readme about how this particular project viewed the issue.

a good chunk of the community simply views unsafe as a bad thing

Ever used a Vec<T>? Repent! ;)

Thread Thread
 
ghost profile image
Ghost

I think that there is some general misunderstanding about all the safe/unsafe deal, because some code is safe doesn't mean it can't fail, just say that there is no undefined behavior, your logic can still be wrong, that's why Rust doesn't mean you don't need testing. So some trust in the developer is still important.

Unsafe in the other hand doesn't mean that there are undefined behavior inside, just that the compiler is unable to check for it.

I don't know the details of what happened with the complainers and the main dev, but I wonder is that if so many people felt so strongly against some aspect of the project and where technically proficient enough to be certain that those unsafe where unnecessary, why nobody offered patches and if they did and wasn't accepted why nobody forked the project, that's how it works isn't it. Also, between 0.7 when I saw this whole mess started to v2 a lot of progress was made getting rid of unsafe code.

I think the main dev didn't manage properly the community and part of them became haters, so no matter what changes where made, it was too late.

Maybe the main dev didn't wanted to work with others, not ideal, but his project, his prerogative. Forking is always an option, sadly I'm far from being able to do something like that.

To me just someone capable enough to fork can critique so heavily and in that case, stop critiquing and fork the damn thing.

I'll be here praying to the coding gods (No Robert Martin, you are not a god) that some organization forks Actix, Rust need some bedrock in this, doesn't even need to be the best, but stable and reliable. Just like in Python, whether you like it or not, you can try Flash, Tornado or whatever fancy new thing, but at the end of the day you can always go back to Django and you can be pretty sure it's gonna be there.

Thread Thread
 
redoxeon profile image
Michael Harding

I think that there is some general misunderstanding about all the safe/unsafe deal, because some code is safe doesn't mean it can't fail, just say that there is no undefined behavior, your logic can still be wrong, that's why Rust doesn't mean you don't need testing. So some trust in the developer is still important.

Totally agree with this. One thing I really like about rust is that stuff like unit testing feels really easy to do, even where I haven't really been taught to do testing outside of the debugger and print statements at university. The fact that stuff like this exists for rust alone should be proof enough that "safe" doesn't mean "bug free" and "unsafe" doesn't automatically mean "bug riddled"

As far as the forking stuff, I totally agree as well, but I'm also not proficient enough in rust or ready in general to maintain an open source project. Most of my info with this incident is 2nd or 3rd hand at best, but from what I got, some PR's were made and rejected, which spiraled out of control. They really should have just forked it if it was that important to them.