Fabiane Nardon,Duke Award获得者与Java Champion,Sven Reimers,Duke Award获得者与NetBeans梦之队成员,和我一起讨论了未来的Java开发者,我已经发表了这些谈话。最近的谈话是在JavaOne Brasil和JFokus。不可否认,我们不是特有远见的人,今天我们所谈到的"未来"仅凭经验罢了。虽然在谈话过程中,我们作出了一些特别的预测,但我们真的不想试着去预言太远的将来,也不愿争论Java技术的未来。我们的想法只是看看开发者们,特别是使用Java的开发者们,现在能做些什么,以为他们自己的未来作些准备。此处,我想展示谈话中的一些要点。
软件开发者一直都有一个独一无二的机会,这就是Malcolm Gladwell在他的书Outliers中所说的有意义的工作:工作是自我管理的。工作是复杂的,它会占据你的思想。另外,工作是努力与回报之间的联系--付出了,自然有回报。
Gladwell所说的关于"有意义的工作"的一个要点就是花时间使某人成为大师。他表述道,根据对不同领域--音乐,计算机,法律,农业--的研究,要在特定领域取得成功,差不多要花10000个小时在做有意义的工作上。Gladwell表示道,那些成功投入大量时间的人,以及那些成功的人,肯定都会投入大量的时间。Gladwell也讨论到并没有所谓的"天生"牛人,简言之,传统谚语"1%的灵感和99%的努力"不仅是真理,而且也是必然的。
为未来做准备意味着,现在投入足够多的时间会使你在未来成为更优秀和更重要的人。基于这种思维,软件开发给予我们一些有趣的好处,由于缺少更好的词汇,我将其称之为自由。一些是旧有的自由,在软件刚开始开发时就存在了,另一些则是新近才出现的,幸运地是,我们恰逢其时,正好能从中受益。
想像之自由
随处运行之自由
Java并不是第一个提出了"随处运行"的思想,却是第一个普及了该思想的技术。这并不是一个仅有利于Java的技术:自从在二十世纪九十业界将开发者从禁锢中解放出来,开发者认识到他们能够编写运行在多个环境上的软件。今天,所有的开发技术会以这样或那样的方式尝试着向你提供这种自由。当然,也许不是全部...但不应该是我们"不知道"的:不要把你自己绑定在单个技术提供者或平台上。挑选那些使你有充足机会在多个环境上进行实验的技术,这是使你在现在就能自由地对在未来可能有价值的技术进行实验的唯一方法。Java并不是第一个提出了"随处运行"的思想,却是第一个普及了该思想的技术。这并不是一个仅有利于Java的技术:自从在二十世纪九十业界将开发者从禁锢中解放出来,开发者认识到他们能够编写运行在多个环境上的软件。今天,所有的开发技术会以这样或那样的方式尝试着向你提供这种自由。当然,也许不是全部...但不应该是我们"不知道"的:不要把你自己绑定在单个技术提供者或平台上。挑选那些使你有充足机会在多个环境上进行实验的技术,这是使你在现在就能自由地对在未来可能有价值的技术进行实验的唯一方法。
随处运行还有另一个同样重要的方面:一旦有许多程序能够在不同的设备上运行,制造商就能更容易地创建新设备。我们在Android中看到了这种趋势:通过放大开发者的才智和工具,并允许(至少是在一定程度上)开发者作用于不同的设备,Android创建了一个强大的且有众多提供商参与的应用程序市场。使用大多数面向多平台的开发技术,未来将会带来更多的设备,机会将会为那些执着于随处运行之自由的开发者敞开。
对于公司,政府和用户而言,开源还是许多其它的好处。但没有人比开发者们受益更多。越快认识到这一点,你就能越快地知道自由地进行学习和创造的价值。
随处(与任何人一块儿)工作之自由
来自硬件的自由
最近有一些关于3D打印的议论,讨论该项技术将怎样把制造过程转换到头脑中。想像一下,当你要制造什么时,你无需操心建立一个工厂来制造这东西,你所需要的只是你的主意和设计能力。是不是很奇妙?肯定是了。但如果你是一名软件开发员,这一想法现在就能成真。如果你有任何想法,你不必购买/订购/安装/构建一个数据中心:你已拥有所需要全部设备,5分钟就能搞定。大量的云服务提供商在幕后做着这些工作,你所要的只是一个好主意和代码。噢,还记得先前我们提到的多平台技术吗?是的,在云计算里它也是有效的:确保你不会上某人的当,所以要明智地选择与它打交道的方法。当然,没有这个问题也还有其它很多问题。测试,实现,发展甚至于抛弃你的想法的自由已经正在改变着软件开发。如果你认为云计算与以前那种在某处使用一台服务器进行同地协作的东西一样的话,那你就应该马上去使用它。把你的思想从硬件约束中解放出来,这需要花时间,所以现在就开始吧。
你自己的自由...
如你所见,现在这些可能都成为了现实。但就现实来看,对大多数开发者来说,这些可能性并不能在指日间就成真的。但它可以是你自己