> [Python's implementation of regular expressions is] one of the best of all dynamic languages I would argue
This sounds dishonest to me; it's deliberately couching the claim with a qualification ("imo") and disqualifying the 'dynamic' languages with better regex support (Perl, Ruby, JavaScript). The counter-claim is already prepared as a "No true Scotsman" argument: these other languages aren't as good because they don't have a scanner built into the regex language.
I also don't understand why the author needs to qualify the claim on dynamic/non-dynamic grounds. Can someone please help me understand?
It's just poor writing. The "Internet style" dictates that if you can't put something in bombastic absolutes, it's probably not worth writing down. The cluttering up with qualifications, then, is a sign of honesty, rather than the opposite.
In a more civilised age, the author might have written [Python's implementation of regular expressions is] really good and very interesting.
>This sounds dishonest to me; it's deliberately couching the claim with a qualification ("imo")
He gives his opinion, so he's humble about it ("imo", i could argue, etc).
It's not some great weasel-word trick to lure people, nor it's meant as an absolute scientific conclusion. Just says what he has seen in his experience.
>and disqualifying the 'dynamic' languages with better regex support (Perl, Ruby, JavaScript).
How's that dishonest? He's not disqualifying them from the comparison he makes with some trick -- he just explicitly states that Python, in his opinion, is better than them.
>The counter-claim is already prepared as a "No true Scotsman" argument: these other languages aren't as good because they don't have a scanner built into the regex language.
Even if he said that, that's not how the "No true Scotsman" fallacy works.
No true Scotsman involves you adding to the necessary qualities AFTER you've made an initial argument that doesn't include the new qualities. If you spell out in advance that you consider feature X important for a good regex engine, then you might be wrong, but you're not making a No True Scotsman.
Besides, his point is not that Python has a better regex library mainly or because it has a scanner feature. The latter is just one feature of the library that he presents, not what he defines as what makes Python's lib great.
For that he merely says that it's "one of the better designed core systems from a pure API point of view".
>I also don't understand why the author needs to qualify the claim on dynamic/non-dynamic grounds. Can someone please help me understand?
Because he is interested only in or experienced only in dynamic languages and their regex libs?
Or because while he knows that there are better regex engines for non-dynamic languages, he still thinks Python has the better regex engine among the dynamic ones.
It's a casual phrase in a blog post, not some huge marketing / FUD conspiracy that needs to be explained.
Thanks for replying! I'm explicitly challenging the claim 'Python has one of the best [standard regular expression core library] of all dynamic languages'. Its regular expression support is not as good as Perl's, for features and speed. Ruby's support is roughly equivalent to Perl's, and JavaScript's is roughly the same as Python's. PHP's suffers from a clunky interface but is competitive on features+speed.
If we open the floor to all languages, clearly lex/yacc is the winner w.r.t. writing a scanner. There's little difference between Python's and Java's support, and Boost::Regex makes PHP look good in comparison.
Can you go into more detail for:
> That's not how the "No true Scotsman" fallacy works.
Here's how I think it would go:
1> Perl has better regex support than Python
2> Well Python has a scanner built into the standard library, and thus can't be compared to languages which do not have that feature.
1> … but writing a scanner with the standard regex support in these languages is trivial
2> Doesn't matter, it's built-in and thus those languages aren't comparable.
> there are better regex engines for non-dynamic languages, he still thinks Python has the better regex engine among the dynamic ones
Why does that matter? It feels exclusionary: in this narrowly-defined group, the choice I prefer has the best features. Did they mean, "of the languages I am familiar with, I've most enjoyed using regexes in Python"? That's a far more honest claim.
> It's a casual phrase in a blog post, not some huge marketing / FUD conspiracy that needs to be explained.
Communication is done every day, everywhere. These blog posts influence peoples' opinions, and (more importantly) influence their approach to writing. I want more articles to be balanced, honest, and informative, not rah-rah puff pieces.
"A True Scotsman" might go like that, but here was no step (1). The True Scotsman is all about the extra constraints added in the transition of (1) to (2).
If one starts at 2 (no prior discussion), they can define whatever they want as essential attributes for a Scotsman. They may be wrong in what they list, but they are not making a N-T-S fallacy.
>Why does that matter?
Because the post is aimed (by its author) at people using dynamic languages.
If I want to do some regex work, and mostly program in dynamic languages (or have found that dynamic languages fit my project better, etc.), then I just need to see an evaluation of regex engine across dynamic languages -- I don't care where C++ or Haskell regex engines might have more features.
In other words, it's about what constraints people put in searching for a language/lib to use.
Some people place the constraint "must be in a dynamic language" higher than "must be better overall" when they search for a lib/framework (in our case, a regex engine).
>Communication is done every day, everywhere. These blog posts influence peoples' opinions, and (more importantly) influence their approach to writing. I want more articles to be balanced, honest, and informative, not rah-rah puff pieces.
Maybe, but between marketing, hidden sponsored posts, fake news and crappy/agenda-driven "real" news, I wouldn't start from Armin's blog :-)
Oh, I meant that the counter-argument would use "No true Scotsman", not that the article did.
> Maybe, but between marketing, hidden sponsored posts, fake news and crappy/agenda-driven "real" news, I wouldn't start from Armin's blog :-)
I think I can comment on this article, and that the few HN commentators here will see it, and my message will certainly reach a small audience. For those relatively larger problem, I don't have access to a suitable medium or audience and thus, even though the privation is greater, I would reach zero people.
This sounds dishonest to me; it's deliberately couching the claim with a qualification ("imo") and disqualifying the 'dynamic' languages with better regex support (Perl, Ruby, JavaScript). The counter-claim is already prepared as a "No true Scotsman" argument: these other languages aren't as good because they don't have a scanner built into the regex language.
I also don't understand why the author needs to qualify the claim on dynamic/non-dynamic grounds. Can someone please help me understand?