4 ms·
Yeah, is like why use python when assembler is just as obvious. ---- Regex syntax sucks, or more exactly, it look like is the bytecode for programming languag
by mamcx 8y ago
Yeah, is like why use python when assembler is just as obvious.
----
Regex syntax sucks, or more exactly, it look like is the bytecode for programming language that is left as exercise to the reader.
- kbd 8y ago> Yeah, is like why use python when assembler is just as obvious. This is a truly awful straw-man.
- mamcx 8y agoIt is? Regex have a arcane "syntax". Is good, from the point of view of a APL user, but as part of other languages is not. Is totally outside the experience among other DSL. For example, you are on python, your DSLs are pythonic, except this one, that look totally alien.
- robocat 8y ago> Regex syntax sucks Learn it, use it, accept it. Or are you trolling? It is supported by most languages with special syntax because string manipulation is still important. The native support matters due to optimisations present that are peculiar to the runtime. Most any developer can understand your regular expressions, or they know who to ask. You need to know it if you expect to use shell tools. It's just like SQL: sure SQL is missing modern features and modern syntax, but at least once you've learnt it you can use it for debugging, performance, administrative tasks, reporting systems, dev tools, and your future projects that use another language.
- roblabla 8y agoWhy assume trolling? The sentiment that regex sucks is one shared with a very large population. At least to me, it's this kind of terrible "write-once" maintenance hell language that really ought to be wiped off the face of the planet. Its only redeeming feature is that it's fast (assuming you don't use the wrong features - lookaheads can cripple performance). Looking for alternative abstractions is very worthwhile. I'm not suggesting throwing away the existing regex engines, just abstracting away the ugliness. Whether this solution is the right one is debatable. You can draw a comparison with SQL. Lots of projects nowadays hide SQL behind an ORM, only using SQL when a very complex query needs to be written. I'd expect something similar for Regex would help maintainability of lots of projects.
- kbd 8y agoThis whole library is troll and people are trolling with it. This: new Matcher().find('Reg').anyWhitespace().capture((expr) => { expr.find('Exp') }).test('Reg Exp') vs: 'Reg Exp'.match('Reg\s(Exp)') > Its only redeeming feature is that it's fast (assuming you don't use the wrong features - lookaheads can cripple performance). Looking for alternative abstractions is very worthwhile. First, it's not particular features of regex that are "slow", but the whole notion of backtracking that's central to how they work! Further, regexes are just a translation of a fundamental mathematical model. In university they even had us translate between finite state machines and regular expressions on tests. In short, any "alternate abstraction" you're looking for is going to be literally the same thing, just wordier, because you're talking about something fundamental in computer science. In case you're interested, here's a finite state machine to regex translator / simulator linked from the wikipedia page on finite state machines: http://ivanzuzak.info/noam/webapps/fsm_simulator/ http://ivanzuzak.info/noam/webapps/fsm_simulator/
- roblabla 8y agoThat’s literally why I said we shouldn’t trash regexes. It’s not thenidea that sucks. It’s the syntax. The abstraction of the state machine. That’s what sucks. Shorter is not better. Something wordier that’s easier to understand would help alleviate the maintenance burden.