领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 王翔 发布于 2007年7月30日
C# 2.0发布的时候,我们回头看Java,总认为这个语言怎么发展得这么慢?但当C#发展到3.0的时候,它也开始显示出臃肿之态了,这是否会也会带来什么连锁效应呢?
6年前,我是个Java的拥护者,当时C#还是1.0版,我经常和师傅争论Java如何比C#好,于是他给我一个回答:“我们的COM比Java早了近5年,所以我们更成熟;我们的.NET比Java晚了5年,所以更先进”。虽然这么比较有“偷换概念”的感觉,但现在想想其实有另一层意思——“成熟与先进”的矛盾。
Lisp、Haskell、Scheme这些语言也都可以被称之为“伟大”,但为什么很少有人去学呢?因为需要用太多的东西“充斥”我们的大脑后才可以使用。Java和C#之所以可以快速地被普遍接受,一个很重要的原因就是因为它们的简单与清爽。但当明年春天C# 3.0发布的时候会怎么样呢?虽然你可以将WCF、WF、WCS和WPF视为.NET的外挂,不予理会,但LINQ是个不好回避的内容,因为它在处理数据访问(关系型的、非关系型的)方面有比较明显的优势,所以即便你个人排斥它,其他还是会有很多人用。最后很可能成为这样一种局面:参与到一个项目组,自己只能从事一些表层业务开发,因为下层的公共封装机制都是用LINQ编写的,况且还有Enterprise Library这个“样板工程”在后面催着。
可以这么说,C#越来越臃肿是个必然的趋势,作为.NET语言的“主力”,随着新的开发架构的出现,C#的复杂性还会增加,同时很可能导致革新特性越出越慢,毕竟牵扯的内容多了,作为“主力”除了要考虑语言特性间的协作外,还要充分考虑处理效率。
不过比起“一条道跑到黑”的Java而言,.NET平台有个优势——CLS(Common Language Specification,公共语言规范)。相信Java的设计者不太愿意,也不敢随便为了一个“快速走红”但还没有2年时间市场考验的技术趋势就去修改Java编译器;.NET不同,“C#红旗不倒的同时,.NET平台可以彩旗飘飘”,比如Spec#就是个例子,为了避免null对于软件的影响,.NET家族诞生了Spec#,目的就是通过非null这个前提,提高数据验证、异常处理、堆栈管理的能力,利于开发者提供更高质量的软件;F#也是,虽然C#是强类型的,但动态语言式的开发一样可以基于这个“小兄弟”开发,加上它和其他.NET语言前辈基于同一个CLR环境,所以功能毫不逊色。
综上所述,C#臃肿是不可避免的,而且很可能会像Visual C++一样,因为语言的复杂性,导致C#开发人员技术能力的两极分化。但同时,借助试验性.NET语言的支持,即便需要集成新的特性,也不会像某些语言一样从头开始。依靠试验性语言的积累,相信从MSDN中查看C#这些新语法的时候,可以少见一些标着“[Obsolete]”的内容。
王翔 是一名软件开发工程师、技术作者。27年开发经历、从事产品级软件开发21年。
先进与成熟的确是矛盾,但是现在的新技术成熟的都比较快,可能是人接受新事物的速度提高了吧。
Haskell这样的语言是函数式编程的代表,更多的需要从头开始。所以国外学计算机理论首选Haskell,很多老外抱怨过上学的时候这个东西学的头疼,但是后来他们也都表示获益匪浅。我们的计算机教育是本末倒置,所以我们这些程序员觉得他们晦涩难懂。但是看到Erlang这样的语言,在未来多核环境下的前途,我们还是会动摇的。
LINQ的确不错,但是又是M$一言堂。统一数据访问模型是非常好的想法,MS总能后发制人,但是闭门造车很容易被人家超过。现在我们看到LINQ很先进,但是等MS的讲师把它推到实践的第一线的时候,别的开发平台也会有类似的产品出现了。而且,根据标准,查询XML用JQuery,在各种语言里面查询关系数据库也都有众多ORM实现。所以LINQ的想法虽然很好,但是对于其他语言/平台来说却没有非常迫切的需求去实现类似的技术。
关于修改Java JVM的话题不是最紧才有的,下一步会怎样很难说。CLS这个技术不足为奇,其实虚拟机本身就是平台/语言无关的东西,我们已经看到了JRuby、XRuby、Jython和现在的Java Script Engine这样的东西,Java已经在平台化了,这个大家都不会放慢脚步。
关于C#和Java的痼疾,我推荐Bruce Tate的《超越Java》,里面的观点同样适用于C#。
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
论道WP第三篇专栏,以应用程序栏的使用为中心,包括了软键盘带来的问题、应用程序栏介绍、如何绑定应用程序栏的属性等几个方面的具体话题,为开发者顺利使用应用程序栏开发提供了具体指导。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
1 条回复
关注此讨论 回复