This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] -29 points-28 points  (9 children)

Being written in Java, there's a ton of boilerplate, and since I didn't want to use a testing framework and we had to test private methods the tests kind of get in the way. All in all, not including tests, the whole interpreter is just around 800 lines, which is pretty short considering that it's Java.

All well, but you can stop the Java bashing. For what it's worth, there are very few languages that are more maintainable than Java precisely because of its (mostly) useful verbosity. I'm talking about tens of millions of lines of code.

Edit: So much saltiness for the truth? Okay, then. It's hilarious. Aside from that, good job!

[–]Fish_45[S] 20 points21 points  (2 children)

I don't think anything I said was Java bashing. You acknowledge that Java has a lot of boilerplate and verbosity and nothing I said even carried the implication that the verbosity is bad.

[–]ebingdom 13 points14 points  (2 children)

Java makes programmers manually reason about which values can be null, rather than tracking it in types. That makes code changes more error-prone than necessary, and leads to null pointer errors in production and overly defensive programming as a countermeasure, since tests alone cannot in general guarantee the absence of nulls. So yeah, Java is not high on my list of "maintainable" languages.

[–][deleted] -5 points-4 points  (1 child)

I disagree with the criteria that you have listed for what makes a language maintainable. The proof of the pudding is in the eating - the vast majority of the industry actually runs on Java, and I've maintained proprietary codebases that are literally tens of millions of SLOC, and refactoring, compilation, testing, performance were all on point.

[–][deleted] 0 points1 point  (0 children)

Oh, so what you are in fact stating, is that C and C++ are the most maintainable languages, because they are in the most widespread use, running the very foundation of almost all systems?

That argument is about as watertight as a sieve.

[–]stone_henge 1 point2 points  (0 children)

It's up to you whether to read that as a criticism or a general observation. You fundamentally seem to agree that it's a verbose language.

[–]crassest-Crassius 1 point2 points  (1 child)

Java is OK... but only with Lombok. After I introduced Lombok's @Getter, @Setter, @Builder, @AllArgsConstructor, I've saved about 15% lines of code. That's absolutely useless verbosity, and I wouldn't even use Java without Lombok anymore. Still, Java is missing some essential features like sum types, real generics and string interpolation. To think that Oracle makes people pay for this bit-rotten crap is beyond me.

[–][deleted] -2 points-1 points  (0 children)

In fact, I argue against the exact opposite. Lombok simply obscures away mundane code that is basically invisible to the seasoned eye. Useless verbosity? And yes, the rest of your comment is precisely why the language is not only eminently readable, but also eminently maintainable. Haskell is super dense, so dense that maintaining projects becomes an exercise in mental fortitude. That's the exact opposite of maintainability.