为什么要用Sric

Sric语言大部分灵感来自C++,在C++基础上做了两件事情:

  1. 减少特性、减少复杂性。
  2. 增加内存安全性。

设计哲学

性能

“现代计算机性能足够快”是个童年的谎言,硬件的发展远赶不上问题复杂度的增长。我遇到的每个行业都有性能问题。要解决性能问题,首先就不能有GC。有垃圾收集的语言始终存在隐形的性能天花板。需要有底层内存操作的能力,并且能灵活的在栈中分配内存,这是高性能语言需要具备的条件。Sric从设计之初就拥有和C/C++一样的性能。

内存安全

内存安全和性能是可兼得的。但Rust的机制却限制了代码的功能,强迫用户编写复杂且低效的代码,并增加了学习成本。Sric则采用了另一种方式,对开发者来说不需要做任何事情就能获得内存安全。Sric内存安全原理

抽象能力

面向对象是编程语言抽象能力的重要表现。尽管由于滥用继承导致现今人们对面向对象有些不好的印象,但我觉得面向对象在某些场合还是有用的。并且从语言上对继承做了一些限制。

简单和容易

C++和Rust都走到了这条的对立面,企图用复杂的特性覆盖所有。Sric则试图尽可能减少特性,避免复杂性。例如没有C++的各种版本构造函数、没有函数重载、没有模板元编程、没有多继承, 没有Rust的借用检查、宏、复杂的包模块机制、生命期标注等。

Sric并不致力于提供语法糖。过多的语法糖会提高学习成本,有时候反而降低可读性。语法糖不是越多越好,而是权衡学习成本和收益。

C++交互

Sric能够与C++无缝隙交互,它能生成人类可读的C++代码。C++和C历史悠久,有大量优秀的第三方库。Sric可以融入C++生态,轻松调用遗产代码,或者非常容易的调用操作系统API。

并且Sric代码也可以容易的被C++语言调用,这样能与不愿意学习Sric的开发者更好的协作。例如我们可以内部使用Sric开发,对外部提供C++接口。