Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.

Зачем ехать в Голландию из России айтишнику?

Тема в разделе "Прибытие", создана пользователем hooch77, 17 авг 2019.

  1. chel

    chel Старожил

    Серьёзно. Erlang has no OOP. Вааще нет классов. И при этом на нём и RabbitMQ и всякие вацапы и riak и протчая и протчая и протчая...
     
  2. lumberjack

    lumberjack Форумчанин

    Каждый кулик свое болото хвалит.
    Объективно на rust есть много небезосновательной критики. Если интересно, можете почитать статью "Критика языка Rust и почему C/C++ никогда не умрет".
    Так же первое, что выдает гугл о недостатках rust:
    - Slow. Although Rust is supposed to be “blazingly fast” people are finding that it is slower than F# and even slower than OCaml. ...
    - Leaky. Rust's scope-based memory management makes recursion leak memory.
    - Invasive. ...
    - Dysfunctional. ...
    - Retarded.

    Тоже холивары разводить не собираюсь. Я лишь пытаюсь донести, что С++ объективно нет альтернатив и не предвидится в тех нишах, которые он сейчас занимает.
     
  3. lumberjack

    lumberjack Форумчанин

    Окей, возможно я не так выразился. Как язык, не имеющий ООП собирается вытеснять С++? ООП, ФП и ПП языки крепкро занимают свои ниши и, как правило, не конкурируют между собой.
     
  4. Dmitry Pankratov

    Dmitry Pankratov Аксакал

    Slow - ерунда. Компиляция в машинный код LLVM бэкендом, нет GC и полный контроль использования памяти. На нем пишут операционки и даже загрузчики. Как он может быть slow.
    Invasive - это отличное свойство. Если хочется не invasive, пишите на джаваскрипте, там можно всё.
    Dysfunctional - совсем наоборот, очень даже functional.
    Retarded - чаще всего это пишут люди, которые были не в состоянии побороть растовский borrow checker.
    --- Сообщения объединены, 6 сен 2019, дата первого сообщения: 6 сен 2019 ---
    Почему вы решили, что он не имеет ООП? Там есть наследование через трейты, полиморфизм, дженерики и инкапсуляция. Единственное, чего нет - наследования данных, что есть очень гуд. Наследование вообще уже считается не модным, в моду входит композиция, с классическим ООП и наследованием слишком много проблем.
     
  5. lumberjack

    lumberjack Форумчанин

    Это то, что выдал гугл. Не могу ничего прокомментировать, т.к. с Rust не работал.
    Вики подсказала:"Объектно-ориентированное программирование как таковое языком не поддерживается, но язык позволяет реализовать большинство понятий ООП при помощи других абстракций".
     
  6. Dmitry Pankratov

    Dmitry Pankratov Аксакал

    Не знаю, что они имеют ввиду. Наверное что-то классическое про Animal, Cat, Dog, Fish и т.д. Rust не поддерживает наследование данных. Оно не нужно вообще. Язвк сделан не для того, чтобы копировать паттерны 20-ти летней давности из других языков.

    Смысл программирования на Расте в том, что когда вы сможете побороть компилятор, ваша программа будет формально корректна на отсутствие проблем с памятью и data races (хез как это по-русски сказать). Попробуйте написать такую формально корректную программу на любом другом языке, особенно для мультизадачных и мультипотоковых процессов . Rust - не просто ещё один язык типа D, там совсем другие принципы, статический анализ кода компилятором, принципы ownership'а и borrow checking.

    P.S. просто поверьте, я сама дочь офицера У меня опыт с плюсами лет 20, я вам могу точно сказать, что Rust - лучшее, что случилось с индустрией за последние 25 лет. На нем например Мозилла пишет свой движок Servo. В Firefox'е используются его компоненты - рендерер, css-движок. Чего ж он работать стал в 4 раза быстрее.
    --- Сообщения объединены, 6 сен 2019, дата первого сообщения: 6 сен 2019 ---
    Насчет slow, вот хороший обзор бенчмарков всяких, обратите внимание на языки.
    https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=plaintext
     
  7. marshaal

    marshaal Аксакал

    про языки программирования это неактуально, сеня.
     
  8. _id_

    _id_ Аксакал

    Справедливости ради, Опера (ИМО быстрее и стабильнее ФФ) написана на С++
     
  9. Dmitry Pankratov

    Dmitry Pankratov Аксакал

    Опера уже всё. Сам факт того, что в мире осталось два !!! (два, Карл) браузерных движка - webkit и gecko/servo, говорит о том, что поддерживать его стоит нереально диких денег, а языки типа плюсов - это огромное количество ошибок в больших code bases, связанных с памятью.
     
  10. chel

    chel Старожил

    а майкросовтовский движок уже тоже похоронили ? не рановато ?
     
  11. Dmitry Pankratov

    Dmitry Pankratov Аксакал

    Он тоже всё, Edge переключили на Chromium.
     
    • Информативно Информативно x 1
  12. Dmitry Pankratov

    Dmitry Pankratov Аксакал

    Ну я со своей инженерной колокольни :)
     
  13. lumberjack

    lumberjack Форумчанин

    Вы слишком сильно утрируете. Количество ошибок в С++ связанных с памятью в больших кодовых базах не большое, если только это не пишется студентами. Более того, есть профайлеры, статические анализаторы и т.д. и т.п.
     
  14. _id_

    _id_ Аксакал

    ИМО проблема С++ в избыточности языка. Одно и то же можно синтактически очень многими способами написать. И IIRC он не слишком строго типирован, особнно для всяких мемори хендлеров.
    Ну и (по памяти 20-ти летней давности) каждый раз перекомпилируется все, что всунуто в include. Linker не мог убрать лишнее.

    А отсутсвие garbage collection скорее плюс, заставляет писать аккуратный код. В неаккуратном коде ошибок будет больше.

    Если rust может формальным методом отсеять большинство ошибок еще до runtime, то это классно. Хотя тот же Делфи умел много говна в коде находить (через их warnings), которое формально бы компилировалось, но потом бы при runtime вызывало бы проблемы.
     
  15. lumberjack

    lumberjack Форумчанин

    А chromium не на С++ ли написан случайно?
    Сколько людей, столько и мнений. По поводу быстрее в 4 раза, уж точно не от перехода на Rust. Более чем уверен, что написать этот движок с нуля на С++ он бы так же в 4 раза быстрее стал. Я думаю вы лучше меня знаете во что с годами превращается архитектура приложений, какими костылями порой прибивают новые фичи, никак не вписывающиеся в архитектуру и т.д.
    --- Сообщения объединены, 6 сен 2019, дата первого сообщения: 6 сен 2019 ---
    Вы сейчас точно про С++ говорите?
    Пересобираются только те единицы трансляции, в которых были какие-то изменения.
    Да в плюсах тоже можно warning'и по максимуму включить, только делать это надо на этапе начала проекта, иначе потом 5 миллионов ворнингов никто исправлять не будет. Да сейчас куча разных инструментов есть для анализа кода помимо самого компилятора.
     
  16. Chucke1992

    Chucke1992 Новичок

    Ну парадигма ООП сейчас находится в кризисе и идет тренд на нечто более функциональное либо хотя бы трейты

    Ну справедливости ради как раз таки наследование поведения,а не состояния и есть настоящее ООП каким его видел Алан Кэй. То что сейчас называется ООП на самом деле не является оригинальным ООП.
     
  17. Dmitry Pankratov

    Dmitry Pankratov Аксакал

    Распространенное заблуждение. You are holding it wrong, угу. Все делают ошибки. Невозможно написать код на C++ без ошибок памяти, ваш экспириенс играет здесь даже не вторичную роль, а скорее влияет на общий дизайн проекта.


    [​IMG]



    А больше на чем его было писать 20 лет назад. А сейчас есть на чем, никто в здравом уме не начнет большой проект на C++.

    Жив он пока благодаря двум вещам - куча написанного кода, который нужно поддерживать, и куча парней из Мумбаи, готовых это делать за еду.
    --- Сообщения объединены, 6 сен 2019, дата первого сообщения: 6 сен 2019 ---
    Я там выше приводил ссылку, где ворнинги не работают, а программа валится с undefined behavior. Не вижу, как опытный разработчик сможет легко такие проблемы идентифицировать.
     
  18. lumberjack

    lumberjack Форумчанин

    Это не противоречит моим словам, ошибки есть, но их не так много, как вы описываете. По крайней мере по моему опыту из всех багов их обычно процентов 10.
    Почему же тогда начинают? Весь мир не в здравом уме?
    Парни из Мумбаи готовы делать за еду что угодно и на каком угодно языке.
    Еще раз: профайлеры, статические анализаторы, автоматические тесты - первое же, что пришло на ум и то, что должно делаться в обязательном порядке на регулярной основе.
    --- Сообщения объединены, 6 сен 2019, дата первого сообщения: 6 сен 2019 ---
    Точно не кризис. Скорее стагнация. Но не вижу в этом ничего плохого. Если что-то работает - не трогай. Лучшее - враг хорошего.
     
  19. Dmitry Pankratov

    Dmitry Pankratov Аксакал

    @lumberjack Ну вы попробуйте на Расте написать что-нибудь средненькое, на пару-тройку kloc, с traits, pattern matching, FP-итераторами, дженериками, фьючерсами, актерами с сильной типизацией, всё это с практически нулевым оверхедом, тулингом высшего класса (cargo/rustup/clippy/rustfmt/IntelliJ), а потом приходите, обсудим разницу с C++ :)
    А то у меня опыт есть с двумя языками, а у вас с одним, спор беспредметный.
    Порог вхождения там высок, правда. Мне понадобилось пару месяцев, чтобы не употреблять матерные слова, зато потом всё становится на свои места.
     
  20. lumberjack

    lumberjack Форумчанин

    Спасибо за предложение. Возможно когда-нибудь попробую, но сейчас никакого желания нет. Я уже пытался перейти на "лучшие" языки в свое время, в виде, к примеру, джавы. Именно изучение джавы дало мне понять, что все это фигня и в каждом языке свои способы выстрелить себе в ногу. Куда правильнее выбирать язык исходя из того, какие ты задачи хочешь решать, а не наоборот, выбирать язык, а потом решать задачи от которых воротит. Я более чем счастлив с тем спектром задач, который решается именно на С++, поэтому каждому свое. Спорить о языках - это примерно как если бы музыканты спорили какой музыкальный инструмент лучше. Хотя не исключаю что они имеют именно такие холивары, просто я далек от музыки и не в теме. В любом случае нафлудили мы знатно. Спасибо за диалог ;)
     

Поделиться этой страницей

Загрузка...