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."

70 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. Alternative by Anonymous Coward · · Score: 3, Interesting

    Do they want to promote an alternative? How does this affect the OpenJDK?

  3. 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 Nerdfest · · Score: 2

      Perhaps JODA Time could pull it from the OS in Linux or a file otherwise. It's very much what upcoming time and date changes are going to look like anyway and are vastly better than the built-in support. Alternatively, it's quite easy to tweak a couple of the built-ins using their source to do the same and put them in the classpath before the supplied versions. Not pretty, but effective in the short-mid term.

    2. Re: Cannot someone else do the updates ? by Midnight+Thunder · · Score: 2

      I have always wondered why this is something that couldn't be delegated to the operating system. Does anyone have any ideas? Is this something that could be addressed in OpenJDK? Can we use icu4j instead?

      --
      Jumpstart the tartan drive.
    3. 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.

  4. 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.

  5. Cash grab by Macfox · · Score: 3, Insightful

    Not surprising. Given the refusal to remove those bloody Java sponsors from the JRE. Piss off the end users and now the developers.

    --
    Area51 - We are watching...
  6. 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

    1. Re:IBM to the rescue by julesh · · Score: 2

      I've never heard the name Olson before in relation to timezone updates. Thanks for the enlightenment but yes, this article was at least a little bit necessary, if not as earth shattering as an approaching asteroid.

      cheers...ank

      OTOH, the original poster clearly had, so why he didn't google for it and find those sources is an interesting question. Or why he hasn't considered alternative approaches (using a 3rd party JRE; using OpenJDK and following the update process described here, etc. Unless, of course, he's one of the many anti-Java nuts we seem to attract around here.

    2. Re:IBM to the rescue by NoelTrout · · Score: 2

      I have considered all the alternative approaches. Of course there are workarounds, but that is not the point of the posting. The point of the posting was to raise awareness around the change Oracle had made and debate what the community should be able to expect from the core Java API that is labeled as free.

  7. 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 ebno-10db · · Score: 3, Interesting

      Why doesn't java use the operating system to provide that information in the first place?

      Because despite being called a portable language, the real Java approach is a portable environment. I'm not debating whether that's good, bad or indifferent, but that is the approach.

    2. Re:Actually: Why are these needed? by mathew42 · · Score: 2

      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.

      The problem is Windows. My understanding is that Windows cannot handle date dependant daylight savings rules. For example in 2006, Daylight Savings was extended for the Commonwealth Games in Melbourne and then reverted to the normal rules in 2006. The solution at the time was to patch Windows prior to the Olympics and then patch again at some point in the future.

      KB909915 about the change includes these gems of advice:

      • - Do not create future appointments in the overlap period in all successive years, until the operating system is back to the regular time zone.
      • - As soon as possible after the overlap period ends, change the operating system back to the correct time zone for your location.
    3. 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.

    4. Re:Actually: Why are these needed? by FreelanceWizard · · Score: 3, Informative

      No. Windows handles DST rules in the registry, so it's perfectly capable of date-dependent DST rule handling. The article discusses those recommendations as a way to avoid problems caused by issues with Outlook and Exchange 2003, both of which have their own unique ways of handling TZ changes (basically, they fail to store TZ information with dates, so TZ changes screw up the display of appointments). The problems were largely addressed in Outlook and Exchange 2007 and completely fixed in the 2010 versions, which keep the appointments in GMT-plus-offset format.

      There's legitimate complaints you can have with the way Windows handles TZ changes -- personally, I'm not a fan of having to install TZ patches from Windows Update and I really dislike how Windows keeps the RTC in local time instead of GMT -- but don't blame it for the failings of antiquated and soon unsupported Office programs.

      --
      The Freelance Wizard
    5. Re:Actually: Why are these needed? by unrtst · · Score: 2

      It's not about managing it / being able to do it. It's about what was easiest and most reliable.

      There are plenty of old OS's out there that don't get automatic TZ updates on the OS level. The olsen DB is freely available, but you have to download it and run a couple of commands to get your machine dependent tzdata built. Rather than leaving that up to the OS and sysadmins, they do the compile themselves and provide a tool to grab that copy and put it into your java install.

      It's really not that bad of a way to go. It should also be incredibly easy to replace/rewrite (I'm not a java dev, but have worked with the tz data files directly many times).

      One of the minor hurdles to making something that'll pull down the olsen db and compile to either the OS tzdata or to java's tz data is that the location of the olsen DB, while fairly standard, has and will change. It also used to be run by just one guy for ages, so if one makes a tool to update the local tzdata, they should really pull from a replica/mirror of the site (or go through the official OS repositories, like all good linux distros do).

      Java doing it themselves avoided a lot of drama, and I've never heard anyone complain about it until now. Charging for that piece is stupid. At the least, they should provide an open version that takes any URL as a source option first (just my 2 cents on it)

  8. 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.

    2. Re:there's always Joda Time... by goofy183 · · Score: 2

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

  9. 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...
  10. 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...
  11. 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.

  12. 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.
  13. 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.

  14. Re:ORACLE = One Raging Asshole Called Larry Elliso by aled · · Score: 2

    it's Time to switch to python

    Sorry, no. Perhaps it was time 10 years ago if ever. Now is too late. Even Google is using less Python these days.

    --

    "I think this line is mostly filler"
  15. 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?

  16. Re:ORACLE = One Raging Asshole Called Larry Elliso by aled · · Score: 2

    Bytecode is but a concept and there are many different, incompatible implementations. Like programming languages and compilers.

    --

    "I think this line is mostly filler"
  17. 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.
  18. Re:ORACLE = One Raging Asshole Called Larry Elliso by RabidReindeer · · Score: 3, Interesting

    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.

    Python is commonly compiled at first use these days, much like the Java JIT compilation process.

    If you want a legitimate reason to avoid Python for mission-critical stuff, it's the lack of rigorous development-time type-checking.

  19. Java by BeemerBoy · · Score: 2

    Considering that Java appears to be a flimsy screen door in any company's firewall, I would think that most SANE organizations would've started moving off of that platform YEARS ago...

    --
    Buzzing the information Superhighway at Warp speed
  20. Re:ORACLE = One Raging Asshole Called Larry Elliso by Anonymous Coward · · Score: 2, Insightful

    Or, you know, you had a merge happen that moved around whitespace without anybody noticing, which resulted in still syntactically sound Python that just happened to have entirely different semantics that destroyed a bunch of customer data. Just as a random example of why whitespace syntax is horrible.

  21. Re:ORACLE = One Raging Asshole Called Larry Elliso by Anonymous Coward · · Score: 3, Insightful

    Braces allow for automatic formatting.
    Whitespace shouldn't encode anything other than separation between meaningful elements. Definitely not blocks.
    Besides, untyped languages are unmaintainable crap. They're nice for throwing crap together quick, but having to figure out what the code does (with typical level of comments...) is a painful experience.

  22. Java lost me years ago by EmperorOfCanada · · Score: 3, Interesting

    Java lost me many years ago for various reasons. But not using Java was more of a gut feeling as opposed to a well thought out plan. But now between the this craziness and the non stop drip drip of security flaws I have now moved into the camp that anyone using Java on a new project is just drinking the kool-aid. With Oracle at the helm you just know they have a spreadsheet with a time-table for monetizing Java harder and harder as time moves forward.

    My guess is that Oracle has seen the writing on the wall that many business organizations are solidly Java and can afford any "minor" fees involved. What they are missing is that many university CS departments are dumping Java in favor of Python as Python is becoming the defacto language of academia. My prediction is that Java will ever so slowly fade as it is ensconced in the business world and isn't going anywhere there. But that the cool kids will see it as their grandfather's language and actively avoid it. I am not suggesting that Python will replace Java just that with CS students not giving a crap about Java they won't choose it for new projects.

    One thing that has long annoyed me about Java progammers is this whole, "Let's wrap every damn thing in a object." Then you end up with an architecture that looks like the traveling salesman problem done by someone on LSD.

    1. Re:Java lost me years ago by codealot · · Score: 3, Informative

      Java gets a bad rap (and Oracle doesn't help) but there's nothing wrong with it per se. If I had the choice of starting a project in C, C++ or Java I'd always pick Java--call it obsolete if you want but those alternatives are archaic. (And I'm not fully sold on interpreters languages either, partly because my applications are very sensitive to runtime performance and memory overhead. Are the JIT compilers for Python et al any good?)

      The security exploits are in the Java plugin. I don't care much about those because I disabled the plugin in my browsers years ago. Don't folks understand that 99.99% of Java users are unaffected by the plugin exploits???

      When programming Java, you sure don't have to wrap everything in an object. Everything is in a class, but so what? Classes provide a namespace for your code, which is useful. They also give you lazy loading so you don't have to wait for an entire app to load.

      There are a lot of bad Java programmers though. It seems too few of them have really learned CS and don't understand the internals or runtime well. That's a mistake when using any language.

    2. Re:Java lost me years ago by shutdown+-p+now · · Score: 2

      If I had the choice of starting a project in C, C++ or Java I'd always pick Java--call it obsolete if you want but those alternatives are archaic.

      But are they? Between C++ and Java, only one language has anonymous functions with closure semantics (lambdas) today. Guess which one.

      my applications are very sensitive to runtime performance and memory overhead.

      If that is the case - especially the part about memory overhead - Java would be a horrible choice. The lack of guaranteed-stack-allocated value types other than primitives makes it very hard to write large apps with predictable memory usage.

  23. Re:ORACLE = One Raging Asshole Called Larry Elliso by Lehk228 · · Score: 2, Insightful

    if you are doing intensive calculations and they slow down execution you can write those parts in c

    --
    Snowden and Manning are heroes.
  24. Re:Any day now by mwvdlee · · Score: 2

    I've been reading this stuff for years now, and it was promised Java would run at native compiled speed from the very start but the only actual statistics I've encountered say the opposite. The truth seems to be that the Java run-time didn't quite life upto the expectations.
    Not that the performance is a significant issue for many types of applications; many productivity and programming tools I use run just fine using Java. Except during garbage collection ofcourse, which is when Java absolutely sucks.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  25. 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.

  26. Re:ORACLE = One Raging Asshole Called Larry Elliso by JustOK · · Score: 2

    Your watch runs Java?

    --
    rewriting history since 2109
  27. Re:Any day now by ebno-10db · · Score: 2

    No, C++ is faster by as much as 3x. There are plenty of apps where that doesn't matter much, and plenty of others where it does.

  28. 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
    1. Re:How to update TZs by iggymanz · · Score: 2

      key link in that page is dead.

      here's the situation: http://www.oracle.com/technetwork/java/javase/timezones-137583.html

      bottom line, you need paid support from Oracle to get correct timezone info

  29. raising a question != begging the question by Anonymous Coward · · Score: 3, Informative

    This begs the question, can you call an API free if you have to pay for it to return accurate information?

    No it does not beg the question.

    What is "Begging the Question?"
    "Begging the question" is a form of logical fallacy in which a statement or claim is assumed to be true without evidence other than the statement or claim itself. When one begs the question, the initial assumption of a statement is treated as already proven without any logic to show why the statement is true in the first place.

    A simple example would be "I think he is unattractive because he is ugly." The adjective "ugly" does not explain why the subject is "unattractive" -- they virtually amount to the same subjective meaning, and the proof is merely a restatement of the premise. The sentence has begged the question.

    What is it Not?
    To beg the question does not mean "to raise the question." (e.g. "It begs the question, why is he so dumb?") This is a common error of usage made by those who mistake the word "question" in the phrase to refer to a literal question. Sadly, the error has grown more and more common with time, such that even journalists, advertisers, and major mass media entities have fallen prey to "BTQ Abuse."

    While descriptivists and other such laissez-faire linguists are content to allow the misconception to fall into the vernacular, it cannot be denied that logic and philosophy stand to lose an important conceptual label should the meaning of BTQ become diluted to the point that we must constantly distinguish between the traditional usage and the erroneous "modern" usage. This is why we fight

  30. Re:ORACLE = One Raging Asshole Called Larry Elliso by danomac · · Score: 4, Funny

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

  31. Readability by Livius · · Score: 2

    *No* code is readable without either knowing the language or knowing something similar. Hence the word 'code'. (COBOL is a particularly perverse and ironic example.)

    I find Java readable because I know Java, I know C++, and I like its style as a personal matter of taste, but none of those are a reflection on the language itself.

  32. Re:ORACLE = One Raging Asshole Called Larry Elliso by gadzook33 · · Score: 3, Interesting

    I can't believe this post isn't modded up more. More and more I feel like the readership of slashdot is a bunch of script-kiddies rather than professional coders. The idea that you would use whitespace to denote something as important as scope is ludicrous. In fact, the idea that you would use whitespace to denote ANYTHING is ludicrous.

  33. Re: ORACLE = One Raging Asshole Called Larry Ellis by Anonymous Coward · · Score: 2, Interesting

    The benchmarks game is the first link that comes to mind.

    Feel free to compare it against other languages on the benchmarks game. Python, Ruby and PHP are the slowest languages in widespread use and to make it even worse Python and Ruby both have global interpreter locks because their implementations aren't thread safe. They're terribly slow even when most of their libraries are thin wrappers around C libraries.

  34. Re:ORACLE = One Raging Asshole Called Larry Elliso by aaarrrgggh · · Score: 2

    Do you not think that Microsoft is in nearly the same position as Oracle?! C# might have a number of short-term benefits, but you will end up in the same spot sooner than later.

  35. Java was a bad decision in the first place by reanjr · · Score: 2

    Own up to your company's bad decisions, bite the bullet, and STOP USING PROPRIETARY SOFTWARE!!!

    Seriously, you people who complain about all your own bad decisions are really getting on my nerves. Java was a bad idea 10 years ago even without the time restriction. Why? Because they throw in a time restriction whenever the fuck they want. Your company was stupid enough to be duped.

  36. Re:ORACLE = One Raging Asshole Called Larry Elliso by PPH · · Score: 2

    If whitespace is such a bad way of denoting scope

    Because I might want to use it within the same scope for purposes of readability.

    why indent in C?

    Why indeed? I can write an entire C program in one line. But my boss pays based on KLOC, so the more white space, the better.

    --
    Have gnu, will travel.
  37. Re:ORACLE = One Raging Asshole Called Larry Elliso by Daniel+Dvorkin · · Score: 2, Funny

    In fact, the idea that you would use whitespace to denote ANYTHING is ludicrous.

    Yesyou'reabsolutelyright.Weshouldjustgetridofitentirely.Itsavessomuchtimetypingwhenyoudon'thavetousethespacebaratall.

    --
    The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
  38. 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 /.
  39. 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.

  40. Re:ORACLE = One Raging Asshole Called Larry Elliso by Anonymous Coward · · Score: 2, Interesting

    My normal practice when I need to insert debugging statements while debugging a program is to put in these lines right at the left margin without any indentation. This makes them stand out clearly when I come back to clean things up when everything is working. I would not be able to do this with Python. This is one big reason I never want to use it.

  41. Music to the ears of a .NET developer by bigtallmofo · · Score: 3, Insightful

    As someone who was been a .NET developer in C# since it came out, this is welcome news to see Java developers abandoning their platform in droves.

    Sorry to sound harsh, but I heard from so many middle managers and CIOs over the years, "Why don't you use Java?" "I noticed you don't use Java, what's wrong with you?" "What about Java?" "Have you looked into Java?" I had one snarky middle manager buy me a Java book for Christmas one year.

    Sorry, I don't use Java and every day more and more people are saying the same thing.

    --
    I'm a big tall mofo.
  42. Re:ORACLE = One Raging Asshole Called Larry Elliso by Richy_T · · Score: 2

    Presumably it was supposed to be stripped out and that was the reason for leaving it unindented.

  43. Re:Olson database by Todd+Knarr · · Score: 2

    Hmm. Oh, look, OpenJDK 7 jdk\make\tools\src\build\tools\javazic has source code for a tool to... compile Olson tzdata into Java zi format. Well then. Problem solved, it looks like.

  44. 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."
  45. Re:ORACLE = One Raging Asshole Called Larry Elliso by RulerOf · · Score: 2

    Sorry if you don't like pointers. But the coddling of CS students with Java courses these days is just laughable.

    I don't quite understand it either. Isn't the point of Computer Science to teach people the principles behind the operations of the computers we use every day?

    If you're not learning the premise of CPU registers, memory allocation, jumping, returning, and all that happy crap that I honestly wish I understood better, what in the hell is the actual science behind modern computing then? Doesn't it make sense to start with the raw assembler involved in the top three (or so) CPU architectures and then move up from there, learning the foundation that they all compile down to in the end anyway, so that you can see the impact that your compiled code will have as you're writing it?

    Primarily I'm just agreeing with your notion that Java is likely an inappropriate medium for conveying the concepts behind the magic that we interact with every day in the millions of CPU cycles that can transpire during a single keystroke; the processes occurring in Windows alone that take privileged, direct hardware access for something like USB communication and keyboard/mouse interaction and lock it right-the-hell down to the point where the operating system can extend these things into User mode without allowing them to compromise the kernel is a titanic feat of engineering... and I've known people with Bachelors' degrees in computer science that seem basically oblivious to the nature of how that even works. It's entirely possible that they didn't care, but I digress.

    Granted, my work with interpreted scripting languages causes me to find the concept of pointers and type casting and memory allocation and garbage collection to be inane, silly chores that I shouldn't have to worry about to Get Things Done.... but someone should, and their credentials should reflect that. The fundamental principles underlying modern computer systems and their continuing evolution depend on it.

    --
    Boot Windows, Linux, and ESX over the network for free.
  46. Re:ORACLE = One Raging Asshole Called Larry Elliso by ebno-10db · · Score: 2

    In fact, the idea that you would use whitespace to denote ANYTHING is ludicrous.

    Yesyou'reabsolutelyright.Weshouldjustgetridofitentirely.Itsavessomuchtimetypingwhenyoudon'thavetousethespacebaratall.

    CLOSEBUTYOUHAVETOGETRIDOFTHEPUNCTUATIONMARKSTOOITSCALLEDSCRIPTUMCONTINUUM

  47. Re:ORACLE = One Raging Asshole Called Larry Elliso by julesh · · Score: 2, Interesting

    I don't quite understand it either. Isn't the point of Computer Science to teach people the principles behind the operations of the computers we use every day?

    No. The point of computer science is to teach methods of reasoning about the behaviour of computers. Yes, this involves knowing those basic principles, stuff like what pointers are, how memory can be divided and allocated between different tasks, how it can be reused after it is no longer required, and so on. But much more fundamentally it involves understanding the principles of what a program is, how data structures can be built up from individual stored items, and so on, and this is much easier to teach in a higher-level language than a lower-level one.

    A computer science program should teach students at least four languages:

    - A high level language, suitable for building complex data structures. It should have garbage collection, and would typically be object-oriented.
    - A low level language, suitable for describing memory management tasks
    - An assembly language, to show how machines work at the register level
    - An additional high level language. If the first high-level language was object-oriented, this language should be functional. If the first was functional (there are a handful of programs that teach a functional language first, and it may be a reasonably good idea) this should be object-oriented.

    Additionally, at least one of the two high level languages needs to have good support for parallel operations (e.g., a good library of communication and synchronization primitives), or a third high level language will be required to cover this.

    My course, back in the 90s, went a little overboard. I learned:

    Pascal (first high level language, used for data structure courses)
    C (used both for low level computer architecture stuff and for compiler design course, due to interface with flex/bison)
    PERL
    68k and 32000 assembly language (two different hardware level projects using two different development kits)
    C++ (only OO language)
    A non-standard and peculiar language with integrated primitives for concurrent programming
    Miranda (a functional language somewhat similar to ML)
    Prolog

    I think disorganisation led to there being too many languages on the list. Java could have replaced 3 of those items with a single language, and a few years after I graduated it did.

  48. Re:ORACLE = One Raging Asshole Called Larry Elliso by smellotron · · Score: 2

    The low level details of the CPU implementation are a very small corner of computer science.

    Your own quotation doesn't seem to support your assertion:

    The IEEE Computer Society identifies four areas that it considers crucial to the discipline of computer science: theory of computation, algorithms and data structures, programming methodology and languages, and computer elements and architecture.

    Emphasis mine. One of the four "crucial areas" is the CPU implementation.

  49. Re:ORACLE = One Raging Asshole Called Larry Elliso by hedwards · · Score: 2

    Spoken like somebody who hasn't ever coded. You've got ( ) { } [ ] and arguably "" and '' with which to surround things you want enclosed. Now, it is debatable as to whether the current consensus as to which to allocate to what is correct, but the fact of the matter is that if you enclose something with those pairs of characters that people will naturally get the hint that something has been enclosed.

    Whereas using tabs and newlines in this fashion conveys no such thing.

    What's more, because the newline terminates the line, it means that you can't do things like split regexes onto multiple lines to enhance legibility as those would be executed as if they were intended to be different lines of code.

    Just because you don't understand why the convention is typically to use curly braces like that instead of white space, does not mean that it's an arbitrary decision. It just means that you need to read up a bit before you speak up.

  50. Re:ORACLE = One Raging Asshole Called Larry Elliso by sjames · · Score: 2

    Ican'tagreewithyoumore.Whitespacehasnoplaceinsyntaxatall.Let'sdumpitall.

  51. Re:ORACLE = One Raging Asshole Called Larry Elliso by RulerOf · · Score: 2

    Yes, and CPU implementation is a further subdivision of computer elements and architecture.

    Then the details of register use are an even further subdivision.

    I've done work in the field since the 70's. The last time I had to worry about CPU architecture was as a junior in college in 1971 when I was porting Spacewar from a PDP-1 to a PDP-8. Mostly these days it's all about algorithms in high level languages.

    Aren't these details important to understand for what might be non-obvious reasons?

    To give an example, take a look at gaming consoles. Performance and graphics get better over time because programmers write "to the hardware" with increasing precision as the product ages, and this provides a benefit that's almost completely unseen in modern general purpose computing.

    The technique of "expanding the loop" to increase performance is a common tactic taken by programmers, no? I know I've done it with scripts before. Are modern compilers simply so good at optimizing binary code that extending this from a high-level language to the assembler it compiles to is simply not a reasonable thing to expect a programmer to be able to do?

    I know I'm showing my ignorance on the subject, but of all the things I've ever researched for my own enrichment, C/C++ types of languages constantly fail to make sense to me... and I'd like to know more about the interplay between them and what actually goes on at the level of the CPU assembler-type code itself, but it seems like even getting partially fluent enough to understand what's going on in a dozen lines of ASM is an impossible dream. :P

    --
    Boot Windows, Linux, and ESX over the network for free.
  52. 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.

  53. Re:ORACLE = One Raging Asshole Called Larry Elliso by sodul · · Score: 2

    Well you could with implicit line joining:
    def square(x):
            print(
    'DEBUG: x=%x' % x)
            return x*x

    Note that the print starts indented but since a parenthesis is opened the rest of the statement can continue anywhere on the next line. Until the closing parenthesis whitespace rules are ignored.

    http://docs.python.org/3/reference/lexical_analysis.html#implicit-line-joining

    But really you should use the logging module and set log levels. Debuggers are good tools as well, but I usually rely on unit tests to track bugs (or rather, not have to track them down).

  54. Re:ORACLE = One Raging Asshole Called Larry Elliso by shutdown+-p+now · · Score: 2

    Scrap the conditional. They *are* interpreted languages.

    They are JIT-compiled, not interpreted. Well, okay, Sun JVM does some bytecode interpreting alongside JIT-compilation, but .NET is a pure compiler.

    Just because compilation happens later doesn't make it an interpreter.

    It's true that I haven't heard of any compiled versions of Python

    PyPy is an implementation of Python based on a JIT-compiler.

  55. Re:ORACLE = One Raging Asshole Called Larry Elliso by shutdown+-p+now · · Score: 2

    MS is the copyright owner of one particular implementation of C#, but the spec is out there, and Mono has been following it very closely. So C# can be forked just the same.

    One other difference is that C# spec, and portions of .NET APis (in particular, all the fundamental classes - pretty much the kind of thing Oracle sued Google over) are covered by "open specification promise", which is basically a patent grant to anyone implementing that spec.