Перейти к содержимому
Avevad

Эмулятор OC "CODE"

Рекомендуемые сообщения

В 16.05.2020 в 17:03, NEO сказал:

в говени плюсовом копаться

Оскорбляете меня, товарищ Neo.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Avevad сказал:

Оскорбляете меня, товарищ Neo.

Эволюция языков: FORTRAN — не строго типизированный язык, С — слабо типизированный язык. Ada — сильно типизированный язык. С++ — сильно раздутый язык.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 22.05.2020 в 14:45, NEO сказал:

С++ — сильно раздутый язык.

С++ - это по сути что? С. Только улучшенный. Все что ты сейчас видишь на экране монитора - тем или иным образом написано на одном из трех: C/C++/Assembler (Java, Lua, Python - интерпретаторы/компиляторы/VM этих языков тоже написаны на одном из вышеперечисленного, думаю это ты и так знаешь). C - жуткая функциональщина, assembler - вообще молчу. Не знаю, чем тебе C++ не угодил. ООП гораздо удобнее чем всякие struct с зоопарком функций манипулирующих ими.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
31 минуту назад, Avevad сказал:

C - жуткая функциональщина

Скорее "процедурщина".

Жуткая функциональщина это Haskell =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
39 минут назад, Avevad сказал:

С++ - это по сути что? С. Только улучшенный. Все что ты сейчас видишь на экране монитора - тем или иным образом написано на одном из трех: C/C++/Assembler (Java, Lua, Python - интерпретаторы/компиляторы/VM этих языков тоже написаны на одном из вышеперечисленного, думаю это ты и так знаешь). C - жуткая функциональщина, assembler - вообще молчу. Не знаю, чем тебе C++ не угодил. ООП гораздо удобнее чем всякие struct с зоопарком функций манипулирующих ими.

 

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

Зайди к нам в irc, тебе парни набросают миллион причин почему плюсень плохой язык...

Один из примеров.

@LeshaInc1. переусложненный 2. куча легаси 3. повсюду undef/unspec behaviour 4. инфраструктура отсутствует, головная боль с зависимостями 5. обновляется раз в 5 лет, и то в продакшене неиспользуют

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, NEO сказал:

1. переусложненный

К сожалению так и не услышал, чем именно. Мне вот, например, в Rust механизм обработки ошибок не нравится.

10 часов назад, NEO сказал:

3. повсюду undef/unspec behaviour

А в C как будто нет?

10 часов назад, NEO сказал:

5. обновляется раз в 5 лет, и то в продакшене неиспользуют

А зачем обновлять если и так уже есть все что нужно? А в продакшене его используют, еще как.

10 часов назад, NEO сказал:

по сравнению с растом

Rust и C/C++ не всегда предназначены для одних и тех же вещей - на C/C++ ты можешь делать все - десктопные приложения, мобильные приложения, да хоть драйвера пиши.

Изменено пользователем Avevad

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Avevad сказал:

Мне вот, например, в Rust механизм обработки ошибок не нравится

Исключения скрыты в дебрях кода, и по сигнатуре функции не понятно, возможна там ошибка или нет. noexcept с этим особо не помогает... В расте же функция возвращает `Result<T, E>` — ты обязан обработать ошибку, через `.unwrap`, `match`, или `?`

1 час назад, Avevad сказал:

А в C как будто нет?

Есть. В расте нет (в safe коде). То же знаковое целочисленное переполнение, которое в си/плюсминус является UB, в расте нормально обрабатывается (в debug проверка, в release wrapping), при этом можно явно указать какое поведение тебя интересует: `checked`, `wrapping`, `overflowing`, `saturating`. Покажи мне такое в Си++

1 час назад, Avevad сказал:

А зачем обновлять если и так уже есть все что нужно? А в продакшене его используют, еще как.

В C++20 добавили концепты (по сути трейты из раста, только убого реализованные), рейнжи (итераторы из раста), модули (серьезно, 30 лет не могли сделать нормальную систему модулей вместо препроцессорных костылей, раст же изначально проектировался с модулями) и много других жизненно необходимых фич, если отбрасывать их ущербность. Теперь покажи кто в продакшене на C++20 перешел? там дай бог C++11 и переписывать никто не собирается, язык стал другим

 

1 час назад, Avevad сказал:

Rust и C/C++ не всегда предназначены для одних и тех же вещей - на C/C++ ты можешь делать все - десктопные приложения, мобильные приложения, да хоть драйвера пиши.

А на расте что, нельзя? Чем это он принципиально отличается от си++? тот же системный язык, только с гарантиями. Вон даже ось пишут, или модули для ядра.

 

1 час назад, Avevad сказал:

К сожалению так и не услышал, чем именно [переусложненный]

Ну например, инициализировать переменную можно 18 различными способами.. те же выражения бывают в 5 вариантах: rvalues, lvalues, xvalues, glvalues, и prvalues... а шаблонную наркоманию порой вообще невозможно прочесть, особенно когда дело доходит до ошибок компиляции.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
12 часа назад, LeshaInc сказал:

Исключения скрыты в дебрях кода, и по сигнатуре функции не понятно, возможна там ошибка или нет. noexcept с этим особо не помогает... В расте же функция возвращает `Result<T, E>` — ты обязан обработать ошибку, через `.unwrap`, `match`, или `?`

 

Согласен, исключения в плюсах убогие, тем более замедляют код и заставляют разбухать бинарь, они легко вызывают утечки памяти и ресурсов без блока finally, я уже давно сделал вывод что плюсы - это си после таксидермиста, убогое чучело набитое соломой. Кучи способов инициализации, кто такое придумал и зачем? int a = {0}, int a {0};

Даже не смотря на убогую наркоманию в шаблонах - они безумно медленно компилируются, последний раз я использовал библиотеку sol2, - это враппер для луа, красивый, весь такой, шаблонный, подключив хедер и создав стейт, сей файл уже начал собираться ~7 секунд, а это было 30 строк кода и 5 из них обращения к библиотеке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...