this post was submitted on 18 Dec 2024
222 points (98.3% liked)

Programmer Humor

19821 readers
1098 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] -1 points 6 days ago (1 children)

I honestly think it can be a lot more readable, especially when the regex would have been in the thousands of characters.

[–] [email protected] -1 points 6 days ago (1 children)

There's a built-in feature that Perl has that only a few of the languages claiming PCRE have actually done, and it makes things a lot more readable. The /x modifier lets you put in whitespace and comments. That alone helps a lot if you stick to good indentation practices.

If all other code was written like an obfuscated C contest, it would be horrible. For some reason, we put up with this on regex, and we don't have to.

https://wumpus-cave.net/post/2022/06/2022-06-06-how-to-write-regexes-that-are-almost-readable/index.html

[–] [email protected] 0 points 6 days ago (1 children)

I agree, but then there's also some other niceties that come from expression parsers in the language itself (as noted in the article): syntax highlighting, LSP, a more complete AST for editors like helix.

[–] [email protected] 0 points 6 days ago (1 children)

Syntax highlighting works fine as long as your language has a way to distinguish regexes from common strings. Another place where Perl did it right decades ago and the industry ignored it.

[–] [email protected] 1 points 6 days ago (1 children)

Nah, the language itself should be as simple as possible. Bloating it with endless extensibility and features is exactly what makes Perl a write-only language in many cases and why it is becoming less and less relevant with time.

[–] [email protected] 1 points 6 days ago

Except it has some really good ideas that should be copied. There are other languages that have a syntax for denoting regex, such as ~r'foo' in Elixir. This gets the syntax highlighting you need without a big addition to the language.