LINUX.ORG.RU

История изменений

Исправление 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. Другие – даже близко нет.