DRY bones

DRY is yet another acronym popular with devs. It stands for Don’t Repeat Yourself. Like all nicely sounding acronyms in the field at first look it sounds brilliant. It says that if you wrote something, e.g. some logic, and you find yourself rewriting it somewhere else then you _must_ take this logic and put it in a function and thus write it once and call the function from then on. And it is a reasonable claim to be made. But, as with all things “principles” that come out of people arses and not from actual physical laws it tends to be made to a law (that’s why I wrote _must_) and if you don’t adhere to it you’d be left unemployed scavenging the trashbins. It also tends to be applied like everywhere, from functions (where we saw it make sense) up to Godawful messes of class hierarchies that world would be better off if someone just threw a lit match on. And finally it also is wrong at several other use cases but we, devs, can apparently happily live in a state of schizophrenia. You see the whole document DBs thing (mongo et all) and microservices thing -the fads are very strong with them still- are based on denormalization of data and logic. Denormalization being the elitist term for repeating your self. We are happy to repeat data in doc DBs and we are happy to repeat logic and even full DBs in microservices in order to be blessed by the holly trinity of decoupling, scalability and availability. So, the part of me who is not totally burnt out asks, what happened to the holly DRY principle there. Why the laws of gravity do not apply on some planets and why am I being turned down on interviews when I point that out?

Maybe because we are ridden of people that cannot think critically and are eager to pledge alliance to gurus and corporate bureaucracies thus earning a fatter albeit DRYier* bone. Also because thinking for yourself apparently makes a bad corporate slave.

(*) Sorry for the bad pun. It’s on par though with the SW “principles” we operate by.

DP and SOLID snake oil.

>> Interviewers tend to hire candidates that think like themselves, choosing conformity rather than skills, experience or clear thinking. (see link at end of post)


DP, SOLID and other “principles” IMO are cargo-cults straight out of smart people arses. Smart in arguing about stuff, writing and evangelizing – that is their main line of business after all. And they all have the same thing in common, they claim to be that magic silver bullet that will make software easier, less buggy, more maintainable, more resilient, more robust. Or whatever the clueless managers want to hear anyhow. And then they catch on, because there’s a lot of room for snake oil sellers in this industry and a lot of deeply ignorant people who yell “shut up and take my money”. This coupled with a deeply toxic macho culture in the field that feeds from rules and adhering to this or that set of principles thus being “the real men coding real stuff in real languages” and so on.


I’ve seen one of these guys live. He ranted like forever on how shitty current SW is and if we don’t do sth about it then -OMG- the government will come in and regulate us. So, the solution apparently was to regulate ourselves and -how nice of him- he would go ahead and write the regulations and make a living out of it. The rest would need to just fit in the straightjackets he would keep rolling out.


Some of these make sense -in the right context. Most of the time though most of these is just BS used out of context in the totally wrong place producing cancerous overcomplicated SW that just sucks the life, energy and will to live out of any creature in a 10 km radius. And these are known issues. But the various gurus never seemed to sweat about these side-effects of the monsters they released. How could they? That would be like biting the hand that feeds them. And similarly with legions of developers, engineers, architects and what have you. Just adhere to the current cult, sign your name, put it in your CV, promote, get a fatter paycheck, move out of your role before you need to maintain the overengineered shit you made. And the funniest part is having to deal with all that in small startups. Companies with less than 5 devs that have traffic less dense than the first day of lockdown writing SW ready to scale up to millions and broken down like it’s 100 devs that need to work on it. Just to dump it altogether 2 months down the road.


Anyway, here’s some more info on that mess:
https://www.pegasoft.ca/coder/coder_july_2017.html

an example of how perfectly understandable code turns into a pile of steaming DP shit perhaps for reasons pertaining to arcane psychological issues of the perpetrators:

https://techblog.condenast.de/article/why-coding-patterns-suck

and a better rant than mine:

http://www.realfreemarket.org/blog/2012/06/21/design-patterns-suck/

The amount of toxicity in public discourse is…

simply through the ceiling.

It seems to me that all online communities suffer from a high percentage of intolerable fanatics who are eager to blow to pieces any opinion that does not fit into their own standards. Their main view is that of competing with everyone else instead of working together.

IT sector especially where I happen to earn my living in, is rife with such people. Being overly male-dominated is contributing to this effect as it brings in a toxic machismo together with aggressiveness that cannot be expressed in its original violent form thus transgressing to more overt forms of hostility.

Key figures in the open source and entrepreneurial branches of IT being openly and proudly assholes is not unrelated. They signal in their own way that both they have to be like that to make it in a harsh environment and also that they enjoy this state of affairs. Consequently, droves of lesser known of virtually unknown wannabes came out of the cookie cutters of such figures. Smart and vitriolic to anyone disagreeing with them.

Such people are giving the tone to “communities” such as Hacker News and Stack Overflow where anything out of the insinuated consensus gets downvoted to oblivion and/or ridiculed with a “from-my-high-Altair” attitude.

But the phenomenon is not by any means localized in tech-related communities. It is everywhere. Rusts and degrades almost all sorts of communities, online and offline. It’s just that it is easier to see in the online ones.

That being said I recognize the need for a community. I feel it myself and I presume we’re hardwired with it. But I’m still to see one online community that gets the above mentioned issues and (at least tries to) deals with them. Till I find one I’ll abstain from “socializing” online in circles where I detect similar issues.

Freedom of speech a-la Hacker News

Screenshot 2019-10-21 at 23.02.27.png

Yup. This is supposedly a progressive community. The kind that cries out Trumps of this world as authoritarian relics or another era and where every other day there is a top post about how anti-democratic countries like China are.

Well, let’s put it that way. If you want to see what someone is made of just disagree with him/her. You’ll be surprised and you’ll get a better understanding of just how laughable ridiculous present-day “progressives” are.

As for the main issue at hand. Yes – there seems to be major concerns about public health with regards to 5G technology but the topic keeps being pushed aside as tinfoil-hat issue. Only that the thing with health issues is that no matter how deep you bury them they will surface in the worst possible ways.

Here’s more info on the appeal to stop 5G roll out http://www.5gappeal.eu/

PS: Yes – of course I’m out of Hacker News. It’s called self-respect.

 

 

On Programming Languages And Humans

Complex is better than complicated.
The Zen Of Python

Programming languages are abstractions and interfaces of the machines they run on. Like the car pedals are abstractions of the things under the hood. People built the pedals so that other people -no matter how smart or idiots they are- are able to accelerate and brake and do that the same way regardless of the car.

In the prog. lang. field though it does not work that way because the field is full of smart idiots that are good in compounding complexity. So -instead of using the pedals- they build other abstractions on top of them and then some more and in the end it takes a super complicated diagram -which nobody cares to write and only a select few understand- to know which fucking combination in a button panel brakes the damned car.

And no language -no matter how human-friendly and simple it is designed to be- will ever solve this because it seems that creating unnecessary complexity and calling it various catchy names that sound scientific is always winning. You won’t sell your simple idea to clueless management and cocky devs by sounding simple but you will if you use words they hardly understand and a class diagram that goes through the roof.

But hey -on the upper side- we get to get clueless people money and they don’t have a chance in the world catching us red handed. THEY CANNOT EVEN SEE THE FUCKING PEDAL ANYMORE, THEY JUST SEE MILLIONS OF BUTTONS.

My condolences to original python intentions. Don’t cry, it’s not you, it’s us.