跳转到路径导航栏
跳转到正文内容

图文:Artima软件公司总裁Bill Venners

http://www.sina.com.cn  2009年10月22日 11:24  新浪科技
科技时代_图文:Artima软件公司总裁Bill Venners

Artima软件公司总裁Bill Venners

  2009年SD2.0大会于10月22日在北京温都水城举行。大会邀请了众多海外软件大师及数十位来自国内外的一线讲师分享最新的技术与实战经验。

  图为:Artima软件公司总裁Bill Venners。

  以下为演讲全文:

  Bill  Venners:大家好,我跟大家讲一下我们的趋势,我首先跟大家说什么呢?我帮助大家理解当前的趋势,在不久将来的趋势,不光是当前,而是在接下来一段时间的趋势。当然我还会跟大家简单介绍一下我的背景,我是从1996年开始使用JAVA,我在运行一个网站,它是一个社区网站。我们采访一些人,然后我们有博客、基本信息、信息发布、文章发表,我们基于我们的采访来做这个网站,我有十年使用JAVA的经验,我知道Scala编程语言,合作作者也是Scala的创建者,他是德国人,来自瑞士。我讲了一些背景,但不会跟大家讲Scala。

  我们看一下总体趋势,我们的团队工作之一是跟人们进行交流,决定在网站上发表的内容是什么。几年前我们注意到一个明显的趋势,就是06、07年之前,大多数探讨、争论都是跟框架相关的,JAVA是大家很了解的语言,这个讨论一直是如何使用新的JAVA框架。现在讨论的是什么呢?有本书叫做《在JAVA背后》,对Ruby和JAVA进行了比较,因为JAVA可以说相对而言是一个静态的,但Ruby是一个动态的,其实这跟静态的输入法或者动态输入法没有太大关系,这是这两者之间进行一个比较。也对JAVA有一定的不太认可,好象更认可Ruby一些,他认为Ruby的精确性更高,而且在他的感觉来说,Ruby的效率更高,生产率更高。但我来看这个图的话,我其实想到了别的问题,大家记得我说过,我年龄也不小了,在JAVA的经验非常多了,不到20岁就开始做JAVA的程序员。

  这是我自己写的一个代码,大家可以看到有一些代码是怎么弄出来的,我几年前就在做这个工作,大学里学了C,我真的很喜欢这些,因为它表达的是同样的概念,但是它可以用更少的代码表达,而且也可以很好的表达。它写的过程很快,读的过程也很方便,可以提醒我这是很真实的情况,这是我们的动态语言跟静态语言相比,精确度更高,效率更高,但这是一个高级的语言,那是低级的语言。当我学习C之后,它被称作高层次的语言。我为什么要这样称呼它呢?因为就像这样的情况吧,当你用Google地图的时候,你可以扩大、缩小,把地图扩大的时候,会比较模糊一些、比较大一些,但是细节不是看的那么清楚。其实就是一样的意思,或者是一个概要的方式,也是高层次的方式,不需要用太多的细节,我需要你跟具体客户相关的定单,如果团队里有一些人比如说他叫鲍勃,你跟他说可以不可以给我做一个定单,跟顾客做一个7.2的定单。但是如果说这个人后来出差了或者渡假了,那你需要另外一个人,你要跟他交代一下鲍勃工作的情况,需要把所有细节重新解释一遍,这应该不是管理者应该做的工作。

  同样的语言环境下,我们需要注意一些细节,这些语言为我们做了什么呢?为我们提供了交流的方式,教育的方式,就是说计算机怎么样来进行一些概要性的高层次的表述。

  我刚才说过,电脑怎样来做,电脑需要不断的进行描述,我们可以说不用去每一次解释、详细的解释,我们可以说给我们的电脑一个程序、指令,每一次看到这个指令、程序的时候自动的就知道怎么做。我们现在看到的趋势,其实最近几年也发生了很多进展,其实这也是我的职业生涯,我是做最简单的语言做了几年,我不到20岁就开始做。然后我也做了多年C编程,我觉得它是比较好的编程方式。C比最简单的还要高层一点,后来做了C++,我其实是从一个视频资料中学习到了C++这样的编程,它主要的目的就是想使用更高级别的编程语言。我们需要跟电脑之间有很好的交流,我们要了解C++和C的过程、功能,这是跟电脑非常相关的一些功能。我们也可以来讨论一些我们的解决方案,如果说是一个电梯的话,这是一个电梯架构相关的,我们把这个问题转移到了电脑的问题上,后来我们有了JAVA,JAVA其实比C++还要高层一些,因为你不需要去考虑过多的细节,但有一个很重要的事情我们需要关注,也就是垃圾的收集。

  现在趋势是我们要知道它不是一个平衡的变革过程,中间是有挫折的,有时候用一些语言,突然之间又换了一种语言,成为主导语言,也许五到十五年之间,也许之后又有一个跳跃,至少在JAVA的平台上。另外这也是一个跳跃,我觉得这是需要大家注意,Ruby是一个动态语言,Python是另外一个动态语言,Ruby是原始动态语言,很难讲清楚他们的区别。Clojure和团队是最接近的。另外一些相似的语言呢?他们是纯粹的功能性语言,他们关系非常密切的。Fan是比较静态的语言,Scala可能会成为下一代的JAVA,也是JAVA平台上高层语言,而Fan在动态和静态之间,这是现在的情况。

  我觉得现在的主要趋势就是这样的,也就是从静态到动态,如果你看JSR,JAVA的平台,他们有一个代码,是支持动态语言的,在这方面有很多工作要做。另外命令性向功能性程序转折,其实学术界已经非常受欢迎的,但主流的程序员用的不是非常的多。如果要是你看一下这些语言,Clojure是纯粹的功能语言,Scala更高级一些,把功能和目标性的程序编程联合起来了,但其他的Groovy也有更多功能性的特别,但是这个功能是不断传播的。对于多核电脑是如何写编程呢,这是问题所在。这是我的生活,我从一开始C,C++ 5年,JAVA10年,Scala是2年。

  明天我会讲讲Scala,如果大家有兴趣的话可以来,大家有问题吗?

    提问:大家好,我想讲一下交易记忆,也就是我对于软件的交易记忆来说的看法是什么?

    Bill  Venners:的确记忆是解决问题的一种方式,我觉得这里没有一种万能药,一种方法来解决所有的问题,但还是有一些重要的解决方法。我觉得(英文)是其中一个,另外是(英文)。总的来说,我们还不知道该怎么做,其实我老是这样说,所以有这样一个问题及就是多核心的问题,很多人想每天这些编程员都在想这个问题,按照今天的方法很难。软件的记忆,比如表写到(英文)当中,要有各种各样的因素,要进行各种各样的改变才能做的到。所以整个软件的交易记忆可能现在还是非常困难的,你要拿一些东西出来然后再写回去。这是(英文)有的一个东西,Sala以后也会有。

 

 

网友评论

登录名: 密码: 快速注册新用户
Powered By Google

新浪简介About Sina广告服务联系我们招聘信息网站律师SINA English会员注册产品答疑┊Copyright © 1996-2009 SINA Corporation, All Rights Reserved

新浪公司 版权所有