Возможно ли создание языка, который бы пришёл на замену С по производительности?
==================================================================================

 Всем привет!  

Правильно ли я считаю, что С-программы работают быстрее программ на других языках после Ассемблера? И возможно ли теоретически построение более оптимального компилятора, чем у С, в ближайшие годы? При условии хорошего владения языками программистами.  

Благодарю за ответы. 

 Всем привет!  

  

> Правильно ли я считаю, что С-программы работают быстрее программ на других языках после Ассемблера?

  

Нет.  

Большинство компилируемых языков компилируют текст программ непосредственно в машинный код.  

Просто в С, как в одном из низкоуровневых языков, можно больше контролировать поведение компилятора и готовить к нему текст программы. Но программы бывают разные, если брать конкретный алгоритм и сравнивать - думаю сопоставимой скорости можно добиться везде.  

  

Опять же. Писать алгоритм на ассемблере непросто - чтобы обогнать по скорости современный компилятор надо знать архитектуру процессора лучше, чем ее знают те кто пишет компилятор. А это непросто.  

  

> И возможно ли теоретически построение более оптимального компилятора, чем у С, в ближайшие годы? При условии хорошего владения языками программистами.  
> 
> 

  

Хорошее владение языком не так критично, как понимание архитектуры процессоров. Чтобы использовать все возможности современных процессоров, нужно их знать, за ними следить, договариваться с производителями процессоров об обмене знаниями и документацией.  

Внезапный новый язык в этом плане в ближайшие годы вряд ли возможен.  

  

Опять же. "быстрые программы" это что?  

Где-то быстрее Go, где-то С++, где-то чистый асм, где-то даже питон.  

Скорость программ обычно не так критична. А конкретный алгоритм можно вылизать почти на всем. 

> И возможно ли теоретически построение более оптимального компилятора, чем у С, в ближайшие годы?

Навряд ли. В этот язык вложено много человеко-часов. Поскольку он представляет из себя общепринятый стандарт, то проще доработать расширения для своих нужд, чем разрабатывать компилятор с нуля.  

  

> Правильно ли я считаю, что С-программы работают быстрее программ на других языках после Ассемблера?

Не обязательно. Вот взять, к примеру, сравнение Web Framework Benchmarks  

<https://www.techempower.com/benchmarks/>  

Программа на C заняла лишь 6-е место в списке.  

  

Что делает C эффективным ("быстрым", но не только)?  

  

Inline-функции  

GoTo, ассемблерные вставки  

регистровые переменные  

адресная арифметика  

разные "подсказки" для компилятора, типа векторных инструкций процессора и прочих.  

  

Для того, чтобы заменить язык C, необходимо:  

 вложить много человеко-часов, создав компилятор, который генерирует код эффективнее C  

 разработать лучший toolchain, чем имеющийся.  

  

Дополнительные ссылки:  

[icps.u-strasbg.fr/~bastoul/local\_copies/lee.html](http://icps.u-strasbg.fr/~bastoul/local_copies/lee.html)  

[ftp.cvut.cz/kernel/people/geoff/cell/ps3-linux-doc...](http://ftp.cvut.cz/kernel/people/geoff/cell/ps3-linux-docs/CellProgrammingTutorial/BasicsOfSIMDProgramming.html)  

<https://ispc.github.io/> 

 Практически такой же язык уже создан. При этом он является во много раз более безопасным, насколько что, как Майкрософт так и Линукс разработчики внедряют его подержку и компиляцию в существующие кодовые базы.  

  

Его название — Rust.  

И да создание языка — это далеко ещё не создание компилятора для такого нового языка и других инструментов.   

Это многие человеко-часы, то есть годы разработок.