Has the project been significantly rewritten and cleaned up following these posts? Was there some absurd hype cycle for this thing that didn't deliver? Did the Internet get mad at this person for some unrelated reason? What happened here?
Has the project been significantly rewritten and cleaned up following these posts? Was there some absurd hype cycle for this thing that didn't deliver? Did the Internet get mad at this person for some unrelated reason? What happened here?
The only difference between me and the author of this blog post is that I didn't upload my program to the internet where people could ridicule it for its simplicity.
Or is there some JavaScript additional functionality that I'm missing?
I don't care if they're not 100% feature complete, the fact I can remember how to use them for my simple everday tasks (searching, finding/replacing across many files) without needing to consult a manpage or search online for answers is enough.
I used grep daily for years and _still_ it didn't feel like it made sense. I remember reading about Ack (https://beyondgrep.com/) some time in 2009-2010 , installing it and switching over entirely within about five minutes.
Modern sed:
Modern grep:
The problem with Twitter is that it gives an equal platform to everyone's opinions even if it is without merit or reasonable discourse.
Isn't that the problem with communication in general? Wouldn't, say, HN have the same issue?
https://github.com/harthur/replace/tree/431b1e183a4bd43046af...
but it doesn't matter as those tweets are trash, specially coming from other OSS devs
I think the main context is simply that people suck sometimes. I'm not a huge fan of writing scripts or command line tools with node, but I've done it before, even in projects where js wasn't the primary language. It's a useful tool. Yes, the functionality overlaps with sed and grep, but speaking for myself I can never remember how to do anything more complex than the basic `grep text_goes_here`. If I found myself needing to do a lot of command line find and replace operations I certainly might make a little tool like this.
I think there’s still some hate towards JS now, and in 2013 it definitely was much more rampant.
Also funny to think that this project probably received so much hate because of being ahead of its time.
And if people were trying to fight that trend (which to be fair is a bad trend; I refuse to run software from the NPM ecosystem to this day), this is a weird example to pick because the point of the tool is to use JavaScript's regular expression syntax.
anyone remember babel, webpack, browserify, gulp, grunt?
Here's a program I wrote to count matches in a very large file. I wonder how long it would take to work out the equivalent bash command.
use aho_corasick::AhoCorasick;
use std::fs::File;
use std::io::BufReader;
fn main() {
let args = std::env::args().collect::<Vec<_>>();
if args.len() != 3 {
eprintln!("Usage: ./count_occurances 'pattern' <filename>");
return;
}
let f = File::open(&args[2]).expect("Error opening input file");
let reader = BufReader::new(f);
let patterns = &[&args[1]];
let ac = AhoCorasick::new(patterns);
let count = ac.stream_find_iter(reader).count();
println!("{}", count);
}Half a second, unless I'm missing something?
No objections at all to people building simpler UIs for common tasks. The classic Unix tools are like table saws without labels or safety features - confusing and rightfully intimidating. You have to read the manual carefully to avoid chopping off digits.
... but they're also like table saws in that once you know them well and are comfortable with the usage patterns that protect you from the dangerous parts, they let you achieve things with a minimum of fuss and ceremony.
Yes.
$ echo aaaaaa | grep -c a
1grep -o $pattern $filename | wc -l
would work in that case, I think.
I did have to think for a minute to come up with that version. It was definitely still much faster for me than writing my own matching logic would have been, but that may well be different for other people.
$ echo aaaaaa | grep -c a
1On further Googling (about a minute this time, with a few different pages) I found that 'grep -o' would do the trick (and someone beat me to it, above.)
I'd still argue that one minute of Googling would be quicker than writing a program to do the same.
Plus it's written in a robust language. The `grep | wc` solution here looks ok, but in my experience bash hacks tend to be full of bugs, especially around quoting, whitespace, etc.
grep -o $pattern $filename | wc -l
But yours has better error handling!It's odd that people are okay with a childish and unprofessional critique of code, but not a fairly civil and well thought-out critique of the "code review."
Maybe people just had way higher standards in 2013, and code that seems fine now would have been farcically terrible back then. I kind of doubt it, though!
Someone writing a quick little thing because they didn't want to use sed is absolutely great! The entire idea about computers is that they're meant to be programmed.. That also means lots of overlap in functionality and it means some programs are more specific than others.. and more polished than others.. And that's just how it should be (imo).
> Would the bad code quality justify the snarkiness on Twitter?
I think it should, because the other extreme is that any criticism is banned, no matter how polite, and everyone gets to be a special genius snowflake who can do no wrong, and our software will degrade at an even faster rate because of it.
I think think there should be more public ridicule of slow and inefficient code, especially when it comes to things like drivers, operating systems, browsers and web frameworks which play a large role in our everyday lives..
Imagine how much electricity we'd save if we were a bit more scared of the long-beards showing our dirty underwear to the world in a torrent of spite and sarcasm.
I don't like the way we're policing conversation, the bar for what's deemed acceptable is constantly raised, and while I agree with the general sentiment of "not being an asshole" I disagree with the growing tendency of virtue-signaling through condemnation and indignation in every sentence that I feel I'm being increasingly exposed to..
So, if I have to chose between grown men writing apology blog-posts for a random unthoughtful remark in a tweet, or the space where unthoughtful remarks in tweets are simply ignored.. I'll chose the latter.
That's the thing. Usually the snark isn't followed by suggestion or anything useful at all
People being mean often do it for its own sake
There is.
> I don't like the way we're policing conversation,
We aren't. We are having conversations about public posts.
> the bar for what's deemed acceptable is constantly raised,
That's good. I mean, I believe that the occasionally harsh tone fosters a resilience and readiness to accept ones mistakes.
Think of this as code review for words.
> So, if I have to chose between grown men writing apology blog-posts for a random unthoughtful remark in a tweet, or the space where unthoughtful remarks in tweets are simply ignored.. I'll chose the latter.
I don't get it. You choose the latter, which amounts to someone being "censored."
i.e. If I write something and no one reads it or it's ignored, does it really matter? It's not seen. It's not read.
But more importantly, you are okay with someone unprofessionally and childishly critiquing someone's code, but not the same being done with those same words?
And you are okay with someone writing something unprofessional and childish, but not those same people writing something professional and thoughtful?
I cannot fathom the leaps of logic it takes to make sense of all of this.
The brevity of Twitter means a lot of the context is missed, even now there's some debate and confusion about what they actually meant by these comments.
Why has Twitter been pushed by the Public to moderate and ban people? Because there are enough folks out there willing to make those kinds of comments on their platform that it starts to look like an existential risk to the company.
As to ridicule, it rarely if ever causes someone to improve. You'll be much more effective at getting better more efficient code if you instead play the role of mentor or helpful hand.