Slashdot Mirror


Rootbeer GPU Compiler Lets Almost Any Java Code Run On the GPU

An anonymous reader writes "Today the source code to the Rootbeer GPU Compiler was released as open source on github. This work allows for a developer to use almost any Java code on the GPU. It is free, open source and highly tested. Rootbeer is the most full featured translator to convert Java Bytecode to CUDA. It allows arbitrary graphs of objects to be serialized to the GPU and the GPU kernel to be written in Java." Rootbeer is the work of Syracuse University instructor Phil Pratt-Szeliga.

61 of 304 comments (clear)

  1. Any code? by XxtraLarGe · · Score: 5, Funny

    This work allows for a developer to use almost any Java code on the GPU.

    Except for the code my students write. :rolleyes:

    --
    Taking guns away from the 99% gives the 1% 100% of the power.
    1. Re:Any code? by XxtraLarGe · · Score: 4, Funny

      By the way, this comment is not an indictment of my teaching...

      --
      Taking guns away from the 99% gives the 1% 100% of the power.
    2. Re:Any code? by XxtraLarGe · · Score: 4, Insightful

      There are no bad students, only bad teachers.

      Trust me, there's plenty of bad students. They're only in class to collect their "No Worker Left Behind" check. Thankfully that program has run its course.

      --
      Taking guns away from the 99% gives the 1% 100% of the power.
    3. Re:Any code? by Anonymous Coward · · Score: 4, Insightful

      Speaking as someone who has had the experience of being both a good and a bad student, I will tell you it has very little to do with the teacher. It's all about student attitude. I failed several undergrad classes quite convincingly and it was pretty much my own fault, even though I would have liked to have blamed it on some of the horrible teachers I had. I excelled in grad school because I approached it with a completely different attitude and no teacher, no matter how bad, was going to get in my way and prevent me from doing well.

      I control my attitude. While I admit that no one is impervious to external influences, how a student reacts to a bad teacher is largely up to them. If you allow a bad teacher to turn you into a bad student, that's entirely your own fault. It's not like they've tied you down, cracked open your skull and deliberately rewired things to turn you into that asshole who never shows up or does the work.

    4. Re:Any code? by Anonymous Coward · · Score: 3, Insightful

      I used to think that too, until I started teaching at a state college. The only effective way to teach them is triage. There're the ones who will get it no matter what, the ones who will never learn a thing no matter how well you teach, but there's not much to be done there, short of encouraging the former to explore and helping the latter make it to the pass line. The bulk of the resources need to go to the middle group, where your efforts can make the difference between getting it and not.

    5. Re:Any code? by oakgrove · · Score: 2

      There are no bad students, only bad teachers.

      Incorrect! Here, let me FTFY:

      There are no bad students, just children who have not been provided the proper frequency and dosage of amphetamines yet.

      Dope: it's what's for breakfast!

      --
      The soylentnews experiment has been a dismal failure.
    6. Re:Any code? by danbuter · · Score: 3, Interesting

      He'll make far more money welding than most IT guys will. And he'll get a great pension, as long as he joins a welders union (which he probably will, unless you are way out in the boonies).

    7. Re:Any code? by ThePeices · · Score: 5, Insightful

      No, you are quite wrong indeed.

      There are bad students out there, we do not live in a perfect happy smiley little world where every human has limitless potential and can do *anything* if only they tried and had good teachers. That nonsense view comes out of what political correctness has done to modern western society.

      There are students who truly are unwilling to learn, dont want to be there, and are only in class because they have to.

      There are actually students out there who will never be able to pass certain exams, no matter how good the teachers are and no matter how much they try. Some things are just beyond some people.

      The *real world* is not perfect, humans are not perfect.

      If you think that is a cynical view, well then that is utterly irrelevant to my point. Facts are facts, no matter how much we dont or do like that fact.

    8. Re:Any code? by Anonymous Coward · · Score: 5, Insightful

      ...tool & dye....

      "Thinking is hard work, which is why so few people do it." - Henry Ford

      Tool and die. I can understand not knowing how to spell it, bit quoting Henry Ford and not realizing that die work and tooling are technical jobs is abhorrent.

      Tech support is to computer science as die setters are to mechanical engineers.

      Tool and die makers are the software developers of the hardware world.

      Captcha is pompous. How relevant.

    9. Re:Any code? by fredgiblet · · Score: 2

      +1

      I got a 2.8 GPA in High school because I didn't care and I never did homework. In college I got a 3.9 because college actaully matters so I started caring.

      Amusingly enough my teachers in high school loved me (one of them hugged me and cried when I left), despite the fact that I almost never turned in homework.

    10. Re:Any code? by fredgiblet · · Score: 2, Insightful

      Some people can't be motivated, some teachers may be able to motivate tons of students, but not be able to motivate that particular one.

    11. Re:Any code? by sydneyfong · · Score: 5, Funny

      I'm here. Hi.

      --
      Don't quote me on this.
    12. Re:Any code? by M8e · · Score: 3, Funny

      Psychotic murderers are the best students.

      (and if they are not they have great potential to become the best.)

    13. Re:Any code? by voidphoenix · · Score: 2

      No, you are quite wrong indeed.

      There are bad students out there, we do not live in a perfect happy smiley little world where every human has limitless potential and can do *anything* if only they tried and had good teachers. That nonsense view comes out of what political correctness has done to modern western society.

      There are students who truly are unwilling to learn, dont want to be there, and are only in class because they have to.

      Perhaps you need to look earlier. Who are your first teachers? Your parents and your early environment. A child can have poor teachers and poor teaching there, and that leaves it mark on them, scars that they'll have to struggle with the rest of their lives. But that struggle began with poor teaching.

      There are actually students out there who will never be able to pass certain exams, no matter how good the teachers are and no matter how much they try. Some things are just beyond some people.

      If the task or test requires significant physical ability that the student is incapable of performing, maybe. But if the task is primarily mental and the student has a functional brain, I'd disagree. I've taught (tutored, actually) math to kids to were bad, bad, bad at math. High school kids who couldn't do fractions and didn't fully understand numeric place values. Basically, they could do simple arithmetic and that was it. They, their parents and their teachers were convinced they just "couldn't do math". Every single one of those half-dozen kids I've taught passed their math classes and were able to get into college. So maybe I didn't get one of those completely incapable students, but I doubt it. I work on 2 things when I teach: foundational concepts self-belief. It takes a lot of time and a lot of work, but if you can convince your student that it's possible for them to learn the material, you've done the hard part. After that, the foundational concepts are just tools and building blocks and once you get to a certain point, a critical mass of ideas which will vary from student to student, they won't even need you to teach them.

      The *real world* is not perfect, humans are not perfect.

      If you think that is a cynical view, well then that is utterly irrelevant to my point. Facts are facts, no matter how much we dont or do like that fact.

      No, humans aren't perfect and there are a few who have specific physical issues which hinder them. But the vast majority of humans have 1.5kg of functional, self-modifying biological supercomputer in their heads. Sure, some will need more modifying, more programming, more instruction. But all of them are capable of learning. And no, I'm not a shiny-happy-people kind of guy. I'm probably as jaded and cynical as many here on Slashdot, but I do recognize one very simple fact. Stupidity is a choice, the result of laziness. Yes, over 90% of the planet is stupid and getting worse, but it is still a choice.

    14. Re:Any code? by Frnknstn · · Score: 2

      EVERYBODY has a bad teacher at some point.

      Besides, teachers are not the only ones who can turn mediocre students into bad ones. Bad parents, bad peers, bad genes, bad environment, bad societies...

      You give the teachers too much credit.

      --
      If it's in you sig, it's in your post.
    15. Re:Any code? by Anonymous Coward · · Score: 2, Insightful

      But I judge a teacher by how well his/her bad students do ;). Because good students don't need teachers to do much except give some pointers/tips and then get out of their way.

      That said, if you can make the good students fail, then you're a really bad teacher ;).

    16. Re:Any code? by Charliemopps · · Score: 4, Interesting

      Being a former certified welder, and now a programmer I can tell you that:
      a. I was a GREAT welder. Certified in everything save underwater stuff... I got about $13/hr
      b. I'm not a very good programmer. I just started, don't know many languages and am always bugging my coworkers with noob questions. Now I'm salaried at $60k/yr

      So, I'm not sure how much you think welders get paid. But it's not much. I'm sure there are a few (like the under water guys and the skyscraper guys) but the vast majority of us sitting in machine shops with no aircon, welding liftgates on the back of semis are not making a fortune. Welding was much more rewarding though. I got REAL things done back then. Now I constantly make changes to the same pieces of software and various managers requests. Half the time undoing whatever it was I did last week.

    17. Re:Any code? by Jesus_666 · · Score: 4, Insightful

      It cuts both ways. In the equivalent of high school I had a math teacher I was entirely incompatible with. I dropped from a B to a D in math and stayed there as I failed to learn anything from that man and even lost all enthusiasm for mathematics. Having a teacher you can't work with can be disastrous - not just because of the missed material; you can always learn that on your own. It's because they can suck all the fun out of a field of knowledge until the point where you don't want to make up for what you missed. Yes, you can force yourself to learn it but it's not going to be very effective if you dislike the field (unless you posses a great amount of willpower, which I don't believe I do).

      On the other hand, in university, in Practical CS 1 and 2 (aka "Java for beginners" and "Java for slightly more advanced beginners") we had a setup where students would form groups that do the written homework together and would enter an oral exam at the end where their individual proficiency would be evaluated. In both cases I came out with a good grade while the others of my groups failed. In both cases I was the only one of the group who actually cared about the subject. You can certainly be a bad student without external influences.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    18. Re:Any code? by anethema · · Score: 3, Interesting

      I'm in northern canada, and every welder I know makes over 100k a year. They work in mills, plants, or on the oil patch. I'm sure locale has a lot to do with it.

      --


      It's easier to fight for one's principles than to live up to them.
  2. x264 by girlintraining · · Score: 4, Interesting

    Maybe now the x264 developers will add GPU support and we'll finally have a solution for video encoding that uses the processor and GPUs in parallel. Here's to hoping... :\

    --
    #fuckbeta #iamslashdot #dicemustdie
    1. Re:x264 by phizi0n · · Score: 2

      That would be quite difficult for a C/assembly project to use a Java compiler.

    2. Re:x264 by Miletos · · Score: 2

      But x264 is coded in C and Assembly, not Java.

    3. Re:x264 by girlintraining · · Score: 2, Interesting

      That would be quite difficult for a C/assembly project to use a Java compiler.

      *shrug* They've been dragging their heels for years, claiming that there's no practical way to do it, that the quality is inferior, etc., etc. And now there's a way to generate bytecode that can be executed on the GPU and return predictable results. I'm sure someone who knows assembler can figure out a simple FIFO or IPC / shared memory arrangement... At this point, they can't hide behind technical hurdles: It's clear GPUs can be used, they just don't want to because they're stuck up.

      --
      #fuckbeta #iamslashdot #dicemustdie
    4. Re:x264 by Anonymous Coward · · Score: 5, Informative

      Programs don't magically become faster when they are run on GPUs. E.g. Linear Algebra algorithms work really well on CPUs, but if ported 1 to 1 ( as this would ) to a GPU their performance is just abysmal. Usually one needs to use a specially designed algorithm that can actually use the massive parallelism of a GPU and not get stuck e.g. trying to synchronize or doing other kinds of communication. GPUs really like doing the same operation on independent data, which is basically what happens when rendering an image, they are not really designed to have operations that need information of all other data, or neighbouring data in a grid.... . Just because something works on a GPU does not mean its efficient, thus the performance could be much worse using a GPU .
      Also balancing CPU and GPU usage is even harder ( maybe impossible ? ) as you cannot predict what kind of System you will run your software on, thus usually these days the CPU feeds the GPU with data ( with the current Tesla cards only 1 core per GPU, this changes in the Kepler version to 32 ) and does some processing that can't be done on the GPU, but do not share any kind of workloads.

      I don't know how the h.264 codec is structured or if it is possible to have performance gains on encoding. However I really doubt that x.264 can be just ported as they rely heavily on CPU specific features ( SSE etc ) which is quite different to the much higher level bytecode that Java would produce.

    5. Re:x264 by Anonymous Coward · · Score: 3, Interesting

      If you've been following x264 development at all, you'd know that all coders which attempted to add complete GPU acceleration to x264 either failed or have given up because it was too difficult. Their motto has always been 'patches welcome', but the result can't be slower than x264 on a CPU or degrade quality significantly. Thus far not really an issue, since off-hand I can't think of anybody who was actually able to provide a patch which was able to be compiled and produce valid output, let alone have acceptable speed or quality.

      Recently the x264 team was working with an AMD commissioned engineer, yet the only useful thing AMD was able to produce was OpenCL motion compensation, which should land in x264 mainline in the near future. It's not a question of them not wanting GPU acceleration or being stuck up, they literally have been unable to find coders who are knowledgeable and dedicated enough with OpenCL/CUDA to actually produce useful patches. Many of x264 algorithms aren't well suited to the GPU, and as everyone who has attempted this so far has realized, it's no easy task to come close to x264's level of quality on a GPU, while still being faster than the CPU.

    6. Re:x264 by Anonymous Coward · · Score: 2, Insightful

      Actually, all modern GPUs have cache - both data & instruction caches. The cache structures are often quite unusual (code is split by instruction type, data cache is segmented etc.).

      As for reorder - you might not have reordering within a thread, but multiple threads compete for resources (cache access primarily, but also computational units). In addition, while the thread spawn order is deterministic, predicting the rate accurately is subject to limits such as a shared register space allocator for all threads running on a sub-section of the GPU (but no sharing between sub-sections).

      Shared data segment performance is quite complex and somewhat topologically dependent (ie. performance will depend on where exactly you end up executing on the chip - you need to know the logical topology to get best performance).

      Your comment was more or less true in 2004, however ever since DX10 the complexity of GPUs has advanced considerably.

      -- ex-GPU designer

  3. Re:How about getting java code to run on java by binarylarry · · Score: 2

    The WORA aspects of Java work flawlessly these days.

    --
    Mod me down, my New Earth Global Warmingist friends!
  4. Re:How about getting java code to run on java by LodCrappo · · Score: 5, Insightful

    2004 called, they want their blind hate for Java back.

    Used intelligently by a skilled programmer, Java can deliver great results and provide exactly the sort of cross platform capabilities it was designed for. Used by idiots and/or kids who just earned that undergrad CS degree, it tends to provide less.

    --
    -Lod
  5. Re:How about getting java code to run on java by Anonymous Coward · · Score: 3, Informative

    2004 called, they want their blind hate for Java back.

    Used intelligently by a skilled programmer, Java can deliver great results and provide exactly the sort of cross platform capabilities it was designed for. Used by idiots and/or kids who just earned that undergrad CS degree, it tends to provide less.

    Just like any other programming language?

  6. Re:How about getting java code to run on java by SplashMyBandit · · Score: 5, Interesting

    This is simply not true for code written by a professional and competent Java developer (note: part of my consulting gig means I code Java on a professional basis).

    If you write only to the public APIs then Java truly is Write-Once-Run-Anywhere (although some bad Java developers use internal functionality that can change between Java versions - I'm guessing that perhaps these folks are used to coding to the Undocumented APIs of Win32 that you used to have to use to get things done). In Java you shouldn't do this. IIRC, Sun created around ten thousand unit tests to ensure Java worked correctly on each platform (wonderful, they did all the porting and port testing effort so Java developers don't have to).

    Aside from my professional coding (where Java written on a Mac works flawlessly when deployed to Linux and Windows servers) in my spare time I'm working on modern jet air combat simulator in Java. The same Java+JoGL code works flawlessly on Mac, Linux and Windows. Any differences are in capabilities/performance of individual graphics cards (AMD/ATI vs NVidia).

    This article about being able to write Java for the GPU is very interesting, since writing shaders via OpenGL is a little bit of a PITA (there is an impedance mismatch between the conventions of Java, OpenGL and GLSL - it would be fabulous to just write in Java [akin to how I can do this on the Web using Google Web Toolkit]).

    So I don't think your statement is really true - except for buggy software written by developers who have bad simple-platform habits.

  7. Re:How about getting java code to run on java by SplashMyBandit · · Score: 5, Informative

    Usually there is only a problem when your application server (I'm looking at you, stinky Websphere) relies on a particular vendor's implementation of Java (eg. IBM JDK). With recent Sun/Oracle Java Runtime Environments (that is: Java 6, which is around 5 years old; and Java 7) applications usually run flawlessly (at least, mine do - and I'm doing all the usual Java funky stuff: radar, roadsign and head tracking hardware device control, networking, web, 3D graphics, rich clients, etc).

    As a current practitioner in the field I wonder whether your experience is from a long time ago (and polluted by the experience of using software that was based on Microsoft's awful [and deliberately incompatible - which they lost the famous lawsuit over] Java implementation from a long time ago).

  8. Blah its CUDA by zixxt · · Score: 5, Interesting

    It's CUDA only, meaning it does not support any open standards. Call me when when I can target OpenCL.

    --
    ---- GENERATION 26: The first time you see this, copy it into your sig on any forum and add 1 to the generation.
    1. Re:Blah its CUDA by SecondaryOak · · Score: 5, Interesting

      Are you positive it's CUDA only? Browsing the code it does seem to have an OpenCL "backend", at https://github.com/pcpratts/rootbeer1/tree/master/src/edu/syr/pcpratts/rootbeer/generate/opencl

    2. Re:Blah its CUDA by Chris+Mattern · · Score: 2

      I think it's unfair of you to bar a CUDA.

  9. There's hope yet! by oakgrove · · Score: 4, Insightful

    released as open source on github

    Damn, Slashdot, I almost had a freaking heart attack when I moused over (you don't think I actually clicked do you? New here?) the link in the summary and it was to the actual github page rather than some crappy 10 page blog post based on something pulled off the reuters wire from last week.

    I'm impressed!

    --
    The soylentnews experiment has been a dismal failure.
  10. Re:How about getting java code to run on java by silas_moeckel · · Score: 2, Insightful

    You must run some VERY different apps than I do. Every management app I've used seems to be tied to different versions of java everything for ui glitches though plain just not working.

    --
    No sir I dont like it.
  11. Re:First Post by Anonymous Coward · · Score: 5, Funny

    Um, 'scuse me, you got a license for the use of the word Java in that first post?

    -- Oracle lawweasel

  12. Re:How about getting java code to run on java by silas_moeckel · · Score: 2

    Primarily with those java management apps related to networking kit. You know those things that are embedded in firmware and sometimes the only way to do more than get an IP on the box to get to said java nightmare. I've had the issues as recent as a few weeks ago when a java update stopped some dialog boxes from working on a supermicro ipkvm java app. Same update killed all my ASDM java apps for working with CIsco ASA's (though it still works as a web app for whatever reasons)

    --
    No sir I dont like it.
  13. Re:First Post by MichaelSmith · · Score: 2, Funny

    He means it would be too slow to fly to java before posting from an internet cafe.

  14. Re:Super by fm6 · · Score: 3, Insightful

    Why is any hack done? Because it can be.

  15. Very nice. by Animats · · Score: 3, Informative

    Here, from GitHub, is the short presentation. This is very impressive. It finds parallelism automatically, at least for simple cases. Over 50x performance improvement on matrix multiply and naive Fourier transform (not FFT), both of which have very simple inner loops. Not clear how it does on less obvious problems.

  16. Re:How about getting java code to run on java by binarylarry · · Score: 2

    Yeah I guess I do. I tend to use good software.

    Java doesn't have a monopoly on shitty software.

    --
    Mod me down, my New Earth Global Warmingist friends!
  17. Re:How about getting java code to run on java by Miamicanes · · Score: 2

    I rarely see problems involving new releases of Java... with one specific exception: 64-bit Java. I've seen more than a few apps that die horrible deaths with 64-bit Java... and almost exactly the same number that specifically *require* 64-bit Java when running under 64-bit Windows.

    I'm still trying to figure out what, exactly, causes some random Java app to specifically require one or the other when running under Win7/64. I suspect it has something to do with changes Microsoft made to 64-bit Windows that forced (or at least induced) Sun, then Oracle, to change something major with 64-bit Java... but I've never seen any white paper or article that identifies and explores the specific reasons why this might be so. I'm sure the mass layoffs and exodus of Sun's employees right around the time 64-bit Java became relevant, and 64-bit Windows became mainstream, didn't help.

  18. Re:GPL by ThePeices · · Score: 4, Insightful

    No, *you* get to dictate the licence of your software. It is *you* who chooses to use a GPL library in your code.

    The Author of the GPL code did not put a gun to your head and forced you to choose their code.

  19. Re:How about getting java code to run on java by eWarz · · Score: 3, Interesting

    This is simply not true for code written by a professional and competent Java developer (note: part of my consulting gig means I code Java on a professional basis).

    If you write only to the public APIs then Java truly is Write-Once-Run-Anywhere (although some bad Java developers use internal functionality that can change between Java versions - I'm guessing that perhaps these folks are used to coding to the Undocumented APIs of Win32 that you used to have to use to get things done). In Java you shouldn't do this. IIRC, Sun created around ten thousand unit tests to ensure Java worked correctly on each platform (wonderful, they did all the porting and port testing effort so Java developers don't have to).

    Aside from my professional coding (where Java written on a Mac works flawlessly when deployed to Linux and Windows servers) in my spare time I'm working on modern jet air combat simulator in Java. The same Java+JoGL code works flawlessly on Mac, Linux and Windows. Any differences are in capabilities/performance of individual graphics cards (AMD/ATI vs NVidia).

    This article about being able to write Java for the GPU is very interesting, since writing shaders via OpenGL is a little bit of a PITA (there is an impedance mismatch between the conventions of Java, OpenGL and GLSL - it would be fabulous to just write in Java [akin to how I can do this on the Web using Google Web Toolkit]).

    So I don't think your statement is really true - except for buggy software written by developers who have bad simple-platform habits.

    I would tend to disagree. Why? Because companies like cisco, ibm, etc. all only certify certain versions of java for use in their applications. The cisco apps are cross platform but do NOT play well with different versions of java. I'm not a java expert (I'm a C#/RoR guy) but if fortune 500 companies can't get it right, can you really say that java is cross version compatible?

  20. Re:GPL by pcpratts · · Score: 2

    Hello, I am thinking maybe I will use the Apache license...

  21. Re:How about getting java code to run on java by fuzzyfuzzyfungus · · Score: 2

    We have some (too expensive to justify replacing) facilities control modules at work whose 'web interface' consists of a java applet that won't run on anything more recent than J2SE 1.4(early 2002, for those keeping score).

    Given the relative costs of replacing the module(the closest thing to a firmware update that the vendor offers) and just maintaining a VM snapshot of a decade-old java setup, we obviously went with the latter.

    I have no particular reason to believe that java itself is to blame, rather than merely being the instrument of somebody's apathy and/or incompetence; but there are definitely some special applications floating around.

  22. Legal Problems. by softcoder · · Score: 3, Insightful

    Considering the approach that Oracle is taking of trying to copyright and charge license fees just for using the Java API's (see Oracle vs Google) I cant see any sane person developing on a non-Oracle provided Java platform. If they can sue Google for Dalvik they can certainly sue whoever deploys Rootbeer if they feel like it.
    pgmer6809

    1. Re:Legal Problems. by DrXym · · Score: 2

      They can sue. Doesn't mean they're going to win.

    2. Re:Legal Problems. by Anonymous Coward · · Score: 2, Insightful

      But because US law works so well, it does mean you'll be ruined long before the trial is over.

    3. Re:Legal Problems. by ultranova · · Score: 4, Insightful

      They can sue. Doesn't mean they're going to win.

      Doesn't really matter who the law would eventually side with, if it takes long enough to do so to bankrupt you.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    4. Re:Legal Problems. by caseih · · Score: 2

      Nice try with the FUD. rootbeer is simply a bytecode translator. The Java API isn't involved here at all. And the place where the translated bytecodes execute is the graphics card, not some Java JRE-derived virtual machine and runtime API implementation. There is no runtime involved at all. The Java code is simply math that gets translated directly to GPU instructions.

      This is no different than Google's Web Toolkit which translates Java (not necessarily bytecode though) to javascript, which has never been under any kind of attack.

      So let's be clear. To think that rootbeer would be under some kind of threat from Oracle because it involves Java is pretty silly.

  23. Re:Here's A Real Programming Language, Boy by sydneyfong · · Score: 3, Insightful

    Congratulations on inventing C++

    --
    Don't quote me on this.
  24. Shouldn't title be more specific by Kartu · · Score: 2

    Shouldn't title mention "nVidia GPU" or did I miss that AMD now supports CUDA on top of OpenCL?

  25. Re:GPL by terpri · · Score: 2

    They don't "own your code" in any sense. If you violate the license, you're committing copyright infringement, but it has no effect on the copyright status of your own work.

  26. c- java simple by gl4ss · · Score: 2, Interesting

    yeah, you can even automate it..

    now, I wonder if this gpu project could be used to run http://www.ode4j.org/ ..(ode for java is a port of a c/c++ physics lib to java, mostly automated conversion. it actually works pretty nicely.)

    --
    world was created 5 seconds before this post as it is.
  27. Re:How about getting java code to run on java by SplashMyBandit · · Score: 2

    > I'm not a java expert (I'm a C#/RoR guy) but if fortune 500 companies can't get it right, can you really say that java is cross version compatible?
    Is that your argument? Just because corporate developers (including a lot of C# guys, but there are always exceptions) are often morons doesn't mean Java blows - these guys can and do butcher any technology when they build stuff (hell, even after giving one guy proper code for calculating any date he come back with his shitty VB.NET that was an abomination and had so many holes).

    I've written a *lot* of different systems in Java. From embedded, web, graphical, network, rich client etc and the version gotchas (there are minor things you learn to avoid) are nothing in Java compared to the C, C++ and C# systems I used to work on. Hence, my statements.

  28. Re:How about getting java code to run on java by SplashMyBandit · · Score: 4, Insightful

    Bro, you simply have a bias against Java and this means you are not reasoning fully. Admit this to yourself. People can (with some effort) write cross-platform C and C++ apps, yet people often write apps that fall over with new service packs to their operating system. Yet you choose to blame a particular technology rather than accept that , "You can write bad FORTRAN in any language".

  29. Re:How about getting java code to run on java by RabidReindeer · · Score: 2

    Would be nice to actually see this great quality java code in the wild.

    We have a ton of server-side java *crap*. It is all crap. I have never seen a java server app that did proper logging-- seems all server-side java coders think uncaught exceptions leading to stack traces are "super cool".

    On the client side, things like the java app to manage Brocade FC switches will sometimes show 90% of the zones missing! Oh, you kill all java instances and re-run it, and all is cool. Yeah, java is great.

    In the early 90s I was a believer, but too many crappy experiences with java-- now, when I hear java, I just assume total piece of shit until proven otherwise (which is _super rare_; being generous-- I can't think of anything great written in java off the top of my head)

    There's no point in singling out Java for any of that. As long as the order of the day is cheaper software produced faster instead of spending time and money to get quality, software is going to be garbage.

    I do know some really excellent java apps, and a very large quantity of excellent open-source java support libraries, but the finest tools in the hands of 15-rupee/hour junior programmers working to a fantasy schedule aren't going to produce them.

    I provide a lot of advice to Java programmers, and one of the top items I warn them to do is use logging. My own stuff not only logs extensively, it even sends me email for the really dire stuff. As far as letting exceptions fall out on the floor goes, that's a mortal sin in my book.

    Of course, because I DO have quality standards, I just get yelled at for not being "productive" enough.

  30. Re:How about getting java code to run on java by RabidReindeer · · Score: 2

    > I'm not a java expert (I'm a C#/RoR guy) but if fortune 500 companies can't get it right, can you really say that java is cross version compatible?

    Is that your argument? Just because corporate developers (including a lot of C# guys, but there are always exceptions) are often morons doesn't mean Java blows - these guys can and do butcher any technology when they build stuff (hell, even after giving one guy proper code for calculating any date he come back with his shitty VB.NET that was an abomination and had so many holes).

    I've written a *lot* of different systems in Java. From embedded, web, graphical, network, rich client etc and the version gotchas (there are minor things you learn to avoid) are nothing in Java compared to the C, C++ and C# systems I used to work on. Hence, my statements.

    Java is pretty much unique in its inherent support for cross-version support. There's a special deprecation annotation you can attach to any function or class that causes warnings if you attempt to use downgraded features. You won't find that in C/C++ or VB. In fact, one reason I bailed from Microsoft was that not only was I routinely getting nailed on MS apps to the degree that in extreme cases, I was looking at re-installing an old OS so I could install an old IDE so I could use an old compiler to make a 2-line emergency change, MS would routinely replace an entire API with a totally incompatible one. I got nailed hard on this with SOAP, but the Database API-of-the-day way outright comical - they wouldn't even have the kinks out of the previous one before the next one came along.

    With Java's deprecation, you can make your panic fixes, note the deprecation warnings, and make proper version-related updates when things are less stressful (yeah, like that ever happens). The actual Sun-supplied deprecations tend to live forever, so even some items deprecated from Java Version 1 can still be used/abused today. They are a bit weak on the clairvoyance features, however, so forward version dependencies are a bit hit and miss.

    The primary reason that major vendors are so picky about JVM brands and versions is that they want to keep their support costs down and even in a strict version-supportive environment like Java, the smaller the number of permutations, the better. Even when the language itself is supportive, the bugs vary from release to release, and yes, some "clever" application programmers do code to internal implementation details or mis-read specs.

  31. Re:When was Android first published? by devent · · Score: 2

    I think they started developing Android way before a first release of a Android phone? From wikipedia:

    > Android, Inc. was founded in Palo Alto, California, United States in October 2003 [...] Google acquired Android Inc. on August 17, 2005, making Android Inc. a wholly owned subsidiary of Google.
    > On 17 November 2006, Sun announced that it would be released under the GNU General Public License (GPL), thus making it free software. This happened in large part on 8 May 2007;
    > J2SE 5.0 (September 30, 2004)

    So I think Palo Alto started development of Android in 2003, which at that time Java 1.4 was available.

    I'm not a lawyer, but since APIs are only a dictionary of methods, classes, (i.e. of names or facts) they are not protected by the copyright law. Please go to http://www.groklaw.net/staticpages/index.php?page=OracleGoogle to a better explanation.

    --
    http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute