Too much focus on Jobs
on
Disney Buys Pixar
·
· Score: 5, Insightful
I don't think much of the success of Pixar is due to Steve Jobs.
Rather, the main man over there is John Lasseter, the legendary animator directly responsible for some of the companies most memorable movies. Would Pixar be anywhere today wasn't it for the brilliant movies?
Jobs is just this one guy who sees ahead better than most and invest in people who can make it happen, like Lasseter or Wozniak...
"I would like to ask when consoles started doing RPGs better than PCs?"
I guess that would be since Square's masterpiece -- Final Fantasy VI, on SNES. Or perhaps a little before that, with Enix's swan song on the NES -- the amazing Dragon Quest IV. That was when RPGs as a storytelling medium took a huge step forward over the hack'n'slash multiplayer PC RPG boredom...
In fact, IMHO multiplayer RPG things in the PC are extremely boring because it takes away the fantasy about the game: suddenly, you're well aware that you're not fighting some truly cruel villain, just some Joe Blow from Milwaukee... kind of a let down in a "RPG"...
"Why do they tie you to these rubbish controller things when I have a perfectly good pc sitting over there?"
Perhaps most people's PC aren't good enough for gaming as a specially designed machine like consoles. Or perhaps the simplicity of playing with a joystick on the sofa in a big screen is far more entertaing for some people rather than playing with keyboard and mouse in the same boring PC of everyday job...
"I find it slightly wierd when I talk to a kid about games and he shows me the latest greates 'thing' and it's something I played years ago."
Yeah, i remember playing Metal Gear on an old MSX. However, despite featuring basically the same gameplay as the old one, the incredible production values on the plot, spoken dialogue, far better graphics certainly make it stand out. Same for platformers, shoot-em-ups and the likes...
Besides, isn't it the same thing for every human enterprise? Just because some caveman dude in the far past discovered it was cool to beat some trees in some random rythm doesn't mean some people in the future -- say, Bach or Beethoven -- would be mere mediocre rehashers to the thing called music...:)
"you seem to forget that genres like platformers and RPGs are better on a PC anyway"
I don't know that. PCs are known for mindless multiplayer first-person mayhem and turn-based strategic automated board-games.
Platformers like Super Mario Bros., Sonic the Hedgehog or RPGs like Final Fantasy are a very console thingy. To be exact: japanese videogame consoles' thingies.
I'd much rather to control a character via gamepad rather than keyboard/mouse. Keyboard/mouse is what i tirelessly use at work. A gamepad reminds me of a sofa and some rest...
"you might want to take a look at the Reformation and what that was all about."
a break from Rome?
Certainly, not something earthshattering contrary to Christianism faith itself. No questioning about the basic principles, just about who has the rights to claim ownership to such sacred principles...
Final Fantasy, Metal Gear, Metroid, Super Mario, Doom, Castlevania, The Legend of Zelda, Resident Evil... great single-player gaming experiences for those who enjoy going on a quest for self-fulfillment...
gaming *is* social interaction.
Tekken, Quake, Daytona Racing, Super Mario Kart, Ultima Online, World of Warcraft... great multiplayer games where the fun is competing against other people in a straightforward game with a few simple rules...
"life is too complicated to arise by chance, right?"
nah, not at all. You see, all we need is that, somehow, millions of "atoms" get together to form a self-replicating molecule and from there on, let the little fucker go on its "survival of the fittest" ego trip.
Luckily, a short while after the Big Bang expanded nothing into something and this into the Universe, these "atom" things were pretty abundant and began combining in the most crazy ways to produce the most crazy things, including humans, their privileged brains and self-conscience...
nothing like letting a little nothing and chaos to do their job...
"Java is being used for real large projects and works well."
Yes, it works well. Or, adequately. Just not as great as a simple algorithm looped well over 6000 times...
"The point is that Hotspot doesn't care about the side of the codebase, it works on what is actually being run at the time."
at the time. It means, whenever a new chunk of code is to be executed ( and there are many in a huge codebase ), the user experiences that nice stuttering feeling...
why do you think i didn't already? i'm not talking out of my ass, that's for sure...
"I was a very strong critic of Swing years ago, but it really is fast on Java 1.5."
Well, that's nice to know. It's been known to be a hog and it was exactly because of that that SWT came to be.
"I use NetBeans on Linux and Windows, and find no speed problems at all."
Just a few versions ago, Netbeans and Swing run terribly in the face of Eclipse...
"Why should the volume of code matter at all?"
Because it's done at _runtime_! Some gcc compiles are pretty fast -- like hello.c or qsort.c. Some are knightmarish slow -- like a GNOME build. And it's done way before running the resulting code! I wonder how badly slow Gnome would be if written in java...
"So it simply does not slow things down."
sure you're not suggesting that a programmable runtime search for a class methods and attributes, or building of new methods or classes is as fast as statically doing them, right?
"close to 'raw' apache serving web pages and images."
I don't buy it. I see the servlets running on Tomcat at work and the regular Apache pages in the intranet. There's a difference alright.
"there are good theoretical reasons why run-time profiling and compiling could soon exceed the speed of pre-compiling."
Theory guys are know for disregarding the effects of real world phenomena upon their formulas, like completely "forgetting" that, while the optimizations are all fine and dandy by themselves, they are done during *runtime*.
Simply disregarding the time and memory taken by the Hotspot compiler to do that -- at any time its analysis shows a bottleneck -- is not to be taken seriously. It only gets worse at large codebases.
"After all, it is optimising what actually happens, and not what is predicted to happen."
very funny. Here's a similar situation: the developer compiles a build and puts it into production. As users begin to put the software under a lot of stress, the developer tracks down a lot of bottlenecks and goes back to the whiteboard. He does his little coding tricks and hand optimizations and says to the user: "Excuse me for a moment", while stopping the user's own business, taking a snapshot of what he's doing, substituting the running code for the newer and optimized code, and then resuming the user from the snapshot.
"Obviously, an OpenGL/DirectX accelerated GUI (Swing) is going to be faster than one that isn't (SWT)."
Well, good to hear that Swing finally got a clue after the heavy beating by SWT. It was slow like a slime in its quest for a java purity ideal and now finally got some decent performance thanks for some native code backends. Of course, nothing impedes SWT of doing the same...
"All I would say is - don't believe a word I say!"
No problem: I don't!:)
"There are many reasons to dislike Java, but speed is not one of them."
yeah, perhaps runtime performance has got a lot better. Only thing lacking is a good language to tap such a nice platform. Oh, wait! There's always Jython...:)
"I think I am going to re-run more of these benchmarks, and for a longer time - this should make an interesting report."
I don't think that's necessary. It's pretty evident that, given enough time, yes, seems like java's optimizations and Hotspot correct identification of bottlenecks and targetting the current cpu architecture really pay off.
I just said before, though: in real software projects -- not small, simple algorithms with a constant flow -- there's no time, nor enough memory, for doing nice runtime optimizations or bottleneck analysis in such huge codebase...
"if you look at it's performance metrics under Linux it is faster than SWT."
oh, man! well, at least here is a 'myth' about java performance that isn't that old and that can be verified by hand, or should i say, eyes?...
"the ratio of performance java:C changes dramatically as time goes on."
somehow, i doubt the ratio will be that agressive once we walk away from simple algorithms to programs consisting of thousands of classes...
"The standard optimisations used by other languages."
ah, ok... thought it was something magical to do with JITting...
"Hotspot does for Java code what a high-performance C++ compiler does for C++ code - but just at run time."
well, it's exactly that "just at run time" part that is kinda silly...
"has been shown (with version 5.5) to server most pages at a performance close to that of Apache."...close to that of Apache running mod_php, mod_python and others...;)
"Just because a program has thousands of classes does not mean that all these classes are compiled."
that even worse: they're compiled just short of being called!
"With Hotspot, you don't wait."
with GCC better yet: they're compiled way before any use...
"In others, it may be very little. Because there may be very little, this can be done very effectively and quickly."
but when you have thousands of these...
"Garbage collection has nothing to do with introspection."
i know. i was citing two reasons among others...
"Introspection is a specific set of user libraries that allows user code to look at it's own methods and classes."
yes, it's used heavily in certain applications. Hybernate, for instance. As a proponent of dynamically typed languages like myself, i like that java has a way to do it -- though a stupid and verbose one. But fact is: it slows down things a lot, because is all done at runtime...
"surely the most boring thing is to keep repeating old 'myths' about Java performance?"
i'm sure the swing vs swt 'myth' is pretty new.:)
ok, i think i'll finally take a break for the holidays... how about it?:)
"The point was to show that Hotspot is not a CPU or memory hog. As for 'simplified GUIs', these platforms aren't simple at all..."
The screen is of limited size and resolution. Specially size: menu items are big and bright, there are far fewer widgets on screen at any one time than on a regular 1024 x 768 NVidia-powered desktop system. It certainly makes up for smaller cpu and memory requirements.
"This is like comparing the performance of two different operating systems but neglecting to exclude the boot times."
ok, i'll give you the benefit of doubt, mister...
"I am not saying that Hotspot has been around for decades, I am saying that the optimisations it uses have."
never heard of them. Had them be around for so long, surely some languages may have used them before java? What was there before java that could use it? Not C++, for sure, since it uses ahead-of-time, the normal way to compile. Smalltalk was dynamically typed, so i'm not sure compilation would do it any good. I heard Self used many techniques that were later incorpored into Hotspot. But Self is not that much older than Java...
"You simply can't say this without evidence."
Oh, you want some evidence, huh? Just load any Swing based or SWT based java application and wait for it to be any usable. And then, take a look at its memory requirements.
Any other "java powered" technologies i know also run like slimes: Lotus Notes, Oracle Process Admin...
"I have already stated that the compilation time can be over with quickly"
Quickly?! For hello_world.java and qsort.java perhaps. For large real world apps load several thousand classes and the like, it takes well about one minute or so to be done...
"there are now modern garbage collectors that can be used with C and C++ - they usually have little impact when used in place of 'manual' memory handling"
but somehow, people seem to not be using it a lot, huh?
"so which should things be any worse for Java?"
because it has an associated runtime which has to take care of such things as introspection among others...
"No - because I always beat opponents in the end - through boredom if nothing else!"
i'm starting to agree. perhaps you should live by your name and cut the java...:))
It's just a run against simple algorithms, no libraries involved whatsoever except simple stream IO. So, it doesn't show everyday performance, but even then, even simple algorithms on java don't run as nicely as in C/C++/OCaml...
"Once the Hotspot optimiser has done it's work..."
and when is that exactly? AFAIK, it's always doing its job, trying to optimize even more. And, sure, there are other things involved to make it slower past the runtime: Garbage Collection, for instance.
"This is exactly what pre-compilers do."
they do it *before* compilation and certainly *before* running the code, not while loading it...
"(but in a low-priority background thread that does not impair performance)"
every running code incurs some performance penalty.
"If you wish to insist that Java is slower, you are going to have to explain how all these optimisations actually make code slower,"
" when they have for decades been used to give high performance."
decades?! Java itself is barely 2 decades old, JITting is a pretty newer technique and the "Hotspot" compiler has just came out a few years ago. I think you making things up in order to give your arguments some substance they lack...
"The only difference with Java is that this aggressive optimisation takes place mostly during a short period after the application starts."
The compilation time, the library loading times, the Garbage Collector thread cycles, some eventual runtime introspection techniques... the actual scenario is a lot worse than what you paint it to be.
"The '-client' switch (on by default) says 'start up fast and concentrate on optimising later'. This means that, although the program is pretty fast, heavy optimisation may not happen for a while."
Which also means the optimizer is up and running and consuming memory and cpu cycles.
"It is the use of the '-server' switch that allows Java to easily match the output of most C or C++ compilers in most benchmarks providing code runs for more than a few seconds."
hmm, perhaps this influenced the java benchmarks above? i don't know.
"I'm just getting started...."
well, then i guess this will likely be the longest running _dialogue_ *nobody* in slashdot has ever witnessed...:)
"Java starts up as a high-performance interpreter (like Ruby, PERL etc.),"
thanks for the acknowledgement
" then is compiled to native code in the background"
"in the background" still means "in time": it's compiled just before it can run, and then the "hotspot" analyzer goes on looking for spots that can be optimized. It's a runtime, occupying memory and cpu cycles and no matter how many optimizations it does, the generated code still doesn't run at C/C++/OCaml levels...
I wonder what if Unix had fast teletypes at the time and Bill Gates and Steve Jobs took the jobs of Thompson and Ritchie?
you are currently at/Home/Bill/MyDocuments. Type Something, please > change directory to/Programs and Libraries/SharedLibraries/GnuCompilerCollection
are you sure you want to go to/Programs and Libraries/SharedLibraries/GnuCompilerCollection? Type Something, please > y please, answer yes or no > y please, it's a simple, straightforward question: yes or no? > yes
changing directory to/Programs and Libraries/SharedLibraries/GnuCompilerCollection
you are currently at/Programs and Libraries/SharedLibraries/GnuCompilerCollection. Type Something, please > ls
Hi, i'm clippy. It seems you are trying to invoke some command which doesn't exist. Would you like me to help? please, answer yes or no > n please, it's a simple, straightforward question: yes or no? > no, damnit! please, it's a simple, straightforward question: yes or no? > no
Maybe next time i can be of better help. Bye
you are currently at/Programs and Libraries/SharedLibraries/GnuCompilerCollection. Type Something, please > man(BackSpace)(BackSpace)(BackSpace) help
Hi, i'm clippy. Would you like me to help? please, answer yes or no >
"Theo DeRaadt in particular, who is strongly against the GPL because he wants his work to be freely available even to those who'd not make public the source"
"You show little understanding of how modern Java works - it is not JITed in the way you indicate - there is no 'finally' run (I assume by 'finally' you are implying some sort of delay)."
yes, there's a delay while it's being JITted. that's what JIT means: just-in-time compilation. in other words: just in time for a run.
"hotspot optimised to native code, so there is no difference from C."
except while it's being "hotspot optimised" and analyzed for bottlenecks, which is, frequently... and which involves more memory and cpu cycles than just mere native code.
"Tell that to the millions who use Java games on mobile devices each day."
"java games" are using specific chips for graphics and sound and perhaps a thin java wrapper lib for some low-level device API. The logic behind the game is what probably deserves the java mention. And the logic behind most games is pretty lame and basic, specially mobile device games...
"Reasonably full-featured VMs that have things like Gaming 3D libraries."
Like I said, java wrappers for low-level native stuff...
"Your Ruby TK app won't run in that either, and neither will your PHP Zope application."
they don't sell that stupid slogan
"There are resource hogs in all languages. Java is in no way special."
Unlike Ruby, Java does not require any C underneath, as it is compiled directly to native code.
I don't think you understand: the approach used by scripting languages, like ruby, is to act as glue for already compiled software components. For this mean they have a high-level interface, a mere thin wrapper for native libs. Java libs (bytecodes), by contrast, are loaded into the JVM, then compiled (JIT), and finally run.
Java can run in just a few hundred KB.
Can run is not the same as runs. What are you talking about anyway? A stripped-down JVM for embedded devices or a stripped-down HelloWorld.java running in a similar constrained VM with no libs loaded?
Here in the real world, java apps are some real resource hogs.
Java only loads the classes it needs, not the entire library file, as with.SO files and DLLs.
But then, you realize that many java classes are as bulky as a C library. Or, if not, depends on so many other classes, like component classes and others up in the inheritance chain, that end up in the same point as before...
the fastest growth of Java today is in mobile devices, with their restricted memory and CPU power.
"Write once, run anywhere"
How untrue. Your swing app won't run in such environment, neither will you J2EE spaceopera...
Ruby on the JVM uses the JVM as it's runtime - there are no additional layers.
Sure, there's a layer: what do you think will be translating ruby's syntax and operational semantics into the JVM's? So, call it a runtime or otherwise, there's still one more step in the way: that sounds like a performance penalty to me...
Microsoft Windows still dominates the desktop. But in many other areas, including Web servers and supercomputing, Microsoft is just one player among many, and often a weak player at that.
Rome still was an Empire, despite leaving some parts of the world untouched -- China, India etc.
Microsoft also now sells something called Windows Starter Edition in some parts of the world -- supposedly for as low as $37 or $38 (US) in Thailand, including a basic version of Microsoft Office.
Yes, i know: it's offered here in Brazil as well. It has a special feature: you can have at any one time, just 3 app windows open. Nice, huh? Well, since the only somewhat worthy apps coming with it are IE, notepad and minesweeper, i guess it's a good deal...
Microsoft is getting more concerned about interoperability
No, fuck that! It's simply stupid hype! Once Massachussets go back in their OpenDocument decision and begins to use the M$Off open xml formats crippled with tons of proprietary add-ons, there goes the niceness and interoperability...
A majority of desktop computer users may still run Microsoft's Internet Explorer browser, but it no longer has 95% market share.
Yes, it's now at a minority position of just about 90%... people don't know how to "enter" the internet if they can't see the blue e logo anywhere. They go like: "Where's the internet?"
You can run things like Google Maps on Linux, Mac OS, Unix, and even Windows, using any standards-compliant browser you choose.
too bad they're constrained in their effort by the lameass and ancient IE6.0. Though i heard IE7 will get some new-fangled CSS up to date and when it gets a 98% share again, they'll be able to put the IE team to rest for another 5 years or so, until XAML Windows only apps are all the rage...
If even a quarter of the rumors we've heard about Google and Sun joining up to produce a Webified version of OpenOffice.org are true, I suspect Microsoft is going to be a distant...
rumors, just rumors. If rumors were true, M$Off new document formats would be truly open, no trojan-horses at all...
There are over 100,000 Open Source projects on SourceForge.net
Quantity, not quality. Most are dead projects in alfa or beta stage, many are yet another text editor or something not that much original...
There may be a poorly-dressed young man coding furiously in a Beijing Internet cafe, while you read this article, whose new operating system will make all current ones obsolete -- and you may not learn about his work until it shows up in a Chinese-made $100 laptop computer.
Fuck that! What does it has anything to do with the current debate? I think you're trying to induce us to feel pityful of poor M$ and their programmers and their past ( and still going ) illegal commercial practices because it may be that some Indian guy will perhaps someday smash this great and proud American company...
When Bill Gates and his friends started Microsoft, it was one of very few companies that sold nothing but personal computer software, and the others were so small that Microsoft managed to buy most of its competitors
Well, this trend continues to this day: you simply can't have good, creative technology developed outside of M$ and they'll buy anyone and everyone they can. Rareware comes to mind as quite a recent example. Google would too, but i guess now they are more likely to be "fucking killed"...
Instead, they'll start their own software companies...
and be bought either by M$ or another behemoth ( Google included )...
You now are trying to induce us into believing there are far greater oponents to M$ than there actually are. In the software field i only see Google. AOL is more of a content provider...
This isn't really a matter of languages: this is a Java vs.NET match. In the near future, there'll really be 3 very widespread development platforms: POSIX, java and CLR (.NET's runtime and WVista's base )... that's what people are concerned about, not a mere superficial syntatic detail like the language addressing such resources...
But either way python runs on all of them and is far easier and more manageable language than their respective defaults ( C, java, C# )...
"No matter how much you may try and justify things, your users don't care about the language you use to develop - they care about performance."
Then why are you developing in java and its huge memory and cpu costs? To do anything in such limited language, you have to load tons of class libraries, running in the same runtime. By constrast, ruby has many good specialised data types and operators builtin, which do away with many uses for libs, and its libraries are thin wrappers to C compiled stuff running natively...
"There are alternatives - you can use both Ruby and Java together (JRuby works on the JVM)."
It sounds stupid to me to build a runtime on top of another runtime, if the goal is performance.
If your users demand performance above anything else, i suggest you deliver your software without a slow, bulky runtime and have good, experienced programmers who can recognize bottlenecks and fix them, rather than rely on stupid compiler optimizations for things that can't be optimized (i.e: bad algorithms ). Of course, you have all the time in the world in your hands, since performance comes above all...
I don't think much of the success of Pixar is due to Steve Jobs.
Rather, the main man over there is John Lasseter, the legendary animator directly responsible for some of the companies most memorable movies. Would Pixar be anywhere today wasn't it for the brilliant movies?
Jobs is just this one guy who sees ahead better than most and invest in people who can make it happen, like Lasseter or Wozniak...
"I would like to ask when consoles started doing RPGs better than PCs?"
:)
I guess that would be since Square's masterpiece -- Final Fantasy VI, on SNES. Or perhaps a little before that, with Enix's swan song on the NES -- the amazing Dragon Quest IV. That was when RPGs as a storytelling medium took a huge step forward over the hack'n'slash multiplayer PC RPG boredom...
In fact, IMHO multiplayer RPG things in the PC are extremely boring because it takes away the fantasy about the game: suddenly, you're well aware that you're not fighting some truly cruel villain, just some Joe Blow from Milwaukee... kind of a let down in a "RPG"...
"Why do they tie you to these rubbish controller things when I have a perfectly good pc sitting over there?"
Perhaps most people's PC aren't good enough for gaming as a specially designed machine like consoles. Or perhaps the simplicity of playing with a joystick on the sofa in a big screen is far more entertaing for some people rather than playing with keyboard and mouse in the same boring PC of everyday job...
"I find it slightly wierd when I talk to a kid about games and he shows me the latest greates 'thing' and it's something I played years ago."
Yeah, i remember playing Metal Gear on an old MSX. However, despite featuring basically the same gameplay as the old one, the incredible production values on the plot, spoken dialogue, far better graphics certainly make it stand out. Same for platformers, shoot-em-ups and the likes...
Besides, isn't it the same thing for every human enterprise? Just because some caveman dude in the far past discovered it was cool to beat some trees in some random rythm doesn't mean some people in the future -- say, Bach or Beethoven -- would be mere mediocre rehashers to the thing called music...
"you seem to forget that genres like platformers and RPGs are better on a PC anyway"
I don't know that. PCs are known for mindless multiplayer first-person mayhem and turn-based strategic automated board-games.
Platformers like Super Mario Bros., Sonic the Hedgehog or RPGs like Final Fantasy are a very console thingy. To be exact: japanese videogame consoles' thingies.
I'd much rather to control a character via gamepad rather than keyboard/mouse. Keyboard/mouse is what i tirelessly use at work. A gamepad reminds me of a sofa and some rest...
"Mono is not quite here for prime time - it is slow and sluggish"
.net themselves...
that never hampered java and
you haven't seen anything: doors that emit joyness sounds as we pass by...
"you might want to take a look at the Reformation and what that was all about."
a break from Rome?
Certainly, not something earthshattering contrary to Christianism faith itself. No questioning about the basic principles, just about who has the rights to claim ownership to such sacred principles...
gaming *is* escapism.
Final Fantasy, Metal Gear, Metroid, Super Mario, Doom, Castlevania, The Legend of Zelda, Resident Evil... great single-player gaming experiences for those who enjoy going on a quest for self-fulfillment...
gaming *is* social interaction.
Tekken, Quake, Daytona Racing, Super Mario Kart, Ultima Online, World of Warcraft... great multiplayer games where the fun is competing against other people in a straightforward game with a few simple rules...
"life is too complicated to arise by chance, right?"
nah, not at all. You see, all we need is that, somehow, millions of "atoms" get together to form a self-replicating molecule and from there on, let the little fucker go on its "survival of the fittest" ego trip.
Luckily, a short while after the Big Bang expanded nothing into something and this into the Universe, these "atom" things were pretty abundant and began combining in the most crazy ways to produce the most crazy things, including humans, their privileged brains and self-conscience...
nothing like letting a little nothing and chaos to do their job...
"Java is being used for real large projects and works well."
Yes, it works well. Or, adequately. Just not as great as a simple algorithm looped well over 6000 times...
"The point is that Hotspot doesn't care about the side of the codebase, it works on what is actually being run at the time."
at the time. It means, whenever a new chunk of code is to be executed ( and there are many in a huge codebase ), the user experiences that nice stuttering feeling...
"Why not try it?"
:)
:)
why do you think i didn't already? i'm not talking out of my ass, that's for sure...
"I was a very strong critic of Swing years ago, but it really is fast on Java 1.5."
Well, that's nice to know. It's been known to be a hog and it was exactly because of that that SWT came to be.
"I use NetBeans on Linux and Windows, and find no speed problems at all."
Just a few versions ago, Netbeans and Swing run terribly in the face of Eclipse...
"Why should the volume of code matter at all?"
Because it's done at _runtime_! Some gcc compiles are pretty fast -- like hello.c or qsort.c. Some are knightmarish slow -- like a GNOME build. And it's done way before running the resulting code! I wonder how badly slow Gnome would be if written in java...
"So it simply does not slow things down."
sure you're not suggesting that a programmable runtime search for a class methods and attributes, or building of new methods or classes is as fast as statically doing them, right?
"close to 'raw' apache serving web pages and images."
I don't buy it. I see the servlets running on Tomcat at work and the regular Apache pages in the intranet. There's a difference alright.
"there are good theoretical reasons why run-time profiling and compiling could soon exceed the speed of pre-compiling."
Theory guys are know for disregarding the effects of real world phenomena upon their formulas, like completely "forgetting" that, while the optimizations are all fine and dandy by themselves, they are done during *runtime*.
Simply disregarding the time and memory taken by the Hotspot compiler to do that -- at any time its analysis shows a bottleneck -- is not to be taken seriously. It only gets worse at large codebases.
"After all, it is optimising what actually happens, and not what is predicted to happen."
very funny. Here's a similar situation: the developer compiles a build and puts it into production. As users begin to put the software under a lot of stress, the developer tracks down a lot of bottlenecks and goes back to the whiteboard. He does his little coding tricks and hand optimizations and says to the user: "Excuse me for a moment", while stopping the user's own business, taking a snapshot of what he's doing, substituting the running code for the newer and optimized code, and then resuming the user from the snapshot.
"Obviously, an OpenGL/DirectX accelerated GUI (Swing) is going to be faster than one that isn't (SWT)."
Well, good to hear that Swing finally got a clue after the heavy beating by SWT. It was slow like a slime in its quest for a java purity ideal and now finally got some decent performance thanks for some native code backends. Of course, nothing impedes SWT of doing the same...
"All I would say is - don't believe a word I say!"
No problem: I don't!
"There are many reasons to dislike Java, but speed is not one of them."
yeah, perhaps runtime performance has got a lot better. Only thing lacking is a good language to tap such a nice platform. Oh, wait! There's always Jython...
And a happy new year...
"I think I am going to re-run more of these benchmarks, and for a longer time - this should make an interesting report."
I don't think that's necessary. It's pretty evident that, given enough time, yes, seems like java's optimizations and Hotspot correct identification of bottlenecks and targetting the current cpu architecture really pay off.
I just said before, though: in real software projects -- not small, simple algorithms with a constant flow -- there's no time, nor enough memory, for doing nice runtime optimizations or bottleneck analysis in such huge codebase...
"if you look at it's performance metrics under Linux it is faster than SWT."
...close to that of Apache running mod_php, mod_python and others... ;)
:)
:)
oh, man! well, at least here is a 'myth' about java performance that isn't that old and that can be verified by hand, or should i say, eyes?...
"the ratio of performance java:C changes dramatically as time goes on."
somehow, i doubt the ratio will be that agressive once we walk away from simple algorithms to programs consisting of thousands of classes...
"The standard optimisations used by other languages."
ah, ok... thought it was something magical to do with JITting...
"Hotspot does for Java code what a high-performance C++ compiler does for C++ code - but just at run time."
well, it's exactly that "just at run time" part that is kinda silly...
"has been shown (with version 5.5) to server most pages at a performance close to that of Apache."
"Just because a program has thousands of classes does not mean that all these classes are compiled."
that even worse: they're compiled just short of being called!
"With Hotspot, you don't wait."
with GCC better yet: they're compiled way before any use...
"In others, it may be very little. Because there may be very little, this can be done very effectively and quickly."
but when you have thousands of these...
"Garbage collection has nothing to do with introspection."
i know. i was citing two reasons among others...
"Introspection is a specific set of user libraries that allows user code to look at it's own methods and classes."
yes, it's used heavily in certain applications. Hybernate, for instance. As a proponent of dynamically typed languages like myself, i like that java has a way to do it -- though a stupid and verbose one. But fact is: it slows down things a lot, because is all done at runtime...
"surely the most boring thing is to keep repeating old 'myths' about Java performance?"
i'm sure the swing vs swt 'myth' is pretty new.
ok, i think i'll finally take a break for the holidays... how about it?
"SWT is not the fastest of systems."
:))
then i suppose Swing is?
"This is irrelevant."
how come?! sure is not!
"The point was to show that Hotspot is not a CPU or memory hog. As for 'simplified GUIs', these platforms aren't simple at all..."
The screen is of limited size and resolution. Specially size: menu items are big and bright, there are far fewer widgets on screen at any one time than on a regular 1024 x 768 NVidia-powered desktop system. It certainly makes up for smaller cpu and memory requirements.
"This is like comparing the performance of two different operating systems but neglecting to exclude the boot times."
ok, i'll give you the benefit of doubt, mister...
"I am not saying that Hotspot has been around for decades, I am saying that the optimisations it uses have."
never heard of them. Had them be around for so long, surely some languages may have used them before java? What was there before java that could use it? Not C++, for sure, since it uses ahead-of-time, the normal way to compile. Smalltalk was dynamically typed, so i'm not sure compilation would do it any good. I heard Self used many techniques that were later incorpored into Hotspot. But Self is not that much older than Java...
"You simply can't say this without evidence."
Oh, you want some evidence, huh? Just load any Swing based or SWT based java application and wait for it to be any usable. And then, take a look at its memory requirements.
Any other "java powered" technologies i know also run like slimes: Lotus Notes, Oracle Process Admin...
"I have already stated that the compilation time can be over with quickly"
Quickly?! For hello_world.java and qsort.java perhaps. For large real world apps load several thousand classes and the like, it takes well about one minute or so to be done...
"there are now modern garbage collectors that can be used with C and C++ - they usually have little impact when used in place of 'manual' memory handling"
but somehow, people seem to not be using it a lot, huh?
"so which should things be any worse for Java?"
because it has an associated runtime which has to take care of such things as introspection among others...
"No - because I always beat opponents in the end - through boredom if nothing else!"
i'm starting to agree. perhaps you should live by your name and cut the java...
"But even within a few seconds, it gets much faster."
:)
a few seconds?! even SWTed Eclipse begs to disagree. Many very useful perl batch scripts are done while most Java apps are still loading!
Yes, eventually it gets a bit faster, but at any one time it needs to load another class or the like, it boggles down with some stuttering...
"Hotspot optimisers run fine even in restricted memory and CPU situations like J2ME."
Which run thoughroughly simplified GUIs and the like. Let's focus on real everyday stuff running on current desktop systems, ok?
"saying that 'the generated code still doesn't run at C/C++.. levels' is simply factually wrong."
You can take a look here and compare for yourself:
http://shootout.alioth.debian.org/
It's just a run against simple algorithms, no libraries involved whatsoever except simple stream IO. So, it doesn't show everyday performance, but even then, even simple algorithms on java don't run as nicely as in C/C++/OCaml...
"Once the Hotspot optimiser has done it's work..."
and when is that exactly? AFAIK, it's always doing its job, trying to optimize even more. And, sure, there are other things involved to make it slower past the runtime: Garbage Collection, for instance.
"This is exactly what pre-compilers do."
they do it *before* compilation and certainly *before* running the code, not while loading it...
"(but in a low-priority background thread that does not impair performance)"
every running code incurs some performance penalty.
"If you wish to insist that Java is slower, you are going to have to explain how all these optimisations actually make code slower,"
" when they have for decades been used to give high performance."
decades?! Java itself is barely 2 decades old, JITting is a pretty newer technique and the "Hotspot" compiler has just came out a few years ago. I think you making things up in order to give your arguments some substance they lack...
"The only difference with Java is that this aggressive optimisation takes place mostly during a short period after the application starts."
The compilation time, the library loading times, the Garbage Collector thread cycles, some eventual runtime introspection techniques... the actual scenario is a lot worse than what you paint it to be.
"The '-client' switch (on by default) says 'start up fast and concentrate on optimising later'. This means that, although the program is pretty fast, heavy optimisation may not happen for a while."
Which also means the optimizer is up and running and consuming memory and cpu cycles.
"It is the use of the '-server' switch that allows Java to easily match the output of most C or C++ compilers in most benchmarks providing code runs for more than a few seconds."
hmm, perhaps this influenced the java benchmarks above? i don't know.
"I'm just getting started...."
well, then i guess this will likely be the longest running _dialogue_ *nobody* in slashdot has ever witnessed...
"Java starts up as a high-performance interpreter (like Ruby, PERL etc.),"
thanks for the acknowledgement
" then is compiled to native code in the background"
"in the background" still means "in time": it's compiled just before it can run, and then the "hotspot" analyzer goes on looking for spots that can be optimized. It's a runtime, occupying memory and cpu cycles and no matter how many optimizations it does, the generated code still doesn't run at C/C++/OCaml levels...
hey, i'm kinda tired. are you?
I wonder what if Unix had fast teletypes at the time and Bill Gates and Steve Jobs took the jobs of Thompson and Ritchie?
/Home/Bill/MyDocuments. Type Something, please > change directory to /Programs and Libraries/SharedLibraries/GnuCompilerCollection
/Programs and Libraries/SharedLibraries/GnuCompilerCollection? Type Something, please > y
/Programs and Libraries/SharedLibraries/GnuCompilerCollection
/Programs and Libraries/SharedLibraries/GnuCompilerCollection. Type Something, please > ls
/Programs and Libraries/SharedLibraries/GnuCompilerCollection. Type Something, please > man(BackSpace)(BackSpace)(BackSpace) help
you are currently at
are you sure you want to go to
please, answer yes or no > y
please, it's a simple, straightforward question: yes or no? > yes
changing directory to
you are currently at
Hi, i'm clippy. It seems you are trying to invoke some command which doesn't exist. Would you like me to help? please, answer yes or no > n
please, it's a simple, straightforward question: yes or no? > no, damnit!
please, it's a simple, straightforward question: yes or no? > no
Maybe next time i can be of better help. Bye
you are currently at
Hi, i'm clippy. Would you like me to help? please, answer yes or no >
.
.
.
"Theo DeRaadt in particular, who is strongly against the GPL because he wants his work to be freely available even to those who'd not make public the source"
the man is a humanitarian...
"You show little understanding of how modern Java works - it is not JITed in the way you indicate - there is no 'finally' run (I assume by 'finally' you are implying some sort of delay)."
yes, there's a delay while it's being JITted. that's what JIT means: just-in-time compilation. in other words: just in time for a run.
"hotspot optimised to native code, so there is no difference from C."
except while it's being "hotspot optimised" and analyzed for bottlenecks, which is, frequently... and which involves more memory and cpu cycles than just mere native code.
"Tell that to the millions who use Java games on mobile devices each day."
"java games" are using specific chips for graphics and sound and perhaps a thin java wrapper lib for some low-level device API. The logic behind the game is what probably deserves the java mention. And the logic behind most games is pretty lame and basic, specially mobile device games...
"Reasonably full-featured VMs that have things like Gaming 3D libraries."
Like I said, java wrappers for low-level native stuff...
"Your Ruby TK app won't run in that either, and neither will your PHP Zope application."
they don't sell that stupid slogan
"There are resource hogs in all languages. Java is in no way special."
so there we have it.
"what will be hot"
except for this one, Vista won't:
"make a difference in our lives"
hey, surely yet another Windows won't.
"make someone rich and famous"
Bill Gates is already very rich and famous.
Unlike Ruby, Java does not require any C underneath, as it is compiled directly to native code.
I don't think you understand: the approach used by scripting languages, like ruby, is to act as glue for already compiled software components. For this mean they have a high-level interface, a mere thin wrapper for native libs. Java libs (bytecodes), by contrast, are loaded into the JVM, then compiled (JIT), and finally run.
Java can run in just a few hundred KB.
Can run is not the same as runs. What are you talking about anyway? A stripped-down JVM for embedded devices or a stripped-down HelloWorld.java running in a similar constrained VM with no libs loaded?
Here in the real world, java apps are some real resource hogs.
Java only loads the classes it needs, not the entire library file, as with .SO files and DLLs.
But then, you realize that many java classes are as bulky as a C library. Or, if not, depends on so many other classes, like component classes and others up in the inheritance chain, that end up in the same point as before...
the fastest growth of Java today is in mobile devices, with their restricted memory and CPU power.
"Write once, run anywhere"
How untrue. Your swing app won't run in such environment, neither will you J2EE spaceopera...
Ruby on the JVM uses the JVM as it's runtime - there are no additional layers.
Sure, there's a layer: what do you think will be translating ruby's syntax and operational semantics into the JVM's? So, call it a runtime or otherwise, there's still one more step in the way: that sounds like a performance penalty to me...
You really need to get up to date.
and you should know it better
Is Microsoft Still a Monopoly?
yes
Microsoft Windows still dominates the desktop. But in many other areas, including Web servers and supercomputing, Microsoft is just one player among many, and often a weak player at that.
Rome still was an Empire, despite leaving some parts of the world untouched -- China, India etc.
Microsoft also now sells something called Windows Starter Edition in some parts of the world -- supposedly for as low as $37 or $38 (US) in Thailand, including a basic version of Microsoft Office.
Yes, i know: it's offered here in Brazil as well. It has a special feature: you can have at any one time, just 3 app windows open. Nice, huh? Well, since the only somewhat worthy apps coming with it are IE, notepad and minesweeper, i guess it's a good deal...
Microsoft is getting more concerned about interoperability
No, fuck that! It's simply stupid hype! Once Massachussets go back in their OpenDocument decision and begins to use the M$Off open xml formats crippled with tons of proprietary add-ons, there goes the niceness and interoperability...
A majority of desktop computer users may still run Microsoft's Internet Explorer browser, but it no longer has 95% market share.
Yes, it's now at a minority position of just about 90%... people don't know how to "enter" the internet if they can't see the blue e logo anywhere. They go like: "Where's the internet?"
You can run things like Google Maps on Linux, Mac OS, Unix, and even Windows, using any standards-compliant browser you choose.
too bad they're constrained in their effort by the lameass and ancient IE6.0. Though i heard IE7 will get some new-fangled CSS up to date and when it gets a 98% share again, they'll be able to put the IE team to rest for another 5 years or so, until XAML Windows only apps are all the rage...
If even a quarter of the rumors we've heard about Google and Sun joining up to produce a Webified version of OpenOffice.org are true, I suspect Microsoft is going to be a distant...
rumors, just rumors. If rumors were true, M$Off new document formats would be truly open, no trojan-horses at all...
There are over 100,000 Open Source projects on SourceForge.net
Quantity, not quality. Most are dead projects in alfa or beta stage, many are yet another text editor or something not that much original...
There may be a poorly-dressed young man coding furiously in a Beijing Internet cafe, while you read this article, whose new operating system will make all current ones obsolete -- and you may not learn about his work until it shows up in a Chinese-made $100 laptop computer.
Fuck that! What does it has anything to do with the current debate? I think you're trying to induce us to feel pityful of poor M$ and their programmers and their past ( and still going ) illegal commercial practices because it may be that some Indian guy will perhaps someday smash this great and proud American company...
When Bill Gates and his friends started Microsoft, it was one of very few companies that sold nothing but personal computer software, and the others were so small that Microsoft managed to buy most of its competitors
Well, this trend continues to this day: you simply can't have good, creative technology developed outside of M$ and they'll buy anyone and everyone they can. Rareware comes to mind as quite a recent example. Google would too, but i guess now they are more likely to be "fucking killed"...
Instead, they'll start their own software companies...
and be bought either by M$ or another behemoth ( Google included )...
You now are trying to induce us into believing there are far greater oponents to M$ than there actually are. In the software field i only see Google. AOL is more of a content provider...
Windows XP is immeasurably
This isn't really a matter of languages: this is a Java vs .NET match. In the near future, there'll really be 3 very widespread development platforms: POSIX, java and CLR ( .NET's runtime and WVista's base )... that's what people are concerned about, not a mere superficial syntatic detail like the language addressing such resources...
But either way python runs on all of them and is far easier and more manageable language than their respective defaults ( C, java, C# )...
"No matter how much you may try and justify things, your users don't care about the language you use to develop - they care about performance."
Then why are you developing in java and its huge memory and cpu costs? To do anything in such limited language, you have to load tons of class libraries, running in the same runtime. By constrast, ruby has many good specialised data types and operators builtin, which do away with many uses for libs, and its libraries are thin wrappers to C compiled stuff running natively...
"There are alternatives - you can use both Ruby and Java together (JRuby works on the JVM)."
It sounds stupid to me to build a runtime on top of another runtime, if the goal is performance.
If your users demand performance above anything else, i suggest you deliver your software without a slow, bulky runtime and have good, experienced programmers who can recognize bottlenecks and fix them, rather than rely on stupid compiler optimizations for things that can't be optimized (i.e: bad algorithms ). Of course, you have all the time in the world in your hands, since performance comes above all...
everyday, a bit less
just drop the "wiki", if it isn't supposed to be editable by the users...