And it appears that Ilya (the OP) has been looking at this approach using fibers too http://www.igvita.com/2010/03/22/untangling-evented-code-wit... - and the comment thread on the OP suggests that this is in use at Postrank.
411 karma · joined March 28, 2008
And it appears that Ilya (the OP) has been looking at this approach using fibers too http://www.igvita.com/2010/03/22/untangling-evented-code-wit... - and the comment thread on the OP suggests that this is in use at Postrank.
So while I think you're correct, pragmatically I suspect this approach has more chance of being implemented.
I really like the idea of using Ruby's continuations to avoid the need to write all of your logic in CPS (ala node.js.)
From the memory standpoint, doesn't this just move your memory overhead from the machine stack to continuations on the heap? I do realize there are some advantages to heap over stack, especially on 32-bit architectures.
And in addition, what kind of overhead do you get when creating a continuation for the kind of deep call stacks you're dealing with?
FWIW, I don't buy the claim that it's impossible for applications to get hold of photo metadata - I happen to know someone who is working on an iPad photo application and they don't seem to be having this problem (as evidenced by http://www.flickr.com/photos/carlitos/4669066513/ )
Abadi's take seemed more interesting to me since it isn't rubbishing CAP as such, but noting that C, A & P are not symmetrical and also that there is a fourth consideration - latency - that most discussions of this topic do not take into account even though it is clearly a design factor in some existing NoSQL databases.
(and yes, I have looked at their source and know how it works.)
Yes, it's almost as if it were some kind of "intermediary" or "translation layer".
I'd go so far as to suggest that the majority of the non-Apple tools that people are proposing to use instead of Objective-C will produce an inferior result, and that's why Apple is clamping down on them.
(BTW, love the kneejerk downvoting in this subthread, keep em coming.)
At least one benefit of this change is that it levels the playing field for developers such as yourself - all of your competition is in the same position as you are, and you can't be undercut by someone who is building their apps using a Flash compiler or whatever.
"QNX has long been looking for a partner with whom to enter the mobile space. For example, almost 10 years ago I was the marketing VP at QNX for a short period of time. Even then, QNX CEO Dan Dodge thought that the real prize in the embedded OS market was the mobile handset."
(See "Why is this a terrible idea?" at http://github.com/allertonm/Couverjure)
So I can't help wondering if RIM has just bought their next-gen mobile OS, especially given the widely held view that RIM's current platform is ancient and creaky.
2003: "But the thing I'm most interested in is software as a service. That idea that every customer who wants to do accounting on computers, or every customer who wants to do inventory, or manufacturing, has to figure out what computer to buy, what operating system to buy, what Cisco router and switch to buy, what database to buy, is just nonsense.
Companies should be experts in their business, and computing should be available on the Net as a service. So more and more, our business is changing from selling our applications to our customers to: We buy the computers, we run the applications, and you use it. We'll be the experts. And you just pay us a monthly fee. That really is utility computing."
2009: "Cloud’s water vapor….Cloud computing is not only the future of computing, it is the present and the entire past of computing.
…Salesforce.com has been around for a decade. And so has NetSuite…and people are saying, “Well, that’s cloud computing.” Google is cloud computing. Everyone is cloud computing….Everything is in the cloud now….It’s this nonsense.
…But it’s not water vapor. All it is is a computer attached to a network. What are you talking about? I mean, what do you think Google runs on?…Water vapor? It’s databases and operating systems and memory and microprocessors and the Internet!
…And the VCs, I love the VCs. [They ask their start-ups] “Oh…is that cloud?” [And the start-ups go] “Oh! Oh! Microsoft Word! Change ‘Internet’ to ‘cloud’! Mass change. Give it back to these nitwits on Sand Hill Road.”
…What do you mean by “cloud computing”?…All the cloud is is computers on a network.
Our industry is so bizarre. They just change a term and they think they’ve invented technology….You can’t just come up with a [slogan] like “Let’s call that ‘cloud.” [But] it sure beats innovation.”
MacRuby suggests that it's not a complete pipedream, but the experience of the Unladen Swallow team indicates that it will not be all unicorns & rainbows. You'd also have to find an appropriate GC (I know some people are looking at using Boehm to get MacRuby on iPhone, but you have to wonder if you'll run afoul of the Appstore Police by incorporating a GC in your app.)
Only if you believe the side effect of using the CPU doesn't count.
I have a lot of time for Objective-C and Cocoa for desktop and mobile development. I'd go so far as to say it's a huge factor in the success of the Mac and iPhone platforms. It's pretty unique in supporting AOT, compiled-to-native executables while offering dynamic language and runtime features.
However the reasons it works so well for those purposes (low memory footprint, fast application startup time) don't seem very relevant for server development - and the downsides (#1 being the ability of coding mistakes to corrupt memory and/or abort the process) become huge liabilities for a server. So my guess is that this framework is going to come out on the wrong side of any cost/benefit analysis.
That said, I wouldn't rule it out as a test because of that, but I do think that if you are going to compare 4 different RAM sizes of CS instances, and compare the costs of doing a job using those different sizes then you need to pick a job that is going to make use of the RAM. You can see from the results that there is a small (time) benefit moving from 256 to 512MB (but not enough to offset the increased costs) and virtually none above that.
In addition, it doesn't seem like compiling the linux kernel requires very much RAM, so you get the most bang for your buck using a CS VM with only 256MB and the cost only goes up from there as you add more RAM that the test cannot benefit from.
(Edit: I would love whoever downmodded me to explain why I am wrong.)