Slashdot Mirror


Java On 8-bit Platforms

ScrotalDwarf writes: " OneEighty software has released the world's first 8-bit Java VM. A fully functional Java VM, kilobytes rather than megabytes, in size! It's aimed at the mobile markets, but being smaller it's a whole lot faster - a fast Solaris JVM implementation!? If that wasn't enough, it's actually based on an implementation of a Turing machine. "

160 comments

  1. Is there a point? by WarSpiteX · · Score: 1

    So many mobile devices are at least 32 bit, nevermind 16 or 8. This seems like a wasted effort - an effort that could have gone to better things.

    Speaking of which, do 8 bit machines actually have enough memory and speed to handle Java code? It's not exactly the fastest code in the world...

    --


    I'm a little segfault, short and stout.
    1. Re:Is there a point? by ncc74656 · · Score: 1
      Speaking of which, do 8 bit machines actually have enough memory and speed to handle Java code? It's not exactly the fastest code in the world...

      It depends on how it's configured. Until 1992, my main computer was an Apple IIe (definitely an 8-bit box) with 1 meg of RAM and 40 megs of disk...and that wasn't even the most you could put in there. (I also had it running at 10 MHz, so it was pretty damn quick for the time. Used AppleWorks for writing papers and ProTERM for dialing BBSes...fun stuff.)

      --
      20 January 2017: the End of an Error.
    2. Re:Is there a point? by toriver · · Score: 1
      This seems like a wasted effort - an effort that could have gone to better things.

      Be sure to complain that people shouldn't decide for themselves what to spend their time and energy on whenever someone e.g. ports Linux to another platform, or spend time writing useless code instead of helping starving children in Africa.

  2. Java on a Turing Machine! by autocracy · · Score: 2
    Just don't spill it...

    Seriously, this may not be the most important article on Slashdot, but it is an important advancement. Being able to have Java on your cell phone actually serves some purpose (as opposed to a few other things cell phone makers have come up with). It allows just about anyone to put whatever they want onto their cell phone at little / no cost. The downside: M$ starts making cell phone programs and your phone crashes in the middle of a conversation (it doesn't disconnect, it doesn't drop the signal, it gives you the LCD screen of death).

    OTOH, what's the point behind the Turing machine basis?

    It's all about the Karma Points, baybee...
    Moderators: Read from the bottom up!

    --
    SIG: HUP
    1. Re:Java on a Turing Machine! by Faizdog · · Score: 1

      Why is this off topic? THe moderating system doesn't work at all.

      --
      -"Those who fought today will die tommorow."-
    2. Re:Java on a Turing Machine! by tshak · · Score: 1

      The downside: M$ starts making cell phone programs and your phone crashes in the middle of a conversation (it doesn't disconnect, it doesn't drop the signal, it gives you the LCD screen of death). No problem: Just buy a phone without C# support.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    3. Re:Java on a Turing Machine! by Ristretto · · Score: 1
      An interesting side note: A friend of mine had his Sony cell phone crash on him. The phone was locked up and on the LCD screen you could clearly read that an assert() had failed. So cell phones are already crashing on us, without any help from Gates & Co.

      Which leads to a good reason why Java would help tremendously on such devices. The assertion failure we witnessed was from a zero-deref, something that would throw a Java exception and could be handled better than locking the phone. Countless other common programming problems are handled in a similar fashion in Java (e.g., out-of-bound array accesses). Obviously Sony didn't care too much about making their cell phone program truly robust, but these issues become increasingly important for other, more critical embedded devices.

    4. Re:Java on a Turing Machine! by rasjani · · Score: 2
      >Being able to have Java on your cell phone
      >actually serves some purpose (as opposed to a
      >few other things cell phone makers have come up
      >with).

      With release like this you can run java on cellphone ? Really ? I thought this has allready be done, atleast in nokia's cellphones. Or what do you think about first nokia waphones (7110) writing "strange" java.net exceptions to its screen in some error situations ? Sounds pretty obvious that Nokia is running java allready even it seems to be out of users reach.

      Did some search on this topic and Motorola is releasing new cellphones next month that allow users to write java for them. Check out this url for more info. Would be nice but im getting that new communicator when its out ;)
      --

      --
      yush
    5. Re:Java on a Turing Machine! by xban · · Score: 1

      assert() failed - does that mean Sony ships debug code (-DNDEBUG not there?)

    6. Re:Java on a Turing Machine! by Ristretto · · Score: 1

      We thought about it and decided that Sony may have made the decision that an abort on failed assert() was safer than allowing the code to continue in an unacceptable state. This trade-off makes sense here since safety is far more important than performance in a cell phone. Of course, they could have also just forgotten to define NDEBUG :).

  3. Comp-sci question by ccoakley · · Score: 1
    Isn't any JAVA VM going to necessarily be a turing machine? Someone correct me here if I'm wrong, but isn't a PERL interpreter also a turing machine?

    --
    Network Security: It always comes down to a big guy with a gun.
    1. Re:Comp-sci question by -brazil- · · Score: 1

      Wrong. Turing machines are merely a very simple form of machine that has been proven to be theoretically as powerful in terms of what it can compute as the most powerful machines we have. But there are less powerful ones.

      --

      The illegal we do immediately. The unconstitutional takes a little longer.
      --Henry Kissinger

  4. well.duh.. by Zurk · · Score: 1

    java never had the limitations of C/C++ and other languages with bit precision on the int/long/floats. java has arbitrary precision which is processor independant anyway (BigInteger/Decimal can be arbitrary bits) so this is just another VM port. nothing to write home about. sun's embedded java/picojava is equally small (or supposed to be).

  5. nintendo by donglekey · · Score: 2

    Finally java comes to my NES and Sega Master System! Now I can .... do nothing more than I previously could.

    1. Re:nintendo by DrSkwid · · Score: 1

      deeta
      .oO0Oo.

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  6. so that means by ^chuck^ · · Score: 1

    That I can run java on my 286 now? As well as my atari? What about my new portable atari 2600 I just made? I wonder if it supports WAP...

    --

    Lemure, wtf! Don't you mean Lemur?
    1. Re:so that means by sith · · Score: 1

      The atari 2600 was 4bit wasn't it?

    2. Re:so that means by Frymaster · · Score: 1
      That I can run java on my 286 now?

      In point of fact, it means you can run java on your pen now (don't ask me why you would want to... manual spell check perhaps?) This is a fascinating fact you could have learned by reading the article.

    3. Re:so that means by ^chuck^ · · Score: 1

      don't worry I got it...
      It's okay to add some humorous aspect to things you know...

      --

      Lemure, wtf! Don't you mean Lemur?
    4. Re:so that means by dark_panda · · Score: 2

      According to what I've read, I think the 2600 was an 8-bit system. It had a Motorola 6507 CPU, which was a modified 6502. The 6502 was an 8-bit processor with a 16-bit address bus. The 6507 was the exact same processor with two modifications -- a 13-bit address bus and it had no interrupt lines.

      J

    5. Re:so that means by Paradise_Pete · · Score: 1
      Why do they say road works when it doesn't?

      What?

    6. Re:so that means by ^chuck^ · · Score: 1
      Your '286 is a sixteen bit processor.

      Which means that it would not run a standard 32-bit java interpretor.

      --

      Lemure, wtf! Don't you mean Lemur?
  7. Breakthrough? by Flavio · · Score: 1

    Breakthrough Brings Java(TM) Capabilities to Eight-Bit Platforms

    Since when running something on an 8-bit platform a breakthrough?

    I can't believe this, since every single modern, useful chip has at least 16 bit words! Come on, who's going to run Java on an 8051 processor or technological equivalent?

    I once thought the word breakthrough meant an advance into the future...

    Flavio

    1. Re:Breakthrough? by willy_me · · Score: 4
      I can't believe this, since every single modern, useful chip has at least 16 bit words!

      Two reasons why we still have, and probably always will have 8 bit chips:

      Cost : 8 bit chips are cheaper to make.
      Power Consumption : 8 bit chips use less power.

      I can see no reason why a simple, non-scientific calculator would ever want to use a 16 bit chip. It would cost more to make and require a larger solar panel. What's the point? There are more 8 bit chips out in the marketplace then any other type of chip and this isn't going to change any time soon. Eight bits is hardly useless.

      Willy

    2. Re:Breakthrough? by ahaning · · Score: 1

      I think the breakthrough is that new doors have opened. Maybe people who previously wouldn't have been able to write code for embedded systems now can.

      Don't underestimate the usefulness of an old 80-something. What do you think is operating in, say your microwave? A 386? Or in any little old object that you use without thinking. Hey, the graphing calculators that you see so often in highschool and college don't run on superfast processors. In fact, the TI85 that I have runs on a Z80 from Zilog (actually, some ran on Z80 clones) which, I believe is just an 8080, though I'm likely wrong.

      Besides, not everyone has to or wants to sit around on the latest tech. Using old technology to it's maximum is, IMO, much more impressive than pulling billions of triangles out of today's machines. No, I tell a lie, they are both very cool. Using anything to it's full potential (and beyond) is very cool (IMO).

      --
      Withdrawal before climax is very ineffective and those who try this are usually called "parents."
    3. Re:Breakthrough? by Rogain · · Score: 1

      Clearly you have not thought through the implications of a beowulf cluster of these things!!

      --
      The current Slashdot moderation system is made by gay communists!
    4. Re:Breakthrough? by Rogain · · Score: 1

      What do you mean, if such a cluster were to topple over, millions could die, crushed under the weight of thousands of 8bit processors.

      --
      The current Slashdot moderation system is made by gay communists!
  8. Oh, NO!!! by Flavio · · Score: 3

    including "intelligent" pens, lighting, telephones and vehicle monitoring devices.

    And PAPER CLIPS!!! NO!!!!!!!!!!!!!

    How much longer must these demons haunt us?

    Flavio

  9. A Turing machine? by jmaessen · · Score: 2

    The referenced paper is a little slim on actual technical content. It appears that what they're proposing is in effect an extensible bytecode (what they refer to as "adding new procedures"). This would not in itself be novel---it's one of the guiding principles behind Forth, which is one of the reasons Forth is still used for resource-constrained portable coding. There does seem to be provision for stuffing all those new bytecodes into a single namespace.

    Not surprising, but it will be encouraging if they succeed in getting a fully functional system in a truly small footprint. More power to them. But it'd be nice to see more detail on what their tools are _really_ doing.

    -Jan

  10. Cool product, unbelievably stupid whitepaper by Anonymous Coward · · Score: 1

    While the creation of an 8-bit JVM is pretty cool, stay away from the von Neumann/Turing white paper listed on the site. It is the stupidest thing I have ever read. They say that part of their revolutionary new architecture is none other than...a software stack. They also imply that operating systems do not use stacks, but their architecture or "resuable modules" does. Hmmm...last time I looked this was Java. Last time I looked code being executed used stacks to keep track of where they were.

    1. Re:Cool product, unbelievably stupid whitepaper by Frymaster · · Score: 3
      von Neumann/Turing white paper listed on the site. It is the stupidest thing I have ever read.

      When I was 12 (yes, twelve) my dad got me the complete set of Time/Life books on computers. I admit that to this day (20 years on) I still cast my memory back to those glossy, 4-colour pages when I make an outrageous statement about the "conservative design of CDCs and the original Crays" or the "inherent, uh, complexity I s'pose, of vector processing, uh, chips? architecture?"

      anyhoo, that von-neuman/turing article looks a heck of a lot like a photocopy from that time/life book.

      hm.

    2. Re:Cool product, unbelievably stupid whitepaper by Frymaster · · Score: 1

      I would like to apologize for not hitting the "No Score +1 Bonus" button on that previous post. Bad mouse-eye coordination day. Me bad.

    3. Re:Cool product, unbelievably stupid whitepaper by rakslice · · Score: 1

      I'm assuming that their product is just a new instuction set bytecode that contains 1 instruction procedure calls or something like that, coupled with a design philosophy of using tons more procedures and giving the procedure set a smoother complexity gradient (and software to optimize towards this goal automagically). Sounds kind of cool to me.

      But, they really need to fire their tech-writing staff and get a new one. (What the heck is an "MPEG-3" decoder? Does someone not know that MP3 Audio is in MPEG-1?)

  11. this is good! by ^chuck^ · · Score: 1
    I'm expecting a slew of comments, some from my own friends, ejaculating their opinions of how slow java can be and its worthlessness. HOWEVER, this news is good. While not probably the most difficult project to attempt (but still pretty damn hard), this now allows for application integrity and continuity from site to site.

    The biggest pain in the ass for website developers is the fact that no webpage looks the same on all browsers. Imagine if you could provide a type of core, using JINI or JMI with it, so that the user sees the same java front end no matter what the machine's specs are. Then using JINI/JMI, you could place the difficult, number crunching part of the software on another machine back at your place. And the fact that all of this is write once, run [almost] anywhere just make the whole package deal ooze sexiness.

    Time to dig out those old cheap 8-bit processors and overclock the hell out of them.

    --

    Lemure, wtf! Don't you mean Lemur?
    1. Re:this is good! by ^chuck^ · · Score: 1
      I finally post something I deem intelligent for myself and I get hit by a lameass sexbot....

      Why? Why do people post this fucking junk? I don't fucking get it.

      --

      Lemure, wtf! Don't you mean Lemur?
    2. Re:this is good! by Frymaster · · Score: 1

      I never thought I'd fondly remember the "Natalie Portman pours hot grits down my penis bird's pants" days...

  12. really new? by mattdm · · Score: 3
    Although they claim "full Java capabilities", it's unclear exactly what exactly they've implemented. What of the standard Java class libraries have they implemented? (The white paper on their web site dismisses graphics, for example.)

    The press release also makes some extremely dubious claims about "a novel architectural approach that allows the creation of extremely compact software, often many times smaller than that built using traditional coding techniques." Uh-huh. It's magic!

    The 180sw web site says that this is the first 8-bit Java VM. That's definitely not true -- TinyVM for Lego Mindstorms has been around for quite a long time, and I doubt that's even the first. This "GENEVA" thing may be more complete, but that's a different issue.

    --

    1. Re:really new? by Breace · · Score: 2

      And there are other less known products out there, for example http://www.jakom.de. You can even download it to evaluate,- e.g. this is a _real_ (8 bit) product.

      Some people just make good products, others produce the noise... Slashdot should be about the first group, not the second...

      Breace

  13. "Turing" by mattdm · · Score: 3
    Oh my. To answer myself a bit about the "magic" part: I just read the white paper on "Turing machines". It seems that the people there read a (non-technical) biography of Turing and thought it was really cool. They seem to totally miss the concept that modern computer hardware essentially implements a universal Turing machine, and have instead decided that the ideal thing to do is re-implement an emulated universal Turing machine in software. I don't think I need to go on any more about how silly that is....

    Okay maybe a little bit: have you ever designed a Turing machine from scratch to do something as simple as multiply two numbers? It's incredibly tedious. There's a reason we invented more complicated instruction sets, and then higher-level languages.

    --

    1. Re:"Turing" by Density_Altitude · · Score: 1

      Absolutely right. And moreover look at the very first sentence of the paper:
      OneEighty Software Ltd announced a major technological breakthrough which will, for the first time ever, extend full Java capabilities to eight-bit processors using ultra-compact coding.

      I almost laught my head off. Java, eight-bits, turing machine, ultra-compact... mwaheaheahea!! Is it just me or all these words cannot fit in the same text??
      If all this is a true story, I guess they meant "stripped down version supporting primitive features" instead of "ultra-compact Java implementation based on turing machines"
      Haha ;-)


      --

      --
      delete free(system.gc);
    2. Re:"Turing" by SimHacker · · Score: 1
      Yes, the white paper was definitely written by somebody who just barely grasped the concept of Turing Machines, and didn't realize (or believe the implication) that the fantastic computational abilities he claimed was unique to their system was actually widely applicable to ALL modern computers.

      Funny how they have the nerve in the faq to pose themselves straw man questions like "Can it interoperate with system XYZ?" and answer "Of course, since our system is Turing complete!". Well FYI systems XYZ and ABC and 123 and A to Z are all Turing Complete -- It's No Big Deal, and they're making a worthless and facitious statement, like "oh, that's just a simple matter of programming". At least Spinal Tap had enough self delusional integrity to claim something UNIQUE: that their amplifier "went to eleven".

      Next thing we know they'll be suing every computer company on Earth for violating their "Turing Machine" patent.

      -Don

      --
      Take a look and feel free: http://www.PieMenu.com
    3. Re:"Turing" by SimHacker · · Score: 2
      Dear One80 Publicity Department:

      I respectfully submit these slogans for use in your advertising campaign:

      "Special instruction that sets P = NP in 1 clockcycle!"

      "Now, with Patented Order(1 Click) [TM]-Complete (R)-Rated (C)-Plus-Plus E-Commerce Algorithms."

      "Offering the world's first fully optimized totally integrated long term zeroth order solution to the halting problem!"

      "Write once, halt anywhere."

      "We believe our own hype." Oops -- I sold all rights to that one to Sun, so you'll have to negotiate a license for that slogan with Sun directly. There's a special discount for Java VM licensees.

      -Don

      --
      Take a look and feel free: http://www.PieMenu.com
    4. Re:"Turing" by Bozdune · · Score: 1

      This comment says it all, and it's hilarious! Mod it up!

  14. Woohoo!! Java on my Nintendo Entertainment System! by PsionicMan · · Score: 1
    Hehe, I was going to post this, but you beat me to the punch.

    Although you have skipped several systems... Game Gear and Game Boy being the most noticable, though it's my understanding that the Game Gear was really nothing more than a Master System in a smaller package--hence most SMS emulators also capable of running Game Gear ROMS. I'm pretty sure that Game Boy is fairly different from the NES, though.

    Also, what about those great TI calcs? Aren't they 8-bit? IIRC, the ones that are graphing but not the 89, 92, or 92+ are running on a Z80. Considering everything that those wonderful machines have had coded for them (my 86 has Zelda, Lemmings, Mario, Tetris, and various other things on it right now), it would just be a matter of time until we could be running all of those wonderful java games during math class.

    Yes, I'm joking, obviously... but if someone were to do this, you can bet that I'd be one of the first to check it out and fiddle with it. It'd be YAIODIBYC - Yet Another Instance Of Doing It Because You Can.

    --Psi

    Max, in America, it's customary to drive on the right.

    --

  15. Worthless whitepaper by sklib · · Score: 2

    The referenced whitepaper is kind of a POS. They claim that with 26 kilobytes of operating system, it's possible to implement any solution. That's fine, but where are the drivers for the video card going to come from? Where is the sound going to come from? Where will the drivers for my funky backup drive reside? They will all have to be tacked on to those 26 kilobytes of memory allocation and printing to the screen, and the result is going to be a system just as large as anything else out there, once you add all the actually useful stuff. Besides, Java is only useful when it has some windowing libraries and the like, those still need to be built for each cel phone or whatever device that the stuff will go on. I don't think that something can really be touted as a Java implementation unless a large majority of the libs (javax.swing.*, etc) also exist. If you can't run StarOffice on your cel phone, what good is it?

    --
    -S
    1. Re:Worthless whitepaper by BradleyUffner · · Score: 1

      This isn't designed for desktops or servers, it's for cell phones. You don't need a video card, printer, or tape backup drivers for those. Windowing libraries for a cell phone is just plain scrary...

  16. not even close by eric17 · · Score: 2

    I'm not sure exactly what they're claiming but the TINI board has run java on an 8 bit processor for some time.

  17. I'll take that paper clip. You won't need it... by PsionicMan · · Score: 2
    ...when the revolution comes.

    Before long, the paper clips will take on the task of organizing all of those toasters running Linux into a formidable army. I'd bet that they take on the people who eat Pop-Tarts and bagels cold first... it's people like that that are driving toasters to oblivion.

    Viva la revolucion!

    --Psi

    Max, in America, it's customary to drive on the right.

    --

  18. Even TeX macros are Turing complete by Ars-Fartsica · · Score: 2

    Turing completeness is not a lofty goal for an instruction/programming system. You'll find Turing completeness in the strangest places - theoretically I can produce any computable result with TeX macros.

    1. Re:Even TeX macros are Turing complete by tibbettsatmit · · Score: 1

      Actually because TeX has limitted pools of memory, it is not turing complete even if you assume that the hardware is infinite. If you cheat and let TeX write to disk you can make it though. Some other people talked about vi being Turing complete. Most turing machines for vi have the same problem, because real vi's (ie not vim) have line length limits.

  19. Re:really new? (no) by mmontour · · Score: 2

    Another contender for "first 8-bit Java VM" is Dallas Semiconductor's collection of embedded Java devices at www.ibutton.com.

    There's some neat stuff, like the "tini" board - a small (68-pin SIMM form-factor) embedded computer with 10BaseT ethernet and TCP/IP networking. It can run a web server, as well as Telnet and FTP. It also has a couple of serial ports for interfacing to other components.

  20. When will I see Java on a Commodore 64? by Anonymous Coward · · Score: 1
    The Commodore 64 is a perfect Internet and Java appliance. With custom chipset, high-res graphics, excellent audio and 64K of RAM, it can run many applications from games to graphical desktops (GEOS) that rivals the Macintosh. The C=64 has proven itself to the world since the 1980s and is still the most popular computer in the world (by the number of units sold, in terms of single computer models).

    Maybe it is time for the C=64 to be made again, with a customized Java virtual machine, to serve as the basis from Internet terminals to PDAs?

    1. Re:When will I see Java on a Commodore 64? by spongman · · Score: 1
      i think you should clean out your crackpipe.

  21. almost certainly a hoax by Eric+Smith · · Score: 3
    They may have pulled the wool over some investor's eyes, but their white paper does not describe any new technology whatsoever. If they are to be believed, they've invented the revolutionary new technique of subroutines.

    In general, it takes more bits of memory to implement a function on a Universal Turing Machine than on a conventional microprocessor. The point of the UTM wasn't that it was efficient, it was that it was a very simply machine that could compute anything that is computable. But not necessarily very quickly.

    I hope the managers of the funds my 401k is invested in don't invest in companies like this; do they have experts to evaluate high-tech startups?

    1. Re:almost certainly a hoax by akh · · Score: 2

      About the only novel thing mentioned in whitepaper mentioned was a means of dynamically adding to the system libraries (though even this isn't very original). Other than that everything they mentioned was simply standard design practive made to sound innovative. ("recursive functions" and "software procedures" are new ideas?!? - their quotes btw) Add to this the fact that their website has nothing but investor info and this starts looking really dubious.

      --
      Accept Eris as your Fnord and personally sate her
    2. Re:almost certainly a hoax by Johnny+Starrock · · Score: 2

      99% of the time mutual funds invest in only stock and sometimes bonds. feel free to correct me if i'm wrong.

      --

      end communication
  22. Does this mean... by Fervent · · Score: 2

    ...I can finally get Java running on my NES?

    --

    - I don't care if they globalize against free speech. All my best free thoughts are done in my head.

    1. Re:Does this mean... by sohp · · Score: 1

      The Sega Dreamcast already does Java. For that matter, the Sega Web site is powered by Java.

  23. Comment removed by account_deleted · · Score: 3

    Comment removed based on user account deletion

  24. Why they're called OneEighty Software by ChaosEmerald · · Score: 1

    Because they are facing backwards, 180 degrees in the wrong direction.

    --

    I am a bad speler. Please ignore speling meestakes in me poast.
  25. Why do things need to be practical to be posted? by zeppelin71 · · Score: 2

    Lately it seems like people complain about how impractical certain achievements posted on Slashdot are. I was under the impression that in the eyes of fellow geeks, hacks stand on their own merit - being judged on how clever they are and nothing else. When did all this concern about how useful or practical an accomplishment is factor into the equation about whether it deserves recognition? (ex. a Slashdot article). Java on 8 bit machines is an extremely cool hack - inter-geek approval where it is merrited - if they want to try and make a living off this hack, that's their business (and their investors' I suppose).

  26. All digital computers are Turing machines! by KFury · · Score: 3

    The Church-Turing Thesis is the preposition that any discrete function can be solved by symbolic manipulation. A Turing Machine is defined as a device which can solve a computable function by means of symbolic manipulation (like 1s and 0s, for example). (A Universal Turing Machine is a machine that can emulate any Turing Machine, and can therefore solve any discrete function.)

    Basically, this means every computer that operates by rules of logic (AND, OR, NOT, etc, as opposed to chaotic or fuzzy systems) is a Turing Machine. Your desktop PC, your Nokia, your calculator watch, your Chinese water clock, are all examples of Turing Machines.

    Personally, I'd be far more amazed by a JVM that was implemented by a device that was not a Turing Machine.

    Kevin Fox

    1. Re:All digital computers are Turing machines! by Jerf · · Score: 2
      FWIW, if you've implemented Java on it, it's at least a Turing machine, but no less. It could be a superset, but no superset has been shown to exist (which isn't to say that it doesn't).

      Proof left as an exercise to the reader. (Hint: Java is itself Turing complete, which implies...)

    2. Re:All digital computers are Turing machines! by mattdm · · Score: 2
      If you use their "secret" language, I bet it would be somewhere between assembler and C programmer.

      Not even. Writing functions for a basic universal turing machine, which is what they seem to imply, would be extremely tedious -- way more so than writing in ASM (or even x86 machine code).

      --

  27. slow by gags+bunny · · Score: 1

    Java runs slow enough on 16 and 32 bit. I know there is fuctionality here, but how much can you can when you slow it down. Besides, shouldn't they be focusing on the soon to be released 64-bit platforms. I know intel is working hard on this and AMD is right behind.

  28. Re:Weather by GMontag451 · · Score: 1

    Offtopic!!! Wtf! It was a joke! the current temperature in hell As in Hell just froze over, you ignorant fucks!

  29. Z80 by spiro_killglance · · Score: 1
    Z80 just an 8080, noooo
    The Z80 was backwards compatable with the 8080 but added lots of new toys like indexed addressing inprovements interrupt handling, automatic refreshing of DRAM, a 16-bit I/O address space (8080 had the 256 line I/O space seperate from the normal 16-bit memory), memory block copy post increment and repeat in a single instuction. A spare set of registers for fast context switching. Bit set, reset and test.

    I wonder this new VM would fit on a ZX spectrum, the £100 Z80 computer from the 1980s?

  30. It's based on Forth by dmoen · · Score: 4
    I've seen Bernard Hodson's stuff on the net before. He has a Forth interpreter and a library of subroutines that occupies less than 32K, and he has been making grandious claims about his software for years. The last time around, he was claiming that his software constituted a revolutionary new "gene based" approach to programming (he calls Forth subroutines "genes"), and, just like this time around, he was making a big deal about his Forth system being equivalent to a Turing machine

    I guess he had problems convincing people to program in Forth, because now he has a Java front end.

    --
    I have written a truly remarkable program which this sig is too small to contain.
    1. Re:It's based on Forth by joto · · Score: 1

      Thank you for clearing this up!

    2. Re:It's based on Forth by Bongo · · Score: 1

      he has been making grandious claims about his software for years

      From the whitepaper:

      One final quote is useful; from a paper Turing gave in 1945, which describes, almost prophetically, what we have accomplished with ORIGIN. "There will positively be no internal alterations to be made even if we wish suddenly to switch from calculating the energy levels of the neon atom to the enumeration of groups of order 720". In modern terms we would say that there will positively be no internal alterations in moving from a spreadsheet to a graphics package to an airline reservation system, all use the same "software procedures", the only difference in the applications being in the sequence in which the "software procedures" are processed. The applications developed with the set of "software procedures" are themselves quite tiny, taking only a few dozen bytes for applications that, within the conventional approach, take tens and hundreds of thousands of bytes.

      Well, it does all sound pretty revolutionary, and too good to be true. But life is strange.... and maybe CS took a wrong turn after Turing, and maybe Bernard Hodson (who was part of Alan Turing's department at the University of Manchester) has understood this, and maybe redressing such a fundamental mistake will revolutionise computing. And maybe the Establishment won't listen. Maybe he'll be dismissed as a quack.

    3. Re:It's based on Forth by starling · · Score: 1
      the only difference in the applications being in the sequence in which the 'software procedures' are processed.

      This begins to sound less revolutionary when you consider that every instruction supported by a CPU is a 'software procedure' (often literally so, written in microcode).

      Some of the more complex instructions supported by a CISC processor would need, oh, perhaps dozens of bytes to implement on a RISC processor, and guess what - by arranging them in different ways you can make lots of different 'programs' as we call them in modern terms.

      I hate to seem cynical but this just doesn't sound like anything new.
    4. Re:It's based on Forth by Bongo · · Score: 1

      This begins to sound less revolutionary when you consider that every instruction supported by a CPU is a 'software procedure' (often literally so, written in microcode).

      You could say, though, that when the 'building blocks' become a certain size, then new things can happen. Like, DNA is just a bunch of molecules, but it is also not just a bunch of molecules.

      Anyhow, I don't have a strong opinion either way. It's just that a lot of posts are saying "no big deal/it's a scam", and I wonder if that's the whole story.

    5. Re:It's based on Forth by starling · · Score: 1
      You could say, though, that when the 'building blocks' become a certain size, then new things can happen.

      A fair point, and I think this is what they are trying to claim has happened. Personally I disagree, but there's no denying that the Forth threaded-interpreted model is very good at getting a lot out of limited resources. The PR fluff is just a bit overblown.

      I wonder how applicable what 180 has developed is to writing efficient code on VLIW machines? Hmm, time to do some looking around.

  31. What kind of silly joke is this? by joto · · Score: 3
    According to their whitepaper, they have made a Universal Turing Machine in software, running on conventional microprocessors. They are then writing (what?) Turing machine programs for this Turing machine instead of writing normal assembly or C code. This can't be true. Anyone who has ever taken a course on Turing machines know that they are very impractical devices. Any non-trivial program (such as multiplication of two numbers) will take an inordinate amount of time, and if you want to use your multiplication routine in more than one place in your program, then you have to copy it verbatim. This usually leads to a combinatorial explotion in the size of Turing-machine programs. And that is certainly not a way of saving space.

    Furthermore, Turing machines are extremely unpractical computing devices. They are not allowed to have any kind of I/O during computation. All input must reside on the tape at input, and any output must be written to tape before termination. I think such a view of computing would be one of the most useless things ever to use in embedded computing where side-effects is usually all that matters.

    Now, there are ways around these limitation, such as using more than one tape which can often reduce a Turing machine design dramatically. But these reductions are usually only conceptually. If you take the time to write up all the state-transitions and so on in one large table as you eventually will have to, if you are to implement it in software, it doesn't really matter. There is also the concept of an Oracle Turing Machine, where you could have special states, and if the machine decided to enter one of those states, magic would happen, and the tape would suddenly be changed in accordance with the procedure associated with that state (e.g, a special state for multiplication of two 32-bit numbers). It could also be used as a way to fake polling I/O. But it still would be nowhere as convenient or practical as just doing normal assembly programming.

    I'm not sure what they are trying to get us to believe here. Ok, they've made a small Java VM (only 5 times bigger than TinyVM). They do, however also claim to have revolutionized computing by reinventing the Turing Machine. Given the lack of technical details on exactly what this means, it's impossible to know whether it is correct. But, considering the alternative of a hoax, marketing madness, or some other unknown reason for them to mislead us, I find it hard to believe that it can be true.

    1. Re:What kind of silly joke is this? by Compuser · · Score: 1

      There is this fascinating language called
      unlambda. It's minimalistic, Turing complete
      and compilable. If you are not convinced by
      the above poster and want an example of why
      Turing machines are hideous, try coding a
      calculator in unlambda.

    2. Re:What kind of silly joke is this? by toybuilder · · Score: 1

      Silly joke? A scam? Or is there something to this? I dunno, but doing a little web-searching on "Bernard Hobson" (which subsequently leads to GENETIX, Bloor Research, SoftwareReview.com, www.turing.org.uk, and King's College London, and more) shows that this guy has been around for quite a while, and apparently have been working with the theoretical foundations of this Turing-based-JVM for quite some time... Of course, I researched everything on the web... And, since I read from several different websites, it must be true, right?

      Owww... My head hurts...

    3. Re:What kind of silly joke is this? by joto · · Score: 1

      Ahh, unlambda... Unlambda is undoubtably the most important innovation for the last 10 years in obfuscated programming languages. So wonderfully obscure, and yet based on some of the finest and most elegant concepts of traditional computer science. It makes my heart sing with joy!

  32. Based On A Turing Machine? by HiyaPower · · Score: 2

    Good grief! That means that you could implement this in my favorite language Brainfuck. []!

  33. There are already _millions_ of 8-bit java VMs by Anonymous Coward · · Score: 4
    The JavaCard standard defines a very small java that can run on tiny platforms. There are already millions (literally) of card-JVMs already shipping.

    If you have an AMEX "Blue" card, then you have a JVM in your pocket (I believe its an Hitachi H8, but one of the tiny 8 bit versions).

    About half of all smartcards made right now (including almost all from European giant GemPlus) run JVMs.

    Anyone who went to Sun's JavaOne show a couple of years ago was handed a rather chunky ring, which had a Dallas Semiconductor iButton on it - this too has a JVM (I actually wrote some code for mine - using the same toolchain as for regular desktop java). I believe it is an 8051 microcontroller.

    I just received a TINI board from Dallas, which is the same as the iButton, but in a DIMM form-factor. It's sooooo cool. Info about it is here

    Maybe someone should code a 4-bit JVM, so we can run it on Voyager 2 (which has two 4-bit processors) - how's that for mobile code!

    1. Re:There are already _millions_ of 8-bit java VMs by pjrc · · Score: 2
      When I saw the Dallas 8051-based 8-bit Java about 4 months ago, I was pretty amazed, though I haven't actually done any coding with it. The 8051 is a pretty slow chip, and I program it with assembly. I believe their 8-bit Java runs on a souped-up greatly enhanced 8051 variant, but still an 8-bit microcontroller.

      I just read the press release, and it looks like Hemos added the "world's first" part, which this certainly is not, since the Dallas TINI has been on the market for a while now.

  34. Real computers aren't Turing machines by bcrowell · · Score: 2
    Actually a Turing machine can do things that no real computer ever will, because it has infinite memory. A Turing machine is a mathematical idealization. It makes the math simpler if you assume an infinite memory. People use Turing machines for discussing stuff like whether a given problem is solvable in polynomial time, or proving things like the theorem that no Turing machine program can ever determine whether a given Turing machine program will go into an endless loop.

    I'm not an expert, but I believe there are also real-world computers (at least theoretical ones) that are more powerful than a Turing machine, e.g. quantum computers.

  35. Re:Woohoo!! Java on my Nintendo Entertainment Syst by schuster · · Score: 1

    Max, in America, it's customary to drive on the right.
    It's turning into a damn police state, Sam!


    Heh, that's the greatest comic ever, still makes me laugh.

    -Dan the drunk

    --
    --- Don't ever trust a woman until she's dead- B.B. King
  36. Steaming load of BS by SimHacker · · Score: 3
    Does anyone else see a big steaming load of BS, designed to bilk investors? The white paper was ridiculously trivial, devoid of real content, yet demeaningly explaining the most basic computer science 101 concepts as if the real innovations they weren't revealing were far to complex for anyone in the industry to grasp. And then we have straw man questions and answers in the FAQ like:
    "Isn't ORIGIN a proprietary technology, like Windows?

    The internal procedures are proprietary and need to remain so in order to ensure the efficiency of the software."

    Oh yeah, their software runs faster if nobody knows how it works or is allowed to observe it. Sounds like some kind of quantum computer, huh? More like an investor scam.

    Looks to me like the old codger in charge is trying to exploit the good name of Alan Turing, his former co-worker. So where was he when Mr. Turing was on trial and needed a character witness to testify about his outstanding contributions to computer science and the defeat of Adolf Hitler?

    (It's so rare I get the chance to use a legitimate ad swasticum attack.)

    "Could ORIGIN be used to program sophisticated computer games?

    There is no reason why not. In theory it can handle any application. There is nothing specific to games programming that it would find problematic."

    After that pedantic lecture on Turing machines, this vaguely reassuring "theoretical" answer does not impress me. The lack of speed may not seem "problematic" to an academic who doesn't know anything specific about game programming. But how about answering a more specific question: "For the practical programming of even simple computer games, is ORIGIN any better than Java, which totally sucks ass?"

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
    1. Re:Steaming load of BS by Compuser · · Score: 1

      I got the impression Turing machine WAS their
      innovation. The sad thing is, I am sure he would
      have no trouble patenting it.

  37. Re:well.duh no by srichman · · Score: 1
    Uh, Java is absolutely no different from C/C++ in this regard. Java's ints will always be 32 bits, its longs will always be 64 bits.

    BigInteger has nothing to do with the Java language. It's just a regular old class written in Java that stores its magnitude as a big-endian array of those 32 bit ints. If it didn't already exist in the API you could write it yourself. If you download the API source and used BitInteger as a reference, you could probably write the same thing in C/C++ in under an hour. Or you could use one of the many existing aribitrary precision C math libraries in the world.

  38. Turing Complete, yes but Quake? No... by ectoraige · · Score: 2

    Okay, so it's an 8-bit Turing complete machine. Many text editors, such as VI are complete but you ain't gonna see me playing Quake on them...

    Yeah, it's nice for Java, after all, the more machines a VM can run on, the better for it. Unfortunately, the white paper reads more like marketing spiel rather than anything else.

    If he had a point to make at all, it's that too many programmers don't write code with a view to reusability in mind. Now that is something worth reminding us...


    Amazed at how many posts have been moderated 0 in this topic...

    "A goldfish was his muse, eternally amused"
    --
    Vs lbh pna ernq guvf, ybt bss abj. Tb bhgfvqr. Syl n xvgr.
  39. Another Grandiose White Paper: The Next Big Thing by Bernal+KC · · Score: 2
    I tried to dig out more info on the ORIGIN technology they cite as the underpinning of their JVM. I didn't find much, but I did find this piece, "The Next Big Thing". I'd be interested to hear comments on the claims therein.

    So what if the folks at one80 have a flawed understanding of a turing machine. So what if one80 is using FORTH to get it done. Their claim is that they have a full 1.2 compliant, not just personal java, implementation that is tiny. Pretty cool.

  40. Re:Why do things need to be practical to be posted by spongman · · Score: 1

    err i just thought of a way to find out the way to travel faster than light. it's completely impractical but in theory it would work. does that make me really clever? not really. damn.

  41. 8bit java by tolldog · · Score: 1

    Does this mean that java is closer to being used for small embeded systems? Like I thought it was designed for?
    I am suprised that this hasn't happened yet! Who knows ... maybe we can now have several small 8 bit chips be the java interpreters. I imagine we could fit a ton of these on a pci card and do massive parallel stuff, or... we could use the proc in the box and run much much faster.
    I guess I see the worth of the project, but I doubt that it will be usefull for more than just an * marked next to the platforms that java can run on.

    Or maybe all of this is the White Castle talking...

    --
    -I just work here... how am I supposed to know?
  42. A waste of time.... by SomeOtherGuy · · Score: 2

    Wow maybe they can "backport" this to my 32 bit machine, so I can finally run java faster than paint drys....

    --
    (+1 Funny) only if I laugh out loud.
  43. NO digital computers are Turing machines! by volpe · · Score: 1

    There is not a single digital computer in existence that is as computationally powerful as a turing machine. That's because all real digital computers are Deterministic Finite State Automata (D-FSA). A Turing Machine (TM) has an infinite tape, and it is this infinite storage capacity that allows it to compute things that no computer with a finite amount of storage can compute. An FSA (of both the deterministic and non-deterministic variety) can only *approximate* a TM, by using its finite storage to emulate an infinite tape for practical-sized problems.

    1. Re:NO digital computers are Turing machines! by KFury · · Score: 2

      Sorry. You've got Turing Machines and Universal Turing Machines confused. Any device that can complete even a single function via symbolic manipulation is by definition a Turing Machine. A device that can complete any computable function is a Universal Turing Machine.

      Kevin Fox

    2. Re:NO digital computers are Turing machines! by KFury · · Score: 2

      Again, Turing Machines aren't simulations. A pocket calculator is a real, honest-to-whatever, Turing Machine. No simulation about it. It can solve a problem via symbolic manipulation. Bam: Turing Machine.

      Universal Turing Machines are simulations, because of the infinite tape (and time) needed.

      Kevin Fox

  44. Congratulations .. You've just invented FORTH! by Anonymous Coward · · Score: 2

    Although the white paper cites FORTH, it fails to demonstrate any substantative difference between its architecture and that of FORTH. Granted, my knowledge of FORTH is a little hazy, but this seems awfully similar (in fact, interpretive Java VM's are stack machines as well.)

    My understanding of how FORTH works is that each opcode is a reference to a subroutine. All subroutines implicitly read their input off the stack and leave their output on the stack. I think even conditional execution is handled in this way. There is no real difference between system routines and "user" routines, and traps to the underlying architecture are just a specific instruction that takes the jump address off the stack.

    FORTH code could be extremely compact, because the source and destination of operands and results were implicit and did not have to be coded in the instruction. A FORTH interpreter could also be very compact because the underlying architecture is very simple. A friend of mine once (late '70s) implemented a data logger in 2K of ROM by writing a FORTH interpreter that took about 30 bytes and implementing the rest in FORTH. This was done on a COSMAC (used an 1802 processor - the machine with the SEX instruction).

    Java VM's (I think) are a stack machine also, and java bytecode is quite compact for much the same reason FORTH is. Users of swing may not believe this but that's a different rant ;-}.

    Turing machines had random access storage in the form of a conceptual tape that the machine could seek back and forwards along. Hodson's white paper talks about stacks (as used in FORTH and various non turing-complete automata) but appears to refer to his VM as using a stack. I can't really see much difference between this and FORTH. Perhaps I am exhibiting high specific gravity but the parallels between this VM and a turing machine seem pretty strained. He doesn't really talk about the "stack" on this machine being random access, and I can't really see how this would help beyond the mark, dup, roll etc. operators that FORTH VM's have anyway. (Note to self - Can't actually remember if FORTH does marks on the stack; I might be confusing it with Postscript)

    To save me having to trot down the road to Borders and buy the java VM spec, could someone who understands the architectures of Java and FORTH say something cogent on the differences?

    1. Re:Congratulations .. You've just invented FORTH! by SimHacker · · Score: 1
      Well, you asked. Let me say that I like Forth, and I'm embarrased for this guy hyping Forth up as being "Turing Complete", and hope it doesn't reflect badly on all Forth programmers. Forth is great, but I don't think it's the solution to everything, nor is Java.

      One thing that makes Forth different than other languages like C, but similar to PostScript, is that it has separate return stacks and operand stacks. PostScript also has a separate dictionary stack, for scoping. Forth uses a linked list of vocabularies for scoping. PostScript uses marks on the stack (it has a special "mark" data type) but Forth doesn't, because the objects on the Forth stacks are not typed (you can't tell a zero from a mark), as they are with PostScript (or Lisp or JavaScript). PostScript is kind of like a cross between Lisp and Forth. Once I had a PostScript interpreter that could draw on the screen, I basically abandoned Forth, but still I like it.

      There are different ways of implementing Forth "threading", that are all valid, but the essential thing is that there are just a few primitives, and the rest is built on top through a "threaded" interpreter, through named layers of indirection called "words".

      The usual setup is "indirect threading," where a Forth word is compiled as a series of pointers to pointers to code, the indirect "Code Field Address" of each word to call in succession. At the cfa there is a pointer to the actual machine code to jump to. Primitives are implemented as machine code immediately following the code field address, so cfa points to cfa + wordsize.

      High level Forth words all have the same cfa pointer to the heart of the Forth interpreter, which pushes the return stack and loops over interpreting the pointers following the cfa one by one.

      The Forth compiler is written in Forth itself. Programmers are meant to be able to extend the compiler to implement specialized control and data structures, by writing "immediate" words that are executed at compile time, like Lisp macros, that can compile code and data into the word being defined.

      Control flow is implemented by immediate words like "if", "then", "else", "begin", "while", "do", "loop", ";" etc, which are Forth words that compile calls to other low level run-time primitives like "(?branch)", "(branch)", "(loop)", "(exit)", etc: usually compiled words that muck around with the Forth return stack and registers.

      You can move numbers between the return and operand stacks with ">r" and "r>". Literal data is pushed onto the operand stack by the word "lit" followed by an inline word sized bit literal, or the ever popular "clit" followed by an 8 bit character literal.

      The words "create" and ";code" let you write Forth words for defining other words (or data types) that are implemented by machine code (that you enter in reverse polish notation).

      The high level version is "<builds" and "does>" which let you write your own constructors and interpreters in Forth.

      Some Forth systems use "direct threading", in that the code field address contains actual code to jump to, instead of a pointer to code. Forth words can then be compiled into a series of machine language subroutine calls (or whatever it takes), or they can be a more compact series of pointers to code, interpreted by the Forth main loop.

      The Novix Forth Engine was a microprocessor designed to execute Forth, that had a separate bus to the return stack, operand stack, and main memory, that it could access all at the same time. The Forth compiler optimized Forth code, collapsing a sequence of parallelizable instructions into one bitslice-like instruction that did them all at once, like using the alu, pushing a number on the operand stack, and popping the return stack.

      Java uses a totally different kind of VM than a pure Forth system, although it's similar to Forth in a lot of ways. It's a byte code interpreter. Some Forth systems are byte code interpreters (like Open Firmware on Mac PowerPCs and the L1-A Sun boot prom Forth), but not necessarily nor usually. Threaded does not equal byte coded. Byte code interpreters have been around for a long time before Java in many forms, like SCUD Pascal.

      The best thing about the 1802 microprocessor is that it had a "GET HIGH" instruction.

      -Don

      --
      Take a look and feel free: http://www.PieMenu.com
    2. Re:Congratulations .. You've just invented FORTH! by Gordonjcp · · Score: 1

      This was done on a COSMAC (used an 1802 processor - the machine with the SEX instruction).
      The 6800 had BRA and SEX...

  45. Turing machine is it, so far. by Goonie · · Score: 2
    Quantum computers, though they (will) have some wacky, wacky capabilities, in a sense don't have any more abilities than a standard Turing machine. Why? Becuase, as I understand things, quantum computers have a strict subset of the capabilities of what's called a non-deterministic Turing machine (to a first approximation, a Turing machine that can fork itself every time it needs to make a decision). Now, the really interesting thing about NDTM's is that everything you can do on one can also be done on your bog-standard deterministic Turing machine (by putting each fork call on a queue and executing one step of the "virtual turing machine" at a time). Now, this is a slow process (and some things that are currently computationally infeasible become tractable if a real analogue to a NDTM became available), but the point is if you ignore time, NDTM's don't give you any more abilities.

    Roger Penrose is perhaps the latest of a long line of individuals who have argued the brain has powers beyond a Turing Machine. Despite his claims, the jury is definitely still out on this.

    --

    Any sufficiently advanced technology is indistinguishable from a rigged demo
    --Andy Finkel (J. Klass?)
    1. Re:Turing machine is it, so far. by wdavies · · Score: 1

      ok, I still am at a loss on QC and its relationship with ND FSA (rather than RE). NP is based on FSA isn't it ? (Classic NP-Complete problem is SAT, which is a FSA ? ) Maybe the meta-program to implement a SAT solution is in RE? Cheers, Winton

    2. Re:Turing machine is it, so far. by Goonie · · Score: 2
      Non-deterministic FSA have the same capabilities as deterministic FSA. However, the minimal DFA with the same language as a minimal NFA may have an exponentially greater number of states. Neither have anything much to do with quantum computing, nor NP. In any case, nobody has demonstrated that a quantum computer can be used to solve any NP-hard problems in polynomial time (factoring is *not* NP-hard).

      This stuff gets rather confusing, and you need to be very specific in your terminology. My textbook on the topic was Languages and Machines, by Thomas A. Sudkamp. There are others that might be a little more accessible.

      --

      Any sufficiently advanced technology is indistinguishable from a rigged demo
      --Andy Finkel (J. Klass?)
    3. Re:Turing machine is it, so far. by Blue+Neon+Head · · Score: 1

      Roger Penrose is perhaps the latest of a long line of individuals who have argued the brain has powers beyond a Turing Machine. Despite his claims, the jury is definitely still out on this.

      Well, it depends on what sort of Turing machines you're talking about. You are correct when you say that nondeterministic TMs have the same computational ability as deterministic ones (although we believe that they cannot perform the same tasks in polynomial - read "a reasonable amount of" - time.) However, there is another theoretical construct, the "oracle Turing machine", which has an oracle which it can query regarding a particular problem on a particular input, including problems TMs can't normally deal with.

      For instance, you can create a TM with an oracle for the acceptance problem which, given any TM and a string, can determine whether the machine will accept that string. Real (or "real") TMs can't do this.

      Of course, these are just imaginary constructs and have little to do with everyday utilitarian computing - as I suspect this 8-bit Java VM doesn't either.

  46. Java's Slowness by _xeno_ · · Score: 3
    From the article: but being smaller it's a whole lot faster - a fast Solaris JVM implementation!?

    The Java byte code really isn't all that slow. In fact, making the VM smaller would actually probably make it slower since you'd be leaving out things like a JIT or any sort of optimization. Generally speaking, there is a compromize between speed and size - large usually is faster (optimized for speed), smaller usually is slower (optimized for size).

    The JVM itself is a nice speedy little thing. It's not slow. It's the Abstract Windowing Toolkit (AWT) that's slow! Since almost all Java apps require some form of GUI interaction, and the AWT is the means of graphical interaction, the AWT becomes a signifigant bottleneck. If Sun spent some time on speeding up the AWT, all those pretty graphical Java apps would receive a nice speed boost.

    Even with the JIT turned off, Java bytecode alone usually runs at a decent clip. Unfortunately for Java applications, the AWT is very slow - it actually became slower in JDK1.2 and is picking up some speed in JDK1.3 (it hasn't regained it's JDK1.1 speed though).

    If anyone wants to read a more indepth benchmark comparing x86 C with Java code, try here.

    --
    You are in a maze of twisty little relative jumps, all alike.
    1. Re:Java's Slowness by __aakpxi9117 · · Score: 1
      Generally speaking, there is a compromize between speed and size - large usually is faster (optimized for speed), smaller usually is slower (optimized for size).

      I'll write a program in assembly, you write it in visual basic and yourse will be bigger and slower! :-)

      But seriously, smaller programs *almost* always run faster than a larger counterpart.

    2. Re:Java's Slowness by Graymalkin · · Score: 2

      If you want to speed up your Java apps a lot, multithread the fucking things. AWT is kinda slow if you've only got a single thread running but if you stick different elements of the GUI into different threads and then process intensive methods in other threads you're going to get an apparent speed increase. If you've got a single thread running you need to wait for it to finish in order to do anything else. The same logic goes for C++ apps, if you don't manage your interface and processing you're going to end up with programs that freeze up until they are done with their processing. Be seems to have learned this well so everything in their OS is multithreaded, you can run dozens of high processor demand apps with no problem and little to know apparent slowdown of the machine.

      --
      I'm a loner Dottie, a Rebel.
    3. Re:Java's Slowness by jsse · · Score: 1

      In my humble opinion the JIT does not necessary included in JVM. Any ordinary browser does include JIT.

      I wish the deployer of this tiny jvm(PDA, mobile) would not be so dumb as to skip including a JIT into its product. :)

    4. Re:Java's Slowness by toriver · · Score: 1
      Any ordinary browser does include JIT.

      Are you saying Netscape Navigator 4.08 for Windows is extra-ordinary? Its JVM ships with the Symantec JIT compiler, which Sun also used until Hotspot came along. Microsoft probably uses their own proprietary thang as well; at least their JVM is much faster than Sun's.

    5. Re:Java's Slowness by __aakpxi9117 · · Score: 1

      First, yes, my example was meant as a joke anyhow... Secondly, a gui is really not as hard to write in assembly as you might thing. quite a large chunk of the code can be reused. Instead of using C++ libraries, I cut and paste from my toolbox with similiar results, but it's still assembly and it's still going to use a fraction the memory and (if you are a proper programmer) will be astonishingly more stable. If speed/memory/stability is an issue, assemby is the only way to go...

  47. Re:Wow! It's Turing Complete! They're geniuses! by SimHacker · · Score: 2
    The simplest approach to representing numbers with a Turing machine is in unary -- the number of sequential "1" marks on the tape is the value of the number, with a "0" to mark the end. (Like null terminated strings, but strlen() returns the value!)

    You can also store data in the state of the machine, instead of writing it on the tape. Turing machines don't have registers, nor stacks, nor random access memory, but they can be in any number of different states. So to do anything non-trivial, you end up with a heck of a lot of machine states, connected together in a complex network. In order to copy a number, you have to suck up some of that number into the machine state "temporary storage", then go into a state that moves the read/write head to the destination while remembering the temporary state, and then go through a series of states that writes the machine state out onto the tape while moving the head. So you could write a program that copied a number one bit at a time by moving back and forth between source and destination, using relatively few machine states. Or a program that copied numbers more efficiently n bits at a time with 2^n and then some machine states. To do anything non-trivial, you end up with zillions of machine states, representing a network of all possible values of temporary storage connected by tape seeking and writing instructions, and you also require infinite amounts of tape to execute the program.

    Think of it like an Adventure (MUD) game with one deterministic player, who is carrying a tape and read/write head. The state of the machine is which room you're in, plus the state of the tape and position of the head. Each room has a door labeled for each possible token on the tape, and when you walk through correct door, it can write a token on the tape, and move the head up or down. A program is a set of interconnected rooms. You have to double the number of rooms (states) to represent one bit of information in the machine state, like the Star Trek episode when they were beamed aboard an exact duplicate of the Enterprise, that represented one bit (the answer to the question "Is this real?").

    It's hard for me to believe that they're using a Turing machine model for efficiency's sake.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  48. The C64's continuing popularity by acb · · Score: 2

    A few years ago, I heard that C-64s were still in production for sale in either Mexico or China, where PCs were too expensive for the general public. Not sure whether that's the case now, with the abundancy of cheap Pentioid PCs.

  49. A .COM beats out THE .COM ? by __aakpxi9117 · · Score: 1

    So let me get this straight... A little known dot com does what Sun has been spending millions of dollars and years of development time trying to do. (i.e. Get Java on embedded devices)

    I hope this IS a hoax, if not, I'd think everyone SHOULD lose an faith in Sun.

    1. Re:A .COM beats out THE .COM ? by toriver · · Score: 1
      I hope this IS a hoax, if not, I'd think everyone SHOULD lose an faith in Sun.

      Um, Sun and its associates have had Java on embedded devices, smart-cards etc. for years. It's these "revolutionary" guys who are late to the game.

      Why does /. give space to all these non-news items? What's next, someone discovering that a processor can be run faster by cooling it? That would rellay be a revelation.

    2. Re:A .COM beats out THE .COM ? by __aakpxi9117 · · Score: 1

      Umm, try again. There was a big story when sun finalized it's JRE for embedded devices (specifically for cell phones) why don't you try presenting facts next time.

    3. Re:A .COM beats out THE .COM ? by toriver · · Score: 1
      They are facts. The iButton was launched at the very first JavaOne, and Schlumberger etc. had Java on smart cards long before J2ME was finalized.

      How long have you been following Java? Two months?

  50. Some details from the FAQ by SuperKendall · · Score: 3

    After reading all the white papers, I was able to draw out some facts:

    VM is supposedly 70k, supports multi-threading and GC. No graphics capability however. I wonder how big the Palm KVM is at? It includes a small implementation with graphics.

    Compatible with Java 1.3 as far as class file format goes. Supposedly runs can interpret any Java bytecode.

    The VM itself is called Geneva, and runs on an engine/system/framework called Origin.

    Origin itself is composed of small building blocks with a "high dehree of reuse". An interesting twist is that while of course they wish the internal blocks (procedures) to be closed, they encourage outside blocks to be developed and will pay royalties to the developer of these outside blocks if they are incorperated into the core.

    Right now, it appears to work on x86 chips and Sparc chips - the Origin system itself must be ported to other platforms, and then Genevia will run on top of it.

    Origin itself has some sort of primitive internal database/file system, and they talk of perhaps working with DB companies to improve on that.

    You can write directly in Origin if you like, but there is no kind of IDE or the like - they encourage use of the Genevia Java VM as an easy path to using Origin.

    It sounds kind of interesting. What they need to do now is release it for the Palm.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  51. Stop the presses!! by AndyMouse+GoHard · · Score: 1
    This is from the faq:

    However with ORIGIN there is the possibility of provably correct code. This has special importance for safety critical systems, where ORIGIN may have particular advantages.

    Hmmm... I hope they're not claiming to solve the halting problem with this statement. If so, bravo!

    Generally though, me thinks the white papers reak

    like a dirty diaper.

    --
    Upon seeing the box was too small, Schrodinger's Elephant breathed a sigh of relief.
    1. Re:Stop the presses!! by srichman · · Score: 1
      Hmmm... I hope they're not claiming to solve the halting problem with this statement.

      Programs can be proven correct in any language for which there exists a complete formal semantic definition.

      For instance, using denotational semantics you can reduce every state and state transformation in the rules of a programming language to mathematical functions (e.g., defining the mathematical functions and states for what a while loop does). Then, with these functions, you can prove correctness properties (e.g., this state will always provably go to this state, which will always provably go to this state, in accordance with the specifications of the problem we're trying to solve).

      In practice, this isn't very useful or practical for proving that Word 2000 won't crash. Nor will it let you prove that a TM will halt with a certain input; it's more about proving that the steps the TM takes are correct. It can be useful for proving correctness of things like translation (compilation) by guaranteeing that the transformations you apply to elements of the source language yield elements of the target language that have the same meaning.

  52. This is the most pointless and stupidest Java crap by Free+Bird · · Score: 1

    Man, what a wasted time. Now I'll be able to run a Java-based clock on my calculator. Great! Java is so slow, that nothing interesting will work on a 8-bitter. Those CPUs need to be coded in assembly, not some HLL, and DEFINITELY not something a clockcycle-wasting as Java! Why did this ever become featured, anyway?

  53. Re:this is good! But is it art? by Gordonjcp · · Score: 1

    Time to dig out those old cheap 8-bit processors and overclock the hell out of them. I overclocked a ZX Spectrum from 3.5MHz t 5MHz once. The ALU chip got really hot, and it was very difficult to type because the key repeat delay was too short.

  54. News Flash: Coding Small is Fun by werdna · · Score: 2

    It has been a few decades since we have had to think seriously about making things small. It is a fine, albeit a lost, art. News flash: you make code small with embedded interpreters. Threaded code, microcode, internal data bases and so forth are the meat and marrow of coding tiny. An extensible VM or bytecode interpreter as a vehicle for making code small isn't news either -- that was the fundamental operation of threated interpretive languages such as Forth. These are great, difficult and fun things to do. But, alas, nobody has really much use for this sort of thing anymore. Every now and then, we need this kind of thing again. But coding for 8-bit machines? Why?

  55. You're missing the point.. by andr0meda · · Score: 1

    Besides, Java is only useful when it has some windowing libraries and the like, those still need to be built for each cel phone or whatever device that the stuff will go on. I don't think that something can really be touted as a Java implementation unless a large majority of the libs (javax.swing.*, etc) also exist. If you can't run StarOffice on your cel phone, what good is it?

    Excuse me, but using StarOffice on my cel phone is your ultimate idea of usefullness for Java on a cel phone? Hello ?

    Java means WORA. PDA's, CellPhones and other small personal handheld devices aim to deliver the highest degree of functionality while staying relatively inexpensive. Having this new JVM adds the prospect of designers being able to tune their memory requirements very specifically towards the functional objectives of these devices. I think it's use is fairly obvious: the JVM will be able to download any code from anywhere and execute it safely, as any JVM should. This means your cell phone acts as a pluggin into a webservice rather than having to carry the whole caboodle with you. It means your cellphone's hardware will need to be supporeted, and that's it. Anything else might be delivered over the net (in reality ofcourse this will be balanced out so the thing comes with the most common basic functionality and libraries). The advantages are legio.. new real-time updates of the internal software of your cellphone.. you name it..

    If you really want to write a StarOffice document on your cellphone (which is a horrible thought on itself) you'll be swapping modules internally in your cellphone to access the code that is required at a specific instant of time.

    Try to think differently.. these things have their uses, but people still have trouble to adjust their ways of using them, thinking about them, thinking about and exploring new hidden opportunities.. Java was built originally to serve this purpous, so the availability of this new KVM can only mean more possibilities, more ease, more joy.. don't think in old fashioned pardigma's like Java = { Libraries }.. it doesn't do justice to the mentality behind the concept.. even MS knows it's a proven model. It just needs to mature, grow and explore it's own boundaries.. and this will take much more time before the rules of the game will be totally clear to most.

    --
    With great power comes great electricity bills.
    1. Re:You're missing the point.. by sklib · · Score: 1
      Java = {Libraries}



      I disagree with your point that a language implementation is worthwhile without any libraries to write with. While I agree that windowing and the like may not be the best thing to do on a cel phone, at least java.lang.* must exist, java.util.*, maybe java.text.*, hopefylly java.io.* if your celphone will receive email with tcp/ip... In any case, a blank JVM doesn't amount to anything unless it has been demonstrated to run some common java benchmarks.


      In any case, maybe I *do* want to run staroffice on my phone, if the phone has a really nice speech recognition interface.


      And lighten up on the buzzwords.

      --
      -S
    2. Re:You're missing the point.. by andr0meda · · Score: 1

      In any case, a blank JVM doesn't amount to anything unless it has been demonstrated to run some common java benchmarks.

      Ofcourse not. That`s not what I meant. What I meant is any device will be able to subset the library set because of the intrinsic reduced hardware functionality and specs, without compromising on the usefullness of the item. So dissing Java on that account, like you did, seems just strange to me.

      In any case, maybe I *do* want to run staroffice on my phone, if the phone has a really nice speech recognition interface.

      Well yes but if the phone has this really nice speech recognition interface then it will need a few megs or gigs on memory too, because at this stage quality speech requires sampleset databases, not fancy A.I... So I figure having a few libs on there won`t be such a big problem either ;)

      And lighten up on the buzzwords.

      Sure :)

      I know what you`re thinking.. and I do indeed feel a bit like I`m a Java advocat. But maybe that`s because I have 4 years of Java and 10 years of c++ experience. I won`t say Java is perfect. Far from it. In fact, c# + .NET is looking very good as an alternative.. theoretically. In practice, Java is out there, renewing the way software can be written, being acknowledged and copied for it, and it`s enabling many possibilities that were just unfeasable or impractical to implement before.

      I think part of the reason why linux users "hate" Java so much, is because Open Source and Java are 2 boats that row the same stream. They both strive to make software as accessible, safe, documented, good and quick as possible. But I don`t think it`s necessary to make a clear choice.. Java has it`s uses, and so has the Open Source movement. Both can contribute to Linux. Another reason why Java doesn`t hit the Linux crowd with big enthusiasm is because Java has this stigma of being an `easy` language, and traditionally Linux`ers allways have been people that wanted to play around with more obscure and harder-to-deal-with stuff.. So imho it`s a bit of a sociological quirk, too. I don`t condemn that attitude but I think it limits the broadness of the view you could have on certain otherwise quite interresting things.. And there are probably more reasons for not liking Java much, but so far none seemed really smart to me..

      But enough ranting.. I`m just positive about Java, and I`ll continue to try to make people see the possibilities it brings. In my view it`ll help push software languages in general into the next century together with our fancy appliances, and we all want those, don`t we :)

      --
      With great power comes great electricity bills.
  56. Re:Caution - $3 crack by autocracy · · Score: 1
    My English is just fine, thank you. As for the Turing machine, I know what it is and how it works. I'm asking why the 8-bit Java is based on the Turing machine. Looks like your comprehension is poor.

    Anyone notice that only Anonymous Cowards post this kind of junk? And he wonders why Slashdot is fast approaching the signal/noise ratio of Usenet.

    It's all about the Karma Points, baybee...
    Moderators: Read from the bottom up!

    --
    SIG: HUP
  57. 6502 assembly by yerricde · · Score: 1

    in practice, most people don't write their programs in 6502 assembler.

    (ICK! The language is called assembly, not assembler. Would you like it if I called the C++ language "compiler"?)

    That's because most people don't develop for C=64, Apple II, or NES. I still write NES software in assembly because I haven't yet taken the time to get CC65 working and get a C library written. But handcoded assembly does give you the tightest code if you know what you're doing with respect to the pipeline (6502 has one short pipeline so it's easier here).


    Tetris on drugs, NES music, and GNOME vs. KDE Bingo.
    --
    Will I retire or break 10K?
  58. NES uses 6502 by yerricde · · Score: 1

    The NES uses a modified 6502 processor that loses the binary coded decimal instructions and adds on-die sound hardware. The SMS (and its portable cousin Game Gear) uses the Z80 processor, which has a set of rollback registers remarkably similar to the Crusoe CPU's. But it still wouldn't be hard for One80 to port the 8-bit JVM to other 8-bit CPUs.


    Tetris on drugs, NES music, and GNOME vs. KDE Bingo.
    --
    Will I retire or break 10K?
  59. TI calculators and Nintendo trademarks by yerricde · · Score: 1

    Also, what about those great TI calcs? Aren't they 8-bit?

    The TI-82, -83, -85, and -86 use an 8-bit Z80 processor. (The Game Boy uses a Z80 clone.) The TI-89, on the other hand, uses the same 68000 processor that the Sega Genesis console and early Macintosh computers used.

    my 86 has Zelda, Lemmings, Mario, Tetris, and various other things on it

    Didn't Nintendo sue TICalc.org for infringing on Nintendo's trademarks and copyrighted character likenesses? If not, they probably will soon.


    Tetris on drugs, NES music, and GNOME vs. KDE Bingo.
    --
    Will I retire or break 10K?
  60. (OT)Atari 2600 by yerricde · · Score: 1

    Motorola 6507 CPU

    No, MOS Technologies made the original 6500 series.

    The 6502 was an 8-bit processor with a 16-bit address bus. The 6507 was the exact same processor with two modifications -- a 13-bit address bus and it had no interrupt lines.

    More Atari 2600 specs: The system had two 1-bit sprites and three rectangular sprites. It also had only 128 bytes of RAM and half a scanline's worth of video RAM. Even making Tetris is close to impossible, as Tetris uses a 10x20 field which at first glance does not fit into 128 bytes.


    Tetris on drugs, NES music, and GNOME vs. KDE Bingo.
    --
    Will I retire or break 10K?
  61. Kilobytes instead of megabytes? by Pflipp · · Score: 2

    OK, 8-bit processor instructions are 8-bit, and 32-bit instructions are 32-bit. Moreover, memory pointers on 8-bit systems are normally 16-bit (relative and zero-page pointers are 8-bit), and on 32-bit systems they are, well, 32-bit (rel. and 0-page 16-bit). With 1-byte alignment, data structures are as big on 8-bit systems as they are on 32-bit systems.

    So the VM might indeed be shrunk a lot, say it may become a little more than 1/4 of its original size if you put it on an 8-bit system. This would be a nice rate for any "embedded" program.

    Alas, the VM is not the program. It simply is the VM. The program is written in "run once, compile everywhere" code[*], so this code has the same size no matter where you put it.

    And I recall the class libraries are something like 20 Mb of code. And while an embedded program might just not require, for instance, Swing, it is part of standard Java AFAIK. What I am trying to say is that programs expect the standard class library to be there, so it'll cost you 20 Mb of space anyway. To set up 20 Mb of space on an 8-bit machine, you would cross some 64k boundaries ;-)

    One solution might be to get rid of the class libraries, and write the code yourself, or "statically link" the code. This makes your program bigger...

    You might argue that e.g. a wrist watch wouldn't need class libraries (e.g. Swing ;-) for its simple tasks. Then again, this makes me wonder why a wrist watch needs Java; it doesn't really benefit from "run once, compile everywhere" code[*], the only thing that really matters to such a watch is how it communicates with the outside world. Well, maybe system updates... I don't know. I just don't yet see the use of my fridge talking in a 4gl. He can just use compiled-to-machinecode programs as far as I'm concerned. Then, if it's an 8-bit processor, the program itself will be about 1/4th of a 32-bit program, and the VM will be 0 bytes.

    While I'm talking about this, does anyone know how many bits a single Java instruction is?

    [*] OK, I wanted to write "compile once, run anywhere", but this appeared instead. Given that much Java VM's are Jitter-based (compile to machinecode on the fly), I actually think that this typo isn't that goofy ;-)

    It's... It's...

    --
    "We can confirm that Debian does *not* ship the version with the trojan horse. Our version predates it." [CA-2002-28]
    1. Re:Kilobytes instead of megabytes? by Graymalkin · · Score: 2

      No, actually programs do NOT expect the class libraries to be there. In Java you load your class libraries statically and only need to load what you need. If you want the entire Math package you import it all, if you only need PI you only import PI. You don't need to include all the libraries with the JVM or you can make some of your own specifically for your system and load them up.

      --
      I'm a loner Dottie, a Rebel.
  62. Not what's hot about Java by sohp · · Score: 1
    This story isn't of much interest. Let's see why, and what the slashdot community is saying in response.
    • As noted before, Java has been available on tiny platforms before, probably starting with the Dallas Semiconductor iButton, right up to the JavaCard-containing American Express Blue. In fact, Amex is even running a contest challenging developers to create new applications.
    • Java as a tool for embedded systems has been around for a while and continues to grow. From satellite phones, to the Sega Dreamcast, to the new DoCoMo i-mode phones, Java is in those tiny devices with limited speed, memory, and UI components.
    • Java primitive type sizes are specified by the language, not the native platform. So an integer is always 32-bits. That's what makes the code so easily mobile. C/C++ programmers: what is the size and sign of the expression 1000*UINT64?
    • Java can't be small because the libraries require so much space? The libraries are not the JVM. Java the APIs run from the full enterprise suite, which includes EJBs, messages, directory services, etc, to the standard, which includes all the UI, to the micro edition,which drops Swing and (in some cases, because of lack of hardware support) floating point, down the the tiny javacard APIs which are stripped to the bare essentials. Each is targetted towards a different environment, and given the limited UI capabilities of things like the Palm, you wouldn't want Swing anyway, because you've only got 160 pixels square for drawing.
    As for the merits of OneEighty Software's technology itself, I'm extremely suspicious. Nothing new here, and its appearance on Sun's Java marketing area doesn't make it more credible.

    The first Java story to come along on slashdot since the "why linux users diss Java" story. That feature demonstrated just how far out of touch CmdrTaco and the slashdot cabal are with the Java community, and this one merely reiterates that.

    The real story on Java now is in server-side, XML handling, the recent release of Sun's MID profile for PalmOS, the results of the community process elections, and of course Java the continued adoption of Java technology for the wireless services industry.

  63. MODERATORS? by harmonica · · Score: 1

    For the practical programming of even simple computer games, is ORIGIN any better than Java, which totally sucks ass?

    Why is a statement like 'Java totally sucks ass' insightful? It isn't even true for game programming, for which Java certainly wasn't designed.

    1. Re:MODERATORS? by SimHacker · · Score: 1
      I'll repeat: Java totally sucks ass for game programming. Now how does ORIGIN improve Java so much that it doesn't suck ass?

      I'm a professional game programmer. I helped develop The Sims for Maxis/EA. Nobody in the computer game industry would ever suggest developing a "sophisticated" computer game in Java (except as a drunken joke at a christmas party), because they would be the laughing stock, and fired for incompetence if they were actually serious. Must I put it so gently, or should I be more blunt? Welcome to the real world.

      As you say: Java wasn't designed for game programming. But since you already know that, I don't understand why you appearently don't agree with me.

      Can't you see their utter contept for reality when they claim ORIGIN could "theoretically" handle any application, including "sophisticated" computer games, because it's "Turing Complete". Come on, these guys are blowing smoke out their ass.

      -Don

      --
      Take a look and feel free: http://www.PieMenu.com
    2. Re:MODERATORS? by Graymalkin · · Score: 2

      C wasn't designed for game programming back in the day. It could be fairly slow and you ran into problems sometimes. Then it got really refined and well understood and what do you program games in now? Oh yeah thats right, C and its legacy. Because you'd have problems writing a 3D shooter in Java right now doesn't make the language suck ass. A couple years ago you couldn't write a 3D shooter in any language.

      --
      I'm a loner Dottie, a Rebel.
  64. What if this were combined with... by daveman_1 · · Score: 1

    What if this technology were combined with some of the efforts being made by the folks at Transmeta? Couldn't it be possible to implement the origin and Geneva code(since it is so small) at the code morphing level of a Transmeta chip? In essence, couldn't this provide a sort of native java machine? This seems like it could offer an ideal situation for the Origin code to run at a best level of performance. Someone let me know if I'm way off base here, but this would seem to be a unique opportunity for both Transmeta and 180Software.

    --
    Russian Russian Russian RussianDollSig DollSig DollSig DollSig
    1. Re:What if this were combined with... by Graymalkin · · Score: 2

      You already can build a native Java chip. You just build your hardware to do what the JVM specs say a JVM needs to do and you're set. Using the Transmeta code morphing shit is just going to slowdown the process. Running a JVM on a chip with code morphing is running bytecode in a virtual machine inside of a software emulated ISA. Your best bet for using Transmeta chips would be to compile the JVM into the VLIW format and just run it natively on the TM chip. Code morphing is just a trick they came up with to let x86 run on their processor without their processor actually being an x86.

      --
      I'm a loner Dottie, a Rebel.
  65. The problem with your benchmarks by jherber · · Score: 1

    java is a bloated pig, and i recognize it is the most sane implementation of a modern OO language we have right now.

    but regarding those benchmarks with java and c, they are all heavily biased towards java. how you say? because they end up timing C's memory management which makes calls directly to the OS. On the java side, we only see grabs from the VM's pre-benchmark-timing-OS-allocated heap space. in the benchmarks, we do not see the time java spends cleaning up, but since the c code makes an explicit call to free, we see c's. in the Fourier test, they were using System.arraycopy for java and doing a for loop to move memory in c (yah, instead of memmove.)

    now, this is using java to emulate c, if the comparison were object oriented dev using c++/stl vs java, java would be blown to bits.

    jim

  66. Why force square java in a round hole? by soldack · · Score: 2

    When I first heard about embedded java I put it right with WinCE in the "Why?!" catagories. I believe that java is a pretty good RAD language and it is nice to have a web enabled platform independent gui standard. These are its strengths and they are great for web programs where bandwidth is often the limiting factor, not code spead and control. Put more in the VM and make the code that is moved about smaller. Let someone write to one gui standard.
    In the world of gigabit NICs and FibreChannel RAID controllers running on InfiniBand, java just doesn't fit. Sure you can take a chainsaw to it and cut out what you don't need. This isn't java anymore though. If it doesn't run all the sun APIs, it isn't java. Now if sun starts bending on that for publicity and cash ("How much does a java logo cost?") than they look real hipocritical considering their battle with MS.
    Even with a chainsawed java, it still doesn't make sense. Java has no stack structures except for primitives. It gives the author little control of memory deallocation. This is a big issue when you have limited amounts RAM and no swap. Also, having "secret" threads running around freeing memory while the author needs code to run at a specific rate really hurts. Graphics? What does an anti-lock breaking system need with graphics code?
    I suspect there is reason that most embedded/realtime OSs are written in C/assembly and have those types of APIs. Even C++ is feared due to sense of lack of control. The STL is never used without source control of it. At these levels programmers are pulled back to the days when size and speed really mattered. Java can't give you that. A JVM takes up too much space in software and java chips are often too big, require too much power or are too expensive or all of the above. I suspect that JVMs in an embedded environment would find it hard to achieve C/assembly speeds. In the gui feature rich world it doesn't matter that much. In the world were the two major features are send and receive, size and speed are king.

    --
    -- soldack
    1. Re:Why force square java in a round hole? by Graymalkin · · Score: 2

      Where do you get the idea that Java is a RAD language? It's as fucking rapid as C++ development (for the intelligent reader's knowlege you CAN use a decent IDE to create an interface and then just write in some cheap and easy methods to the widgets and make a weenie app, I know this but don't consider it because it isn't often done, well at least by me). Java is all about fitting the code to the application. If you only need x number of functions then you only need to include x number of functions in your JVM or hardware decoder. If you've got a limited expansion device (i.e. PDA) you can make the OS just a JVM and have people write Java apps for it. Unless you REALLY need to you always load class libraries dynamically so they can be stored on the machine with the runtime rather than toted along with your app code. Besides Java being designed specifically for low resource applications (i.e. smart toasters) it's also super portable. You compile it one time and it runs on a bunch of different ISAs and operating systems. Ever write a Win CE app? You have to compile it for all the different processors Win CE devices run on. Your comment about graphics just proves you're a jackball who's never written an iota of Java code. Java apps do NOT require any graphical elements what so ever. (char)System.in.read works pretty well as a command line interface. So does adding argument handling to main(). If you want to go hardecore you can use EJBs to communicate at a binary input level. Java chips are contrary to your belief pretty cheap and run bytecode pretty damn fast. Java chips unlike general purpose CPUs only need to include the functional units that the JVM is going to use, like a super RISC chip that knows beforehand all the operations it will need so has them all in hardware. If you "chainsaw" things out, using only required libraries or a limited JVM, you've still got Java. It was designed from the beginning to do this.

      --
      I'm a loner Dottie, a Rebel.
    2. Re:Why force square java in a round hole? by soldack · · Score: 2

      I have written in java before actually. I wrote both applets and stand alone programs for stock option and bond calculations. I did find java to be a fast way to get a gui application on to many platforms. I found it horrible for the math side of what I did with many VMs. Of course you can write command line applications with java. I do not deny that. I have seen java forced into so many environments from applets to servlets. It can do all of these things but only a few of them very well.
      I agree with you that java and java chips may be a good fit for PDAs and settop boxes but I work more in the I/O controller space. I also thought that Sun's licensing was pretty strict about partial java implementations being official java. I always thought it odd that so much the java api was considered mandatory parts of the language rather than optional extra libraries. If an official java can exclude the extras they do not need, that I stand corrected about the vm size. If the chips can stand up to the current crop of I/O processors, you have got me there. But I doubt it because...
      Speed and low level control are still very important for I/O controllers and real time applications. The language hides things that most low level developers need or want. For example, they want total control of memory allocation and deallocation. They want direct access to memory. Java just doesn't have this. So even with a fast, inexpesive chip running java native, you still have the lack of control. Heck, for a certain routines, assembly comes into play in this space.

      --
      -- soldack
    3. Re:Why force square java in a round hole? by Graymalkin · · Score: 2

      This is true about real time microcontrollers and the like that have code written knowing exactly how many clocks something will take. You can however write a compiler that will turn your java program into microcode or any other sort of code. Microcontrollers are funny things anyways, however you could impliment a realtime VM onto an MC. You can see a realtime JVM at www.rtjcom.com, stick that puppy on your MC then have it crank through some linear java apps compiled to bytecode. Java was originally meant to be run in the circutry of microcontrollers and tiny processors. Then Sun starting spitting out non-realtime JVMs which took the attention away from the fact their language was originally meant to run smart toasters. An MC running Java would be sort of like the BASIC stamps you can run that run BASIC code on the MC.

      --
      I'm a loner Dottie, a Rebel.
  67. Re:Why do things need to be practical to be posted by zeppelin71 · · Score: 1

    Ummm yah - if its verified somehow, I'd say that would get you a nobel prize in physics.

  68. how did this story make Slashdot? by eries · · Score: 2

    see subject.

  69. PTSC family Java microprocessors by Stilly · · Score: 1

    Java on a palm pilot or cell phone...? Absolutely. With PTSC's new ignite1 ROSC microprocessor, speed is unmatched by any comparable RISC due to a reduced memory footprint, as well as power consumption reduced to less than 0.5 mV/MHz... not to mention it is the least expensive out there also. And getting ready to roll out is their .18 micron ROSC @ ~350 MHz.

  70. Depends by batdragon · · Score: 1

    Depends on what your definition of "sophisticated computer game" is. *If* you're talking fps monsters, be they 2d or 3d, then of course Java sucks (for now).

  71. Not necessarily... by batdragon · · Score: 1

    Smaller doesn't necessarily mean faster.

    For a trivial example: take a variable swap.
    I want to put the value of X into Y.

    You can do it with only the X and Y variables... a few XOR operations, and voila! Done.
    But it's much faster, and easier to use up a whole extra variable Z to use as a temp var...
    Bigger can mean faster.

  72. Re:Another Grandiose White Paper: The Next Big Thi by SimHacker · · Score: 1
    That article you cite is a load of stale moldy mediocre bullshit, not even as good as real fresh hot steaming bullshit, which at least holds together better thanks to its own internal roughage and grass fiber.

    So what if... So what if... So what if...

    So what if they have their head stuck up their ass? So what if they lie about having the first 8 bit Java? So what if they lie about having the smallest Java implementation? So what if they brush questions of performance under the rug? As long as their bullshit benefits the Greater Glory of Java, we love them. Let the blowjobs begin!

    After all that bullshit about Java, and all of Sun's bullshit about "write once run anywhere", why are you so willing to give ORIGIN the benefit of the doubt that maybe they're not even slightly exagerating or omiting parts of the whole story, even if they don't have a demo you can download and test out for yourself. Have you already fallen for so many outlandish lies about Java that these wee little fabrications don't even register on the logarithmic Richter scale any more?

    (Well, now that I think about it, you're right: I suppose it's best for Java in the long run, if we lie about how great it is, and make lots of promises we know we'll never be able to keep, and pretend to believe other pro-java liars. After all, Java was designed as a tool in the war against Microsoft. And there's nothing more important than going to war. Just explain to the families of the vets who were poisoned by depleted uranium shells and agent orange that the ends justify the means.)

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  73. Proving correctness doesn't validate design. by SimHacker · · Score: 1
    Proving a program correct only means that it conforms to its design, not that the design is correct. Proving designs correct is much harder, if not impossible. Most bugs that aren't just trivial syntactic errors are actually problems with the design, and programming languages that can be "proven" correct don't prevent those.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  74. According to Alan Turing's biographer... by SimHacker · · Score: 1
    Andrew Hodges, the biographer who maintains The Alan Turing Home Page, writes about Professor Bernard Hodson on his aptly named web page "bs.html":

    http://www.turing.org.uk/turing/scrapbook/bs.html

    "The Gene Machine

    Professor Bernard Hodson (now based in Ottawa) has developed a programming system called Genetix. It is claimed that this is more efficient than any software currently used, and differs radically from everything done in the last fifty years by drawing on Turing's original concepts. [...]

    [...] At present the work is apparently bound by commercial secrecy, but I hope that soon these surprising claims will be opened to general scientific discussion. Until then they will be hard to evaluate.

    However, my business on this website is to explain what Alan Turing said and did; and I do think I can say that Hodson and Bloor are on doubtful territory in claiming that the Genetix programming ideas derive directly from Turing's writings. They quote quite general statements made by Turing in advancing the ideas of a universal machine, of the stack, and of program libraries, when all these ideas were completely fresh. They go on to interpret them in what seem to me much more specific modern terms, in support of the Genetix approach. I am sceptical as to whether the Genetix system actually derives from anything Turing had in mind.

    To illustrate my point, note that the Genetix prospectus rests upon distinguishing the Universal Turing Machine concept from the stored-program concept. Turing himself, however, made no such distinction, and in 1948 clearly referred to all the digital computers then under construction as 'practical universal computing machines.'

    Two possible confusions

    As far as I can see there is no connection between Genetix and 'genetic programs' which improve themselves by means analogous to biological evolution by selection. (Turing might in fact be credited with the basic idea of such programs. Right from the start he emphasised the idea that the stored-program computer can modify its own instructions, suggesting that this capacity could be developed into the ability to learn from experience.)

    Also, this Genetix has no connection with the Genetix which campaigns against the development of genetically modified organisms."

    --
    Take a look and feel free: http://www.PieMenu.com
  75. But wait... by objbuilder · · Score: 1

    ... didn't netscape implement java for Win3.1? If so, that makes Anderson and co. the 1st to stake claim to an 8bit java platform.

  76. VM's been on 8-bit before by hugg · · Score: 2

    Zork and all the other early Infocom games used a VM (called the Z-machine) to run their games on 8-bit platforms. This VM spec is still used today for new IF games. Also, the Apple ][ ROM had an interpreter for performing 16-bit integer math calculations, called "Sweet 16". Applesoft itself was interpreted, like many other BASICs.

    The white paper is a crackpot spewing about "state of mind" and "genomes" and trying to appear academic. If he has any new ideas, I'm not able to penetrate the BS to find them. Turing machine == Von Neumann machine == any calculating device, so what's new here?

    If he was posting on USENET he would be using ALL CAPITAL LETTERS for certain KEY TERMS that expressed his REVOLUTIONARY IDEAS.

  77. Re:Another Grandiose White Paper: The Next Big Thi by turboslug · · Score: 1

    According to that...

    "Not only will the entire GENETIX Java environment will fit on a smart card, but it also fully supports the Java 2 platform version 1.2. This means that you could create an entire Swing application on a smart card!"

    Which if true is very impresive! A big *if* though...

  78. Re:just wondering.... by cpeterso · · Score: 2

    Doesn't the use of loops and functions to quicken the job of programing actualy slow down the process? for example... for a = 1 to 100 print $getline(a) increase A next a would be slower than... print $getline(1) print $getline(2) print $getline(3)...etc I would think not having to process the extra increase, and the if would speed it up. but also increase the size of the end program.


    Looping code can improves a program's use of CPU cache. In your second code example, huge loops would require many sequential code pages to be paged in from disk. Much more expensive than saving a i++ loop counter..

  79. Re:well.duh no by srichman · · Score: 1

    If you read the post to which I was responding, you'll see the point I was making wasn't that C has a fixed word size, it was that Java has no such thing as native support for arbitrary precision numbers.

  80. 8051 processor by zeppelin71 · · Score: 1

    The web page says this jvm will run on the 8085 8 bit processor. Does anyone know about this processor? Intel/Motorola/other? ML Compatible with which line? etc. thanks

  81. Java VM spec by stubob · · Score: 1

    well, if you'd like to know more about the VM spec, read it here. The VM doesn't care about class libraries, only that code is converted to bytecode correctly. The class libraries you will have available depend on the platform that you are developing for, so I doubt that javax.swing.anything will be available for an embedded machine. This is a VM implementation, and not a JDK.

    I agreee that those whitepapers are worthless. I thought whitepapers were supposed to be the geeky stuff for us.

    --
    Planning to be moderated ± 1: Bad Pun.
  82. real time java by soldack · · Score: 2

    Neat stuff but ... it still doesn't address two big issues:
    1. On most platforms stack memory allocate is much faster than dynamic. As far as I know, Java does not support allocating structures on the stack.
    2. With limited resources, programmers need tight control over memory deallocation. While you can force a call to the GC, it is usually not a synchronous call. Sometimes you need to know all the memory from step 1 is free before going to to step 2.

    A bit about this paticular JVM. It does not support 64-bit data types. 64-bit PCI, PCI-X and Infiniband all require 64-bit addressing. That makes this unusable for most I/O adapters unless this JVM supports 64-bit addressing with its references types but hides it from the user.
    Oh well...

    --
    -- soldack
    1. Re:real time java by Graymalkin · · Score: 2

      The JVM is what supports or does not support 32 bit addressing (as you're running a virtual computer inside of another) so a quick hack to certain things and a new minor version release and you've got 64-bit data structures. The hardware layers like PCI 2.1 and the like are not the responsibility of the JVM to handle. The OS kernel and device drivers handle those systems. If you wanted to stick Java on microcontrollers you'd just write a RT JVM or use something like the one in this article. Java at the high level doesn't support stack structures but if your JVM is running certain things as stacks it would be supported. Also if you want to be naughty you can add some I/O hacks to the JVM. Java does have the ability to communicate directly to its virtual machine so you could set up a workaround if you REALLY needed to stick it on super small chips. This however would require more work than just programming MCs in their native language.

      --
      I'm a loner Dottie, a Rebel.
  83. so what have they invended? by mfx · · Score: 1

    After reading all the white papers on their site, I still don't know what 180 has re-invented: FORTH, the subroutine, or the Lisp machine?

    --

    "When do you work?" "Whenever I'm not busy."
  84. Why impossible? by Anonymous+Squonk · · Score: 1

    10 x 20 = 200. But since a Tetris piece is either there or not ("on" or "off") you could easily render that in 200 bits, which would fit into just 25 bytes.

  85. Re:here's his last effort by paulwomack · · Score: 1
    GENETIX

    BugBear

    --
    Ignorance is curable. Stupid is forever.
  86. Re:really new? (no) by ecloud · · Score: 1

    The TINI has a 32-bit processor; one of their custom 8051 variants. But maybe the Java iButton is 8-bit, I'm not sure.