那些C/C++做不好的事
#编程#我开始学习C / C ++编程。创建小型命令行程序并实现各种算法让我感觉到非常有趣。我认为,C非常适合理解面向OOP的编程和C ++概念。这两种语言对于系统编程而言都是非常出色的语言,如果没有C,就不会有操作系统。
但是,当涉及到基于Web的应用程序级编程时,我发现C / C ++的某些质量有很大的改进范围。
1.低级别- 与Java不同,C和C ++都直接作为二进制文件编译为机器级代码,而Java则编译为字节码,而C#编译为MSIL,这使得它们可以在任何OS的任何计算机上运行。但是在C / C ++的整个操作系统上,可移植性要困难得多,因为每台机器都不同,因此您需要为特定的硬件和OS编译二进制文件,这很麻烦。例如,您需要考虑您的代码是否符合POSIX。仅仅因为它可以在Windows上运行并不意味着它可以在Mac / Linux上运行。
2.语法-我发现c ++的语法非常详细-这意味着有时必须非常小心。随着深入研究,您将了解何时字符串比const char * 更好,反之亦然。
3.缺乏工业级3层堆栈(框架)-这可能是Web开发中不使用C / C ++的主要原因。J2EE和Spring只是使用Java编写的众多堆栈中的两个。在前端网络中使用jsp,在J2EE中使用Java用于业务层,使用jdbc进行数据库操作,类似地,在网页中使用ASP,在dotnet框架中使用C#在业务层中使用ADO,在数据库操作中使用ADO,在Python中使用Django,在Ruby中使用Rails,在Java中使用MEAN和MERN ,C / C ++没有。因此,在构建工具之前,您将首先构建组件。
4.玩指针-如果您在C ++的基础上成长,那么您要么会很高兴拥有对确切的内存地址的控制权,要么会为大量使用指针感到困惑。如果您错过星号(*),则很容易使您的应用程序崩溃,因为您所需的内存地址与您取消引用的内存地址将完全不同。
5.手动控制-能力越强,责任越大。C ++是最好的例子。它使您对计算机有太多的控制权,使您想知道为什么它自己不处理<插入某些操作>?也许在以后的修订版中已经解决了这个问题,但是一个例子是我发现不需要用空字符终止字符串。您可以做的事情超出了不允许的范围。
最后不要误会我的意思,我喜欢C / C ++,没有C / C ++,计算机行业就不可能发生任何新的事情。实际上,它还有其他用途-互联网浏览器,计算机视觉工具,甚至Windows操作系统都是用C ++编写的。在做出决定之前,我只会尝试研究哪种语言最适合什么目的。