You cannot run an interpreted language faster than a compiled language on the same hardware unless you cheat.
I'm going to assume you are honestly ignorant, and not trolling, despite that I even mentioned JIT compilation in my previous comment.
HotSpot, the canonical JVM, has had a JIT compiler (i.e. has not been a purely interpretive VM) since 1998.
You're cheating semantically; anything is rhetorically "comparable" to anything else.
No. I meant what I wrote. They really are comparable. If we look at the shootout, where benchmarks are generally very short-running and thus considerably penalise Java compared to C, we see Java still beats C performance in two of the benchmarks.
It gets outpaced pretty roundly by C in certain other benchmarks, admittedly.
In the early days, Java performance was truly awful as it was interpreted. It was especially awful in GUI applications, as Swing was a total mess for quite a long time.
And "properties and methods" includes the constitutionally-defended rights?
corporations are just a group of people that work together. But due to their structure, function and purpose, they have to be treated as a legal entity equivalent to an individual human.
Well, they need to be recognised as an entity by the law, yes. That isn't to say they should necessarily be considered to be people, with all that comes with that. (I'm uncertain which of these ideas you meant by "equivalent".)
My interpretation was that that was precisely al0ha's point: that it legitimises the thinking of that absurd court decision, and that we should more explicitly blame the actual people.
So the al0ha-friendly way of putting it would be:
Fat-cats in charge of corporation place self-interest over popular hot-button issue. Stay tuned for more.
Fair points, but I still think it was an awful decision to release Android using an interpreter for its recommended software stack.
I'm not suggesting just taking HotSpot and dumping it on a phone, and you're right that the JVM has its drawbacks, but they could have, say, adopted a system comparable to Mac's "universal binaries": apps ship with both Dalvik bytecode, and an ahead-of-time-compiled ARM-specific binary. In the future, when Android has a decent JIT compiler and may or may not still be running primarily on ARM, the shipped ARM binary could be ignored, and the Dalvik code used instead.
Or run an ahead-of-time compiler at app-installation time. Platform independence is preserved, performance will be good, but you'll have a lengthier installation process. C# does this I believe, and of course Unix has been shipping programs in source form forever.
Neither of my suggestions require starting from scratch with the compiler, as they don't depend on the Dalvik IR. Java->native code compilation can be done; Google could easily kick GCJ back into life, or something similar using LLVM.
I put "performance comparable to C". I did not put "It runs fast if you throw enough hardware at it". Ruby, for example, would never approach the performance of C, no matter how big your supercomputer. This is not true of Java. Heavyweight computers that can cope with Java's JIT compilation/multiple background threads/etc can run Java code at approaching C speed.
they finally clued in that Java simply isn't fast enough on slower processors to do gaming.
To be fair, Java is pretty damn fast in the right context. HotSpot running on a heavyweight server should give performance comparable to C.
Google decided not to leverage the existing Java implementations, and instead start over - their first release of Dalvik didn't even include a JIT compiler; it was purely interpretive. Back to square one of the 'See, Java is so slow' battle, and on mobiles, where performance is actually relevant.
The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.
In other words: just because JavaScript is deployed in the same language as it's written doesn't mean that what your browser receives is the source code. JavaScript obfuscators/compressors/optimisers introduce a source/'object' distinction comparable to what we see in C.
Also there are JavaScript development frameworks which translate some other programming language into JavaScript. GWT does this. Again, what your browser receives is certainly not the source.
the website operator isn't hurt by these things, so they don't care. There's no disincentive to hiring crappy developers.
It certainly hurts a company's credibility to be hacked. It won't get them shut down by the authorities the way a restaurant with an unsanitary kitchen will be shut down, but it's still going to be a PR problem.
I haven't got numbers, but I imagine Linode's business suffered at least a bit after they were hacked.
Without meaning to sound frivolous, do you have a link?
I actually had missed these things - Google didn't turn up much. From my brief Googling, it seems that at least the Swedish Pirate Party aren't in favour of actually abolishing copyright, they just want to give it a significant overhaul.
Point taken - I myself think of freely available ebooks as value-add for the treeware, as is the case with Thinking in C++ - but piracy seems to be much more popular with music and video than with books.
If it was legal to build a free-of-charge Netflix-like service that paid nothing back to the companies behind the available shows, and made a profit from advertising, then that service would flourish, to the detriment of the actual content-producers.
AFAIC all patents and copyright should be abolished on a general principle that government has no authority to protect or promote any business (or private protection scheme of any ideas or implementations) in the first place and all of a sudden the problem disappears. You want protection? It's your private business, use trade secrets and contracts.
Talk about throwing the baby out with the bathwater.
Let me guess: when I buy a book, I'd be bound by contract to respect the author/publisher's right to control duplication, right? Is this meant to bind from the moment of purchase, or of opening the book?
If I am recording video of me walking along the street, and walk past someone reading a newspaper, then unless I'm contract-bound simply by having inadvertently seen the newspaper, then all the contents of that newspaper that I have recorded are essentially 'public domain' now, right? The copyright idea of 'fair use' can't apply here, after all.
I've yet to hear a vaguely plausible defence for replacing copyright by contracts. I've also never seen the idea seriously forwarded outside of Slashdot discussion.
Updating can be disabled for games, you can even specify which ones you want to auto-update and which ones to never auto-update.
Googling turnedupthese. It doesn't seem that Steam has a good solution for the weekend-with-dialup case, even with whatever the Do Not Update feature gives you.
I'm not saying Steam is worse than the competition, just that it's sometimes worse than no DRM. Having dealt with GreenManGaming's "Capsule" client (it's pretty awful: there's no equivalent of Steam's Backup feature, for instance - you're just meant to re-download) I now appreciate Steam's features and maturity rather more.
There are some games with always-on DRM, Ubisoft is pretty (in)famous for that. There are games with DRM that requires you to go online to activate once, but then not again. There are games with DRM that kinda fades in to the background and is just part of the setup (like Steam). Finally there are games with no DRM at all.
I'd be reluctant to give Steam a free pass.
I'll grant that it 'fades into the background' when it's working, but you cannot play a Steam game without at the very least enabling it using an Internet connection, even just for single-player; you're screwed if you're without a net connection, or if Steam's servers are down. (Which does happen, just not very often.) This has a practical impact if you're hoping to install from the DVD you bought, without an Internet connection. Also, you need Steam running in the background at all times while you play.
My biggest complaint with Steam is the forced-updates, which have bitten me more than once.
If I've reinstalled Windows and restored a game from a Steam back-up on an external hdd, and authenticate over 3G in the hope of just being able to play, I have to hope there hasn't been a patch released. In this case, it certainly can't be said to 'fade into the background'.
People who wrote code which smoothly made the transition from 32-bit to 64-bit w/o requiring a rewrite yet was still able to take advantage of increased width don't think it was a waste. Or whose portable code can work on a desktop machine with 8-bit bytes, or on embedded DSPs with 16-bit bytes....
What exactly do you mean by take advantage?
Do you just mean that, in well-written C, an increase in bus width is only ever a good thing, and at the same time it enables efficient DSP code?
In, say, Java, moving to 64 bit will have no effect on program semantics because of the fixed-sized primitives (i.e. unlike C, it just about guarantees you won't see any new bugs from the transition), but might enable one to take advantage of a larger heap.
There's also the non-trivial matter of
People who wrote code which...
which certainly isn't all C programmers. Reflects C's unusually pro-performance design, I guess. Interestingly it looks like the D programming language has no support for C-style CPU-dependent primitives, only fixed-sized.
So Cisco will install some updates even when you specifically say no updates.
So just block Cisco's update mechanism with your router. Oh, wait...
Seriously though, does anyone know if that would work? If you have the router block all traffic to/from Cisco update, will that block apply to connections initiated by the router itself?
Oops, seems I responded to the wrong comment (I assumed I hit a comment-depth limit) - I was aiming for godefroi's comment.
...so? His murderer used a gun, did he not?
If you intended to say "That happens surprisingly rarely", you should have put "That happens surprisingly rarely".
(How common it actually is, I don't know.)
You cannot run an interpreted language faster than a compiled language on the same hardware unless you cheat.
I'm going to assume you are honestly ignorant, and not trolling, despite that I even mentioned JIT compilation in my previous comment.
HotSpot, the canonical JVM, has had a JIT compiler (i.e. has not been a purely interpretive VM) since 1998.
You're cheating semantically; anything is rhetorically "comparable" to anything else.
No. I meant what I wrote. They really are comparable. If we look at the shootout, where benchmarks are generally very short-running and thus considerably penalise Java compared to C, we see Java still beats C performance in two of the benchmarks.
It gets outpaced pretty roundly by C in certain other benchmarks, admittedly.
In the early days, Java performance was truly awful as it was interpreted. It was especially awful in GUI applications, as Swing was a total mess for quite a long time.
And "properties and methods" includes the constitutionally-defended rights?
corporations are just a group of people that work together. But due to their structure, function and purpose, they have to be treated as a legal entity equivalent to an individual human.
Well, they need to be recognised as an entity by the law, yes. That isn't to say they should necessarily be considered to be people, with all that comes with that. (I'm uncertain which of these ideas you meant by "equivalent".)
My interpretation was that that was precisely al0ha's point: that it legitimises the thinking of that absurd court decision, and that we should more explicitly blame the actual people.
So the al0ha-friendly way of putting it would be:
Fat-cats in charge of corporation place self-interest over popular hot-button issue. Stay tuned for more.
Fair points, but I still think it was an awful decision to release Android using an interpreter for its recommended software stack.
I'm not suggesting just taking HotSpot and dumping it on a phone, and you're right that the JVM has its drawbacks, but they could have, say, adopted a system comparable to Mac's "universal binaries": apps ship with both Dalvik bytecode, and an ahead-of-time-compiled ARM-specific binary. In the future, when Android has a decent JIT compiler and may or may not still be running primarily on ARM, the shipped ARM binary could be ignored, and the Dalvik code used instead.
Or run an ahead-of-time compiler at app-installation time. Platform independence is preserved, performance will be good, but you'll have a lengthier installation process. C# does this I believe, and of course Unix has been shipping programs in source form forever.
Neither of my suggestions require starting from scratch with the compiler, as they don't depend on the Dalvik IR. Java->native code compilation can be done; Google could easily kick GCJ back into life, or something similar using LLVM.
No. Bad strawman; no biscuit.
I put "performance comparable to C". I did not put "It runs fast if you throw enough hardware at it". Ruby, for example, would never approach the performance of C, no matter how big your supercomputer. This is not true of Java. Heavyweight computers that can cope with Java's JIT compilation/multiple background threads/etc can run Java code at approaching C speed.
And now I know ;P
they finally clued in that Java simply isn't fast enough on slower processors to do gaming.
To be fair, Java is pretty damn fast in the right context. HotSpot running on a heavyweight server should give performance comparable to C.
Google decided not to leverage the existing Java implementations, and instead start over - their first release of Dalvik didn't even include a JIT compiler; it was purely interpretive. Back to square one of the 'See, Java is so slow' battle, and on mobiles, where performance is actually relevant.
float.kfc shows the basic Scheme-style syntax.
I wonder why it uses .kfc as its extension...
The ever-unpopular Steve Gibson covered this, saying the solution is memory-hard hashing.
(Ctrl+f for "simplified".)
Not always, which was part of his point: he's discussing obfuscated JavaScript.
From the GPL 3.0:
The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.
In other words: just because JavaScript is deployed in the same language as it's written doesn't mean that what your browser receives is the source code. JavaScript obfuscators/compressors/optimisers introduce a source/'object' distinction comparable to what we see in C.
Also there are JavaScript development frameworks which translate some other programming language into JavaScript. GWT does this. Again, what your browser receives is certainly not the source.
the website operator isn't hurt by these things, so they don't care. There's no disincentive to hiring crappy developers.
It certainly hurts a company's credibility to be hacked. It won't get them shut down by the authorities the way a restaurant with an unsanitary kitchen will be shut down, but it's still going to be a PR problem.
I haven't got numbers, but I imagine Linode's business suffered at least a bit after they were hacked.
Good point. There's an obvious pharmaceutical/patents analogy here.
I'd never heard of either of those sites. I'm not saying ebook piracy doesn't occur, but I stand by
piracy seems to be much more popular with music and video than with books
(I don't know the numbers; I could be wrong, but I'd be surprised.)
Without meaning to sound frivolous, do you have a link?
I actually had missed these things - Google didn't turn up much. From my brief Googling, it seems that at least the Swedish Pirate Party aren't in favour of actually abolishing copyright, they just want to give it a significant overhaul.
Point taken - I myself think of freely available ebooks as value-add for the treeware, as is the case with Thinking in C++ - but piracy seems to be much more popular with music and video than with books.
If it was legal to build a free-of-charge Netflix-like service that paid nothing back to the companies behind the available shows, and made a profit from advertising, then that service would flourish, to the detriment of the actual content-producers.
AFAIC all patents and copyright should be abolished on a general principle that government has no authority to protect or promote any business (or private protection scheme of any ideas or implementations) in the first place and all of a sudden the problem disappears. You want protection? It's your private business, use trade secrets and contracts.
Talk about throwing the baby out with the bathwater.
Let me guess: when I buy a book, I'd be bound by contract to respect the author/publisher's right to control duplication, right? Is this meant to bind from the moment of purchase, or of opening the book?
If I am recording video of me walking along the street, and walk past someone reading a newspaper, then unless I'm contract-bound simply by having inadvertently seen the newspaper, then all the contents of that newspaper that I have recorded are essentially 'public domain' now, right? The copyright idea of 'fair use' can't apply here, after all.
I've yet to hear a vaguely plausible defence for replacing copyright by contracts. I've also never seen the idea seriously forwarded outside of Slashdot discussion.
Updating can be disabled for games, you can even specify which ones you want to auto-update and which ones to never auto-update.
Googling turned up these. It doesn't seem that Steam has a good solution for the weekend-with-dialup case, even with whatever the Do Not Update feature gives you.
I'm not saying Steam is worse than the competition, just that it's sometimes worse than no DRM. Having dealt with GreenManGaming's "Capsule" client (it's pretty awful: there's no equivalent of Steam's Backup feature, for instance - you're just meant to re-download) I now appreciate Steam's features and maturity rather more.
There are some games with always-on DRM, Ubisoft is pretty (in)famous for that. There are games with DRM that requires you to go online to activate once, but then not again. There are games with DRM that kinda fades in to the background and is just part of the setup (like Steam). Finally there are games with no DRM at all.
I'd be reluctant to give Steam a free pass.
I'll grant that it 'fades into the background' when it's working, but you cannot play a Steam game without at the very least enabling it using an Internet connection, even just for single-player; you're screwed if you're without a net connection, or if Steam's servers are down. (Which does happen, just not very often.) This has a practical impact if you're hoping to install from the DVD you bought, without an Internet connection. Also, you need Steam running in the background at all times while you play.
My biggest complaint with Steam is the forced-updates, which have bitten me more than once.
If I've reinstalled Windows and restored a game from a Steam back-up on an external hdd, and authenticate over 3G in the hope of just being able to play, I have to hope there hasn't been a patch released. In this case, it certainly can't be said to 'fade into the background'.
People who wrote code which smoothly made the transition from 32-bit to 64-bit w/o requiring a rewrite yet was still able to take advantage of increased width don't think it was a waste. Or whose portable code can work on a desktop machine with 8-bit bytes, or on embedded DSPs with 16-bit bytes....
What exactly do you mean by take advantage?
Do you just mean that, in well-written C, an increase in bus width is only ever a good thing, and at the same time it enables efficient DSP code?
In, say, Java, moving to 64 bit will have no effect on program semantics because of the fixed-sized primitives (i.e. unlike C, it just about guarantees you won't see any new bugs from the transition), but might enable one to take advantage of a larger heap.
There's also the non-trivial matter of
People who wrote code which...
which certainly isn't all C programmers. Reflects C's unusually pro-performance design, I guess. Interestingly it looks like the D programming language has no support for C-style CPU-dependent primitives, only fixed-sized.
You're saying one should feel bad for putting a small privileged group out of their society-damaging jobs?
Not buying it, sorry.
Now I see what you're saying, and yes you're right -- I misread both your post, and X0563511's :P
Don't mind me.
Wrong.
Cython is a language that makes writing C extensions for the Python language as easy as Python
As for your "reference implementation" pedantry, it's clear in
What the fuck do you think you were using
that he's referring to CPython being the most widely used Python implementation, and that it's implemented in C.
That's not to say AC is correct, though: performance is a valid reason to rewrite Python code in C.
So Cisco will install some updates even when you specifically say no updates.
So just block Cisco's update mechanism with your router. Oh, wait...
Seriously though, does anyone know if that would work? If you have the router block all traffic to/from Cisco update, will that block apply to connections initiated by the router itself?