多年以来,我一直在考虑深入研究“低级”语言。对我来说,这意味着C语言和汇编语言。但是,我还没有时间这样做,也从来没有必要。
现在,因为我看不到任何必要,所以我觉得我应该只是安排某个时间点来学习该主题,或者永远放弃该计划。
我的位置
在过去的四年中,我一直专注于可能会发生变化的“ Web技术”,而我是一名应用程序开发人员,这不太可能发生变化。
在应用程序开发中,我认为可用性是最重要的。您编写的应用程序将被用户“消耗”。这些应用程序越有用,您产生的价值就越大。
为了获得良好的可用性,我相信以下是可行的
- 良好的设计:经过深思熟虑的功能可通过深思熟虑的用户界面访问。
- 正确性:如果实施不正确,那么最好的设计一文不值。
- 灵活性:应用程序A应该不断发展,以便其用户不必切换到具有A可以实现的具有新功能的其他应用程序B。解决同一问题的应用程序的功能不应有所不同,而应在原理上有所不同。
- 性能:性能有助于获得良好的用户体验。理想情况下,应用程序始终具有响应能力,并且可以相当快地执行其任务(基于其频率)。性能优化的价值超出了用户可察觉的范围,这值得怀疑。
我认为除了性能之外,低级编程不会对我有所帮助。但是,出于性能考虑,以低级语言编写整个应用程序对我来说还为时过早。
我的问题
低级编程可以教给我什么,其他语言不能教给我什么?我是否缺少某些东西,或者仅仅是一项技能,而这对于应用程序开发几乎没有用?请理解,我不是在质疑C和汇编的价值。只是,在我的日常生活中,我非常高兴地了解到这个世界的所有错综复杂的东西并为我进行了管理(主要是通过用C / C ++编写的层以及自己进行汇编)。我只是看不到任何新概念,对我而言只是细节。那对我有什么用呢?
我的结论
感谢大家的回答。我必须说,没有人真的让我感到惊讶,但是至少现在我可以肯定,我会放弃对此感兴趣的领域,直到需要它为止。
据我了解,如今为当今的CPU中使用的处理器编写程序集不仅不必要地复杂,而且有可能导致运行时性能比C语言差。由于OOE的原因,手工优化几乎是不可能的,尽管您没有获得编译器可以自动进行的各种优化。而且,该代码是可移植的,因为它使用了一小部分可用命令,或者经过了优化,但可能仅在一种体系结构上工作。
编写C不再像以前那样需要。如果要用C编写应用程序,我将尽可能使用经过测试和建立的库和框架,这将使我免于实现字符串复制例程,排序算法和其他在大学中用作练习的东西。我自己的代码将以类型安全为代价更快地执行。我既不希望在常规应用程序开发过程中重新发明轮子,也不希望通过查看核心转储来进行调试:D
我目前正在尝试语言和解释器,所以我想发布什么内容,我想尽管C ++也可以做到这一点,但可以将一个可行的概念移植到C上。
再次感谢大家的回答和见解。