News for hackers. Stuff that matters.
Re:Fighting Complexity in Software Development by taeric on Thursday July 04, 2019 @11:15PM (#20359564)
Have you maintained anything after the first year where that wasn't the case? Especially if you had a high degree of churn on the developers.

I'll grant that it is easier in more stable API environments. But we are our own worst enemies in that race.

Re:Fighting Complexity in Software Development by jes5199 on Friday July 05, 2019 @01:36AM (#20360083)
if I pick up an old Java project, it might be a mess, but I'll be able to rename methods, refactor classes, and upgrade libraries until it gets into shape - and I'll have a fair amount of confidence that it'll keep working while I do that, because metaprogramming is rare, APIs are fairly stable, and the IDE will mostly be able to understand what the code is doing. In a ruby project - especially in a Rails project - you can never know for sure what code is calling what. There's no "Find usages" tool that can be relied on. And then, all your dependencies will have completely changed their APIs and behaviors, and they'll have a complex matrix of incompatibilities that means that you might have to upgrade several libraries at a time and rewrite a lot of code just to keep things working.
Re:Fighting Complexity in Software Development by taeric on Friday July 05, 2019 @11:05PM (#20367518)
Apologies for the slow response.

I honestly can't compare to a rails app, as I don't have the experience. I can say that modern dev practices worry me with the constant upgrade train on api standards. On the one side, progress is quite nice. On the flipside, what you describe in "all your dependencies have completely changed their APIs" is just as annoying in Java as it is in any language. More so if someone has helpfully split your codebase into as many supposedly independent parts as they can.

More than that, it is amusing that many of the refactoring tools that you reference actually began in more dynamic languages. I've seen that folks that rely on their IDE to be able to refactor have a habit of making codebases that they have to use an IDE to refactor. I grant it could just be confirmation bias.

Re:Fighting Complexity in Software Development by tannhaeuser on Friday July 05, 2019 @01:47AM (#20360124)
> metaprogramming is rare

In Java? Not really. Spring has been around since 2003 or so.

Re:Fighting Complexity in Software Development by michaelcampbell on Friday July 05, 2019 @09:04AM (#20362212)
Having a framework do metaprogramming, and using that framework is one thing. I think that they mean user-level metaprogramming. This is MUCH more evident in dynamic languages.
Re:Fighting Complexity in Software Development by sam_lowry_ on Friday July 05, 2019 @02:32AM (#20360312)
I guess he was referring not to metaprogramming in the common sense, but to the change of behaviour of built-in methods and classes.
Re:Fighting Complexity in Software Development by tannhaeuser on Friday July 05, 2019 @05:23AM (#20361061)
Ah, I thought that's called "monkey patching".