top | item 42488604

(no title)

eyegor | 1 year ago

I'll just pitch in as someone who's worked with several 40+ year old codebases and 3+ year old perl, the perl code is significantly harder to maintain. The language lends itself to unreadable levels of terseness and abuse of regex. Unless you use perl every day, the amount of time trying to understand the syntax vs the code logic is skewed too heavily towards obscure syntax. Even the oldest fortran/c is much easier to work with.

Except maybe arithmetic gotos designed to minimize the number of functions. Those are straight evil and I'm glad no modern language supports them.

discuss

order

chubot|1 year ago

Sure, Perl can be hard to maintain. (I haven't used it in over 25 years, and don't expect to ever use it again)

From your experience maintaining 40+ year old codebases, is it possible that improving the Perl codebase is the best choice in a certain situation?

Or should we always be "surprised" that Perl exists? (honest question)

In other words, I don't see the connection between "this code is hard to maintain" and "I am surprised that it exists" / "it should be rewritten".

Joel_Mckay|1 year ago

In general, I tend to observe languages that are minimally challenging for amateurs tend to build less sustainable mutagenic ecosystems.

Example:

* Prolog generated the worlds most functional 1 liner code, as it is bewildering for hope-and-poke programmers

* Pythons ease of use combined with out-of-band library packages became a minefield of compatibility, security, and structural problems (i.e. became the modern BASIC)

* NodeJS was based on a poorly designed clown JavaScript toy language, so naturally became a circus

* Modern C++ template libraries became unusable as complexity and feature creep spiraled out of control to meet everyone's pet use-case

* Rust had a massive inrush of users that don't understand why llvm compilers are dangerous in some use-cases. But considering 99% of devs are in application space, they will unlikely ever need to understand why C has a different use-case.

While "Goto" could just be considered a euphemism for tail-recursion in some languages. We have to remember the feature is there for a reason, but most amateurs are not careful enough to use it in the proper edge-case.

I really hope Julia becomes more popular, as it is the first fun language I've seen in years that kind of balances ease of use with efficient parallelism.

wrote a lot of RISC Assembly at one time... where stacks were finite, and thus one knew evil well... lol =3

int_19h|1 year ago

Why are LLVM compilers "dangerous in some use-cases", and what are those use-cases?

temporallobe|1 year ago

I also maintain older codebases and this is how I feel about Clojure. It’s far too terse and the syntax is nigh unreadable unless you are using it very often - add to that there seems to be a culture that discourages comments. OTOH so-called “C” languages seem much more readable even if I have haven’t touched them in years or have never written a line of code in them.

On another note, I have done a lot of things with Perl and know it well, and I agree that it can be written in a very unreadable way, which is of course enabled by its many esoteric features and uncommon flexibility in both syntax and methodology. It is simultaneously a high-level scripting language and a low-level system tool. Indeed, I have caught myself writing “clever” code only to come back years later to regret it. Instead of “TMTOWTDI”it is has turned into “TTMWTDI” (there’s too many ways to do it).

shermantanktop|1 year ago

> Even the oldest fortran/c is much easier to work with.

Could that be survivor bias? If that old Fortran was hard to work with, maybe it would have been rewritten, and left the set of “oldest code” in the process.

Gibbon1|1 year ago

I think it's just procedural languages with a lack of magic.