Time out of joint

Time can move with any speed in any direction.

  • Time
  • Computer Science
Written by Anton Luht • 01 Aug 2018 • 1 min read • Last updated 2 months ago

Timing issues are not studied in universities. While you study computer science, you somehow think about time in terms of comparing execution time of different algorithms, but time itself doesn't bother you too much. These problems strike you unexpectedly when you move from development of small quick programs to long running processes. If you write software like this, you are likely have a full time senior software position, you know a lot about data structures, algorithm complexity, network protocols, and suddenly it all stops working because of a thing you haven't thought before - time. After reading logs you realise that it didn't work as you expected - instead of monotonically incrementing it leaped forward or backward and your code didn't expect it.

You are not alone - widely used software like Java has had many reported timing bugs. Some of these bugs are platform specific and software specific like F22 failing to cross international date line: https://www.theregister.co.uk/2007/02/28/f22s_working_again/(opens new window) . Some are universal like famous Y2K bug (which is not, strictly speaking, time-specific) or leap second bug that affected many platforms: https://www.wired.com/2012/07/leap-second-bug-wreaks-havoc-with-java-linux/(opens new window)

Keep in mind that time can move with any speed in any direction and avoid the Year 2038 problem(opens new window) .