Slashdot Mirror


Oracle Discontinues Free Java Time Zone Updates

New submitter Noel Trout writes "For a long time in the Java world, there has been a free tool called the 'tzupdater' or Time Zone Updater released as a free download first by Sun and then Oracle. This tool can be used to apply a patch to the Java runtime so that time zone information is correct. This is necessary since some time zones in the world are not static and change more frequently than one might think; in general time zone updates can be released maybe 4-6 times a year. The source information backing the Java timezone API comes from the open source Olson timezone database that is also used by many operating systems. For certain types of applications, you can understand that these updates are mission critical. For example, my company operates in the private aviation sector so we need to be able to display the correct local time at airports around the world. So, the interesting part is that Oracle has now decided to only release these updates if you have a Java SE support contract. Being Oracle, such licenses are far from cheap. In my opinion, this is a pretty serious change in stance for Oracle and amounts to killing free Java for certain types of applications, at least if you care about accuracy. We are talking about the core API class java.util.TimeZone. This begs the question, can you call an API free if you have to pay for it to return accurate information? What is the point of such an API? Should the community not expect that core Java classes are fully functional and accurate? I believe it is also a pretty bad move for Java adoption for these types of applications. If my company as a startup 10 years ago would have been presented with such a license fee, we almost certainly could not have chosen Java as our platform as we could not afford it."

