I suggest you try your hand at "Wooden Ships & Iron Men" an old Avalon Hill title. They don't make the game anymore, you'll have to fight on eBay for one of the few complete copies of it. I'm in the middle of revising the rule book and adding a computer simulation addendum. I'm also updating and re-releasing the 'ships (6)' command line version of the game. My bookmarks related to wsim are on del.icio.us.
Two final notes. Read up on the concept of "pause clustering" used by the Self language. Pause clustering is a technique used by schedulers to measure the actual lag time of many very small system overhead tasks as perceived by a user. Also look into the Train GC algorithm. It guarentees collection in a bounded amount of time. Put the two together and tie them to the scheduler and you have a system which can meet the needs of that tight loop and still do GC if need be. Games don't make sense in Java due to its poor graphics architecture and unrealistic multimedia extensions.
Firstly, water does sink into rocks. It then freezes and the pressure it exerts reshapes the world as we know it. But that is beside the point.
I will address your comments with respect to the Java Programming Language and its HotSpot compiler technology. If you would like to enlighten yourself on the techniques behind HotSpot take a look at http://self.sunlabs.com. Transmeta, IMHO, was influenced by the same concepts when designing its code morphing techniques.
"A JIT is rushed" - The first time bytecode is compiled to native code it must be done quickly to avoid delay. That code may be inefficient, true, but it can also be instrumented with profiler like information that can be used by later passes of the compiler. You see, what the author is describing is not a JIT system but a dynamic optimizing compiler which has the opportunity to study the program during execution and recompile parts or all of that program based on that information.
"no leeway for boundary conditions" - Well here again you seem a bit confused and your example is naive. The native representation of a type is not fixed in Java, only the conceptual representation. To be a compliant Java implementation all results generated using 'int' (to use your example) must be consistent with the conceptual representation of 'int' when using the various operations. If the optimizing compiler finds a way to represent an 'int' in a more optimal way it is free to do so as long as the results of the operation don't change.
"garbage collection is slower than hand coded memory management" - You really ought to read some of the latest garbage collection papers. This is no longer true even for collectors managing C or C++ allocation. When given an environment like Java which doesn't allow pointers and other antiquated memory techniques a good dynamic compiler with a modern garbage collector is both faster and more efficient than any hand coded attempt on all but the most simple of applications.
"OOP and dynamic dispatch are inefficient" - Again, I urge you to read the papers at the Self site listed above. The way the Self, and now HotSpot, compilers work eliminates this bottle neck. I'll admit in early implementations of Smalltalk and Objective-C dynamic dispatch did add a small amount of overhead. Take a look at the documents on the HotSpot here and then tell me that dynamic dispatch is a problem.
In summary, you are more than welcome to use assembly all you want. Code on my brother! But, please before you slam some other method try doing the smallest amount of research first. Maybe your snap intuition is wrong. You never know.
As far as Transmeta goes, it has a lot of the HotSpot/Self style technology and I personally think that technology is the future. I can't wait to get my hands on a Crusoe powered product.
As far as I understand the SunRay (code named Corona inside Sun) works as you would expect an Xterm to work. The difference is that Sun can now deliver the screen bits of Microsoft software to such a device kind of like PCAnywhere but one window at a time. The major tech hurdle I see which isn't addressed in any article as yet is the simple fact that Microsoft software is built with the assumption that it is running for one user on one machine. I don't know how Sun is able to install one copy of MSOffice and then allow 1000 people to use that same installation without confusing it. Further, where is that software installed? On a Sun machine running Solaris? I don't think so. It may be that you have to have an NT Server around to run the MS Software (I don't know for sure, anyone have any information on this?).
I do know that there is no "OS" on the machine, there is no browser based GUI requirement or anything like that and it can print just fine. They learned that lesson with the JavaStation.
IMHO this is a bad idea, but I've been wrong before,
I suggest you try your hand at "Wooden Ships & Iron Men" an old Avalon Hill title. They don't make the game anymore, you'll have to fight on eBay for one of the few complete copies of it. I'm in the middle of revising the rule book and adding a computer simulation addendum. I'm also updating and re-releasing the 'ships (6)' command line version of the game. My bookmarks related to wsim are on del.icio.us.
SEAL,
Two final notes. Read up on the concept of "pause clustering" used by the Self language. Pause clustering is a technique used by schedulers to measure the actual lag time of many very small system overhead tasks as perceived by a user. Also look into the Train GC algorithm. It guarentees collection in a bounded amount of time. Put the two together and tie them to the scheduler and you have a system which can meet the needs of that tight loop and still do GC if need be. Games don't make sense in Java due to its poor graphics architecture and unrealistic multimedia extensions.
thanks for your comments,
BurdMan
I will address your comments with respect to the Java Programming Language and its HotSpot compiler technology. If you would like to enlighten yourself on the techniques behind HotSpot take a look at http://self.sunlabs.com. Transmeta, IMHO, was influenced by the same concepts when designing its code morphing techniques.
In summary, you are more than welcome to use assembly all you want. Code on my brother! But, please before you slam some other method try doing the smallest amount of research first. Maybe your snap intuition is wrong. You never know.
As far as Transmeta goes, it has a lot of the HotSpot/Self style technology and I personally think that technology is the future. I can't wait to get my hands on a Crusoe powered product.
-BurdMan
As far as I understand the SunRay (code named Corona inside Sun) works as you would expect an Xterm to work. The difference is that Sun can now deliver the screen bits of Microsoft software to such a device kind of like PCAnywhere but one window at a time. The major tech hurdle I see which isn't addressed in any article as yet is the simple fact that Microsoft software is built with the assumption that it is running for one user on one machine. I don't know how Sun is able to install one copy of MSOffice and then allow 1000 people to use that same installation without confusing it. Further, where is that software installed? On a Sun machine running Solaris? I don't think so. It may be that you have to have an NT Server around to run the MS Software (I don't know for sure, anyone have any information on this?).
I do know that there is no "OS" on the machine, there is no browser based GUI requirement or anything like that and it can print just fine. They learned that lesson with the JavaStation.
IMHO this is a bad idea, but I've been wrong before,
-BurdMan