The Future of Computing - An Interview with Yukihiro “Matz" Matsumoto
fredwu.me
fredwu.me
In other words the big ground breaking world shaking trend in computing isn't about running clever parallel applications on clever parallel hardware at all, instead its about leveraging that hardware to make good old single threaded applications run as cheaply as possible.
A common thread throughout this progression has been the lack of proper software and tools to parallelize the workload. The team is constantly on the lookout for new tools and is thrilled about upcoming technologies like Parallella.
In your field, where cheap CPU cycles is paramount, you may not see it. But for our team running the sims, your "good old single threaded" performance has been meaningless for years.
Re: the article font, it looks fine on Firefox nightly build running on Debian wheezy
I'm betting that between now and quantum computers, memristors will play a significant role, and (as I understand them) they'll push us much further toward parallel computing than multi-core and device networking would. A friend of mine believes they will behave as a network of small computing units, so he's betting on an actor model. We'll see!
The book "Trillions" [1] talks a lot about computing future, and focuses very heavily on the idea of "device fungibility" with "data liquidity" - basically the idea that the computing device is insignificant and replaceable, as the computing work&data can move freely between them. When you consider how prevalent general-computing devices are-- microwaves, toasters, cars, phones, dish-washers, toys, etc-- this is pretty compelling. I highly recommend that book.
Now, I personally think localized connectivity&sync between devices, strong P2P Web infrastructure, and more powerful client participation in the network will alter the importance of vertical-scaling central services and give much more interesting experiences to boot (as things in your proximate range will factor much more largely into your computing network). "Cloud computing" as we have it now is really just renting instead of buying. Yes, you can easily spin up a new server instance, but it's much more interesting to imagine distributing a script which causes interconnected browser peers to align under your software. Easy server spin-up? Try no server! This means users can drive the composition of the network's application software, which should create a much richer system.
Considering privacy issues, I think it's an important change. Not only is it inefficient to always participate in centralized services and public networks, it's unsafe. P2P and localized network topologies improve that situation. Similar points can be made about network resiliency and single-points-of-failure-- how efficient is it to require full uptime from central points vs. minimal uptime from a mesh? I imagine it depends on the complexity of decentralized systems, but I'm optimistic about it.
Along with network infrastructure and computing device changes, I think the new VR/AR technology is going to flip computing on its head. Not only do we gain much more "information surface area" - meaning we can represent a lot more knowledge about the system - but we gain a ton of UX metaphors that 2d can't do. One thing I get excited about is the "full spectrum view" of a system, where you're able to watch every message passed and every mutation made, because in the background you can see them moving between endpoints, and, hey, that process shouldn't be reading that, or, ha, that's where that file is saving to.
So TL;DR: I say the future of computing is VR/AR, peer-connective, user-driven, and massively parallel.
1 http://www.amazon.com/Trillions-Thriving-Emerging-Informatio...
Meanwhile, virtual servers handle all of the actual software tasks. Through advanced routing, these virtual servers remain connected regardless of which physical server hosts them, and even while being moved from one physical host to another. Thanks to virtual HDDs on SANs, these virtual servers can always reach their virtual HDDs, regardless of physical device failures.
Virtualization tech has already entered browsers. And browsers are slowly becoming the entire client, as we've seen with Chromebooks. It's just a matter of time for these movements to all collide, allowing for virtual servers to freely roam the spare memory and CPU space of all of your browser-OS-based computing devices.
This would be sort of like running Hyper-V on all of your users' Win8 desktops to host your email, directory, database, and information servers. Boom, no server!
I see us at the beginning of this paradigm shift to multi-core. Both the tools and the theory are still in their infancy. But there are many promising advances being explored, such as GPUs, Intel Phi, new FPGA, projects like Parallella, and yes, memristors based neuromorphic computing.
The software side also requires new tools to drive these new technologies. I think traditional threading will be viewed as a stopgap hack and will be replaced by some form of functional, flow-Based, and/or reactive programming models.
10 years from now, I see writing thread safe apps in the same league as writing 6502 ASM code today.
I hope that the future of Ruby will include better support for concurrency.
1) The design of MRI changes fundamentally in the next few years 2) More room is made for alternative implementations like Rubinius or JRuby
You can run most applications with JRuby but to my knowledge, it always involves fiddling and tweaking.
For a Rails application, using the jdbc adapter or Puma/Trinidad instead of the regular servers for example. I am not saying this is a proper justification but it does prevent people from testing it further.
Also, I am still looking for actual and undeniable proof that using JRuby instead of MRI does actually bring better scaling/performance/memory management/tooling. So far, the examples I have seen are conclusive, but still limited to very particular use cases. That Heroku now officially supports JRuby is a big plus I would say.
<rant> This is hard to read, at least in firefox. Why the hell can't the author keep the font consistent throughout the article?(interview).
Its ok to print a picture or a two. But 5+ images, why ? </rant>
In terms of the images - they were all from the original interview article (linked in my post).
P.S. I am not sure what gave the impression that the interview was about Ruby, as "Ruby" is not mentioned in the title.
I'm on Firefox 21 on Windows 7 here but that's not the issue.
I find it hard to read simply because of the random spattering of bold-face and indentation.
My OS is Centos 6.1(32 bit) and the browser is Mozilla Firefox 10.0.1 .
I am sorry if this sounds aggressive. But very rarely do we get the chance to interview some amazing men. When you do(or even translate), please don't mess up.
Few days ago, a Donald Knuth interview appeared. It was a good read. May be I got carried away.
Sorry anyway.
Secondly, he probably uses that as a starting point because that's when he produced the work he is known for. He isn't saying computing didn't exist before this date, it's just a frame of reference. "Back when I first invented Ruby 20 years ago...". What is wrong with this? Would you rather "Back when Guido invented Python 20+ years ago..." or "20 years ago"? It's an irrelevant detail.
If you're on CentOS 6.1 and your browser is Firefox 10, why are 5 images on a page such a problem? I didn't think it made things any harder to read at all and certainly didn't affect performance.
The increase of font size on the answers puts emphasis on the answers. I don't think this is a good idea but the intention is good and did not make the document anymore painful to read.
To finish, my eyesight isn't great and I read the article without my glasses.
Please man, you can deliver criticism without being a jerk. It's purely subjective and delivering with such disrespect makes you look arrogant, as though your opinion is law.
I also failed to correlate the "rant about some technical problem in a web browser (or whatever)" with "starting something from 1993".
However, everything is showing up pretty nice on my machine (Firefox 11.0 running on Ubuntu 10.10).
There was nothing in the title or article to indicate it would be.
>> "I don't know why Matz always starts his computing/programming journey from 1993 ?"
He mentioned it once when referencing how long Ruby had been around. He wasn't telling his personal journey, he was talking about the future of computing.
What a strange criticism. On the one hand, he really doesn't talk about specific points in the past very much in this interview. One of the few times that he does, he mentions programming languages designed 50 years ago.
On the other hand, Ruby is the main thing Matz is known for, and the main thing he has focused on. It makes sense that his observations about computing would be tied to his experience with Ruby.