honestly think we need to do away with programming things that work "automagically," it makes code extremely hard to read and reason about

the most severe example is ruby on rails. there are conventions for how classes need to be named, and if you're not aware of those conventions it's nearly impossible to figure out what code is going to be run and when

I think we should think about "reverse engineerability" when we design software. it should be possible for a programmer to read through code and get an understanding of data and code paths

consider some web server framework that automatically finds route handlers by searching through every defined function and matching against a pattern. convenient, but how would you debug this if you add a new route and it doesn't work, and you weren't aware of the magic route handler finder?

compare this with another hypothetical framework that requires you to manually add routes to a table. sure that's annoying, but there's no magic to confuse us.

every time you pick a framework, or add a depencency, you're getting some magic. magic you need to know from the outset if you're going to be able to understand the behaviour of the program. should we be expecting people to RTFM when there are 100 manuals for the 100 dependencies?

Follow

@SuricrasiaOnline that isn't so much a problem with the amount of dependencies, but the type of them. A good single-purpose dep's name should allow you to easily reason about it as a self-contained building brick

Sign in to participate in the conversation
Pixietown

Small server part of the pixie.town infrastructure. Registration is closed.