(joke in the title stolen from a redditor)
Context: some Rust kid vandalized cppreference.com today.
That kid is an asshole because cppreference is doing the lord’s work.
Also, I know that language choice is one of the most important decisions when starting a new project but, personally, I work on a highly performance sensitive project that’s written in PHP. If you think you need Rust to be performant or type safe then you don’t really know what you’re doing yet. It makes it easier and increases theoretical limits - that is all.
I want to tell the computer what it should do, not what the computer things I can do. That’s why I use scratch
I saw md5 checksum implemented in scratch.
There is also a whole OS written in scratch. A very basic one but still
And a RISC-V emulator that runs Linux.
I would like to hear more
I am happy to answer any and all questions.
Is this a new project that was intentionally started in PHP or something legacy? Any interesting benchmarks? Like minimal wire to wire network processing time and where the bottleneck is?
Our project was something that has evolved from a full web app into a PHP backend fronted by a reactish SPAish thing. Our spool up time to cache our website is 13 ms from a cold start (after provisioning and stuff) so we’re pretty good at horizontal scaling. Once cached our overhead is 7ms for framework things. Our page load times across the board calvary wildly with 25ms being our target time but with some very large reports stretching into the seconds range - on those slow pages all those previous numbers are essentially irrelevant and performance is dictated solely by how much we’re investing into query caching and tuning.
Personally I’m actually a big fan of PHP, it’s incredibly powerful and good with lists (and all good programming is list programming ;P). The typing is strong when enforced and weak when you choose. The lambda and reflection frameworks are robust and it has a number of interesting phpisms like magic functions and variable variables.
Is PHP strongly typed?
It’s a choice left up to developer but you can have static and runtime type checking enabled for as many functions as you desire. Theoretically you can have collection subtype checking but I’d say that PHP is still quite frail here as proper collection typing lacks any template-style typing but needs dedicated collection types.
then you don’t really know what you’re doing yet.
Can you elaborate on this? How are you guys making PHP so performant? Do you call C programs from it or something?
No, we just use good algorithmic approaches including an emphasis on lazy evaluation. It’d take out application like 20x as long to compute 2+2 compared to one written in C but computation in PHP isn’t our main bottleneck - it’s efficient network connection handling and psql query performance.
Our PHP code is maintainable and expressive that makes it much easier to tune performance where it counts.
As someone who learned a lot from C++ and that now loves Rust, this annoys me.
An attitude I’ve seen a lot among software developers is that basically there aren’t “good languages” and “bad languages.” That all languages are equal and all criticisms of particular languages and all opinions that some particular language is “bad” are invalid.
I couldn’t disagree more.
The syntax, tooling, standard library, third-party libraries, documentation quality, language maintainers’ policies, etc are of course factors that can be considered when evaluating how “good” a language is. But definitely one of the biggest factors that should be considered is how assholeish the community around a particular language is.
A decade or two ago, Ruby developers had a reputation for being smug and assholeish. I can’t say I knew a statistically significant number of Ruby developers, but the ones I did know definitely embodied that stereotype. I’ve heard recently that the Rust community has similar issues.
The Rust language has some interesting features that have made me want to look deeper, but what I’ve heard about the community around Rust has so far kept me away.
I write Java for a paycheck, but for my side projects, Go is my (no pun intended) go-to language. I’ve heard nothing but good things about its community. I think I’ll stick with it for a while.
But definitely one of the biggest factors that should be considered is how assholeish the community around a particular language is.
I think all of the factors you’ve mentioned are extremely valid, but this is the one factor that I think should absolutely not count into whether something’s a ‘good’ or ‘bad’ language. If I’m choosing which technologies to use for my next project, the question of whether it has a rude vocal minority in its community is AS FAR DOWN on my list as possible. Right next to whether its name is hip or whether their homepage is engaging.
A toxic community won’t help you in good faith when you’re running into issues, and this makes it harder to develop using a language with a toxic community.
idk, how do I contact “the community” when I have an issue in the first place? All I know of is StackOverflow, and they’re honestly toxic enough to make me never ask questions there in the first place.
Yes, and answers on StackOverflow about languages that have toxic communities are worse than answers on StackOverflow about languages with less assholeish communities in my experience. As I mean it, StackOverflow posts tagged with the language (and probably even more so those posts’ responses) qualify as part of “the community”.
Touche. I personally found Discord users to be helpful and welcoming, but that was moreso for libraries and not languages.
Documentation is not a community though.
Yeah, but the shittiness of a shitty community will come through in documentation that talks down to you and doesn’t dain to explain things properly. And then when you go and ask a question because it wasn’t well explained in the documentation and get derided for asking.
Fanboys are also likely to mislead (including in documentation) by downplaying caveats in libraries and such. Documentation can end up being more like marketing speak than technical reference.
You speak of “vocal minorities”, but I don’t think it’s quite as simple as that. Languages have cultures around them. (As do lots of other things. Video games. Hardware devices. Car brands. What have you.) If a language has a toxic community around it, it might be an indication that the people behind the language may lack the ability or motivation to maintain a better community. Or worse, that they’re doing things that promote or attract the shittiness.
So, in short, I disagree with you. For one thing “everything about this language is great except its community is shitty” makes me suspicious that maybe everything about the language isn’t great and it has a really fanboyish community that likes to suppress any (even legitimate) negativity. Where I have to, I use the language I have to use, but when I have a choice, a shitty community is generally a deal breaker for me.
Rust documentation, at least for std is some of the best I have seen.
Pretty sure syntax is the only one that is even related to what a language is. All the rest are just ecosystem development primarily effected by popularity.
And the ecosystem affects whether when I run into an obstacle, I can google for 5 minutes to find the solution or whether I’ll spend the next three days trying dozens of incorrect approaches suggested by StackOverflow answers and random comments on language-specific forums and Wordpress blog posts etc. Whether you consider “the ecosystem” part of the language or not, it’s worth considering when choosing a language to work in.
Sure but, this isn’t about the actual language. For instance I like Ada, there isn’t a lot of public support for it and you’re mostly left with the RM and GNAT manuals. But none of this is relevant to Ada as a language. Which was really all I was saying, you should probably split complaints about the ecosystem and the actual language affecting viability.
Of course it’s relevant to (my or anyone else’s use of) Ada as a language. And for any language the language and culture influence each other too much to consider them entirely separate. The attitude of the community invariably ends up being reflected in the syntax and standard library (and third party tools/libraries/documentation) of the language and vice versa. If you want in your head to decide there’s a distinction there, I guess that’s fine, but such a distinction has no practical benefit to a developer making the decision what language to use for such-and-such use-case.
i cant imagine people thinking ruby is the best
I’d use ruby over python or JavaScript anyday
thats like decing whether to be punched in the face or kicked in the balls
Are you me? I know the joke is overused, but, seriously… that was a comment I would have written.
So wierd.
In my experience the actual rust community that you’ll be seeing if you work with the language is actually incredibly nice and open minded. It’s got a lot of autistic people and other minorities who are more emotionally mature than a lot of adults. Rust people can be smug sometimes talking to “outsiders” but once you’re in the community the problem disappears
Blaming others for your own shortcomings in being able to pick up a language is the same kind of behavior as some kid on League blaming everyone else on his team except himself for failing a match.
Stop letting a community dictate your use of effective tools, whether it be C++, rust, python, or air fryers.