首选 C++,彻底麻了!
发布时间:2024-01-03 10:15:28
这是个陷阱! 你为什么要这么做? 那么,还有什么其他选择呢?
一、这是个陷阱!
通常来说,选择 C++作为你的初始语言并不是一个好主意。在用 C++工作了很长一段时间,并尝试了许多不同的编程语言之后,我觉得 C++就像是用劣质胶带粘在一起的一团乱麻,不知怎么地仍然坚持着,甚至可能在最近的变化中朝着相对较好的方向发展,但对于初学者来说,真的算不上一个好选择。
二、你为什么要这么做?
1,它非常快!
这是很常见的误解。语言本身并没有快慢之分。当然,有些语言可以比其他语言更快地解析或解释,但这并不意味着用语言 A 编写的程序总是比用语言 B 编写的程序快,反之亦然。一个好的做法是问自己“为什么?”和“什么时候?”为什么用 A 语言编写的程序可能比用 B 语言编写的同等程序更快/更慢?它在多大程度上对性能有意义?但这不是新手应该关心的事情。一般来说,作为初学者,你不应该关心“语言性能”,因为这是你在学习编程时最不需要担心的事情之一。一开始,真正的性能主要取决于代码中使用的数据结构和算法,而不是语言的选择。
2,学习 C++会教你一些底层的概念,比如指针和手动内存管理!
3,游戏编程是在 C++中完成的——通常伴随着“性能”参数。
4,我懂一些 C 语言,所以 C++只是一个扩展,所以我会学习它。
事实并非如此,这样的想法会迫使你走上一条很难回头的道路。注意,不要把 C++看作是 C 的补充,因为这就像把龙看作是他珍贵的金山的补充一样愚蠢。如果执意如此,你将目睹你无法理解的恐怖。
三、那么,还有什么其他选择呢?
除了 C++之外,还有什么选择?关于这个问题,我将根据个人观点来回答,我也会努力解释为什么我是这样想的。
1.Python
有些人会告诉你 Python 很烂。然而,我要告诉你,我喜欢 Python,因为它很少让我失望。当我需要写一个简单的工具来自动做一些事情,我希望它在任何地方都能工作时,Python 就是我的梦中情“语”。
它的长期支持、庞大的社区、包管理器和现有的工具使我很难不向初学者推荐这门语言。它的语法确实非常具体,有些人甚至会说它很奇特,但是在使用它一段时间后,只有当我不得不将代码块移动到不同的位置并手动修复每个缩进时,它才会让我感到恼火。它甚至有类型提示和易于使用的工具,以确保你遵守键入规则,有些人可能会觉得非常有用。
不过,对于初学者来说,你很可能希望将重点放在庞大的 PyPI 存储库上,以便为自己编写一些有用的东西。它的文档也相对不错,甚至有一个教程让你入门,但如果你完全是 IT 新手,建议寻找一个更适合你的知识水平的入门教程,因为“官方”的教程不是很面向新手。
2.JavaScript
3.Kotlin
如果你想学习 Java,不管你有什么紧迫的理由,尽量放弃 Java,学习 Kotlin 吧!如果你想制作 Android 应用程序,并且你更愿意使用官方工具而不是一些 web 开发工具,Kotlin 就是你的理想之选。它的 Java 遗产使它成为一种相当不错的入门语言,因为你既有一门漂亮的现代语言,也有很好的现代语法和有用的功能,使用起来非常愉快,还有一个庞大的库存储库,其中一些库在 Kotlin 出现之前很久就编写了。我很少使用这门语言,但我几乎享受使用它的每一刻。
4.C
你想和你的硬件保持密切的关系吗?如果是,这就是一门合心意的语言。平心而论,C 确实缺乏真正的泛型,但这并不妨碍人们现在使用它。
这份清单绝不是全面的。有很多被认为“适合初学者”的语言没有出现在这个列表中,只是因为我从来没有使用过它们,或者工作了太久,以至于我的知识储备已经不适应其当前的发展状态(比如 C#,我想说点什么,但我真的不能)。
请注意,我在这里的重点是推荐一种相对容易学习和使用的语言,基本标准是它有一个大的社区和大量的学习资源。C++在这些方面都缺乏,这使得以“正确”的方式学习现代 C++变得异常困难。而且,公平地说,这使得在 C++中做任何事情都变得不合理地复杂和痛苦。
曾经尝试过从头开始设置具有自动单元和集成测试的 C++项目吗?我做了,但都以失败告终。不是因为这是不可能的,而是因为我宁愿选择一种支持开箱即用的语言(至少是单元测试)。
以上为本次所有分享内容
- 上一篇:深入解析 Linux 进程管理机制
- 下一篇:Linux 中 tar 命令的用法