Programming languages 为什么你使用的表达力不高,我也应该这样做?

Programming languages 为什么你使用的表达力不高,我也应该这样做?,programming-languages,low-level,Programming Languages,Low Level,我是一名Python程序员,对Ruby和PHP也略知一二。我对java的了解不够,不知道有什么有意义的东西,当然我也不知道C、C++或其他低级语言。我听过所有“谁在乎速度,因为硬件便宜,但编码器昂贵”的论点,我不想在这里提出辩论。我想了解有关低级编程语言社区(无论是C语言还是汇编语言)的两件事: 您选择继续使用它的主要原因是什么(工作要求、速度、桌面与网络等) 在游戏后期,我还是花时间学习C++(或其他语言),还是会受益? P>也考虑动态和静态类型的优点/缺点,当选择你的原因时。我主要是为网络编

我是一名Python程序员,对Ruby和PHP也略知一二。我对java的了解不够,不知道有什么有意义的东西,当然我也不知道C、C++或其他低级语言。我听过所有“谁在乎速度,因为硬件便宜,但编码器昂贵”的论点,我不想在这里提出辩论。我想了解有关低级编程语言社区(无论是C语言还是汇编语言)的两件事:

  • 您选择继续使用它的主要原因是什么(工作要求、速度、桌面与网络等)
  • 在游戏后期,我还是花时间学习C++(或其他语言),还是会受益?
    P>也考虑动态和静态类型的优点/缺点,当选择你的原因时。我主要是为网络编程,但没有充分考虑到这一点,因为这部分是因为我只知道网络。

    这里的Fortran程序员毫不羞愧。速度。哦,所有和我一起工作的科学家都能相当流利地使用Fortran。但后来我在大型集群和超级计算机上从事计算电磁学的工作,如果一个web应用程序跳起来咬我的鼻子,我就认不出来了

    我不认为Fortran是低级的或表达能力较差的,我认为它是线性代数和更一般的数字运算的DSL。那么我为什么要上钩回答这个问题呢


    动态类型与静态类型?静态的,请在编译时将所有内容绑定,以便编译器能够进行优化。

    对于数值计算,我直接编写
    C++
    比直接使用Python更快。当然,我可以将我的C++库与高级语言(我做)连接,但是由于我的大部分工作都是在低级数值方面完成的,所以我不会得到太多。 <> P>也考虑了很多图书馆,尤其是在科学计算中,在 FORTRAN 中, C++ <代码>或C++ > /Cord>,并且与<代码> C++< /COD>链接它们要快得多(特别是如果你想完成它),就自己创建包装器和接口。 如果你想从学习低级语言中获得什么,很大程度上取决于你的问题领域

  • 我认为这里的三大原因是性能、遗留系统支持和嵌入式开发

  • 因此,它使得任何答案几乎毫无用处


  • 使用低级语言有几个很好的理由

    首先,有很多应用程序的性能确实很重要。我所使用的主要应用程序已经足够慢了(它可以做很多事情),并且在Python中无法使用

    其次,有些应用程序需要独立的可执行文件,但这些文件并没有那么大

    第三,C和C++中有大量遗留代码,而且不会很快消失。

    第四,操作系统通常用C语言或C++语言或类似语言编写,并在其中公开API。如果您需要与操作系统亲密接触,无论出于何种原因,最好使用操作系统语言

    动态类型对于快速启动和运行应用程序来说显然更好,我的Lisp背景让我相信静态类型通常只是过早的优化。然而,很多人认为静态类型在大型项目中执行正确性要好得多,C和C++非常适合大型项目。
    对于你的第二个问题,我不知道将来你想做什么,所以我不知道你是否值得学习C++。对于专业发展,我强烈建议学习多种语言,包括C或类似语言。关于学习哪种语言还有其他问题。

    对于一个网络程序员来说,C/C++几乎没有任何优势。它的表现力不如Perl、Ruby、Python等,需要更多的代码和对内存管理细节的关注。不幸的是,为其“特性”选择一种语言往往比为其平台选择一种语言更容易。C++并不像C语言那样干净优雅,大多数来自C兼容性。遗憾的是,尽管有更好的语言用于某些事情,但大多数都没有编译,大多数也没有得到广泛支持

    如果您计划开发客户将下载或通过CD接收的商业产品,那么C/C++为您提供了知识产权保护(难以反向工程),运行时占用空间小,以及针对Windows XP等较旧平台的能力

    在游戏中学习C/C++还不算太晚。只要所有高级语言都存在,C/C++就会存在,因为这些语言都是用C/C++实现的。这并不是说有一天我们都会转向Python,C/C++也会退役。高级非编译语言不是自升式的,所以它们不能没有C++。 <>是使用工具,如果你要实现更高级的东西,比如语言、API、工具包、驱动程序、IDE等等,但是如果你想用最快的方式开发一个内部GUI应用程序或一个Web应用程序,C++不是使用的工具。
    只需学习工作所需的工具。如果作业改变了,或者你想改变工作,那么你可能想推动自己学习C++,去看计算机科学的另一面,CPU和你现在写的Web应用程序之间的关系。

    < P>为什么Python、Ruby和PHP本身不写?< /P> 任务关键型应用程序需要最好的性能和算法,而不需要元编程之类的东西。 C++有一些很棒的想法和库,我在这些现代语言中发现,有时更好的时候更糟糕(比较C++中的模板和java中的泛型的能力)。 低级语言会让你