Over time cute becomes increasingly annoying and unpleasant. I have to use a piece of software at work which has a joke in an error message. They’ve used the joke in the wrong context so it doesn’t even make sense, but even if it did, what might have been mildly amusing the first time is far beyond unwanted as the months and years pass.
Sounds like PHP’s infamous Hebrew parse error message.
A couple of questions.
I think it was Bruce Eckel who mentioned having a “Prolog moment” when it clicked for him. I never managed to find detail on that moment - does anyone know?
Prolog tutorials all start with logic demos. I’ve looked around and found things like HTTP clients, so it’s clearly not just a deduction engine. Is the deduction just an additional feature of the language, or the entire paradigm so that if one were writing a business service, or cli tool, whatever, would it have to be represented as a space search problem? Or is Prolog best not used for general programming?
Bob Kowalski, one of Prolog authors, once said that the success of Prolog is that it was a proof engine so stupid that you could do everything with it (or something along that).
Now, as I’m the author of that HTTP library (the one that ships with Scryer Prolog), obviously my answer is going to be that Prolog can be used for general programming. And in fact, I encourage people to use it for that! IMHO the basic key concepts that Prolog has are unification and non-determinism. Unification allows you to have logic variables. Just unification and logic variables itself make Prolog an interesting language (other languages have these things too, but they’re even more unpopular!). Nondeterminism is what gives you space search capabilities but it’s not something mandatory. There are lots of predicates that are deterministic and things like the HTTP library are going to be determinism, because it makes no sense to use it there. But the language itself has that capabilities builtin.
In my opinion, as much as Common Lisp can be used for general programming, Prolog is too, although the community is much smaller due to some factors. For example, most part of the Prolog community is in Europe.
Erlang was originally implemented in Prolog.
The key insight you need for doing this is to understand a metainterpreter. The OP does explain this really well: https://www.metalevel.at/acomip
In a nutshell, a metainterpreter allows you to borrow as many features from the original language as you like, and change (reify in metainterpreter jargon) those that are not useful.
This article discusses some similar ideas in the context of education: https://ep.liu.se/ecp/012/004/ecp012004.pdf
Ok so maybe I shouldn’t be writing this comment, but honestly, ever since working for Google post-covid, I just can’t take anything they put out seriously anymore. That company is so broken I just don’t trust the quality of the engineers that work there. Like, the Google brand name is a negative for me at this point. There’s way better resources for this kind of thing.
I think, as you say, that you should not be writing this comment; I can’t see how this is valuable:
Surely it is useful in conveying the probable quality of the guide, sparing people wasted days. I came here to see if anyone had opinions on the quality, because I looked at the Kubernetes code some years back, was shocked at the poor quality, and dumbfounded that people were running their businesses on it - so if it says google, I want opinions on quality before getting involved. Given increasing consensus on google I will skip this guide.
No, it’s not. Google is an enormous company. There is always going to be a range of quality.
Maybe OP was in a bad team. Maybe OP has a sour taste in their mouth. Maybe you have misjudged Kubernetes because it does very much appear to work for enterprise level companies.
I think it’s a bad way to go to dismiss an artifact from a large company out of hand simply because of the quality of something else. I have no love for Windows but I think Microsoft is killing it with Xbox.
Half of the reason anyone cares about this guide at all is because it is coming from Google.
It’s very disingenuous to say “don’t say negative things about Google, it’s not relevant” when a major reason we are discussing this guide in the first place is because of Google’s positive reputation.
I’ve heard some similar things about Google in the past several years; that said, do you think that any issues with the quality of Google engineers broadly-speaking is relevant to this Rust guide? I skimmed it and it seemed like a reasonable enough way to get programmers who have no prior Rust experience up to speed with the language reasonably quickly. I didn’t notice any major problems with it, certainly.
I didn’t read it. I’m not saying the guide is bad. It might be good. I’m just not willing to give it a chance, there are other guides out there that are not associated with Google.
Maybe I’m wrong in this instance, but I only have one life to live. I need some kind of filter.
Thanks for looking at the course! If you do find problems, please don’t hesitate to open issues and/or to send PRs my way via https://github.com/google/comprehensive-rust.
That company is so broken I just don’t trust the quality of the engineers that work there
How is this related to the quality of the linked Rust guide?
There’s way better resources for this kind of thing.
Would you mind sharing those? Otherwise your comment is not very helpful.
Thanks for being brave enough to say this. I feel obligated to back you up even though this might not be a great idea for me either.
Where to begin? A few snippets: I worked at Apple with a former senior (staff?) Google engineer who had been internally certified at Google as a Python style reviewer.
His code reviews were the absolute worst I have ever seen: he’d leave a dozen comments about the order in which variables were declared, and zero comments about actual engineering. For points of reference: at Mozilla people would leave lots of comments about style, but left even more about substance. At Figma people had a culture of leaving style to automatic tools as much as possible and had an extreme focus on substance.
The same guy refused to use an autoformatter. His friend put up a nontrivial PR at noon, he rubber stamped it literally 5 minutes later, then they complained to our manager about how I didn’t review it. I could share so much more that’s even worse from my experience with this and other Googlers, but it wouldn’t be relevant to programming language style guides and code review.
Lots of excellent people work at Google. But Google also has a subculture of cliquish freeloaders who obsess over style and language guides to obscure the amount of work that they’re actually doing. It’s not that they do no work at all: maybe 30% of their work and reputation comes from style guides and politics rather than actual work. But they will simultaneously act as if that gives them more authority rather than less.
In college I was a fan of the Google Python Language Guide and others, but after seeing the culture they bring along firsthand I now think they’re a red flag.
There must an English idiom about how something (not everything) which looks nice from far away look like crap from close by.
You could pull one from the movie “Clueless”:
Tai: Do you think she’s pretty?
Cher: No, she’s a full-on Monet.
Tai: What’s a monet?
*Cher: It’s like a painting, see? From far away, it’s OK, but up close, it’s a big old mess. Let’s ask a guy. Christian, what do you think of Amber?
Yes. It’s “Laws are like sausages, it is better not to see them being made”. i.e. having insider information about some things makes you dislike them.
Tabs other than the current tab don’t render borders. it flattens the design and honestly looks better as far as I’m concerned, but every time a Firefox update comes out this side of the internet collectively freaks out about whatever changes have been made.
Likewise. Sounds like bikeshedding to me. The only feature I’d like in Firefox is something like Opera workspaces. Trying to imitate them with bookmarks and windows is not up to scratch, and re-opening multiple windows can be flaky.
Looking into using a monorepo at home as an attempt to improve the order and organisation of all the exercises, demos, and mini projects which I sometimes struggle to find months down the line.
I don’t consider this burnout. Maybe overwork, maybe exhaustion. The term burnout is bandied about these days with no awareness of how bad it gets. It’s deeper, more insidious and longer lasting than the hip articles all over the place. It can take years to recover. There was a podcast iirc called Burnout Diaries which painted a picture of what I consider actual burnout, I think ten episodes in total. Not to belittle anyone’s exhaustion, but it gets so much worse.
I got that banner once too, after a string of good faith but slightly controversial comments which got many upvotes and a few flags. From what I can tell, the banner is less serious than it sounds, but being nudged towards deleting your account definitely leaves a sour taste in the mouth.
I don’t think the ratio of upvotes to flags is taken into account, just the pure number of flags. That would mean that people who post frequently are likely to see the banner, unless everything they post is 100% uncontroversial.
The banner suggests talking to a mod, I tried sending a PM to a moderator asking what I should change in my behavior to not be prompted to delete my account again. I never got a reply. I suppose there are higher priority things to take care of.
Yep. I’ve seen it twice.
The first time, I had no clue what it was about, and tried to PM every mod. I got a response from one about a week later I think, and then later from pushcx saying that he’d added a page to show you your own ‘standing’.
The “flagging” for me was based on just two comments:
1, where I expressed an opinion about systemd, that got 30+ upvotes and 1 “incorrect” downvote, and then replied to myself to question how an opinion can be “incorrect”, and that comment got 5 ‘off topic’ down votes.
2, I make a sarcastic comment about the irony of using docker to distribute all-in-one Go binaries, and of course, it was downvoted -5 as ‘trolling’.
I am convinced from my use here, HN, /. - using user input via ‘downvotes’ as any kind of trusted heuristic about the quality of a comment, is a stupid fucking idea. It’s never been done well, even here, which is already better than most places.
The only thing that makes it better here is that the banner is all that happens automatically - there’s no automatic banning or anything. But it really doesn’t make that clear, and the hint about closing your account is just ridiculous IMO.
I remember that discussion (I was the one who responded). I did find it to be an important example of how sensitive the system is, precisely because it’s based on user input. I looked over those two comments carefully at the time, and I still bear them in mind every time we’re discussing feature changes.
And I’m still thankful for your efforts!
I know moderation is generally a thankless task.
I hope it’s clear from my comments, that the actual moderation (ie the actual actions you take) on 🦞 is among the best Ive seen, if not the best.
My issue is very much with the way regular users use the tools available to them, and thus the tools that are available.
Lobsters doesn’t have downvotes, so (some) people use flags to signify stuff they disagree with (although I think someone mentioned the incorrect flag is gone now?) as well as flagging actually “bad” stuff.
In theory the orange site should do better at this because it has both downvotes and flagging - the problem is the downvote action has consequences that actively encourage the production of echo chambers.
🦞 still manages this much better overall, but I also wonder how much of that is down to sheer size. Would unpopular opinions be flagged to death here if the population grew ten-fold?
I don’t know. But I wouldn’t bet my carefully hoarded internet upvote points on it!
(edit: I’ve removed a quote here, since the post I was replying to had been deleted by its author.)
(Slightly later edit: I suspect the author removed that post because it brought up the problem of flagging abuse, and mentioned their own post as an example. Taking a look at my standing page, I absolutely understand why that’s the case though. I have two flags this month: one flagged “troll”, which I don’t wanna argue about, and another one flagged “spam”. It’s on a post that’s on-topic, contains no links, no mention of any product except the one the topic is about, no self-promotion – actually no promotion of any kind. I’d love to know why someone thought it might be spam, but since there’s no way to appeal flags and no way to know who flagged a comment, that’s anyone’s guess.
That being said, since some decisions are taken based on flags, there should be a way to appeal them, just sayin’ ;-))
It’s also my experience that metrics really don’t help. Way back when phpBB was still a thing I was part of a moderator team that tried to test-drive one of those up/downvote plugins that started popping up around 2006 or so (or maybe earlier? I don’t recall anymore… anyway, it was a long time ago). It was terrible, and we tried a couple of “soft” versions (one that allowed upvotes but not downvotes, another one that allowed for various positive flags like helpful, funny, whatever, the way Slashdot did) – we eventually turned them off for good.
All of them had a negative impact not only on the community – which, 15 years of Facebook later, is probably easy to understand – but they had a negative impact on the moderation process, too. We routinely had to weigh obvious decisions against metrics that didn’t tell the whole story (e.g. banning users who slipped subtle neo-Nazi crap into their posts on a 400-page topic and rarely got called out on it because there were like 10 people keeping that topic alive anyway vs. not banning users expressing an unpopular opinion about a recent game or whatever and getting downvoted to hell).
There’s always a point at which you admit that the metrics just don’t tell the whole story, like the one above (I remember the systemd post, too). After that point, no metrics tell the whole story anymore. If you have to decide, for every post, if the metrics are trustworthy or not, then you’re already in subjective land, and the metrics only enforce a decision that’s already made. Dumping the metrics entirely at least enables some more freedom to articulate your thoughts and make a good call.
Large social networks, like Facebook and Twitter, need to show metrics because they depend on projecting an image of an objective information dissemination platform, otherwise the ad funding dries up. And even in their case it’s bullshit, and they gather more stats, and make more automated decisions, than anyone else. I don’t think acknowledging the subjective nature of mod actions would be hurtful for lobste.rs in any way. Many of us are here precisely because things don’t work the way they work on FB or HN – doing things exactly the way those platforms don’t do them, and could never do them, sounds like a good call ;-).
It’s funny you mention Slashdot: I’ve always been interested in their moderation/meta-moderation approach and wonder why it hasn’t caught on in more places.
I think metamoderation could work well here. Present comments with churn, positive or negative, and have the community decide if the vote was appropriate. If the community says “you, user, are using your flags incorrectly”, perhaps they decay in value?
I wasn’t specifically talking about the metamoderation part, but Slashdot’s system has a problem related to that of downvote-based systems: when allowed to do something other than reply, butthurt users will abuse the flag system, too. If someone expresses an unpopular opinion, it won’t be downvoted, but it will be flagged as “flamebait”, “troll”, “redundant” and “offtopic” without any consideration, because that’s just what mobs do – if booing (downvotes) isn’t available, they’ll take slogans (flags) as well.
I know this sounds cold-hearted but it is what it is, I’ve been a butthurt user who acted irrationally more times than I can count, and I still find myself indulging in flamewars and the like even when I’m perfectly aware it’s stupid. I try to keep away from flags for this precise reason. Flames are a whole different story :).
That being said, it’s worth remembering that Slashdot’s policy dates from a whole other era. I think many younger people have slightly different exectations from moderation these days, shaped by large social media platforms and the like.
Any moderation policy is going to have some impedance mismatch. Some people are going to find it intolerable, and many of them will be smart people who have a lot of interesting things to say. Such is life.
I’d love to know why someone thought it might be spam, but since there’s no way to appeal flags and no way to know who flagged a comment, that’s anyone’s guess.
I imagine one could have a system where the flags would be required to be accompanied by a motivating comment by the flagger, only visible to the receiver, and perhaps moderators.
I am convinced from my use here, HN, /. - using user input via ‘downvotes’ as any kind of trusted heuristic about the quality of a comment, is a stupid fucking idea. It’s never been done well, even here, which is already better than most places.
How would you do it then? You can’t expect moderator(s) to be on top of every thread, so you need some way to alert them that something’s up. AFAIK using downvotes (which Lobsters doesn’t really have, just “flags”) is still the best way to do that.
I agree, I think lobste.rs is basically the best possible solution I can imagine. It has upvotes to show support, but not downvotes to show “disagreement”. Instead, it lets you flag comments for being off-topic, spam, troll, unkind or me-too; I suspect that the threshold for “I disagree with you, so I’m gonna flag your comment as a troll” is much higher for most people than the threshold for “I disagree with you, so I’m gonna downvote you”. It’s not like actual moderation decisions are made automatically based on the flags.
To be honest, the only real issue I see with the lobste.rs system is that the message is so harshly worded. I wouldn’t even be against the current low flag limit if it just said something like, “Your recent comments have been heavily flagged. Maybe you should consider taking a break to cool down”. Maybe it would be nice if it also took into account the ratio between flags and upvotes, rather than just the flags. But it’s where the banner suggest deleting your account that it really goes off the rails IMO. It’s also a bit weird that it suggests contacting a moderator, when the moderation team clearly doesn’t have the time/patience/desire/whatever to respond to inquiries about it.
If we must have such a warning, which I wouldn’t be in favour of really, then I’d phrase it as “Your comments have been flagged a lot, this may or may not be a problem but here are your comments to review; kindly take a look and see if there’s something you could have done better” or something to that effect. Right now, and in your suggestion as well, it kind of assumes you did something wrong, which may not be the case at all.
I would also change the background from red to something more neutral. It would still be visible, just not that “alarming”.
This is really nicely worded and I can’t agree with you more. Cooling off assumes it was a heated debate, which itself might not be bad, yet the original text was quite aggressive in blaming the recipient, instead of following though that it might have been an honest mistake, or even no mistake at all.
I suspect that the threshold for “I disagree with you, so I’m gonna flag your comment as a troll” is much higher for most people than the threshold for “I disagree with you, so I’m gonna downvote you”
I suspect so too, but maybe i’m just projecting.
What feels weird to me about Lobsters flagging system (or at least of the impression i get of it form reading this thread) is that while flags definitely have a cost for the flagged person, they seem to not have any cost on the flagging one? If that’s true, then i think that’s a glaring problem and should be addressed. Someone that’s mass-flagging comments should be as much a red flag for moderation as someone who gets mass flagged.
Regarding the wording of the flag notice itself, i completely agree with others in that it’s quite bad and should be improved in tone and clarity (and probably in color too).
NB: take this comment with a grain of salt, as i’m mostly a lurker here and not much of an active member :)
while flags definitely have a cost for the flagged person, they seem to not have any cost on the flagging one?
I got told-off once for flagging something that I shouldn’t have (the mod was correct), though I also didn’t understand that flagging actually got a human involved. My mental model was more like a downvote (from other comments here, I don’t think I’m the only one). So I felt bad about wasting a mod’s time. It probably says how flags work somewhere on the site, but it’s not on the “flag” dropdown :)
Maybe there should be a low limit on flags-per-week, or something like that. You could get really economicsy and a debt system - if you’re out of flags, and you see something you really think should be flagged, well that’s going to put you in flag-debt and cost you two of your flags from next week. With a limit on how far into flag-debt a user can go.
And or some down-weighting of users who flag heavily vs those who flag rarely.
As @hauleth correctly points out, the issue is not that people can signal they see a problem with a post.
The problem is assuming that signal is (a) trustworthy and (b) even remotely close to correct.
The idea that people don’t downvote (or flag, in lobster’s terminology, the effect is the same) comments simply because they disagree with the view, is laughable. It definitely seems to happen less here than the orange site, but that’s like saying America has less gun violence than a literal war zone, so there is no problem.
As I said, Lobsters gets a lot of things right, and it wouldn’t take much to improve it.
The threshold for the warning message definitely should be smarter - a fixed number of flags makes zero sense if the goal is to have other users feedback be meaningful. 100 people upvoting and 11 people marking as ‘off topic’ or ‘troll’ because they don’t like the content, doesn’t really signify “you should reconsider your words” to me, unless of course the goal is an echo chamber.
If a post doesn’t go below “0” effective ‘score’, it should not qualify, and even then I’d expect a much higher threshold than 11 such instances.
As multiple people have said, the message itself is just bizarre right now. If you have to have a message it should be a lot more aware of the context of how it’s probably being read.
If someone is genuinely just trolling, the message won’t mean shit to them anyway, they’re not likely to stop because of it.
That this warning is not great because of the wording and threshold is something we can quickly agree on, as I already expanded on in some other messages in this thread.
I’m not so cynical about the value of downvotes in general though;I don’t think that “flag for disagreement” are “flag for unconstructive” mutually exclusive. We’re all more sensitive when someone is being an ass about something we disagree with and less sensitive when we do agree with it.
It’s a bit of a tricky balance; early today I saw a thread where an author was just being obtuse IMHO, responding with short messages that were essentially just refutations instead of actually having a conversation. I considered flagging it as it’s not a constructive conversation, or … because I don’t agree with it? Kind of both. I didn’t end up flagging it btw.
I did flag another comment a few days ago which consisted of little more than “oh, you must not have understood it, let me explain it to you again like you’re an idiot who needs to be educated”. It was actually a fairly substantive comment, but also very condensing and not constructive. At that point you’re just being an ass, so -1 troll. I probably wouldn’t have if I had agreed with the gist of the post.
And this also works two ways. I mean, Drew DeVault got plenty of upvotes as well even when he was demonstrably outright lying in his posts just because people vaguely agreed with the sentiment.
Overall, “+1 because I agree with it” is actually a far bigger issue than “-1 because I disagree” IMHO.
You’re right. I don’t really agree with the concept of simple ‘upvoting’ or ‘downvoting’. I think it encourages knee-jerk “ooh I agree with one sentence so clicky clicky” responses, rather than requiring people to actually articulate when they agree or disagree with something.
Of course then you end up with “+1” etc type comments.
But the bigger issue IMO is still the conflation of agree/disagree and “this is inappropriate”.
Flagging something means a moderator should intervene and review the comment. It should be unrelated to whether the person agrees or disagrees with the content.
I don’t really agree with the concept of simple ‘upvoting’ or ‘downvoting’. I think it encourages knee-jerk “ooh I agree with one sentence so clicky clicky” responses, rather than requiring people to actually articulate when they agree or disagree with something.
How would you sort comments then? Perhaps Lobsters is small enough that it can get away without them, but on HN with hundreds of comments it gets hard and you need some form of mechanism. In spite of the problems with voting, I don’t really know of anything better.
Posting order (i.e. chronological) wouldn’t be terrible.
On a small site like this, sorting by ‘agree’/‘disagree’ is probably not necessarily as bad, it that’s all it’s used for.
On the orange site the problem is that they encourage ‘downvote to disagree’ and then hide downvoted comments both visually, and then literally.
If that’s not the poster child for group-think and echo-chambers, I don’t know what is.
I want to say that I’m reading this whole discussion and I appreciate it, though I’ll resist the temptation to weigh in on every single point.
Lobsters is what it is and I think removing the use of upvotes to sort comments would significantly change the site and the kinds of discussions it’s good for. Many people would leave. When I see people building their own new spaces, however, I do advocate for chronological order. I think it’s very difficult to have anything that even remotely resembles a game mechanic, without attracting users who treat social interaction as a game that they want to win.
You’re probably right that removing upvotes would change lobsters somewhat. Perhaps then the solution is the downvote mechanism that I detest so much, because if it’s purely attached to sorting order, that’s still a better outcome than having posts flagged simply because someone disagrees.
Would it be possible to display separate upvote and downvote counts, but still sort by the sum (“overall score”)? That way voting still does affect reading order, but the UI makes it feel less onerous if you’ve been downvoted. In essence, hopefully normalizing a UI pattern to indicate disagreement quickly.
And this also works two ways. I mean, Drew DeVault got plenty of upvotes as well even when he was demonstrably outright lying in his posts just because people vaguely agreed with the sentiment.
Is the lying still demonstrable, or was it only demonstrable back then?
Stuff like this (and some more on the same topic at HN), and stuff like this. There have been some other discussions as well. I can’t be bothered to track them all down.
I’m sorry to say it, but the web browser scope looks less like lies and more like methodology that you do not like. I cannot judge the other one, though.
I’ve looked at now 100+ documents from that list. Not a single one has had actual content related to the web standard.
That’s not a minor methodology error; that’s just completely wrong and he’s more than smart enough to see that too, especially after multiple people pointed it out to him. An honest response would be to fix and correct it.
I disagree. At the very least, a person still has to sift through all of those documents, even if they don’t have to read them.
“Demonstrably outright lying” doesn’t fit what I see here. Maybe there were better examples at the time; I know much of the record was lost when drewdevault was banned due to Lobsters’s policy of deleting posts.
He deliberately said things that were not true and defended it with “but my point us correct anyway”; I don’t know how to call that anything else than lying. Granted, he’s probably just a victim of his own anger and bias, but that’s a poor excuse and the end result is the same.
Anyway, this thread isn’t about Drew, so I’ll leave it at that.
Deliberate outright lies could be demonstrated by a direct quote of the lie. What I see is a disagreement over whether an estimate is fair and what it means.
The estimate makes a really serious methodological error, one that can scupper an otherwise strong paper. It’s fine to make mistakes, but doubling down on them is bad.
I think the keyword there is trusted heuristic. No-one says that downvotes/flags cannot be one of the metric that there is something wrong, just it shouldn’t be used to “automatically notify users”. Human interaction for showing “big red banner with “
go f… delete account” should be required.
It seems to me that the problem is determining who are the trolls - eg the person criticising Go, or the Go fans downvoting the criticiser. One solution might therefore be to limit the downvote to never less than -1, and greyed. Downvote trolls might be satisfied by this enough to not flag, and anything serious would still get flagged, and genuine criticisers wouldn’t be harassed by people who can’t handle criticism of their favourite whatever.
I don’t know if you’re talking about a specific discussion, but in general I find Go discussions tiring because it’s always the same “Go bad” arguments over and over again, whether that’s relevant to the story posted or not. It’s really tiresome.
If you don’t like Go then that’s fine, but maybe you should be careful interjecting on Go stories unless you really have something of value to add. I don’t go around “C++ bad” or “PHP bad” on every C++ or PHP story.
I think the same applies to Rust from what I’ve seen on occasion, although I don’t read most Rust stories so I’m not sure.
Previous: Flagged comment warning should have tiers.
IIRC there were some other discussions as well, but I can’t find them right now. I actually thought this warning got removed last year, but it seems not.
I have the impression false positives are fewer since the “incorrect” flag reason got removed; I used to get this warning fairly regularly before that, but haven’t since.
According to the standing page (https://lobste.rs/u/arp242/standing, put in your own username in there) you need to net 11 in the last month to see that page. End up in two or three conversations where one or two people get their panties all in a knot, and yeah … say hello to your 11 flags.
Either way, automatic moderation never really works all that well IMO, or at least should have a really high bar. There is automatic moderation on Stack Overflow (and other SE sites), but the bars are so high that if you hit them, you almost certainly deserved it. And before you get to that point, you usually get flagged in the moderator interface first. IIRC there isn’t even a way for moderators to override these bans, because it’s simply not needed.
I don’t know the details of the single person who has 59(!) flags, but that’s really a excessive outlier (and almost certainly not burntsushi, who is probably close to those 11 flags) so doing something about that automatically might be okay. But 11 flags in 30 days seems really low. And given there are just 7 users in total who see this warning it seems to me that automating this costs most than it’s worth. Lobsters isn’t that large.
IIRC there were some other discussions as well, but I can’t find them right now. I actually thought this warning got removed last year, but it seems not.
It was shown on the Replies page, which was offline for performance reasons for a long time.
I’m probably one of the few who took a peek at my /standing page nevertheless.
I can promise we’re aware that the voting/flagging system penalizes controversy. The formula doesn’t have any way of knowing which posts and comments are difficult-but-necessary conversations vs. which ones are behavior that should be changed, but we do take it into account behind the scenes.
telecom germany wants 55€ for 250 Mbit/s (if its available at all), in another post they said they pay ~50€ for 1Gbit/s T_T
I have gigabit cable from vodafone in Germany. I def. get the downstream when I am using an ethernet cable. 500Mbit via Wifi is def. also the norm. Upstream is unfortunaltely only 50Mbit. All in all it costs me 50€/month. I think that is an okay price.
Friend of mine was happily switching to 300Mbit unitymedia and then got total outages over days when corona hit..
It works well for us because we live on the ground floor and there is some sort fo problem with the cable in the appartements above us. But due to certain people not being on speaking terms in our house for some reason, it is not going to be fixed. Therefore nobody else has cable internet and we don’t share the line. Sometimes human drama is to ones advantage.
That being said, there is the occasional 6 hour outtage at night with vodafone cable too, but I guess that is unavoidable with residential internet.
I’ve got the 100 Mbit from t-com but without any outage. I really dislike any kind of glitches to my connection.
Here they offer 10 Gbit/s for ~40€ but I can’t really justify it. I’m happy with my cheap 200 Mbit.
Zig article -> 44 upvotes, Scala 3 -> 14 upvotes.
I am not sure what Scala is used for anymore. F# / Rust / Kotlin and probably OCaml ate away much of the user base over time. If you are an ex Scala coder, what language did you switch to?
There’s 18 Apache projects written in Scala
There’s some big names there (Spark, Kafka, Flink, Samza), especially in data movement. Also Netflix has atlas (time-series DB), Microsoft has hyperspace. Seems like most Scala code is associated to Spark in one way or another.
This overstates the case for Scala a bit. Check the founding years of these projects. Kafka and Spark, which are two of the most popular projects in this list, were created in 2011 and 2014, at the height of Scala popularity. Both projects were written in Scala, but had to put significant effort into engineering a first-class pure Java API. Kafka team even rewrote the clients in Java eventually. GitHub repo analysis has the Kafka codebase as 70% Java and 23% Scala.
It’s true that Spark does use Scala a bit more. GitHub there has Scala as 70% of codebase, with Python 13% and Java 8%. But Spark might just be the “perfect” use case for a language like Scala, being as focused as it is on concurrency, immutability, parallel computing, higher-order programming, etc.
I also closely tracked development of Apache Storm (created 2011), and it started as a Clojure project, but was eventually rewritten (from scratch) in Java. There are lots of issues with infrastructure software not sticking with vanilla Java (or other “systems” languages like C, Go, etc.). Apache Cassandra and Elasticsearch stuck with pure Java, and had fewer such issues. Durability, simplicity, and ecosystem matter more than programming language features.
The company I work for uses Scala for data engineering. I don’t think that team has any plans to move away from it. I suspect that the use of Scala is a product of the time: the company is about ten years old; Scala was chosen very early on. It was popular back then.
Elixir and loving it for almost 6 years now. I miss a couple of Scala’s features; in particular, implicits were nice for things like DI, execution contexts, etc. I don’t miss all the syntax and I certainly don’t miss all the Haskell that creeps in in a team setting.
If you are an ex Scala coder, what language did you switch to?
Python, now Go. At one point I figured I could ship entire features while waiting for my mid-sized Scala project to compile.
I hope they addressed that problem.
YAML in mid 2015 (I took a detour in infrastructure) but Clojure since 2019 now that I’m a dev again.
FWIW I liked Scala as a “better Java” when I started using it around mid 2012, until early 2015 when I left that gig.
I remember that I found it very difficult to navigate Scala’s matrix-style documentation; and that I hated implicits, and the operator precedence. I loved
case classes, and I think I liked object classes (not sure that’s the right terminology). And I liked that vals were immutable.
Compile times didn’t bother me that much, perhaps because I worked on early-stage greenfield projects with one or two other devs. (So didn’t have lots of code.)
I liked programming with actors (we used Akka) but we found it difficult to monitor our services. Some devs were concerned about loss of type safety when using Akka actors.
Off topic: there’s a lot of conversation/blog posts to be had about devs finding themselves in infrastructure. I’m there at the moment, and it’s a very different world.
I’m using Scala for my hobby projects. It does all I need. I like multiple argument lists and ability to convert last argument to a block. Implicits are cool, though they need to be controlled, because sometimes they’re confusing; for example, I don’t really understand how uPickle library works inside, even though I know how to use it. Compilation times are not that bad as some people say; maybe they were bad in some early Scala versions, but they’re not as bad as e.g. C++. It works with Java libraries (though sometimes it’s awkward to use Java-style libs in Scala, but it’s the same story as using C from C++ – it’s a matter of creating some wrappers here and there).
I wrote several big scala projects a decade ago (naggati, scrooge, kestrel) but stopped pretty much as soon as I stopped being paid to. Now I always reach for typescript, rust, or python for a new project. Of the three, rust seems the most obviously directly influenced by (the good parts of) scala, and would probably be the most natural migration.
Others covered some of the biggest pain points, like incredibly long compile times and odd syntax. I’ll add:
Java interoperability hurt. They couldn’t get rid of null, so you often needed to watch out and check for null, even if you were using Option. Same for all other java warts, like boxes and type erasure.
They never said “no” to features. Even by 2011 the language was far too big to keep in your head, and different coders would write using different subsets, so it was often hard to understand other people’s code. (C++ has a similar problem.) Operator overloading, combined with the ability to make up operators from nothing (like
<+-+>) meant that some libraries would encourage code that was literally unreadable. Implicits were useful to an extent, but required constant vigilance or you would be squinting at code at 3am going “where the heck did this function get imported from?”
I’m currently in Scala hiatus after nearly eight years as my primary stack with a splash of Rust, Ruby, Groovy, and a whole lot of shell scripting across several products at three companies. This included an IBM product that peaked near $100M/yr in sales. The major component I managed was JVM-only and 3/4 of it was Scala.
For the last few months, I’m working in Python doing some PySpark and some Tensorflow and PyTorch computer vision stuff. While I concede that the Python ecosystem has certainly matured in the 15 years since I did anything material with it, my preference would be to rewrite everything I’m writing presently in Scala if the key libraries were available and their (re)implementations were mature.
If the author is here and open to changing the post title, Rust is for everyone, and good for professionals too! The title as is sounds like it may be exclusionary toward people who don’t identity as professionals, or feel intimidated by Rust, which is contrary to Rust’s core goal of opening up systems programming to everyone!
I, the author, am here.
I appreciate the constructive feedback and can see your point. Choosing titles is hard. I too was concerned about the exclusionary potential for the title. However, I thought I had it sufficiently mitigated by the introduction paragraphs. Apparently I could have done better.
I’m not going to change the title of this post because I don’t want to deal with the hassle of rewriting URLs. However, I will try to consider your feedback for future posts I author.
I appreciated the way you took the feedback. Just wanted to say thanks for listening and considering it.
To me, Rust introduced a number of new concepts, like match for control flow, enums as algebraic types, the borrow checker, the Option and Result types/enums and more.
How did you use Erlang without pattern matching?
I think the order is alphabetical so its possible that author used Erlang after he learned Rust.
Have a nice day!
My usual way of framing it is “Rust is an industrial programming language”. That leaves the door open for practitioners of all kinds. It’s more like a cars are (in general) a utility and not a plaything or research endeavor, but are open to enthusiasts and amateur practitioners as well.
Thanks! I liked the disclaimer, and think predicting how people will respond can be tough. Appreciate you putting in the time to write this, and agree that Rust can be used in professional / production environments successfully, and that it can feel like a breath of fresh air for many!
Or, alternately, when someone writes 13,000 words about how nice Rust is, how ergonomic and human-centric and welcoming and humane the language and tooling and community are, they can keep the title without someone telling them they’re maybe being exclusionary.
It’s constructive criticism. If you post something on the public web, it’s fair game to criticize it- especially if done in a polite manner.
It’s criticism, but just because it’s delivered politely does not mean it is constructive. There is a cost to spending the effort to write a thirteen thousand word love letter to a language, just to have someone nipping at your ankles about how the first four words might exclude someone. Objectively speaking, this is a blogger that Rust would benefit from sticking around – but what is the signal they’ve received here?
Recently a friend submitted his static site generator which is optimised for math heavy sites on HN.
He made the fatal mistake of calling it “beautiful” in the description and the amount of hangups that people had. It was done in a mostly polite manner, but the amount of time and energy wasted in discussing just the first sentence with barely any technical discussion of the internals, was a form of pathological bikeshedding that I was surprised to see. It was just that “nipping at his ankles” as you’ve described, which can take its toll.
Vowed to never take that site seriously again.
It was done in a mostly polite manner, but the amount of time and energy wasted in discussing just the first sentence with barely any technical discussion of the internals, was a form of pathological bikeshedding that I was surprised to see. It was just that “nipping at his ankles” as you’ve described, which can take its toll.
Agreed. Yet here we are- arguing about arguing. I need a life… xD
Right, in my experience, HN often attracts uninteresting, unhelpful, or even mean-spirited commentary. Sometimes I am surprised by the opposite, though. In any case, understanding the dynamic really helps. A lot of commentary, seems to me, are upset at some level in some way and take it out in their commentary.
The author thanked them and described the feedback as constructive. So if they feel like they’ve taken something away from it, who are we to decide otherwise? My own hopefully constructive feedback here is that this subthread strikes me as projecting conflict into an interaction between two parties who themselves seem to have had a positive experience with it.
Yeah, I get where you’re coming from and I don’t really disagree.
But I also think that the person who offered the criticism is just trying to help the author get more views.
It’s fair to suggest that we all should consider our criticisms carefully, though. Because you’re right- if the criticism isn’t that important, we may just be disincentivizing someone from future contributions.
I also wonder if you’re maybe reading a little too hard into the choice of the word “exclude” used by the criticizer, though… I think that term has a little bit of extra charge and connotation in today’s social environment and I don’t believe the criticizer meant it in that way. I think they simply meant that a person who isn’t writing enterprise software might pass over the article because they believe they aren’t the target audience. I agree with that conclusion as well, because I do write enterprisey software and I thought the article was going to be about that specific point of view- I thought I would see arguments about productivity and developer costs and cross-platform support and other less-sexy stuff. But, it was really- as you said, just a love letter to everything about Rust.
I felt this lead-in made it a friendly suggestion and not harsh:
If the author is here and open to changing the post title
FWIW first third of those thousands of words is irellevant chitchat. The First actual claim on why is rust good is rust makes me giddy. I’m not sure “giddy” describes profesionals. It’s not no, but for me definitely not a yes either - giddy is just…giddy. Then all the technical points, borrow checkers, race conditions and whatnot - none of that tells me why is it a thing for professionals.
What I mean is, I don’t know if rust is for pros or not, I just think that the title is a bit click-baity, and “rust is good for everyone, even pros” like alilleybrinker suggested would work much better.
The First actual claim on why is rust good is rust makes me giddy. I’m not sure “giddy” describes profesionals.
There’s a layer of extra irony here in that the word “amateur” comes from a root meaning “love”; in other words, amateurs are people who do something because they love it. So taken literally, this is very unprofessional!
It seems relevant to note that the author does address this in the post itself:
The statement Rust is for Professionals does not imply any logical variant thereof. e.g. I am not implying Rust is not for non-professionals. Rather, the subject/thesis merely defines the audience I want to speak to: people who spend a lot of time authoring, maintaining, and supporting software and are invested in its longer-term outcomes.
Yes, except the title doesn’t have a disclaimer, and will be taken in the way they say they don’t want. Rather than leaving it ambiguous, they could change the title to remove the ambiguity.
This side-steps the issue “people don’t read past the title” - which is the real problem. It’s bad, and unrealistic, to expect every person who writes on the internet to tailor each individual sub-part of an article (including the title) to an audience that is refusing to read the (whole) article itself before making judgements or assumptions. That’s purely the fault of the audience, not the writer, and changing the article title is merely addressing the symptoms, instead of the root problem, which will allow it to just become worse.
We have an expression “judging a book by its cover” specifically for this scenario, and in addition to that, any reasonably-thoughtful reader is aware that, once a sufficient amount of context has been stripped away, any statement loses its meaning - which logically implies that full context must be absorbed before the reader has any chance of understanding the author’s intended meaning.
People should not have to write hyper-defensively on the internet, or anywhere, because civil discussion collapses when your audience isn’t acting honestly.
Reading the title and judging before reading the content itself is not acting honestly.
Agreed. It’s a poor choice for a title, even with a disclaimer. In fact, that he knew he needed a disclaimer should have been a big clue that it wasn’t a good title.
A better title would be: “Professional devs should love Rust”, or “Rust isn’t just for enthusiasts and hipsters”
Responses like this make me hesitant to try Rust, because they make me feel that I’d have to tiptoe around every word I put into a chat room, issue tracker, or mailing list.
I’m not sure this is a Rust issue as much as a general issue of recent years. Be delicate and excessively sensitive about everything because everyone’s an egg shell. It’s contrary to anti-fragility which I would suggest is a far better approach; and the opposite approach. “Rust is for professionals” would have had me targeting Rust so that I could level up, not scare me away. Show me a challenge,
I used rust for three years outside of work, but I’m afraid I stopped last year because I find it too big for a hobbyist. If I used it all day every day - no problem. It’s a great language, but I agree with the title.
This was my first thought, as well, before even reading the article. Obviously I should read before judging, but the author may want to consider that the title could turn away potential readers.
I made the same mistake in my own My staff engineering reading list. There was no reason for me to needlessly exclude people earlier in their careers from my list.
And it’s good feedback that the author of this piece may not want to unintentionally exclude people from their article.
For me, calling yaml a programming language is the problem. Yaml.org says: YAML is a human friendly data serialization standard for all programming languages. A data serialization standard, for programming languages, not a programming language. Yet there is a determination to use it as a programming language. Some attempt it with things like jinja or ytt. Some reach a point where they can no longer shove the yaml square peg into the programming round hole, so they just have a do_the_rest: in_a_script.sh. Others have “fake.dotnotation”: foo - a string key masquerading as object.method. The whole thing is an abomination. Is it ops people having a go at dev? Devs having a go at ops? Inexperience? It’s now the first thing I look for when assessing software options - are they abusing yaml - red flag.
I agree with Ben; I believe that massively complex HA-clustered systems can easily be less reliable and require a hell of a lot more devops work than an application running in this single node architecture.
90% of apps out there can put up with 15 minutes of downtime if you have an outage. Build it into your terms of service: “system can go down for up to 15 minutes during $MAINTENANCE_WINDOW”. Now you can also run database migrations without needing to implement some insane “zero downtime” policy that requires 10x as much engineering effort.
user expectations continue to rise though. This isn’t the 90s Internet anymore. The big services have damn near zero downtime, so that’s just expected now.
Really? Anecdotal, but Nintendo’s online store went down for over 7 hours last week for scheduled maintenance. Depending on the service (e.g., SaaS vs. storefront), scheduled downtime can be completely fine.
Nintendo recently came out that it has been using a two decades old multiplayer tech so the 7 hour downtime is very thematic for a system that old.
so that’s just expected now.
That’s not the relevant question, though. The question is: Will it affect your business? And more to the point, how do the following two things compare:
For most types of businesses, I don’t think it’s even a question. Sure, you have “old-fashioned” uptime states. But does anyone care?
If I’m not mistaken my bank goes down every night. Certainly every late night attempt I’ve made it’s been down.
Right but with the throughputs and resources available to large organizations, one would expect a 15 minute downtime window to be shorter for them because they can invest a lot of resources in making it smaller.
On the other hand, building systems on the idea that dependencies will never go down, sounds positively foolish, as does trying to hit 100% uptime with no leeway. And indeed, we now have an incredibly complex and fragile stack intended for 100% uptime – that is much more error prone and more costly in terms of manhours spent fixing, documenting, learning, and building on it – than it would be to just allow a monthly or bi-monthy 15 minute downtime.
Well then you can just create multiple clusters for redundancy ….
https://news.ycombinator.com/item?id=26111314 (this quote appears to be real :-( :-( )
Not sure if this is meant as irony or not. Having multiple instances of an app is a very real HA technique. And honestly, if you can isolate your services on a single box, it’s as simple as just starting multiple copies of the service.
Sure, having multiple instances of an app is conventional. Having multiple instances of a cluster manager is a different story. I’d say you need an ops team of at least 10 full-time people (and maybe 50 or 100 people) to justify that.
And justifying it because “well the entire cluster sometimes goes down when we upgrade” is a little ridiculous. The apps should be able to survive when components of the cluster going down.
I ended up doing this myself too. Went the whole route of having a cluster of k8s nodes on spare hardware, deployed EVERYTHING to it but ended up spending way too much time just getting stuff working, most notably having to pin deployments to boxes so port-forwarding would work. Also having a PVC provisioner is not fun.
It was a huge pain, but a good learning experience. The one thing I sort of miss about it was having a nginx ingress, so one can just create an ingress resource and ingress routes traffic to the pods. Caddy handles that now though.
I now use vultr for everything as well and am satisfied. It kind of goes to show that k8s really isn’t necessary even for container workloads. I’ve replaced my k8s deployments with
podman run commands, from there you can generate a systemd unit file with
podman generate systemd <containername>, then you have containers starting like services! It works great!
podman generate systemd
Thanks for mentioning that, I didn’t know about it. That’s really good to know!
Absolutely! I recommend the –new and –name flags as well. That way it runs a new container every time and the service is the name you give it rather than the container SHA.
I have - but you have to jump through hoops to run OCI images e.g. using skopeo to copy the image down, extracting it, the spawning the chroot, firewall rules to forward traffic from the host into the container etc. Podman just does it all for you.
Maybe I’m just lazy but the UX is nicer.
Good timing - I’ve recently been in a similar boat. Actix was giving me async-related errors that no amount of web searching could help with. So I switched to warp, which resulted in more errors. So I’ve switched to Elixir. I like Rust very much, but I’m starting to think it’s too big to be a hobby language. The correct solution to my errors above is really to go away and learn Rust’s async, but I’m using elixir for another project so I easily slipped into it instead.
Now that both XML and YAML are frowned upon as configuration formats, are TOML or Starlark acceptable choices?
JSON doesn’t support comments though, and generally isn’t especially easy to deal with manually IMO. There are some variants which improve on this, but if you’re going to use a “kinda like JSON but not really”-format then you might as well use something explicitly designed to be a configuration format.
JSON supports strings, therefore JSON supports comments.
I just use
fieldName_ for a comment string. All field names in my config are camel case so if there’s an underscore it’s a comment. People are thinking too much about this. It’s standard to use camel case in js so if it’s not that, then it’s something else.
People are thinking too much about this. It’s standard to use camel case in js so if it’s not that, then it’s something else.
Additionally, having extra random “comment” fields in your objects is unsightly, and increasingly difficult to read for humans – and nigh on impossible to then do proper strict schema checks (to avoid misspelt properties, say) on the result.
Are these not for configs? What does it matter if comment fields are in config objects? Do you not have a syntax highlighter/prettyfier? Can you not just make validators for config objects?
This is starting to sound like people being disorganized rather than tool failure. If so much structure is needed for your projects then why not just use protobufs? They support comments in the traditional sense and go everywhere.
Camelcase isn’t mandatory in JS and while many of the codebases/libraries are camelcased (especially now after prettier), I have worked on many codebases with underscore delimiters. Pretty common in organizations where existing products have been written in non-JS languages.
JSON specification does not preserve order of keys, thus generating/modifying configs by software can lead annoying situation where those “docstrings” and values are not next to each other. Depends on the platform though, obviously.
I do this too. But then if I have type checking on JSONs, I need to update the grammars there to support those comments. But it’s a decent workaround for the current situation.
An approach I had been using is relying on a config language eg HOCON ) + config language embeddable ‘interpreter’ (eg LighBend/Config  .
When selecting the above combo, I was looking to minimize repetition of config values and ability to use same config file from multiple languages.
The above translated into needs for for hierarchical inheritance, support for ‘truthy’ values, support overrides (by environment variables, or by extra ‘includes’), support for arrays. And the ‘embeddabiltiy’ into a variety of common programming language (eg C++, Java, Python, C#, JS)
HOCON also has a syntax highligter for jetbrains, so makes working on larger configs, easier.
It certainly lacks sophistication of Dhall, with it is incredible ability to show semantic diffs.
 https://en.wikipedia.org/wiki/HOCON  https://github.com/lightbend/config
JSON supports an arbitrary set of data structures. It’s a good choice of ~8, but arbitrary.
It does not support enums. It does not support sets. It does not support maps….
So what ends up happening is you end up needing to define a grammar anyway (and if you don’t you’re setting yourself up for pain), so at that point, why use JSON?
Now of course, for pragmatic practical reasons I wouldn’t tell anyone to stop using JSON today-you’d be fired. But in 5-10 years I wouldn’t be caught dead using JSON.
It’s also, depending on the interpreter, good for silently mangling integers that exceed 53 bits in size.
JSON doesn’t encode numbers well. By specification they cannot be
Infinity and in many implementations integers will be silently mangled if their magnitude is greater than about 2^53.
I’m with you. JSON’s simple pervasiveness and no-surprises syntax still outweigh the negatives others are pointing to.
I think it’s worthwhile to differentiate between configuration languages and other serialization formats or in other words to really look at what use cases they were designed for/how they were born.
I i think right now toml and UCL (and HCL) are great proven, well designed formats for classical configuration needs.
YAML was designed to be kinda close to something a human even in non tech would write (in an email). It absolutely makes sense for things like metadata for static sites. It’s like a nature language, so like them it has multiple ways of saying no. Just like your chatbot would have
But as everything this comes with a price. I don’t think it’s so much about X vs Y for absolutely everything. I think with YAML it’s more a development of “hey I know YAML and X also uses YAML”. I think it’s in good faith of course, but I think we too rarely take a step back to really make a choice based on what the goal is. For example I am a fan of the development of using things like protobuf, but there’s certainly a lot of cases where json is a way better option and neither make good candidates for configuration. But if there’s always a UI in front of it (think a game) or a maximum of portability and just a hand full of options (name, color icon or something) I can totally imagine JSON to be something to consider.
I think YAML also sufferer from the fact that it originally comes from a time where the largest player was XML and the scripting languages wanted to have an alternative for that. Once done it for simple metadata style content makes sense and just like JSON people would end up using it to store configuration even though that not always made sense.
And now it certainly is overused. While I really hope that HCL/UCL and TOML pick up and become the standard way of configuring software I very much hope we don’t end up trying to make them golden bullets and use them for stuff they were not designed for or turn them into huge standards for every use case people can come up with, because that’s when people feel the need to create something new and simpler again restarting the cycle.
TOML is great as an init file but an XML replacement it does not make.
JSON is really a betamax vs VHS kind of situation… we’ve had S-expressions for a long time now and they are the clear winner in every way.
You can make convenient denotations for different datastructures by putting a symbol in front of the opening parens like
#(this is a vector).
Semicolon marks the start of a comment, you could do a commented block with
;(this is a block comment)
Finally, and most importantly, there are canonical S-expressions that can have binary data and be streamed over networks. Furthermore it’s relatively simple to have a standard projection from any S-expression to a canonical one. Using the vector from before as input we get:
(6:vector4:this2:is1:a6:vector) as the canonical representation. This we can sign and hash and work with in various ways.
What more do you want? Schemas? Sure we can do those.. just as was done for XML (which is just violence when you contrast it with sexps..)
Edn is not good enough in my opinion. It’d be much better to have just pure sexps.
I like the idea of S-expressions, they are very nice in theory. In practice, they have two problems:
Use Tree Notation. You get zero types (just strings, which are arranged in a grid so editable by any text editor OR spreadsheet). Then you just define what types you need on top of that.
Don’t need booleans? Don’t add them. Don’t need floats? Don’t add them. etc.
Need sets? Add them. Need maps? Throw them in your cart.
It’s the “a la carte” of notations.
In your own words, tree notation is a “half-baked” idea. I like the idea, but whenever I stick it in the oven it sprouts just as much complexity as any other configuration / markup / data representation language.
Totally. And boy were there some bad sprouts that needed to be weeded out. Some of this year’s harvest is quite delicious though.
I hope someday soon it will “just work”.
The base notation seems mostly settled (at least in 2-dimensions, though there is still some interesting experiments with multi-headed parsers), but best practices in building higher level Tree Languages are still evolving at a decent clip.
I find Dhall a good balance between expressive power and generating simple structures. And you get types, too.
I agree on toml because unlike json it is not only human readable but also writable.
I use the filesystem, at one file per key, and dirs for organizing, which makes it easier to edit even with basic tools, and also to diff against defaults.
Has anyone played with Nickel?
Longer than the last few days: https://lobste.rs/s/wdjrcd/tags_flags
I’ve revamped the comment flagging UI to further emphasize that they’re for alerting mods when a user doesn’t want to engage and curb their abuse for punishing disagreement. Visually, flagging comments now looks like flagging stories with a text link rather than an down-pointing arrow, and flagging a comment collapses the tree. Nothing on the site refers to “downvoting” any more.
Also, our source code is available for answering these questions.
Hm I also missed this…
I don’t quite understand the rationale: doesn’t removing downvoting encourage flagging? But flagging is only for when mods should get involved?
I thought it made sense to have downvoting mean “I want to see less or I disagree, but mods shouldn’t get involved”. i.e. it’s not against the rules, but not desired either
The classic example is the genre of posts that is “my programming language preferences presented as fact”, which invariably attract a ton of comments, mostly angry ones, and they mostly make the site worse IMO. I don’t flag those since it’s not against the rules per se, but I feel like they deserve a downvote, to avoid generating repetitive and unnecessary discussions
I “hide” most of those now, but occasionally get sucked in … Do hides factor into placement?
I thought it made sense to have downvoting mean “I want to see less or I disagree, but mods shouldn’t get involved”. i.e. it’s not against the rules, but not desired either
Personally I think downvoting to express disagreement isn’t the right approach. It doesn’t communicate the substance of disagreement. A comment indicating the reason for that disagreement is feedback to the original poster, and the community can use upvotes to communicate agreement with either view.
I really liked the old OSnews approach to this, where in order to downvote, a user had to choose between “spam”, “offtopic”, or “inaccurate.” It really made me stop and think quite a few times, “is this objectively wrong or against my subjective opinion?” Hiding content from the community based on my subjective view doesn’t seem helpful, but if a post is likely misleading people to the point where they’re better off not reading it, then a downvote makes sense.
I very much agree with your first paragraph - that’s what I intensely dislike about the beige site. Was that person’s comment downvoted because it’s technically incorrect? Disagreement? Misunderstanding? Different sense of humour? It’s a conversation killer.
But isn’t that exactly what lobste.rs had? When you downvote, you choose why.
That was an explicit and intentional difference between lobste.rs and HN as far as I remember.
Twitter has the concept of “ratio” - content that gets lots of comments and few upvotes is assumed to be generating negative comments, and gets ranked lower.
they’re for alerting mods when a user doesn’t want to engage and curb their abuse for punishing disagreement
Fantastic! This has long been a complaint of mine here and on other sites, and I’m sorry I missed the original announcement.
Greatly appreciate it. HN suffers from this, where replies are being tailored and tailored not to receive upvotes, but not to receive downvotes. Everyone’s opinion matters as long as it’s polite and should not be downvoted by some “elitist commenters” on a forum, just because the opinion is different.
To whomever downvoted this as off-topic:
…so which topic is it off-?
It’s probably an expression of political distaste for overt references to furrydom rather than an authentic opinion that this article’s content is off-topic. I think this is absolutely topical content myself, but I’ve seen plenty of articles posted that I also thought were entirely topical (some of which I posted myself), that had off-topic or other flags because they were triggering to the political sensiblities of other users.
Just posting in support of this.
Folks, this is a nice high-effort post about implementing security, with code and references and the whole shebang. It isn’t shilling a service, it isn’t navel-gazing on politics, it isn’t even some borderline case of spamming a blog to get more views without care for the community.
Anybody who flagged this as off-topic either didn’t read the article or is a tremendous asshole.
Anyone who flagged this as spam either didn’t read the article or is a tremendous asshole.
If the reference to furries in the title rustled your jimmies, despite the site policy here being to use the original title as close as possible, and you were unable to evaluate the quality of the article on its own merits, you’re a tremendous asshole.
I get off topic downvotes for my posts with Mara too. Some of the graybeards here really dislike furries for some reason I can’t comprehend. I hope they can find something better to do that downvote furry adjacent content. Anyways, keep up the good work!
I’m that kind of a person, though I don’t have a gray beard. To me it’s just cringe (for lack of a better word), just like an unironic “euphoric” atheist, a gun-obssessed anarcho capitalist, a “My Little Pony” Fanboy or a western-anime otaku. I honestly don’t see what the difference is.
Any blog that tries to mix that kind of usually fringe subculture is fine by itself, people are strange, but I have my doubts how relevant it is to a general-public site like Lobsters.
That being said, I didn’t flag it, I’ll just be hiding it.
In principle, yes, but we often have discissions on the form of sites (don’t post twitter threads, avoid medium, not loading without JS, too low contrast, automatically playing videos), and interspersing a page with furry imagary is just something that some people are used to (apparently this is an american thing), and others are not.
It’s not an American thing.
I don’t know why you think it is.
Eurofurence, Nordic Fuzz Con, and FurDU are just a few of the international furry conventions that attract thousands of attendees every year (COVID notwithstanding).
Honestly that comes of as saying that McDonalds isn’t an american thing, because they have joints all over the world. Have you ever wondered why we are writing in English? I think everyone knows that american culture has a kind of dominance that no other culture has, because of hollywood, TV series and media in general. It’s always the de facto standard, and almost anything that is a thing in the US has following somewhere else. That has only intensified with the internet. But if anywhere in this thread, this is the point where we would be crossing over into off-topic territory, so I’d sugest we agree to disagree.
I don’t know why you think it is.
First of all, Wikipedia says
The furry fandom has its roots in the underground comix movement of the 1970s, a genre of comic books that depicts explicit content. In 1976, a pair of cartoonists created the amateur press association Vootie, which was dedicated to animal-focused art. Many of its featured works contained adult themes, such as “Omaha” the Cat Dancer, which contained explicit sex. Vootie grew a small following over the next several years, and its contributors began meeting at science fiction and comics conventions.
So it literally comes from the US. But setting that aside, even if I didn’t know that, it’s something so inherintly american, that I would have been really suprised that something that at the same time desexualizes bestiality (by removing the inherent link) and sexualizes animals (by giving them human cues of attractivness and anatonomy) could come from anywhere else.
Edit: Also I was curious and looked it up, “Nordic Fuzz Con” has 1499 atendees in 2020, but considering how many contries these people came from, it’s approximatly 0.000008% of the population. It’s common that when people are too online, they overestimate how large their bubble really is. “Eurofurence” with almost twice as many atendees isn’t much better of.
That’s super off topic for the discussion, but I’ve recently changed my mind about “american culture”. I now feel that a significant part of it is just universal, liberal culture, and not specifically American (hamburgers, pizzas and sushi being fun gastronomical examples). This post changed the way I think about this.
I don’t know why you think it is [an American thing].
Probably due to mako’s comment, which said they “always considered it an American subculture”. I hadn’t heard of it being American before… thanks to your comment I’ll unlearn that.
Lobsters is general public? :-)
I think you could tack on just about any group and the content would be pretty much the same. “…for punks,” “…for people with a pulse,” or whatever. I’ve no strong opinion on furries. As long as their hobbies are not hurting anybody, I’ll just file it in the “not my thing, but not hurting me” bucket and see if the rest of what they have to say is interesting or not.
Technology doesn’t exist in a vacuum. Practitioners, users, researchers, and creators are people whose experiences of technology will be informed by their lifestyle preferences, race, gender, queerness (or not), positionality in society, past experiences, mental health, hobbies, friends and so on.
It’s ridiculous and downright depressing to me that anyone would consider a blog off topic because the writer chose to make their technical narrative their own. It strikes me as the kind of narrow thinking that leads the tech industry to not be a very accessible or diverse place in general.
Divorcing technology from the real world leads to isolation and atrophy (to borrow the words of Courant). It reduces diversity, leads to moral atrophy, and systems built without empathy for users.
And it leads to gatekeeping. Don’t do that.
The cringe is a reaction of your own, not the content itself. I would avoid downvoting a post just because of my relationship to it, so I’m glad you made the same call.
Lobste.rs caters to a very specific subculture that exists in the IT sector that is in itself part of a broader subculture of technology creators and maintainers. It’s just that you think your subculture is important enough to be let in and others are not.
You’re right that “technology” is a subculture, but my claim is that we are perpendicular/stochastically independent to “furry culture”.
It’s just that you think your subculture is important enough to be let in and others are not.
I would very kindly ask you not not be this elitist about this, this is explicitly a techonology site, with no further designations. The community has it’s tendencies, this way or another, but that doesn’t change the fact that the average to something as obscure as a “furry” will be recieved with some hesitation. This isn’t anything personal, I can imagine that if I went to some “normal” site like Facebook and started talking about the need Free Software that most people would consider me crazy.
It’s the exact opposite of being elitist, it’s about being inclusive. You call “technological community” a thing that is aligned to your culture and values and it’s just a very small fraction of the people that produce digital technology. You universalize it because you cannot conceive that there might be different ways than yours of producing technology together. You believe your way is THE way and you reject other ways.
I don’t think it’s greybeards, rather non-Americans. I’m in the UK, London, and if there’s a furry subculture here it is so microscopic that I’m not aware of it. I’ve always considered it an American subculture, and possibly mostly silicon valley, but certainly for non-Americans I think it’s very obscure. I didn’t vote either way, and have no idea what the furry thing is about, just glimpse it once in a while.
For what it’s worth, in America you don’t just see people walking around expressing as furries while they shop for groceries. Most of us have never run across the culture in person. I think it’s not that this is an American phenomenon but that online spaces are safer, so that’s where you (and we) see them.
just how microscopic would it have to be for you to not be aware of it? do you keep tabs on all… culture… in London?
I really enjoy most of the aesthetic of your pages, and the technical content! I just don’t like the random stuff being jammed in between it. I don’t need a bunch of reading space occupied by a full color, artistic, glorified selfie 6 times. Or in the case of Mara’s first appearance, 16 times.
Furry is my blog’s aesthetic and theme, and a significant chunk of the content, but the focus is 99% encryption. The parts that are furry-relevant are:
This page isn’t so much for furries than it is from a furry, published on a furry blog, and with a bad furry pun in the title.
You don’t actually need to entertain anti-furry sentiment. And do not worry either, there’s also people who appreciate this. I’d rather see furries than most common traits of the modern web.
A lot of tech workers are furries
For certain values of “a lot”. I’d guess that this kind of stuff is more popular in the US than in India.
The main problem with this kind of title phrasing is the forced communication of a political/sexual/whatever message, which is off-topic for the site, and most people don’t care, and don’t want to care for it.
Anybody visiting the link would see that the page has a furry aesthetic. Then they would have the chance to read the article, or close the page. This way a message is promoted on the main page. I think identity politics are already too emphasized and destructive in discussions, and have a bad effect on communities and society. Consider seeing things like a Heterosexual christian father’s guide to unit testing on the front page. Without judging anybody’s identity, this is not the place and form for that topic and that kind of statements.
For some reason you failed to understand my point, and are accusing me with something instead of arguing my points. Most likely this is because of my inability of phrasing my point efficiently.
But in the same spirit: I wonder why do I even need to know anybody’s affiliation at all in context of a technical discussion?
One could make the same argument to flag “Beej’s Guide to Network Programming” or any post about how company X solves their problems.
And usually they do so, considering it as spam, a form of advertisement… Only not of the political, but of the business kind.
But at least I can be familiar with the second example…
Your style is not that of a Friendly engineer.
I wonder why do I even need to know anybody’s affiliation at all in context of a technical discussion?
Because the author decided, that their “affiliation” is relevant to their content, that’s it. You don’t need to follow that thinking, you can opt-out of reading their article, even hide it on sites like lobste.rs.
Any articel tells you something about the authors identity and cultural affiliations. And most of us just fill the blanks with defaults, where details are missing. i.e. an authors gender on technical content is often assumed to be male, if not stated otherwise. Most of us who grew up in societies with Christian majorities just assume that most guides to unit testing are a variation of the “Heterosexual christian father’s guide to unit testing”. That’s bad because it taints our perspective, even on the already factual diversity of tech and the net. So IMHO it’s a good thing, if more of us keep their affiliations explicit and maybe even reflect on how those influence their perspectives.
Your points aren’t worth arguing. You assert several things (“most people don’t care,” “have a bad effect on communities”) without any supporting evidence. To the first about whether people care and “don’t want to care” – I don’t find that persuasive even if you can provide evidence that a majority of people don’t want to be confronted with the identities of people who’re considered outside the mainstream. But I also suspect you’re making an assertion you want to be right but have no evidence to back up.
Likewise, what even is a “bad effect on communities and society”?
You also express an opinion (“I think identity politics are already too emphasized”) which I heartily disagree with, but that’s your opinion and I don’t see any point arguing about that. OK, you think that. I think too many craft beers are over-hopped IPAs and not enough are Hefeweizens. The market seems to disagree with me, but you’re not going to convince me otherwise. :-)
Your points aren’t worth arguing.
Start with a thought-terminating cliché. Then you start arguing my points. :) No problem.
To the first about whether people care and “don’t want to care” – I don’t find that persuasive even if you can provide evidence that a majority of people don’t want to be confronted with the identities of people who’re considered outside the mainstream.
I understand your points, but you didn’t really grasp what I wanted to phrase. IMHO “mainstream” and other identities should not confront each other here unless being technically relevant ones, about which technical discussion can be carried on. There are other mediums for those kind of discussions.
Lucky someone has managed to phrase my ideas better than I could above:
As I understand @kodfodrasz, they were bothered not inherently by the reminder of the group’s existence, but by the broadcasting of that reminder to the Lobsters front page. When an article title on the front page asserts the author’s voluntary membership of a group, that is not only a reminder that the group exists—it’s also implicitly an advocation that the group is a valid, normal, defensible group to join. One can agree with the content of such advocacy while also disliking the side effects of such advocacy.
What side effects would those be? @kodfodrasz said that “identity politics are already too emphasized and destructive in discussions, and have a bad effect on communities and society”. I think they are referring to way advocacy for an identity can encourage an “us vs. them” mindset. Personally, I see the spread of that mindset as a legitimate downside which, when deciding whether to post such advocacy, must be balanced against the legitimate upside that advocacy for a good cause can have.
My assertion is that currently I see a trend where legitimate topics are not discussed because some participants in the discussion have specific opinions on other topics than the one discussed. Dismissing some on-topic opinions for off-topic opinions is an everyday trend, and if bringing our off-topic identities to the site would gradually become more accepted, then that trend would also creep in from other parts of the society, where it has had done its harm already.
I hold this opinion as a guide for every off-topic identity. I think of it with regards to this forum a bit similarly to the separation of church and state has happened in most of the western world.
by the broadcasting of that reminder to the Lobsters front page
The submitter (author in this case) has one “vote” in promoting their content on this site. Usually one net upvote keeps stuff in /new and outside the front page. What’s promoted this content to the front page is the site’s users, who have upvoted it enough to appear on it.
At time of my writing this comment, the current standing is
50, -7 off-topic, -4 spam
Also note that comments themselves contribute to visibility, so everyone commenting complaining about this being off-topic and “in your face” aren’t helping their cause…
When an article title on the front page asserts the author’s voluntary membership of a group, that is not only a reminder that the group exists—it’s also implicitly an advocation that the group is a valid, normal, defensible group to join.
Are you (or @kodfodrasz) implying that identifying as a furry is in some way so dangerous as to be suppressed by society at large?
One can agree with the content of such advocacy while also disliking the side effects of such advocacy.
It depends how the theme is explored.
If it uses BDSM culture to explore the nuances of consent in order to explain a complicated technical point, I’m all for it.
What if it’s just interlaced with drawings of BSDM activities, like that old GIMP splash screen? I wouldn’t be caught dead scrolling that (nor opening GIMP) at work.
If you work at a place that cares more about some bullshit policing of imagery than technical merit, that’s a yikes from me.
There’s an inherent sexual quality to BDSM that isn’t inherent to furry culture.
You do realize that, correct?
Yep. There are people, for example, for whom submission is not a sexual thing but instead about being safe and there are people for whom having a little (in the subcategory of dd/lg) is about having somebody to support and take care of and encourage in self-improvement.
That’s not everyone, the same way that there are in fact furries who are all about getting knotted.
My point is just that if you want to go Not All Furries, you should be similarly rigorous about other subcultures.
o/ I’m asexual but still very into BDSM (and also a furry!). I know what something being sexualised feels like — took a while to get here — and while a lot of people do link the two intimately (as many do for furry things), they aren’t dependently linked.
Actually, I know a real example. There is a Python-related French blog named Sam et Max. The technical articles are generally considered high-quality by the French-speaking Python programmers. But there are also BDSM- and sex-related articles alongside the Python articles. Even within a Python-related article, the author sometimes makes some references about his own fantasies or real past experience.
As long as there’s no overt pornography, sure. I’d read a good article on crypto that had “by someone currently tied up” on it. What’s the point of writing if you get shamed for putting your personality in it.
Already mentioned elsewhere but it’s my understanding that being a furry isn’t inherently sexual / about sex, though there can be that aspect. I certainly wouldn’t mind a post that was something like “a lesbian’s guide to…” or “a gay person’s guide to..” because those identities encompass more than sexual practices. (Someone elsewhere says that BDSM isn’t strictly speaking sexual, which … is news to me, but I admit my ignorance here. If there’s a non-sexual aspect to BDSM identity then sure, I’m OK with a BDSM-themed post on tech.)
Consider seeing things like a Heterosexual christian father’s guide to unit testing on the front page.
That goes without saying, because that’s the default viewpoint.
The way the author clarifies and establishes their viewpoint does not make their technical content anymore off topic than someone submitting something titled “A Hacker’s Guide to MFA” or “A SRE’s Guide to Notifications”. The lens that they are using to evaluate a technical topic is an important piece of information that we often-times forget in tech with disastrous outcomes.
No, it is not necessarily the default. But even if it would be, articulating that off-topic identity on the front-page would be unnecessarily divisive, and I’m pretty convinced, that people of other identities would flock the comment section claiming that the post is racist (sic!), and is not inclusive, hurts their feeling, and I think they’d be right (on this site).
Hacker or SRE are on-topic tech identities themselves, while sexuality, political stand, religion are not really.
Hacker is a political identity. For instance, it’s one that I find really degrading when associated to the whole profession. The nerd identity or the general infatilizing of programmers is degrading as well. These are tolerated because they are the majority’s identity in this specific niche and presented as “neutral” even though they are not.
Well I see some positive vibe about the hacker word in the IT sector, if you remember there was some hacker glider logo thingie around the millennia. I’m not one of them, and agree with you, I also find hacker somewhat negative, and not because of the “evil hacker”, but of the unprofessional meanings of the phrase (eg. quick hack). Still lots of fellow professionals don’t agree on this one with us.
Regarding Nerd: I also find the phrase degrading, and I don’t understand those who refer to themselves as nerds in a positive context.
I don’t understand those who refer to themselves as nerds in a positive context.
The best way of removing the degrading conotation of a word is to rewrite its meaning. The best way to do that is to unironically use it in a neutral-to-positive context.
yeah but the problem is what you want to appropriate. The word “slut” has been reappropriated to defend the right for men and women to have sex freely without judgement. The word “nigger” has been reappropriated because black people are proud of being black. But the word “nerd”? “nerd” means being obsessed with stuff and have very poor social skill and connections. Reappropriating the word flirts very closely with glorifying social disfunctions, exclusion and individualism.
Reappropriating is done because there are negative connotations that we want to take out of focus; that’s the whole point.
but Nerd is imho all negative. The positive connotations, like being dedicated and consistent on a practice is not exclusive to being a nerd. Being nerd is not even stigmatized anymore: now it’s cool to be nerd and still it’s degrading, like being a circus freak. You reappropriate a word to remove a stigma towards a category, but the stigma is already gone and what is left is a very distorted portrayal of knowledge workers.
That the stigma is gone is precisely because people took the term and ran with it.
Besides, I have no problem with assholes (whose opinion of me is no concern of mine) considering me a circus freak: it makes them keep themselves at a distance which means less work for me to get the same desirable result.
(Also: I disagree with the term “nerd” glorifying “social dysfunction” - normalizing, maybe, but that’s a very inclusive stance, especially when these “dysfunctions” are called by their proper name: neurodiversity. And what precisely is the problem with individualism again? And another tangent: knowledge workers aren’t necessarily nerds and nerds aren’t necessarily knowledge workers)
I agree with all your values but it doesn’t seem like this is what’s happening in the real world. Inclusion of neurodiversity is happening only in small bubble in USA/NE: if anything, neurodiverse people are just more aware of being different. Good for coping, not that good for social inclusion. Really neurodiverse people are still rejected by the society at large and at best they get tokenized and made into heroes but not really included. Also this appropriation of the word detached the concept of nerd from neurodiversity that if it was ever a thing, it’s not a thing now. Today being nerd is wearing glasses and a checkered shirt. Then if you flirt flawlessly with girls, entertain complex social networks and work as a hair dresser, it’s enough to say your hobby is building radios and boom, you’re a nerd. I don’t see how this process would help neurodiverse people and I don’t see how it is good to have to live up to this stereotype to be included in the IT industry (because in most places, if you are not some flavor of nerd/geek, you’re looked at with suspicion)
A lot of tech workers are furries (or furry-adjacent).
I don’t doubt that a lot of furries (or furry-adjacent) might be tech workers, but I’m not sure your statement is accurate, given just how many tech workers there are.
For most people, “Furries” is “that weird sex thing”. I can see a lot of people wanting to make it clear that sexual references are out of place in order to make tech a more comfortable and welcoming place for everyone. I suspect that famous Rails ‘pr0n star’ talk has (rightly) made people feel uncomfortable with sexual imagery in tech.
I’ve upvoted because the content is good, but I’m also not really one for keeping things milquetoast. I’d like to see more content like this. The technical parts are worth reading, even though I have no interest whatsoever in furries, and mildly dislike the aesthetic.
And yes – I’ve discovered today via google that it’s only a sex thing for 30% to 50% of the people in the subculture, but as an outsider, the sexual aspect is the only aspect I had ever heard people mention.
Going forward, I’d just suggest ignoring the downvotes and moving on – they’ll always be there on anything that’s not boring corporate talk, and the threads like these just suck the air out of interesting conversation.
Yiff it bothers you, why not just read it without the images? Firefox reader view works great fur me.
Is it, though? If it was written as “a teacher’s guide to end-to-end encryption” would anybody be flagging it or carping about the title just because the intended / primary audience was teachers but the content could be abstracted to anybody who cared about end-to-end encryption?
That’s a good type of question to ask, but your example title “A Teacher’s Guide …” is not equivalent. The author being a teacher could be highly relevant to the content of the article; for example, the article might especially focus on the easy-to-teach parts of encryption. The author being a furry, however, is likely to affect only the theme.
Analogous titles would change “furry” to another subculture that is not innately connected to tech and that people choose rather than being born with. Two examples:
Would people complain about those titles? I predict that yes, some people would, though fewer than those who are complaining about the furry-related title.
Belatedly, but I’m following up on these flags. I missed this story and am reading through it now.
Obviously it’s great that someone wants to give us this information. In return we should give them respect and thanks.
Showcasing their identity not only gives personal color to the post, it also donates some of the credit to the community they identify with, rather than to some default security engineer type we might imagine.
Thanks to this personal touch, some readers can no longer say furries are unintelligent, or never did anything for them.
What resources have you found in your research so far? Why have you limited to these two choices? What your goals for your project? What differences are you weighing that you’d like people’s thoughts on? This doesn’t sound like a serious question.
I have found two interesting web frameworks that is high performance:
Actually one of the reasons that I limited these to two choices is I love working with these two languages and both are interesting languages, but also after research AFAIK there is no high-performance Python (I love working with Python too) framework that might be suitable for this.
My goals for this project is build a high-performance trading platform that is scalable and high-performance, it is actually not a serious project right now but I want to explore this area, that’s one of the reasons why I am asking about the right framework & websocket server.
Sorry for not providing more information on the question, I hope it is helpful. Please let me know if there is still something that I can add.
The framework pattern isn’t as much of a “thing” in Go as it is in many (most?) other languages. (The language deliberately doesn’t provide the expressive power and affordances that frameworks tend to need.) Consequently, frameworks in Go are less necessary, and less useful, versus many other languages. They each might have their slightly different architectures and might be better or worse on various metrics, but in the end they all boil down to sugar over net/http.
I write all this to say: consider the language independent of any particular web package or framework or whatever. Also, quantify “high performance” before you start making decisions based on it :) And stay away from fasthttp.
And stay away from fasthttp
Other than lack of HTTP/2 support, what reason is there for avoiding fasthttp?
Another big reason is it doesn’t do HTTP/1, either: many corner cases and details are simply not implemented. Also, it doesn’t reuse any of the net/http interfaces, so using it sequesters you in a totally separate ecosystem. But really, the code is just a mess. The structure is emergent, clearly not designed — the documentation is written without care or consistency — it feels like somebody’s hackathon project.
Are you talking about high-frequency trading here, or is this just a general “I’m making a web app” question? There are plenty of easy-search-able results that include benchmarks for popular web frameworks.
I’m also interested in how you came to the conclusion that “there is no high-performance Python.”
I believe it actually involves high frequency trading, that is why I felt required to ask. I know Actix is one of the fastest web frameworks, but is Rust true language for high-frequency trading and does it makes sense to use Rust. Also same for Go, Go have very fast web frameworks. That is why I compare these two languages.
Python being higher-level language with lots of abstractions was one of the reasons made me think that it is not high-performance, also I have never seen real life usage of Python in HFT area but if Python is actually suitable, I’d like to learn more.
The application serving web requests is (hopefully?) not the same one executing HFT strategies. Any reasonable modern language will be fine for the former.
Most of the already existing high-frequency trading apps are written in C++, however popularity is not a particularly good benchmark when it comes to building something new. I’d say give both a try and benchmark your algorithms’ implementations on both platforms. The results might be surprising; it’s very easy to write something that’s fast on Go and slow on Rust, and vice-versa, due to the different programming styles on both languages.
Do you think you can realistically compete with the FPGA and CUDA-based implementations at the big firms?
This paper has some background: http://ceur-ws.org/Vol-2147/p09.pdf
According to these benchmarks Echo (Go) is not high performance compared to Actix (Rust) - the difference is embarrassing: https://www.techempower.com/benchmarks/
My issue is that 99.99% of the time I’m mindlessly using a tiny fraction of git - clone, branch, add, commit, push. So 99.99% of the time I don’t need to understand git, think about how it works, or remember the rest of its capabilities. If I only ever use the first page of the manual, why would I have a refresher read of the remaining 300 pages every six months on the off chance I need to do something out of the ordinary? There should be two tools: everyday-git, and chaos-git.
Git was designed to for a whole most engineers don’t inhabit. One of the core goals is to allow distributed, peer-to-peer sharing of commits. This makes sense when you work on the Linux kernel. In that world, they routinely test WIP patches shared via a mailing list. But that’s not the world most of us live in. Usually, you just want to make some changes, have them reviewed, and merge them. Merging is a pain no matter what system you use since you have to choose how to do the operation. That’s why it’s common for people to hold off on making big changes if they know another colleague is working on the same files.
So Git makes possible what most of us don’t care about (distributed/peer-to-peer sharing of commits), and can’t help with what makes version control complicated (merging) because it’s just essential complexity.
It would be useful if someone made a system where merging was made as simple as possible - perhaps by tracking edits from the editor itself, chunking them logically (instead of “mine or theirs”, “keep these extra logs I added but keep their changes to add retries”).
It doesn’t help that the most popular OSS repository, GitHub, is so tied to this technology.
Gitlab is also so tied - Hg support was specifically rejected IIRC: https://gitlab.com/gitlab-org/gitlab-foss/-/issues/31600
(This quote was in the context of why adding Mercurial support would be difficult and expensive.)