This community makes more sense when you realize the majority of users are CS students.
Comment on The temptation is always there
UndercoverUlrikHD@programming.dev 1 year ago
Is it really tempting for people? They’ve given me too many headaches when I’ve had to reformat or add functionality to files.
Unless it’s a simple single use script that fit on the computer screen, I don’t feel like global variables would ever be tempting, unless it’s for constants.
insomniac@sh.itjust.works 1 year ago
Synthead@lemmy.world 1 year ago
Pointers hard!! LOL
Dave@lemmy.nz 1 year ago
Hey, don’t you group me in with people who have had a small amount of real training!
yiliu@informis.land 1 year ago
They’ve given me too many headaches…
I.e. you did use them, but learned the hard way why you shouldn’t.
Very likely OP is a student, or entry-level programmer, and is avoiding them because they were told to, and just haven’t done enough refactoring & debugging or worked on large enough code bases to ‘get’ it yet.
BorgDrone@lemmy.one 1 year ago
Is it really tempting for people? They’ve given me too many headaches when I’ve had to reformat or add functionality to files.
I don’t get it either. Why would you ever feel the need for them to begin with?
magic_lobster_party@kbin.social 1 year ago
In software that’s already badly engineered. Either you do the work and refactor everything, or accept it’s probably not worth all the effort.
CapeWearingAeroplane@sopuli.xyz 1 year ago
Unironically: For in-house scripts and toolboxes where I want to set stuff like input directory, output directory etc. for the whole toolbox, and then just run the scripts. There are other easy solutions of course, but this makes it really quick and easy to just run the scripts when I need to.
BorgDrone@lemmy.one 1 year ago
But those would be constants, not variables.
CapeWearingAeroplane@sopuli.xyz 1 year ago
I typically don’t declare them as such - bring the pitchforks!
ZILtoid1991@kbin.social 1 year ago
Depends on what you're doing. Functional programming has its own downsides, especially once you want to write interactive programs, which often depend on global states. Then you either have to rely on atoms, which defeat the purpose of the functional programming, or pass around the program state, which is janly and can be slow.
I personally go multi paradigm. Simpler stuffs are almost functional (did not opt for consting everything due to performance issues), GUI stuff is OOP, etc.
fluxion@lemmy.world 1 year ago
As with the sexual connotation here, the temptation is not rooted in long-term considerations like future maintainability
GTG3000@programming.dev 1 year ago
Well, if you’re writing something the user will be looking at and clicking on, you will probably want to have some sort of state management that is global.
Or if you’re writing something that seems really simple and it’s own thing at first but then SURPRISE it is part of the system and a bunch of other programmers have incorporated it into their stuff and the business analyst is inquiring if you could make it configurable and also add a bunch of functionality.
PetDinosaurs@lemmy.world 1 year ago
Most people suck at software engineering.
Plus, there’s always the temptation to do it the shitty way and “fix it later” (which never happens).
You pay your technical debt. One way or another.
It’s way worse than any gangster.
squaresinger@feddit.de 1 year ago
Not if you leave the project soon enough. It’s like tech debt chicken.
SkyeStarfall@lemmy.blahaj.zone 1 year ago
Then, at your new job, you see garbage code and wonder what dumbass would put global variables everywhere
squaresinger@feddit.de 1 year ago
That’s how this industry works ;)
rodolfo@lemmy.world 1 year ago
amen
double amen
magic_lobster_party@kbin.social 1 year ago
// TODO: Fix later
squaresinger@feddit.de 1 year ago
In a 10 year old commit from someone who’s left the company 5 years ago.
rodolfo@lemmy.world 1 year ago
I wish I was so lucky to have comments.
in real life, I’m fighting with - I’m not joking - a few dozen “quick patches”. code does not reflect in any point functional requirements, and dude is adamant he’s in the right and supersarcastic in any occasion.
Railcar8095@lemm.ee 1 year ago
Later is the name of the intern my company hired when I resigned :)
FlickOfTheBean@lemmy.world 1 year ago
Rarely have I ever actually had consequences for my sins, which tends to be why I don’t go back and fix them…
If tech debt weight is felt in any way, it tends to get fixed. If it’s not felt, it’s just incredibly easy to forget and disregard.
(This is mostly me not learning my lesson well enough from my time being on Tech Debt: The Team. I do try and figure out the correct way to do things, but at the end of the day, I get paid to do what the boss wants as cheaply as possible, not what’s right :/ money dgaf about best practices until someone gets sued for malpractice, but on that logic, maybe the tech debt piper just hasn’t returned for payment from me yet… Only time will tell)
magic_lobster_party@kbin.social 1 year ago
For me most of the people who have written our most annoying tech debt left the company long time ago.
FlickOfTheBean@lemmy.world 1 year ago
Ah yeah, that would be a worry, except I forgot to mention that most of the code I work on usually gets thrown away after like 6 months. Makes tech debt not have nearly as big of an impact on me.
We do have a longer lasting code base that the little widgets I make run off of. That has a much more strict requirements to ensure tech debt is not introduced specifically so we don’t end up in that sort of a position.
That said, and yet we couldn’t even keep it out of our own code base. So yeah, I think my original comment is just wrong because I forgot all the ways tech debt actually has effected me in the past and how my industry’s project cycle is so short term that i rarely have the opportunity to run into tech debt that I caused in a problematic way…
PetDinosaurs@lemmy.world 1 year ago
What industry do you work in?
FlickOfTheBean@lemmy.world 1 year ago
Fair point, I work in a consumer facing, fast turn around, short lived code project industry. Not a typical software project with long life cycles.
These practices would almost certainly bite my company in the ass if we had to maintain anything for longer than year.
Occasionally, we do have to support a client for multiple years, and everytime it’s a hilarious shit show trying to figure out how to keep all the project dependencies up to date. This is likely platform tech debt, and would be the beginning of the problem if we didn’t have the privilege of being able to start over from scratch code-wise for each client’s new order.
I guess I’m just in a lucky spot in the programmer pool where tech debt literally doesn’t hit me as hard as it usually does others, and I just couldn’t identify that before now lol
Instead of saying tech debt isn’t that bad, my tune will change to something else. Like I said, I was on a team at one point that had a worse than usual tech debt problem, and it was unworkably stressful to deal with. Im guessing that experience is more typical of being near tech debt than my other experiences.
manapropos@lemmy.basedcount.com 1 year ago
If you’re smart you do it the quick and easy way and leave the company before it bites you in the ass. Only suckers stay with the same company for more than a few years
nogrub@lemmy.world 1 year ago
and thats why we are reading a book about clean code at my apprenticeship