`
isiqi
  • 浏览: 16539151 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

[收藏]C++大师Stan Lippman:我对中国程序员的忠告

阅读更多

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:我想如果你不喜欢编程,那么编程的生活将是十分恐怖的!而且如果你仅仅是出于对金钱的考虑而选择程序员这一职业,而并不是真心喜爱这个工作,那么我奉劝你还是早点抽身的好。

  但是,如果你喜欢创造,那么你可以考虑做一名程序员。今天的世界离不开电脑,几乎没有什么事情不是由电脑来运作的。而且你可以想想编程是一件多么奇妙的事情啊。我认为,电脑技术是人类历史上最具创造力的技术,你必须能感受到它的奇妙。很多人也认为电脑技术很奇妙,试图弄清楚究竟是怎么一回事,可是非常困难,因为他们的思维不具备逻辑性。

  如果你不喜欢编程,那么不必强迫自己做一名程序员。当然我们需要好的管理人员,但是我觉得一名好的程序员比一名管理人员更有价值,因为我们有太多的优秀管理人才,但优秀的程序员却并不多。(完)

分享到:
评论

相关推荐

    Codeproject对现任VC++.NET首席软件设计师Stan Lippman的采访.doc

    Stan Lippman,作为C++语言的先驱者和CFront编译器开发团队的领导者,他在C++领域有着深远的影响。他的经典著作《C++ Primer》被广大开发者视为学习C++的重要参考资料。加入微软,成为Visual C++.NET的首席软件设计...

    Codeproject对现任VC++NET首席软件设计师Stan Lippman的采访.docx

    总的来说,Stan Lippman的加入对Visual C++.NET的未来带来了积极的展望,他的专业知识和对C++的深厚理解将有助于推动该平台的发展,满足开发者对高效、现代和易于使用的开发工具的需求。通过他的努力,我们期待看到...

    C++经典书籍.docx

    1. C++编程思想:《C++编程思想》是一本经典的C++编程书籍,作者Stan Lippman是C++大师,第一个C++编译器cfront的作者之一。这本书对C++语言的设计和实现进行了深入的分析和讨论,为C++程序员提供了宝贵的经验和见解...

    math:Stan数学库是一个C ++模板库,可使用正向,反向和混合模式自动区分任何顺序。 它包括一系列内置函数,用于概率建模,线性代数和方程求解

    Stan数学库是一个C ++反向模式自动微分库,旨在便于使用,扩展和可扩展,高效,可伸缩,稳定,可移植和可再发行,以利于构建和利用利用导数的算法。 \ htmlonly \ endhtmlonly 发牌 Stan Math Library是根据。 ...

    c++ primer中文版【第三版】 PDF电子书

    Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。本版对前一版进行了彻底的修订,内容经过了重新组织,更加入了C++先驱Barbara E.Moo在...

    stan-mode:Stan的Emacs模式

    Emacs对Stan的支持 新闻 2021-01-30适用于10.2.1版本的错误修复 2020-08-30 Stan版本2.24的版本10.2.0更新 包含包装和工具 该存储库包含多个Emacs软件包和工具,使编辑文件更加容易。 有关Stan本身的信息,请参见...

    Beyond the C++ Standard Library: An Introduction to Boost 中文版 超高清

    其中提到的《C陷阱与缺陷.pdf》是另一本经典C++书籍,它揭示了C++编程中常见的错误和陷阱,帮助程序员避免潜在的问题,编写出更加健壮和安全的代码。而《The_C++_Standard_Library中文版.pdf》则是对C++标准库的详细...

    stan::hammer:前端工程化,实用工具集合

    "Stan: Hammer of Frontend Engineering – A Comprehensive Toolkit Collection" Stan 是一个前端开发的实用工具集合,致力于提升前端工程师的工作效率和代码质量。这个名字或许源于英文中的“stan”(粉丝的昵称...

    C++基礎.PDF

    是不适合于一本入门级的语言书籍在开始写作本书第三版之前Stan Lippman 写的Inside the C++ Object Model 参见本前言最后所附的参考文献中的LIPPMAN96a 包含了许 多这方面的内容当读者希望获得更详细的说明特别是...

    Essential_C++答案,英文

    在《Essential C++》一书中,Stanley Lippman通过一系列的练习帮助读者巩固对C++语言的理解和掌握。下面我们将详细解析两个具体的练习案例: ### 练习1.4:扩展程序 在这个练习中,要求读者扩展一个简单的程序,使...

    stan.net:官方 NATS .NET C# 流客户端

    NATS .NET C# 流媒体客户端 NATS Streaming 是一个由提供支持的极其高性能、轻量级、可靠的流媒体平台。 NATS Streaming 提供以下高级功能集: 基于日志的持久性 At-Least-Once Delivery 模型,提供... STAN.Client-N

    Stan 2.6.8 物质流分析(substance flow analysis)

    5. **环境影响评估**:通过对物质流动的追踪,Stan 可以评估不同物质对环境的影响,如温室气体排放、有毒物质排放等,为环保决策提供依据。 6. **动态模拟**:Stan 2.6.8 支持动态模拟,可以模拟物质流随时间的变化...

    stanc3:Stan编译器(从Stan到C ++及更高版本)

    新的Stan-to-C ++编译器stanc3 此存储库包含用OCaml编写的Stan新编译器stanc3。 要了解有关我们为什么要构建此代码的更多信息,请参阅此。 有关如何选择OCaml的一些讨论,请参阅。 我们在每个请求请求上测试(在...

    stan.rb:Ruby NATS 流媒体客户端

    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 = ...

    C++ Primer 3rd Edition 中文完美版

    于北美大陆Stan Lippman 是美国人Josée Lajoie 是加拿大人最后这种双作者关系也 反映了C++团体的两类主要活动Stan 现在正在迪斯尼动画公司Walt Disney Feature Animation *致力于以C++为基础的3D 计算机图形和...

    learn-stan:在 Stan 中建模的实用介绍

    有很多更详细的技术资源可以学习 Stan,任何有兴趣在研究中使用 Stan 的用户都应该确保进一步阅读以真正了解 Stan 在做什么以及为什么(非常好, 为那些有生态倾向的提供了对 Stan 的精彩介绍)。 然而,许多可用...

    C++教程电子书籍URL

    - **简介**: 该书由Stan Lippman撰写,深入浅出地介绍了C++的核心特性及其实际应用案例,是学习C++的必备读物之一。 #### 3. **《Visual C++ (高级教程)》ISO** - **链接**: ...

    stan-rs:基于官方NATS rust客户端的NATS Streaming客户端

    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

    C++.Strategies.and.Tactics (中文版)

    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 ...

Global site tag (gtag.js) - Google Analytics