源自 此楼
编程语言在功能需求(比如上面的“支持多个数相加相乘”)之外,还有反馈、性能、互操作等等。不知已有的成熟语言项目是否有这方面的文档。
如果能用相对标准一致的描述方式对各编程语言进行需求分析,比较它们之间的异同也许会更方便,也可以对新语言的研发提供更全面的参考。wiki里 仅比较了笼统的一些特性:
源自 此楼
编程语言在功能需求(比如上面的“支持多个数相加相乘”)之外,还有反馈、性能、互操作等等。不知已有的成熟语言项目是否有这方面的文档。
如果能用相对标准一致的描述方式对各编程语言进行需求分析,比较它们之间的异同也许会更方便,也可以对新语言的研发提供更全面的参考。wiki里 仅比较了笼统的一些特性:
那肯定是要看你想要的应用场景
用例(use case)分析的确是重要一步。API或框架的需求分析应有相通之处。
尝试回答一下。一般情况下,语言目标要先确认,就是确定语言要解决的问题,这个比较重要,是后面设计和实现的依据。rust解决内存安全问题,Java解决内存自动管理的问题,deeplang目标解决资源受限的情况下如何节省内存的问题。目标->各个场景的分析->竞品分析->找到还没有解决的问题。一切清晰后,再开始语言设计和实现。
语言目标很重要!!!
deeplang不是和C语言的应用场景重叠?
很同意目标的重要性。
请问deeplang在支持资源有限的平台和节省内存方面有作为对比目标的语言吗?另外,deeplang 在前端(语法、反馈等)有与此需求相关的设计吗?
这是 《The Go Programming Language》(原文)前言中提到的语言目标。如有其他资料请补充。
所有的编程语言都反映了语言设计者对编程哲学的反思,通常包括之前的语言所暴露的一些不足地方的改进。Go项目是在Google公司维护超级复杂的几个软件系统遇到的一些问题的反思(但是这类问题绝不是Google公司所特有的)。
正如Rob Pike所说,“软件的复杂性是乘法级相关的”,通过增加一个部分的复杂性来修复问题通常将慢慢地增加其他部分的复杂性。通过增加功能、选项和配置是修复问题的最快的途径,但是这很容易让人忘记简洁的内涵,即从长远来看,简洁依然是好软件的关键因素。
简洁的设计需要在工作开始的时候舍弃不必要的想法,并且在软件的生命周期内严格区别好的改变和坏的改变。通过足够的努力,一个好的改变可以在不破坏原有完整概念的前提下保持自适应,正如Fred Brooks所说的“概念完整性”;而一个坏的改变则不能达到这个效果,它们仅仅是通过肤浅的和简单的妥协来破坏原有设计的一致性。只有通过简洁的设计,才能让一个系统保持稳定、安全和持续的进化。