• XSS.stack #1 – первый литературный журнал от юзеров форума

Есть ли ещё смысл в плюсах при существовании Go и Rust?

Статус
Закрыто для дальнейших ответов.

shadowoftheghost

HDD-drive
Пользователь
Регистрация
09.02.2021
Сообщения
44
Реакции
10
Гарант сделки
2
Вот прям интересно. Учитывая что оба языка предоставляют расширенные возможности по управлению памятью и скорость исполнения, за которые плюсы ценят, есть ли смысл в плюсах, на которых код во множестве случаев попросту нечитабелен и наполнен boilerplate'ом, и их изучении?
 
Вот прям интересно. Учитывая что оба языка предоставляют расширенные возможности по управлению памятью и скорость исполнения, за которые плюсы ценят, есть ли смысл в плюсах, на которых код во множестве случаев попросту нечитабелен и наполнен boilerplate'ом, и их изучении?
Код нечитаемый для тех кто его не понимает?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну Rust - прямой конкурент сишечки и плюсам, все что ты можешь сделать в сишечке или плюсах, ты можешь сделать в Rust. С этой точки зрения вопрос лишь в личном предпочтении, готов ли ты смириться с тем, что borrow checker учит тебя жизни, ради высшей цели - получение кода без memory leak, use after free, race condition и других типичных багов, от которых плюсы и сишечка никак тебя не защищают. Если готов, то добро пожаловать в Rust, если не готов, то это сишечка и плюсы (ну или как вариант Nim или Zig или D, если ты нонконформист). Golang хорош лишь в том, в чем он хорош. Для создания какого-нить веб или микро сервиса - да, полностью заменить сишечку и плюсы на всех юз кейсах - очевидно нет.
 
Ну Rust - прямой конкурент сишечки и плюсам, все что ты можешь сделать в сишечке или плюсах, ты можешь сделать в Rust. С этой точки зрения вопрос лишь в личном предпочтении, готов ли ты смириться с тем, что borrow checker учит тебя жизни, ради высшей цели - получение кода без memory leak, use after free, race condition и других типичных багов, от которых плюсы и сишечка никак тебя не защищают. Если готов, то добро пожаловать в Rust, если не готов, то это сишечка и плюсы (ну или как вариант Nim или Zig или D, если ты нонконформист). Golang хорош лишь в том, в чем он хорош. Для создания какого-нить веб или микро сервиса - да, полностью заменить сишечку и плюсы на всех юз кейсах - очевидно нет.
Про Golang даже не знаю. Не особо им пользовался, но емнип, он тоже предоставляет необходимые возможности для реализации малварей, из коробки умеет в winapi и всякие другие приятные плюшки. Спасибо за развёрнутый ответ :)
пы.сы: строго не судить, в теме особо не шарю, скорее чисто интереса и самообучения ради
 
Самое-то главное, смысла для кого и в чем? Наемному работнику надо учить то, где лучше условия оплаты, фрилансеру то - подо что есть рынок спроса. Если же для себя учить, то надо отталкиваться от внутренного ощущения прекрасного - штырит или нет.
 
Самое-то главное, смысла для кого и в чем? Наемному работнику надо учить то, где лучше условия оплаты, фрилансеру то - подо что есть рынок спроса. Если же для себя учить, то надо отталкиваться от внутренного ощущения прекрасного - штырит или нет.
Всё так, но тут интереснее рассмотреть языки в вакууме. У каждого инструмента есть своё применение и свои плюсы с минусами, и учитывая смежное назначение языков в топике, интересно теоретически обсудить что может быть лучше и выяснить недостатки/достоинства каждого из сравниваемых предметов :)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Про Golang даже не знаю. Не особо им пользовался, но емнип, он тоже предоставляет необходимые возможности для реализации малварей, из коробки умеет в winapi и всякие другие приятные плюшки.
Кроме плюсов есть и минусы. Во-первых очень жирные бинари на выходе, хеллоу ворлд будет в районе мегабайта. Добавишь туда какой-нить RSA+AES из стандартной библиотеки и у тебя уже добрых мегабайта 3. Во-вторых компилятор генерит кучу информации о типах (RTTI), включая полные пути к файлам с исходным кодом. Это существенно упрощает жизнь реверсеру, для IDA уже есть готовые плагины, которые эту RTTI разбирает. В третьих сам язык такой себе: нет генериков, нет метапрограммирования, нет ООП в традиционном виде, практически нет новомодной функциональщины и тд.
 
Кроме плюсов есть и минусы. Во-первых очень жирные бинари на выходе, хеллоу ворлд будет в районе мегабайта. Добавишь туда какой-нить RSA+AES из стандартной библиотеки и у тебя уже добрых мегабайта 3. Во-вторых компилятор генерит кучу информации о типах (RTTI), включая полные пути к файлам с исходным кодом. Это существенно упрощает жизнь реверсеру, для IDA уже есть готовые плагины, которые эту RTTI разбирает. В третьих сам язык такой себе: нет генериков, нет метапрограммирования, нет ООП в традиционном виде, практически нет новомодной функциональщины и тд.
Судя по тому, что речь идет о рансом(где бы еще применялся rsa+aes)? как размер бинаря влияет на качество лока? Если речь идет о сетях, где ав проще отключить, чем обойти, вес бинаря вообще никакой роли не играет, хоть 50 мб, в локальной сети это 3 секунды.
Однако всякие плюшки типа
получение кода без memory leak, use after free, race condition
благпоприятно влияют на качество лока.
Более того, golang из коробки компилится сразу под несколько ОС\архитектур, что позволяет делать сразу win/lin локер. (возможно си будет проще собрать под esxi тот же, но в большинстве случаев все будет работать без танцев с бубном)

Поэтому лично для меня вопрос, почему все актуальные ПП так упорно стараются использовать низкоуровневые ЯП.
 
Статус
Закрыто для дальнейших ответов.
Верх