C++语言的创立者,斯坦.利普曼(Stan Lippman) 9月17日参加了在北京召开的微软技术大会Tech.Ed2004并做了"The C++ Binding, Integrating a Static and dynamic "的主题演讲。利普曼和天极网记者畅谈了对“中国程序员的30岁现象”的看法,对C++、NET、面向对象等新技术发表了自己的看法。
天极网:做为C++大师,你认为一个优秀的程序员应该具备什么素质?
Lippman:不仅是C++,对所有的语言而言,我认为一个好的程序员应该具备独立性,而且要不惧困难,你必须心甘情愿的面对失败。所谓的独立性就是因为有时你要能独处,你必须相信你能处理你明白的事情。我认为一个好的程序员要具备创造性,而管理人员要确保程序员有独立的空间,成为他们自己。
天极网:中国的程序员被一些人认为是吃青春饭的,程序员好像转向管理职位才有职业发展空间,你怎么看?
Lippman:我所认识的一些Unix创立者被提升为部门主管,但他们拒绝了提升,回到了程序员的职位上,因为他们认为这是自己能做得最好的地方。总之,最后辞掉了部门主管的职位,回去做研究去了。
在美国,我们认为一个好的程序员并不意味着他能成为一个好的管理人员。如果仅仅是为了金钱的原因而强迫程序员们去从事管理工作,这与公司的最佳利益是相违背的。因此我们发明了一个所谓的"多层升迁路径",随着技术经验的增长,微软分别为程序员设置了程序员、高级程序员以及MPS等等不同级别的技术职位。微软能认识到你的能力,如果你愿意成为管理人员,当然是可以的,但你不必做你不开心的事情,只用尽量保持你编程的创造性。
在上世纪八十年代,美国的公司都被一个相同的问题所困扰,起因就是迫使年龄大的编程人员不再从事编程工作。我猜想在中国,随着程序员年龄的增长,这种问题也会发生!
天极网:你如何看待C++语言的未来和C++与C##的关系?
Lippman:如果你想做web service,asp等等,c++将不会很适用,因为这个语言不灵活,它太繁复了,它不是为了网络服务(Web service)而设计的。
C##就是为了网络需求而设计的,.net的理念就是并不是一种语言能解决所有的问题。它不像Java,迫使你只能用一种语言。如果你在开发的时候发现另一个工具更好,那么你就可以选择另一个工具。
人们总喜欢让事物对立起来。如果有了微软的产品,你就一定要有SUN或Linux,因为人们喜欢看他们争斗,即使实际上并不会引发任何争斗。c++就像一把没有把手的刮胡刀,它不可能对所有的事物都适用,就像Visual Basic也不可能对所有人都适用一样。有很多人都使用c++,也有很多人使用Visual Basic,我们还需要其他的语言。c++很难,我们必须拥有难的语言,但同时,简单的工作也需要简单的语言来解决。实际上,没有哪种语言能流行10年。对于c++的未来来说,我想它还是会表现的很好。
记得1991年Java出现的时候,人们预言c++将会消失,可这并没有发生,而是SmallTalk消失了。当Linux出现的时候,人们又说微软有麻烦了,可实际上是Sun有了麻烦。C##并不会威胁到C++,在微软我们在一栋大楼里工作。我相信C++现在表现得很好,在微软起着重要的作用。我们为整个社区做出了很多贡献。
天极网:你怎么看待面向对象技术的发展前景?
Lippman:从开始来看,每一种汇编语言的产生都是为了在计算机环境中解决特定问题的。你使用这个语言解决问题,而解决方案将使你面对更复杂的问题,而这个语言可能就解决不了了,这时我们就需要另一种语言了。
面向对象的编程就是解决数据抽象这类问题而产生的,而面向对象同样面临网络环境下的一些新问题,这就是为什么我们需要一个更具弹性的平台。.NET是一个动态,独立性的语言平台,这也是为什么我希望在.NET上使用C++。我认为.NET很有潜力、是软件进步的方向。
天极网:在.NET环境下,你认为程序设计有何变化?
Lippman:我想每一个人都同意这一点,那就是软件是脆弱的。其实我们在软件上不算成功。开发软件所需要的时间太长了,并不是说我们的编程人员不合格,是因为这个工作不符合人类的自然本性,因为你必须像计算机那样进行线性的思索。
我们目前常用的方法就是将问题分割成更小的部分,然后保证它们连贯。.NET很有潜力,它是一个动态的模型,配套有很多的组件与很好的软件,能自适应的辨识状况、改变或生成代码。程序员是不会改变的,改变的只是工具,我们的职责就是要给程序员配备适用的工具。但目前我们做的还不够。C++、C sharp这些语言都只能算过渡性的语言。我们的程序员现在只能用它们,但并不代表将来应该用它们。
天极网:为了避免30岁时被炒掉,你对程序员有什么建议吗?
Lippman:我想如果你不喜欢编程,那么编程的生活将是十分恐怖的!而且如果你仅仅是出于对金钱的考虑而选择程序员这一职业,而并不是真心喜爱这个工作,那么我奉劝你还是早点抽身的好。
但是,如果你喜欢创造,那么你可以考虑做一名程序员。今天的世界离不开电脑,几乎没有什么事情不是由电脑来运作的。而且你可以想想编程是一件多么奇妙的事情啊。我认为,电脑技术是人类历史上最具创造力的技术,你必须能感受到它的奇妙。很多人也认为电脑技术很奇妙,试图弄清楚究竟是怎么一回事,可是非常困难,因为他们的思维不具备逻辑性。
如果你不喜欢编程,那么不必强迫自己做一名程序员。当然我们需要好的管理人员,但是我觉得一名好的程序员比一名管理人员更有价值,因为我们有太多的优秀管理人才,但优秀的程序员却并不多。(完)
分享到:
相关推荐
Stan Lippman,作为C++语言的先驱者和CFront编译器开发团队的领导者,他在C++领域有着深远的影响。他的经典著作《C++ Primer》被广大开发者视为学习C++的重要参考资料。加入微软,成为Visual C++.NET的首席软件设计...
总的来说,Stan Lippman的加入对Visual C++.NET的未来带来了积极的展望,他的专业知识和对C++的深厚理解将有助于推动该平台的发展,满足开发者对高效、现代和易于使用的开发工具的需求。通过他的努力,我们期待看到...
1. C++编程思想:《C++编程思想》是一本经典的C++编程书籍,作者Stan Lippman是C++大师,第一个C++编译器cfront的作者之一。这本书对C++语言的设计和实现进行了深入的分析和讨论,为C++程序员提供了宝贵的经验和见解...
Stan数学库是一个C ++反向模式自动微分库,旨在便于使用,扩展和可扩展,高效,可伸缩,稳定,可移植和可再发行,以利于构建和利用利用导数的算法。 \ htmlonly \ endhtmlonly 发牌 Stan Math Library是根据。 ...
Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。本版对前一版进行了彻底的修订,内容经过了重新组织,更加入了C++先驱Barbara E.Moo在...
Emacs对Stan的支持 新闻 2021-01-30适用于10.2.1版本的错误修复 2020-08-30 Stan版本2.24的版本10.2.0更新 包含包装和工具 该存储库包含多个Emacs软件包和工具,使编辑文件更加容易。 有关Stan本身的信息,请参见...
其中提到的《C陷阱与缺陷.pdf》是另一本经典C++书籍,它揭示了C++编程中常见的错误和陷阱,帮助程序员避免潜在的问题,编写出更加健壮和安全的代码。而《The_C++_Standard_Library中文版.pdf》则是对C++标准库的详细...
"Stan: Hammer of Frontend Engineering – A Comprehensive Toolkit Collection" Stan 是一个前端开发的实用工具集合,致力于提升前端工程师的工作效率和代码质量。这个名字或许源于英文中的“stan”(粉丝的昵称...
是不适合于一本入门级的语言书籍在开始写作本书第三版之前Stan Lippman 写的Inside the C++ Object Model 参见本前言最后所附的参考文献中的LIPPMAN96a 包含了许 多这方面的内容当读者希望获得更详细的说明特别是...
在《Essential C++》一书中,Stanley Lippman通过一系列的练习帮助读者巩固对C++语言的理解和掌握。下面我们将详细解析两个具体的练习案例: ### 练习1.4:扩展程序 在这个练习中,要求读者扩展一个简单的程序,使...
NATS .NET C# 流媒体客户端 NATS Streaming 是一个由提供支持的极其高性能、轻量级、可靠的流媒体平台。 NATS Streaming 提供以下高级功能集: 基于日志的持久性 At-Least-Once Delivery 模型,提供... STAN.Client-N
5. **环境影响评估**:通过对物质流动的追踪,Stan 可以评估不同物质对环境的影响,如温室气体排放、有毒物质排放等,为环保决策提供依据。 6. **动态模拟**:Stan 2.6.8 支持动态模拟,可以模拟物质流随时间的变化...
新的Stan-to-C ++编译器stanc3 此存储库包含用OCaml编写的Stan新编译器stanc3。 要了解有关我们为什么要构建此代码的更多信息,请参阅此。 有关如何选择OCaml的一些讨论,请参阅。 我们在每个请求请求上测试(在...
sc = STAN :: Client . new # Customize connection to NATS opts = { servers : [ "nats://127.0.0.1:4222" ] } sc . connect ( "test-cluster" , "client-123" , nats : opts ) # Simple async subscriber sub = ...
于北美大陆Stan Lippman 是美国人Josée Lajoie 是加拿大人最后这种双作者关系也 反映了C++团体的两类主要活动Stan 现在正在迪斯尼动画公司Walt Disney Feature Animation *致力于以C++为基础的3D 计算机图形和...
有很多更详细的技术资源可以学习 Stan,任何有兴趣在研究中使用 Stan 的用户都应该确保进一步阅读以真正了解 Stan 在做什么以及为什么(非常好, 为那些有生态倾向的提供了对 Stan 的精彩介绍)。 然而,许多可用...
- **简介**: 该书由Stan Lippman撰写,深入浅出地介绍了C++的核心特性及其实际应用案例,是学习C++的必备读物之一。 #### 3. **《Visual C++ (高级教程)》ISO** - **链接**: ...
let sc = stan :: connect (nc, "test-cluster" , "rust-client-1" )?; sc. publish ( "foo" , "hello from rust 1" )?; let sub1 = sc . subscribe ( "foo" , Default :: default ())? . with_handler
I would also like to thank David Annatone, Steve Buroff, Tom Cargill, Bill Hopkins, Cay Horstman, Lorraine Juhl, Peter Juhl, Stan Lippman, Dennis Mancl, Scott Meyers, Barbara Moo, Lorraine Weisbrot ...