this post was submitted on 03 Apr 2024
1104 points (96.2% liked)

Programmer Humor

19813 readers
154 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 28 points 8 months ago (3 children)

I used to feel this way. Over the course of building out 2 calendar systems in my career (so far) and having to learn the intricacies of date and time-related data types and how they interact with time zones, I don’t have much disdain for time zones. I’d suggest for anyone who feels the same way as this meme read So You Want To Abolish Time Zones.

Also, programmers tend to get frustrated with time zones when they run into bugs around time zone conversion. This is almost always due to the code being written in a way that disregards the existence of times zones until it’s needed and then tacks on the time zone handling as an afterthought.

If any code that deals with time takes the full complexities of time zones into account from the get-go (which isn’t that hard to do), then it’s pretty straightforward to manage.

[–] [email protected] 9 points 8 months ago (2 children)

This did little to convince me that timezones are an unnecessary construct. Pretty much every point made was done from the perspective of someone who had already decided their opinion rather than objectively weighing the pros and cons.

[–] [email protected] 5 points 8 months ago

I agree. It's written like "ugh I'm used to timezones, now what?".

[–] [email protected] 4 points 8 months ago (2 children)

Yeah, the article is written like it's parodying those who want to abolish timezones, but I'd be interested in specifically what you found unconvincing? I read the main point as being that time zones are an arbitrary social convention but that that arbitrary social conventions are pretty useful for humans.

Like one thing that the article does is repeatedly asking the question "but what time is it in Melbourne?" which I guess sounds pretty silly if you think timezones are unnecessary, since the question would be meaningless if timezones were abolished, and people in different parts of the world would already have centered their day around their respective parts of the clock and you would just look up what the times for everything are in another place. But I think the author was kind of already discarding that idea, because it's just equivalent to timezones - you have a lookup table for each part of the world to find out what people do at a certain time, except instead of being a single offset you have like a list of times like "school openings", "typical work hours", "typical waking hours" (?) etc. This system is basically timezones but harder to use for humans. So the author asking "but what time is it in Melbourne?" is in the context of this table not actually existing, because if it did, then you haven't actually abolished time zones.

[–] [email protected] 3 points 8 months ago

I disagree about the table - if you're interacting regularly across timezones you tend to convert everything to your local time anyway - India's on lunch at 9am, US is starting at 14:00, because that's how it fits into your day.

[–] [email protected] 2 points 8 months ago* (last edited 8 months ago) (1 children)

Yeah but also if we're being honest, from a programmer perspective the timezone has no bearing on what you do, and is hence not a problem at all.

After all, much like you translate the language of your UI when displaying in X, you also add Y hours to all times shown in X. Done. You wouldn't even need to persist the zoned time data anywhere, given their static nature you could decide the final timestamp shown at display time, purely on a client, visual, level.

OTOH, daylight saving time turns itself - and timezones - into an utter mess and whoever invented them hopefully is proud of the raw amount of grief and harm they caused the world. It causes all kinds of issues with persistence, conversion and temporal shifts in displayed time due to the ephemeral nature of the +X minutes added. Or not. That's the worst part.

So timezones: Fine, it's just bling bling on display anyways.
DST: Burn it at the stake.

[–] [email protected] 2 points 8 months ago

Yeah, I'm in agreement that DST is kinda pointless and could probably be abolished, but the thread is about abolishing timezones in general (or so I thought).

Abolishing DST doesn't eliminate all the weird issues with "ephemeral" offsets though. Suppose the user wants to set a reminder for a recurring event at 3pm, and then moves to another country. Do you keep reminding them at 3pm in the new time zone or the old time zone? Maybe the reminder was "walk the dog" and the user meant for it to be at 3pm local time, or maybe it was "attend international meeting" and the user meant it to be at 3pm in the original timezone. (This admittedly only happens to calendar apps so isn't something that most applications have to deal with, unlike displaying timestamps in general.)

But other than that, I'm of the opinion that as programmers we're supposed to model the problem space as best we can and write software that fits the problem, rather than change the problem to fit our existing solution. After all, software is written to be used by humans, not the other way round (at least not yet). So if DST is something those wacky humans want and use, then a correct program is one which handles them correctly, and a programmers job is to deal with the complexity.

[–] [email protected] 3 points 8 months ago

Time zones are part of it, but also daylight savings is a real pain in the ass. And like you said it gets particularly complicated when you’re dealing with a system that deals with these things as an afterthought, which seems to be a lot of older libraries for time. For instance, the Java date utils are a nightmare and are now considered semi deprecated replaced by a new java.time api. That is, of course, no help for the ridiculous amount of things that depend on these stupid date utils and no one wants to spend the dev hours to refactor.