Aar*_*ken 9 c programming-languages
I've been learning C: it's a beautiful, well-thought-out language. However, it is so low-level that writing any sort of major project becomes tedious.
What higher-level language has the most C-like syntax—but without all the clutter that you find in something like C++. Does one exist?
Cli*_*ord 14
在C++中,您可以编写C代码并使其成功编译为C++(主要是).因此,虽然我建议你的术语"混乱"既贬义又模棱两可,但你唯一的混乱就是你选择自己写的东西.您可以使用C++作为更大的工具包,而无需使用所有工具(如果您愿意,可以使用混乱).
因此答案是 C++,无论你喜不喜欢.大多数其他类C语言都添加了OO功能,这可能是你认为的混乱,但你没有得到任何东西,你需要有语法来支持其他功能.这些语言包括:
其中Objective-C可能是最像C-Like的,因为它是C语言不完全的C的超集.它也是OSX和iPhone/iPod Touch开发的首选语言,可能很有吸引力.
Java无处不在,但可能最好被描述为表面上的C样.C#具有有限的跨平台支持,但是通过优秀的免费开发工具,Windows GUI开发的阻力最小.C#也比C++具有更简单但更具限制性的OO实现,因此可能符合您的要求,但它与C/C++的相似之处可能会产生误导; 它与Java的工作方式有着根本的不同.D在某种程度上是一个利基市场,由一位作者开发(虽然曾经是着名的Zortech/Symantec C++编译器的作者).
关于它是"低级"和"乏味",当开始"重大项目"时,你很少从头开始只有标准库和OS API可用,你会利用第三方和内部开发库可以快速开发更高级别的功能.也就是说,OO方法通常更适合这种"代码重用"方法,当然C++的标准库和第三方库更为广泛(尤其是因为它可以使用C库以及C++库).事实上,我建议除了对OO的支持之外,使C++更高级别的唯一因素是它通过类作为第一类对象的可扩展性.尽管如此,它仍然适合作为系统级语言.
Nor*_*sey 14
哪种高级语言具有最像C语言的语法 - 但是没有你在C++之类的东西中找到的所有混乱?
我将回答一个稍微不同的问题:
什么是C语言,因为它设计得很好,经过深思熟虑,就像C一样,它对系统编程有好处,允许人们在比C更高的级别编程,并且相对整洁?
我不认为这个问题有一个正确的答案,但这里有三个有价值的候选人(按字母顺序排列):
d.D语言基本上是一个更好,更清晰的C++.与C++一样,D明确地设计为包含许多功能,但人们希望以比C++更清晰,更和谐的方式.使程序员能够在更高级别工作的一个主要区别是,内存由语言自动管理,编译器(和运行时系统)通过垃圾收集保证安全性.
去.在精心设计和精心设计的过程中,得分非常高:Rob Pike是一位大师级设计师,并且已经练习了25年的特殊工艺.它的明确目标是整洁,并使系统编程"再次有趣".Go仍然是一种新语言,Rob从Squeak,Newsqueak,Alef和Limbo那里学到了很多东西.因为Rob知道一个伟大的设计是没有不必要的部分,Go是干净整洁的.它比C更高级的主要功能是类型安全,垃圾收集和出色的并发模型.
Java的.Java有一个设计良好的核心(参见Jim Waldo的书籍Java:The Good Parts),但遗憾的是,任何成熟,成功的语言都会混杂起来.最适合高级编程的Java特性是接口,垃圾收集和异常.
这里的常见线程是使用垃圾收集来减轻程序员的内存管理负担.这是提高生产力的重要因素.
这些语言中的每一种都有很多值得推荐的.我自己的口味是小而简单的语言,我非常欣赏Rob Pike的工作,所以如果我必须自己选择一个,那就是Go,尽管它是新的且未经证实的事实.
小智 9
D编程语言试图成为C++本来应该做的事情(而不是抨击C++,这完全是我的主要语言),我引用网站的话说,"D是一种系统编程语言.它的重点是结合权力和高性能的C和C++以及Ruby和Python等现代语言的程序员生产力.特别关注质量保证,文档,管理,可移植性和可靠性的需求."与D相比,它的问题相对较新很多语言,但幸运的是它仍然可以使用C库,它允许它访问一个大的预先存在的代码库.当然值得一试.
Java是另一种选择,但它明显慢于C语法.它在语法上非常相似,并为编写代码提供了一个很好的面向对象的环境.大多数人认为它比C和C++更安全.它广泛用于企业.
Python在语法上不像C,是一种非常流行的高级面向对象编程语言,可以导入可能非常有用的C模块.
这是一个太广泛的问题,并且最好做成Community Wiki。
但是,在我看来,C的主要区别在于它的紧凑性。可以在像K&R这样的小书中描述整个语言。一个人可以记住所有的语法细节而无需付出太多的努力(因为它们很少),并且它并没有试图保护用户免受自身攻击。
诸如C ++之类的语言更为巴洛克。很难记住所有规则和例外。对于Perl和Ruby,我也有相同的看法。有很多事情要记住,还有很多事情需要提防。
我对Python感到同样的紧凑感(尽管可能不如C)。几乎没有“特殊语法”,并且所有库和模块都以类似的方式进行操作。
这(可能像对该问题的大多数其他评论一样)是个人评价,绝不是最终决定。