在2008年7月的时候,对2012年的技术发展做过一个不算短的预测,时间已经过半,是时候可以回顾一下。计划在接下来的这段时间对2015年的发展进行预测,形成一个预测周期为五年,两年半一次预测和回顾的良好周期,希望籍此拥有比较好的修正。
同时,回顾了2008年的预测之后,也有希望能够对这些预测更加准确地进行判定,但是总体上只是个趋势,错误和含糊在所难免了,只是尽力罢了。
2008年的预测基于两个假设,其一,认为基础科技不会有大的范式转变,从现在来看基本是可信的。其二,是关于经济进入低潮期的假设,现在还很难说,因为实体经济尚有许多考验,但是科技界的融资却早已复苏,甚至显得朝气蓬勃。但2008年的假设言明融资不会受到影响,因此暂且可认为偏差不大。
下面再回顾2008年的预测内容(所有回顾将在段尾标注已完成率)。
CPU频率在过去的2年半内未有提升,一直徘徊在4GHz以下,因此有理由相信5~6GHz的CPU在两年内会难以实现。相反,如果算上Hyperthreading技术,现有的CPU已经达到了16个虚拟核心,因此有理由相信物理内核在两年内会达到16个。协处理器(GPGPU)现有内核数在百个量级,两年内达到千核量级别应该没有问题(AMD的GPU已经到此数量级,但是存疑的是是否能算GPGPU,GTX 580将有512个核心)。便携式CPU在两年半后仍然在1GHz徘徊,可以预见到达3GHz将有巨大的能耗问题。相反,现有的便携式CPU已然有2核心架构,4核心架构应该不远。[3/5]
硬盘的存储已经达到每碟1TiB。关于移动网络,现有大部分城市人口已经享有10Mbps的互联网介入,如果定义移动网络接入为WiFi的话,已经达到此标准。然而,IPv6设备的进入仍然遥遥无期。但是可以期待在未来两年,大部分设备都将是IPv6 Ready的。关于存储方式的预测依赖于IPv6的普及,因此不可靠。相反,中心存储方式已经胜出,比如新兴公司Dropbox已经实现了大部分这样的功能。[2/4]
手持设备统一化仍然在路上。现在人们拥有iPad,智能手机和Kindle三个不同功能的手持设备。关于50毫米的极限应该是期待在2012年仍然保持的。恰恰是由于微型化的难题,才使得人们不能做出将智能手机伸缩扩展为iPad大小的产品。鉴于折叠化设备的实际制造困难,一体化手持设备将很难被折叠化设备在两年内取代。相反,由于iPad的普及,手持设备很可能在许多场合取代传统纸张。[0/4]
生物特征识别仍然没见到大规模应用。人脸识别技术已被主流厂商内置,并做为登录手段之一。然而,智能楼宇的建设仍然落后,生物特征识别技术将难以在两年内普及。[1/3]
事实上,虽然语言识别仍然困难,但是对于命令的识别已经产出类似Google Voice一样的产品,而图像识别虽也无大的突破,但是在应用上拜设备小型化所赐,已经催生了增强现实技术这样一类的产品。[0/2]
短于1024位的RSA确已经失效,但是由于好的实现仍然有限,椭圆加密仍然不是主流,MD5虽然已经废弃,SHA-1仍然还活着,或许SHA-1的易攻击特性尚未被大众理解。新的Hash算法必然在两年内发布。[2/4]
HTML 5尚未制订完毕,然而已经有大量网站开始使用,大量的实践也开始产生,由于IE6死去之后IE的升级快了很多,可以期待大部分网站在两年内普及部分的HTML 5实现。似乎除了UTF编码之外,大部分网站现在已找不到其他的编码了。而Sliverlight在浏览器上已被废弃,Flash仍然是事实标准,但是能存活在两年后吗?Google已经停止维护Google Gears,似乎拥有离线化需求的网站被高估了。[3/6]
NOKIA比我想像的要老得多,iPhone和Android似乎已经成为未来手机终端系统的两大标准。由于只有两个主要的SDK(iOS SDK,Android SDK),开发者不需要面对任何的系统底层之争。Intel无法在移动市场取得优势,而由于Android和MeeGo,Linux确实在手机平台上得到广泛应用。但是由于Apple的巨大成功,还谈不上是事实标准。微软呢?WP7还很难看清。[0/6]
更多的家庭的确不再需要PC。然而没有任何家庭需要存储设备,事实上,网络带宽的发展和去中心化存储是矛盾的,由于电影可以通过Netflix来Streaming,文件可以通过Dropbox来共享,难以预见在未来会有任何的家庭存储设备需求。收集录影带和DVD的日子已经一去不复返了。[1/2]
笔记本已经成为事实上全面使用互联网的主要手段,但是Google TV很难预见在未来两年取代成为使用互联网的方法。由于存储需求的降低,很难想像在两年内会有比Blu-ray先进的商业化光碟存储方案得到推广。然而,Hulu的成功在现在看来并没有打动好莱坞,在可预见的两年内,光碟发售不会死亡。反而是唱片商,由于利益的极度萎缩,和iTune的一股独大,会有可能率先不再发唱片。[1/5]
没有什么办公室存储单元,大部分存储已经是在远程,去中心化存储在两年内不会兴旺起来,云端的便利不会让人在自己家或办公室放存储单元。[0/2]
娱乐方面。iMAX的确有普及的趋势,却是靠3D电影的带动。由于电影院线本身的缓慢衰落,新的iMAX影院在新兴发展中国家建造得更多。人们是在网上看电视剧和电影,却仍然是在电视上。[1/3]
不只是更多,所有游戏都能联网了,原本不能联网的游戏也被强行加入了成就系统。而电子产品看来,还是那么的赚钱。[1/2]
电子玩具,机器人仍然没有普及。而军事化的使用反而是势不可挡。可以杀人的机器人在两年内似乎是触手可及。混合燃料动力汽车或许会普及,但是只是会在经济好转的情况下。毕竟现在越来越难以让人冒任何的风险了。[0/3]
综上,2008年最大的失误是没预想到Apple会如此强大。不过,还有两年半呢,很多事情,或许还有希望。
Evolution as a theory was invented and popularized by a group of highly educated intellectuals. When the current mainstream evolution theory (Darwin’s evolution) was introduced in 1859, initially, people from scientific community disliked the idea of evolution for different reasons. Some of them blamed the chaotic nature of it, some of them dismissed the redundancy of the process, and some of them were offended by the exclusion of God and his miracle of creation. But few of them were able to recognize its fundamental incompatibility with classic science in his time.
Francis Galton was the outlier. His obsession to Mathematics led to his experiment for the analysis of heredity. His calculation and experiment led to a surprising finding: variations of characteristic in successive generation always fell back to mean. If no variations had been inherited, how evolution could be possible? Or, put in other words, if the probability of preserving variations is mathematically negligible, how long it would take to form a life from void? 5 billion years is not nearly enough for random variations to generate a sequence of DNA from carbon and phosphorus [1]. This finding provides the first stand ground for intelligent design believers to attack evolution. The classic science simply cannot explain the improbable chance. And, the classic science also cannot explain the First Mover. The classic physics views the universe as fixed and mechanical. Laplace claimed that giving him a state of the universe, he can probe all the state in the past and the future. What about the beginning? The classic physics cannot explain the First Mover. There must be some magic power that leads to the causality.
Before 20th century, most physicists were not atheists [2]. A rational God was essential for the First Mover and served the foundation of classic physics. If the world is irrational, it cannot be studied in such reduction way. You cannot describe the universe concisely with chaotic variables. The evolution theory is founded on such ground that the world is chaotic, full of surprising variations [3] and that is the trouble with classic science. The classic science was failed to capture the complexity involved in such system and ultimately, failed to recognize evolution as a theoretical tool to study such system. It should be understandable since in its original form, evolution theory appeared to be a suggestion derived from observations, rather than a concrete Mathematical system to model the process.
The classic physics is the de-facto thinking pattern for most people even in today’s world. We were introduced to Newton’s First, Second and Third Law [4] and inevitably, formed our very first idea about a mechanical universe. This is why intelligent design is so appealing to mass. The intelligent design never introduced new ideas. They didn’t bother with the notion of complex system. All their language is around a world that we know and familiar with.
The life was not appeared on the Earth by random chance. It was designed and created by some magic (divine) power. The randomness is impossible for such a short time even if you have considered the age of the universe. There are about 10^10 atoms in one simplest cell. Since we know there are about 100 types of atoms, the combination of all permutations would be somewhere around 100^(10^10), we actually have a name for such large number: it is about (1 googol)^2. Suppose the permutation is insanely fast, thus, takes 1 microsecond each time, it would still be somewhere around 10^170 years. The age of the universe, for comparison, is about 10^10 years [5]. It seems quite impossible for evolution to stand a chance. Since there is a designer, the causality for the First Mover in classic physics is also in favor of intelligent design: the same magic/divine power works!
The problem with most theories in the history is that, it cannot be falsified. The intelligent design theory is sound, but you cannot make any predictions to verify/falsify it. In the contrary, evolution theory can make predictions and these predictions were consistently verified with new discoveries. That’s why after some time, the scientific community embraced the theory despite the profound disagreement with classic physics. But they both cannot be right. If we were brave enough to embrace evolution, it seemed that classic physics needed a major revision. The first bomb hunted down the ghost of causality. The human perception of causality is heavily based on the sequence of time. Thus, the cause always happens before the consequence. However, it is not true since 1905. One astonish effect of special relativity is the establishment of relativity of time. In such system, one event can occurred before another for one observer, but the contrary is true for another observer if they are in different inertial coordinate system [6].
The second bomb for classic physics is about the complexity. For quite some time already, the classic physicists knew that for some simple problems, it is easy to have differential equations, but hard to find the analytic solution. People knew the numeric approximation technique too, but only with the invention of computer, it was possible to gain some insights into the numeric solution. One surprising finding with such approximation is the sensitivity to the initial condition. A very little variance to the initial condition will dramatically change the outcome. People who were curious about the effect established a new theory to deal with the chaos characteristic in such dynamical system. Eventually, we eliminated certainty in physics [7].
By eliminating the causality and certainty in physics, we finally entered the era of modern science. The scientific ground is clear for a deeper understanding of evolution theory. The evolution theory is not a belief about how everything struggles for survival or how it adapts to the environment. Evolution which defines a set of simple rules to govern complex system also happens to be the most effective one. It is not only possible to generate life from void with evolution, but also is the fastest way to do so. Intelligent design was never able to answer questions such as “how does the magic power know to construct the life in such particular way”. But evolution can. Now, please get rid of causality for a second, and consider the creation of life as a multiple-variable optimization problem. To get the optimal answer, we need to try every possible combination, and it is certainly not effective. Evolution method is effective in a way that it approximates the optimal answer by combining winning features together to pursuit the optimal choice; making variations to avoid local optima; dropping unfit ones to avoid no hope region as soon as possible. The 3 strategies are actually the winning ones to deal with the optimization problems in such complex system. 10^170 years? No, life is much cheaper than we can ever imagine.
The major revelation of chaos theory is that our world is indeed chaotic. If problems as simple as three-body [8] can be chaotic, why doesn’t so our world which contains billions of objects? In that light, evolution is not trying to mess up our mind with extra chaos; rather, it provides a framework to characterize, to even govern the chaotic nature of the world. It is not evolution’s fault of introducing chaotic concept, but is our lack of insight to recognize the chaotic fact of the world.
Despite the overwhelming winning with the ground of mathematical beauty and the scientific proof, there are still good chunk of people believes in a magic power [9]. It is mainly because evolution theory is not a theory that you can accept without any sacrifice. It hints a darker future and for any human beings, it is hard to swallow. The main theme of evolution is about survival, nothing more. The result of intelligence is a by-product, not the purpose. People who believed in social Darwinism always forgot about this fact. It is not only of Eugenics, the evolution is of the scheme to survive through reproduction, variation and interaction. In the process, intelligence turns out to give us a ubiquitous advantage against other species. However, evolution didn’t favor the intelligence. On the contrary, the intelligence is a temporary effect in evolution due to the fact that the nature of it tends to self-destruction [10].
The evolution governs the activity of a group by selecting the most competing individuals. Once the intelligence is spawned, the ability of individual with intelligence will be stretched such that it will outweigh many competing individuals. Though evolution tries to preserve more possibilities in the survival path, the intelligent ones eliminated these healthy variations. The homogenization of species made intelligent ones more vulnerable to environment changes. That’s the first vector of destruction.
The second destruction vector is about empowered intelligent individuals. For unenlightened species, malfunctioned individuals will be cleared out of the group. It is quite unlikely for such individual having the power to destroy the whole species [11]. However, with the progress of intelligence, each individual will eventually have the power to destroy a large portion of its own species. Taking human as example, one individual would probably capable of killing several dozen of people in ancient days, but today, an highly-educated person would be able to kill thousands if not tens of thousands people with well-engineered equipment. It is not only appealing to example, but is also inevitable. Intelligent species will dominate resources in a given environment, thus, the population will explode. Even with well-defined constraints, eventually, the destruction can be performed by single individual would be powerful enough to outweigh the probability against such tragedy.
The self-destruction tendency against intelligent individuals can also be observed in Cosmo scale. If indeed as evolution suggested, the life is cheap and easy to grow, in such given Cosmo scale, there must be some intelligent species already formed. Since some of the intelligent species will have sufficient technology to have inter-galactic traveling, we should already have had contact with some of them. The fact that we have met none of them suggests that every intelligent species in our universe was destroyed before they obtain the sufficient technology to do inter-galactic traveling [12].
Such a darker implication from evolution is surely unwelcome from mass. It is also an interesting contrary that the elite theory [13] is after all anti-intellectualism. Can we avoid such a loop-hole as an intelligent species? I don’t know. But I believe that we cannot if we don’t belief evolution theory in the first place.
[1] The classic science doesn’t have any understanding about complex system for which happens that to understand evolution theory, it is essential.
[2] Isaac Newton was famous for his belief in almighty God during later of his life. Rene Descartes and Gottfried Leibniz were both hold the belief to a rational God. They surely were not alone in their time.
[3] Admittedly, Darwin organized his words in a way that avoid such implication. But if chaotic is not part of the nature, life doesn’t have the need to adapt. The changing of environment itself is full of chaos and surprises.
[4] It would be interesting to consider if by any chance, Hamilton could born before Newton, the classic physics would be very different. Newton’s Law is focus on causality, for which, applying a force (cause), then an object will move (consequence). It is not the case with Hamiltonian mechanics which analyzes the movement over time t, and solves the system of differential equations. The Hamiltonian mechanics didn’t capture the causality at a particular time; rather, it considered the movement over space and time as a whole. If we start with such system in the beginning, it would be much easier to understand complex system. I personally believe that eventually, we will realize that causality is just an illusion due to human’s failure of perceiving time.
[5] I carried out the calculation mainly to ridicule the absurdity of intelligent design. If you feel the argument is actually compelling, here is why it is actually absurd: the majority of bio cell was composed from water, which has a very simple atomic structure - 3 atoms. Even by random composition, the possibility to have water is about 100^3, in the time scope of universe, basically instantly, we can have water. Now you should have a vague idea.
[6] One simple thought experiment can clearly show the fact: we all know that if one object moves at speed comparable to the speed of light (i.e. 0.5c), the length of the object will shrink dramatically. Suppose we have a train that runs at 0.5c to go through a tunnel, and it just happens that the train is the same length as the tunnel when both of them are static. From our point of view, the train is shrunk, thus, the tail of the train will first enter the tunnel and then the head of the train will go out of the tunnel. But if you are on the train, the tunnel will shrunk from your point of view, thus, the head of the train will first go out and then the tail of the train will enter the tunnel.
[7] It is still curious for us if really the certainty is eliminated. Actually, the elimination has more philosophical meaning than actual mathematical one. The lost of certainty is argued in following fashion: for such dynamical system, a better initial condition will have a dramatically different result, thus, you cannot have any certainty about the actual value because you are chasing the infinity. A simple interesting equation will give you some insight into this issue is sin(1/x), if you approximate x to 0, the function is more and more unstable, thus, it is impossible to gain any result that has certainty meaning.
[8] The simplest 3-body problem consists of three balls in different places, and the motion was governed solely by gravity between them. The question is, giving the initial condition, can you predict at time t, what are the positions of the 3 ball? It is not trivial because the differential equation can only be solved with numeric method, and giving a long enough time t, the accumulated error will destroy the result completely (suppose that you have the actual physical model to verify).
[9] Only 14% Americans believe the strict definition of evolution (2007 Gallup Poll).
[10] That is why ultimately, evolution is anti-intellectualism.
[11] Not impossible however. You could think about a species which protects itself by exploding some part of the body, in such way, one malfunctioned individual does have a power to take out a whole sub-species. Another look at the premise is, the spawn of intelligence itself is in evolution scheme, thus, evolution do engineered some species that gives individual such power.
[12] A lengthy discussion about such issue is here: Why I Hope the Search for Extraterrestrial Life Finds Nothing - http://www.nickbostrom.com/extraterrestrial.pdf
[13] 1997 Gallup Poll suggested 55% scientists believed the strict definition of evolution theory.
I am not a big fan of Wikileaks, and I am still not sure what all these leaks meaning regarding to national security and international politics. But it reminds me that once for a while, we need something like Wikileaks to tell us what all the new-passed law is really about and what the government is really capable of doing. Now, we at least know the following: 1). any organization can be purposed as foreign terrorist organization at will; 2). Interpol can arrest any person in the world who facing minor or no charges; 3). any senator can put enough pressure on companies to do anything he/she wants.
If no one reminds people what the government can do, any country can be turned into totalitarianism state overnight. Have I said that it happened twice in the history of America?
I’ve spent sometime this afternoon to perfecting the web worker implementation in ccv.js. Something interested me is that maybe, I can implement a thing that makes web worker painless. The current web worker flow is: 1). you partitioned the work into many pieces of jobs; 2). create a small js file that explicitly handle one job; 3). create bunch of workers from the small js file and run; 4). collect results. The workflow is great in a way that it explicitly specified the message-passing path. I am a big fan of MP model for parallel computing (my professor Andrew Grimshaw has a big rant on shared-memory thing just every time you asked him) and the web worker just hit the right taste.
However, it does purpose a hurdle for library authors who want to utilize web worker. Maybe they can use web worker to run computation expensive job in parallel, maybe they want to make the interface more responsive by moving computational part to background. However, current web worker infrastructure requires a separate js file explicitly written for a single job. Javascript is already notoriously bad at its package management, and scattered web worker code in the universe may make it worse.
Identified the problem with web worker, I created the tiny code snippet called “parallable”. It is so small that you can copy & paste it to your js file and instantly, you can write code that runs in parallel. Well, not instantly, parallable suggested a code convention for writing parallable functions. I will show you a full code that basically compute sum of elements in an array with parallable (sum.js):
To conform the convention of parallable, you have to separate the function into 3 parts - pre, core and post. It is a process chain, in a way that pre will split input into appropriate parts, and pass each part to core. The core will process each partitioned data, and return part of result. post will gather all results and generate the final one. Only the core part will be run on the web worker. They do share some information which you can specified in this.shared structure, but don’t assume any consistency in this.shared data, it will never be synchronized.
Despite the convention, the real part of parallable is in the beginning of the code. It wrapped original function declaration with parallable(“sum.js”, function (list) … where sum.js is the file name and function structure is untouched. You can think it as a decorator to original function. For unnamed argument function (the traditional javascript way), parallable will append the arguments with two new parameters: the first is async and the second is worker_num. For named argument, it will append the two directly. So, to call sum in synchronous fashion, you can just call sum(some list, false, 0), and it will return the result once it done with data. If you set async to be true, it will spawn some number of web workers to do the job, and what it returned immediately is a continuable, thus, you can do sum(some list, true, 4)(callback) to spawn 4 web workers and get result in the callback.
Checkout parallable code snippet on github now.