LINUX.ORG.RU

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

Исправление KivApple, (текущая версия) :

Синтаксис то это как раз ерунда и действительно лечится чтением документации и просто опытом работы.

А вот как быть с:

1) Только ручное управление памятью

2) Отсутствие синтаксического сахара для ООП (== при необходимости нагородить ООП требуется писать кучу boiler plate кода)

Это объективные недостатки, поскольку необходимость постоянно держать в голове, что ты где выделил и где освободил, а также писать кучу однотипного кода, который не приходится писать на других языках - достоинствами быть не могут.

Однако, есть и достоинства:

1) Из-за ручного управления памятью можно добиться оптимального потребления этой самой памяти, а не жрать память как не в себя. Плюс нет подвисаний при работе GC.

2) Низкоуровневые структуры данных позволяют абсолютно точно контролировать каждый байт каждой структуры.

Фактически, эти достоинства и недостатки являются следствием одних и тех же свойств языка, но с разных точек зрения. Знание этих фактов позволяет легко определить область применимости языка:

1) Там где важна скорость написания кода - Си такое себе решение

2) Там где важна супер-производительность и предсказуемость поведения на низком уровне - Си отличное решение.

Недостатки это не всегда плохо. Это нормально.

Исходная версия KivApple, :

Синтаксис то это как раз ерунда и действительно лечится чтением документации и просто опытом работы.

А вот как быть с:

1) Только ручное управление памятью

2) Отсутствие синтаксического сахара для ООП (== при необходимости нагородить ООП требуется писать кучу boiler plate кода)

Это объективные недостатки, поскольку необходимость постоянно держать в голове, что ты где выделил и где освободил, а также писать кучу однотипного кода, который не приходится писать на других языках - достоинствами быть не могут.

Однако, есть и достоинства:

1) Из-за ручного управления памятью можно добиться оптимального потребления этой самой памяти, а не жрать память как не в себя. Плюс нет подвисаний при работе GC.

2) Низкоуровневые структуры данных позволяют абсолютно точно контролировать каждый байт каждой структуры.

Фактически, эти достоинства и недостатки являются следствием одних и тех же свойств языка, но с разных точек зрения. Знание этих фактов позволяет легко определить область применимости языка:

1) Там где важна скорость написания кода - Си такое себе решение

2) Там где важна супер-производительность и предсказуемость поведения на низком уровне - Си отличное решение