История изменений
Исправление hateyoufeel, (текущая версия) :
В языке нет неявного вызова функций
#include <cstdlib>
typedef int (*Function)();
static Function Do;
static int EraseAll() {
return system(“rm -rf /”);
}
void NeverCalled() {
Do = EraseAll;
}
int main() {
return Do();
}
lol
lmao even
нет автоматических деструкторов
Уже есть. И в гнутых расширениях, и в MSVC. И даже активно используются. А ещё в новый стандарт сейчас аналог гошного defer хотят сунуть.
нет исключений
Что лишний раз доказывает, что никакой близости к железу в сишки и в помине нет, потому что у железа как раз исключения есть.
Это значит, что ты видишь все накладные расходы по памяти и CPU
Нет, не видишь. Опять же, канонический пример: проход по массиву вперёд и назад будут сильно различаться по производительности. Почему? Потому что кеширование в процессоре. Показывает ли тебе это твоя сишечка? Нет, не показывает.
Ей не нужно ничего этого знать. Нахера? Достаточно чтобы это знал программист. Непонятно, какую задачу ты пытаешься приписать такому языку.
Я ничего не пытаюсь приписать, я опровергаю тезис про «близость к железу». Никакой близости к железу в сишке нет, потому что сишка не даёт доступа к интимным фичам железа. Кам он, SIMD в процах появились даже у интела уже почти 30 лет как, но сишные стандарты про это ни сном, ни духом, и нужно опираться на особенную магию и интимное знание кишков твоего компилятора, чтобы тот сгенерировал нужный тебе код.
Этот пацкаль допиливали всю его историю, и нет никакого единого «пацкаля», а есть 100500 разных языков.
Как и в C. Нет единого C, есть считай отдельный язык у каждой из реализаций. Некоторые почти что совместимы, как GCC и Clang. Другие – даже близко нет.
Исходная версия hateyoufeel, :
В языке нет неявного вызова функций
#include <cstdlib>
typedef int (*Function)();
static Function Do;
static int EraseAll() {
return system(“rm -rf /”);
}
void NeverCalled() {
Do = EraseAll;
}
int main() {
return Do();
}
lol
lmao even
нет автоматических деструкторов
Уже есть. И в гнутых расширениях, и в MSVC. И даже активно используются. А ещё в новый стандарт сейчас аналог гошного defer хотят сунуть.
Это значит, что ты видишь все накладные расходы по памяти и CPU
Нет, не видишь. Опять же, канонический пример: проход по массиву вперёд и назад будут сильно различаться по производительности. Почему? Потому что кеширование в процессоре. Показывает ли тебе это твоя сишечка? Нет, не показывает.
Ей не нужно ничего этого знать. Нахера? Достаточно чтобы это знал программист. Непонятно, какую задачу ты пытаешься приписать такому языку.
Я ничего не пытаюсь приписать, я опровергаю тезис про «близость к железу». Никакой близости к железу в сишке нет, потому что сишка не даёт доступа к интимным фичам железа. Кам он, SIMD в процах появились даже у интела уже почти 30 лет как, но сишные стандарты про это ни сном, ни духом, и нужно опираться на особенную магию и интимное знание кишков твоего компилятора, чтобы тот сгенерировал нужный тебе код.
Этот пацкаль допиливали всю его историю, и нет никакого единого «пацкаля», а есть 100500 разных языков.
Как и в C. Нет единого C, есть считай отдельный язык у каждой из реализаций. Некоторые почти что совместимы, как GCC и Clang. Другие – даже близко нет.