pri*_*bel 17 c++ programming-languages c++11
我试图跟上C++,因为他们引入了1998 ANSI/ISO C++.我吸收了新的概念并试图理解它们.我了解了异常处理,模板和命名空间.我已经阅读了有关新的强制转换机制并使用了STL库.
所有这些概念都需要很多能量.但是现在看一下新的C++ 0x标准时,我有点担心C++的未来.
事情变得越来越复杂.这种语言正在变成一个怪物.
我不确定我是否想要继续使用该语言,因为我无论如何都不会在C++中进行日常的黑客攻击.我主要使用解释或字节码语言.
那么,为什么我还要费心去学习这种难度大但功能强大的语言呢?我可以用Python等人做95%的业务.剩余的5%,我可以毫不费力地处理普通的旧C++或C.
你怎么看?
mwi*_*ahl 21
每个人都使用C++的子集.对于C++中的几乎所有应用程序编程,无论是服务器端还是客户端,该子集都是可管理的.在我看来,唯一需要完全掌握语言的每一个细微差别的人都是图书馆作家 - 实施Boost,STL,Loki等的人.
但我绝对会使用适合任务的语言.如果Python对于你的工作来说比C++更具可读性和可维护性,并且你不需要C++提供的东西,那么肯定会坚持使用Python.
Özg*_*gür 20
几周前听听布鲁斯·埃克尔(两本所谓的最佳C++书籍的作者)对C++的评论:
也就是说,我几乎不再使用C++了.当我这样做时,它要么检查遗留代码,要么编写性能关键部分,通常尽可能小地从其他代码调用(我的首选方法是在Python中快速编写应用程序,然后对其进行分析,并在必要时提高性能)通过Python的ctypes库调用C++的一小部分).
因为我在C++标准委员会,我看到了这些决定.他们都经过了极其谨慎的考虑,远远超过了许多用Java做出的决定.
然而,正如人们正确地指出的那样,由此产生的语言使用起来既复杂又痛苦,并且充满了奇怪的规则,一旦我离开它就会忘记一段时间 - 我从第一原则中找出了这些规则我写书的时候,不只是记住它们.
另外,你应该阅读这个主题和Danny Kalev对C++的预测.
然而,日益复杂的C++将给将语言分裂为准官方方言带来压力.我们今天已经看到了这种趋势; 它可能会在未来加剧.
编辑:
你也应该看看这个讨论:
jal*_*alf 10
首先,C++ 0x的许多功能都是为了使语言更易于使用.更可读的模板编译错误,更一致的初始化语法,支持线程,否则将不得不依赖于特定于平台的库等等.
因此,如果您使用C++,我觉得学习C++ 0x的重要部分应该是一个可管理的任务.请记住,您不需要学习使用该语言的所有新功能.一些功能主要是作为库实现者的辅助工具添加的,例如允许更有效地实现STL,但这不应该真正影响最终用户对语言的使用.有些只是在极少数情况下才真正需要的.忽略语言的那些部分.
他们使用C++ 0x的目标之一是避免使用它变得更难.
但除此之外,你需要C++?如果你用其他语言编写代码,为什么要花时间跟上C++呢?
您不必被迫使用语言提供的所有功能.我不在C中使用setjmp/longjmp,尽管它在那里.我也没有使用Java集合的每个方面.
如果您认为新功能会使您的代码交付更好(更快或更高质量或两者兼而有之),那么请使用它们.否则忽略它们.
如果只是为了让你通过求职面试,从高层次了解它们是什么是有用的,但在我看来,他们添加到语言中的一半是不必要的.
在切换到Java之前,我从未使用过C++模板,但我知道它们的用途.
它并不总是关于学习最新和最伟大的.软件(至少在您的工作中)是关于产品的交付.如果你足够熟练,可以在COBOL或FORTRAN中完成.
除了Bjarne和Herb Sutter之外,没有人知道所有的C++.正如你所说,这是一种非常庞大的语言.期望能够采用整个标准+特定编译器或编译器的具体实现细节是不切实际的.
但是你不需要知道所有事情就可以使用C++.相反,只学习对您和您的项目有价值的C++子集.继续扩展您的知识并没有什么坏处,但除非您正在编写C++编译器,否则没有理由知道整个事情.即使你完成了它,你所有与之合作的人也不会.
那么,为什么我还要费心去学习这种难度大但功能强大的语言呢?我可以用python等人完成95%的业务.剩余的5%,我可以毫不费力地处理普通的旧C++或C.
好吧,在大多数情况下,你回答自己的问题.你现在没有必要跟上C++的前沿.
但是,语言将继续前进.几年后,您认为今天浪费时间浪费的一些概念将被普遍使用.有一天,你可能会发现在使用"普通C++"的5%中,你正在合作的一些示例代码或代码使用了一个你不熟悉的构造.那时,你需要上网并刷新新的"当前"C++.
这会成为一个问题吗?当然不是.你是一名程序员.您可以在95%语言环境中随时了解最新的编程概念,这些概念也会随着时间的推移而发生变化.您可能已经非常熟悉这些概念,并且只有在必须使用它们时才需要熟悉它的C++语法.
我个人希望继续跟上C++,即使我的职业生涯更倾向于Java或其他下一代语言.为什么?我想说,因为它最让我感兴趣,因为我喜欢这一切的复杂性和表现力.但更可能的原因只是因为它是我的第一个专业语言; 我认为这是我的"母语".
如果您不感兴趣,并且不关心您的工作或未来的工作,请不要打扰.这有什么问题?没有.
| 归档时间: |
|
| 查看次数: |
2250 次 |
| 最近记录: |