23 of 405 comments (clear)

  1. ORACLE = One Raging Asshole Called Larry Ellison by Lehk228 · · Score: 5, Funny

    it's Time to switch to python

    --
    Snowden and Manning are heroes.
  2. Cannot someone else do the updates ? by Alain+Williams · · Score: 5, Insightful

    The information needed to provide the updates is freely available, so cannot someone else provide the updates ? Just get tzupdater to download from a different place. I am not a Java programmer, so forgive me if I have got the wrong end of the stick.

    Even better change the Java functions to get the information operating system, on Linux the tzdata, then Java is kept up to date as the OS is kept up to date.

    1. Re:Cannot someone else do the updates ? by goofy183 · · Score: 4, Informative

      Joda already provides their own TZ update mechanism: http://joda-time.sourceforge.net/tz_update.html

      Also anyone NOT using Joda for dates/times in Java really needs to come to the light and experience the wonders of a well designed API.

  3. Re:ORACLE = One Raging Asshole Called Larry Elliso by ebno-10db · · Score: 5, Insightful

    The time to move away from Java was as soon as Oracle bought Sun.

    I don't know if Python is the answer for everyone, and I know changing to a different language is about as big of a pain as there is, but the jig was up after Sun was bought.

  4. IBM to the rescue by Anonymous Coward · · Score: 5, Informative

    IBM provides free access to the Olson database updates:

    http://www.ibm.com/developerworks/java/jdk/dst/jtzu.html

    Was this post even necessary?

    http://lmgtfy.com/?q=java+olson+database

  5. Actually: Why are these needed? by Anonymous Coward · · Score: 4, Interesting

    Why doesn't java use the operating system to provide that information in the first place? At least on operating systems that provide that sort of information, which isn't just "linux" but pretty much all unices.

    Also, ISTR the source updates maybe twice a year, and is free, so I don't see why java has to be so special. Then again, oracle is a very special company in that regard. Everybody needs this, and in fact needs everybody else to have it too, so it's stupid penny pinching that's going on here.

    And it is very stupid, just like their handling of patches for critical holes turned out to be criminally stupid. It's not like their head honcho needs the money, seeing how he squanders it on airport fines and the like.

    1. Re:Actually: Why are these needed? by davidbrit2 · · Score: 5, Insightful

      I have a hard time believing that Java has no problem abstracting an operating system's graphics, sound, console I/O, network I/O, etc. into a portable API, but somehow can't manage the same for timezone info.

  6. there's always Joda Time... by tony.damato · · Score: 5, Informative

    Some of our developers have switched to Joda Time classes as they're easier to use that those built into Java proper. They even give instructions on how to manually update the time zone tables. (We didn't develop the code, we're just happy customers): http://joda-time.sourceforge.net/

    1. Re:there's always Joda Time... by codealot · · Score: 5, Interesting

      Yes. We switched 6 years ago and never looked back. The java.util.Calendar classes in Java are pretty horribly broken--usability aside, they get some key calculations wrong, like ISO week of year.

      The best part is that Joda doesn't need or use the time zone database bundled into Java SE, so they aren't affected at all by Oracle's support policies.

  7. What to do... by ansak · · Score: 4, Insightful

    So, who is surprised by Oracle's move here? Nobody with a eyes and a brain. Oracle just doesn't know what to do with a community.
    Does this make Microsoft or C# look so great? No way! They started out less free than Oracle is now and haven't really changed.
    Why do I develop in Java (I also know C, C++ [and the assembler code they generate], Python, SQL [MS and non-MS dialects] -- so why choose Java?)? Because I want to write programs for my slightly less shackled Android phone.
    And the next plan of action is...?

    There are a bunch of options... for starters, google the problem. Next, just wait: some bright spark will put out a tool that uses local time zone info (configurable) to update some Java installation's (configurable) idea of time zones automatically (or not, configurable).

    It happened with MySQL, it'll happen with Java. "The more you tighten your grip, the more star systems will slip through your fingers."

    Douglas Adams' fictional book cover still has the right initial instruction: "Don't Panic!"

    cheers...ank

    --
    Still hoping for Gentle Treatment...
  8. The database is called "Olson", you find it here by ansak · · Score: 4, Informative

    I clearly hadn't read more than the first few lines of the help on Java TimeZone info or I could have found out that the answer was already there, without having to wait for it. As another poster pointed out IBM already provides free Java timezone updates.

    Let me google that for you! But more to the point, writing a tool that will grab those updates for yourself and storing it where you need it looks like a bash script or batch file candidate. Our brains are more than a match for Oracle's bean counters. Let's use them!

    cheers...ank

    --
    Still hoping for Gentle Treatment...
  9. Re:ORACLE = One Raging Asshole Called Larry Elliso by julesh · · Score: 4, Interesting

    Yes, but Python's bytecode is much higher-level than the bytecode used by the other three, because it doesn't have explicit typing of variables or direct integer manipulation. The performance implications are substantial if you're performing any non-trivial calculations. (Of course, if your process is I/O bound, this is largely irrelevant...)

    Python also cannot be efficiently multithreaded, which is a killer for many high-performance applications.

  10. Re:ORACLE = One Raging Asshole Called Larry Elliso by Lehk228 · · Score: 4, Informative

    nothing is hidden

    newlines are used in place of semicolons and indentation defines code blocks

    in most other languages {} define code blocks and indentation implies code blocks to the reader, sometimes misleading the reader.

    --
    Snowden and Manning are heroes.
  11. Re:ORACLE = One Raging Asshole Called Larry Elliso by bsane · · Score: 5, Insightful

    If the whitespace still bothers you - it means you haven't even spent 15m using it.

  12. Re:ORACLE = One Raging Asshole Called Larry Elliso by ebno-10db · · Score: 4, Funny

    it's Time to switch to python

    Develop software - production software - in an interpreted language?

    Not on my watch.

    C# and Microsoft is looking better everyday.

    Better let Google know they're doing it wrong then.

    I always thought the Wars of the Reformation were a fascinating, if horrible, part of history. It's always fun to see them re-enacted in spirit with programming languages. Nobody is planning to destroy Bohemia though, right?

  13. Re:ORACLE = One Raging Asshole Called Larry Elliso by Lumpy · · Score: 4, Interesting

    "Develop software - production software - in an interpreted language?"
    What the hell do you think Java and C# are? Compared to C and C++ they are interpreted languages.

    --
    Do not look at laser with remaining good eye.
  14. Re:ORACLE = One Raging Asshole Called Larry Elliso by hedwards · · Score: 5, Insightful

    I think we have a different definition of hidden.

    Of course you can always find poorly formatted code that's confusing, but the bottom line here is that this is not an appropriate way of using white space. White space is for the purpose of separating elements and making it more readable.

    The fact that most other languages use {} to denote blocks is a good reason to use that in other languages as well. It's something that works, is clear in intention and after all these years, nobody has come up with anything better.

    It should be up to the developers as to how precisely they format their code for legibility, not the people writing the language.

  15. How to update TZs by Dj · · Score: 4, Informative

    Firstly, Oracle are still updating timezones as always in updates to the JDK/JRE.

    From an old Oracle post though there is this guide

    https://blogs.oracle.com/coffeys/entry/want_the_latest_tzdata_support

    Which breaks down the process for folks who want to build their own TZ updating tool.

    --
    "You know you want me baby!" - Crow T Robot
  16. Re:ORACLE = One Raging Asshole Called Larry Elliso by danomac · · Score: 4, Funny

    Well, that explains why my watch battery only lasts 15 minutes...

  17. Re:ORACLE = One Raging Asshole Called Larry Elliso by uncqual · · Score: 5, Funny

    ...and now displays the incorrect time in your locale.

    --
    Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
  18. Too many weenies in the Go community. by Anonymous Coward · · Score: 5, Interesting

    Go has the same problem that Ruby has: too many damn weenies in the community.

    I don't mean an overabundance of men and penises, which is indeed a problem for both, but the smugness and the attitude one must endure when dealing with them.

    I try to stay current with the technologies that others are using, so I've worked on some small personal projects in Ruby, Go and Python. I usually ask questions in IRC when I happen to get stuck.

    When I was asking questions about Ruby and Go, the people there would constantly tell me that what I was doing, or even just aiming to do, was "wrong". So, I'd give them the benefit of the doubt. Hey, maybe I am wrong, and maybe they do have a better way. Yet every single time their suggestions would not help me attain what I wanted, would obviously not work, or were even outright harmful in some cases.

    I never got this in the Python IRC channels. When I asked a question, they'd give me helpful answers, or at least help orient me in the right direction. They wouldn't take a holier-than-thou attitude with me. They wouldn't flat out tell me what I wanted to do was "wrong". They wouldn't give me suggestions rife with obvious security holes or other bugs.

    The Python community helped me with my problems, and made me more efficient. The Go and Ruby communities just made me feel annoyed, like I was dealing with a bunch of know-it-all teenagers. Then again, maybe that is exactly what was happening. I was dealing with adult men and women when using Python, but I was dealing with passively-rebellious youth when seeking help with Go and Ruby.

  19. Re:ORACLE = One Raging Asshole Called Larry Elliso by phantomfive · · Score: 4, Interesting

    If you were worried about problems that might happen when different people owned Java, then you should have listened to Richard Stallman and never started using it in the first place.

    As it is, thanks to Stallman and others, there are now open alternatives.

    --
    "First they came for the slanderers and i said nothing."
  20. Re:ORACLE = One Raging Asshole Called Larry Elliso by arth1 · · Score: 4, Insightful

    It's not like Oracle is the provider of the time zones. Java uses the standard and open Arthur Olson zone info ones, and only modify the zone files to fit within the java framework.
    What it boils down to is that Oracle wants money for what they themselves are freeloading.

    What's needed is for java to be able to use unmodified zoneinfo files, or an open source zone info compiler that can convert them for use by any java installation.