Re: Итог.
От: Basil2 Россия https://starostin.msk.ru
Дата: 04.09.19 21:24
Оценка:
После прочтения всех сообщений, кандидатами стали Rust, Go, Haskell, F#, Lisp.

Пока остановился на Rust. Попробую переписать на нем пару небольших проектов. Концепция и синтаксис очень нравятся, а move-семантика и RWlock знакомы по предыдущему опыту.

По Go просмотрел местный тур. Местами понравилось (defer, go, синтаксис лямбд), местами нет. Неконсистентный синтаксис объявления переменных и в общем-то плохо, а вариант с := меня, как начинавшего с Паскаля, почему-то угнетает. Хотя я понимаю, что пацаны просто хотели дефайнить переменные непосредственно в for и if.

Haskell скорее всего будет языком, на котором я попробую функциональщину. Хотя, если вдруг друзья будут делать игру на Unity и пригласят поучаствовать, может быть попробую F#.

Lisp тоже интересно попробовать. Может быть даже вперед Хаскеля, поскольку скорее просто попробовать.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re[2]: Какой бы язык изучить?
От: Basil2 Россия https://starostin.msk.ru
Дата: 11.09.19 04:33
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Rust не позицируется как замена C++, максимум замена C.


Познакомился с Rust подробнее. Это именно замена С++. Ну или замена С, но в том же смысле, как С — замена ассемблеру. То есть это язык на уровень выше, чем С и С++ (также как когда-то С оказался на уровень выше ассемблера).

Никакими оригинальными С там не пахнет. Просто С++ это условно "С с классами", а Rust — это "С с шаблонами и методами". Только далеко уже не С
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Отредактировано 11.09.2019 8:45 Basil2 . Предыдущая версия .
Re[2]: Итог.
От: Mamut Швеция http://dmitriid.com
Дата: 11.09.19 10:49
Оценка:
B>Haskell скорее всего будет языком, на котором я попробую функциональщину. Хотя, если вдруг друзья будут делать игру на Unity и пригласят поучаствовать, может быть попробую F#.

Плюс можно посмотреть какие-нибудь ОКамлы и Эрланги. Нцать лет назад я в итоге пробежался по пяти или шести языкам. Проблема со многими ФП в том, что у многих мало практичности и много плясок вприсядку на ровном месте.

Но подход «пощупать там, пощупать здесь» вполне работает.


dmitriid.comGitHubLinkedIn
Re[3]: Какой бы язык изучить?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 12.09.19 00:56
Оценка: :)
Здравствуйте, Basil2, Вы писали:

B>Познакомился с Rust подробнее. Это именно замена С++. Ну или замена С, но в том же смысле, как С — замена ассемблеру. То есть это язык на уровень выше, чем С и С++ (также как когда-то С оказался на уровень выше ассемблера).


Что бы быть заменой чего-то, крайне желательно либо быть лучше в какой-то конкретной нише (что проделали Java, C#, Go, Python) либо предлагать обратную совместимость при наличии лучших возможностей (C++ как замена Си). А вот в случае в Rust тут сложности. Он не предлагает никакой серебряной пули (ну, пытается со своей защитой памяти, но это работает только с теми, кто нормально C++ не знает и слышал страшилки образца pre-C++11) и при этом не дает обратной совместимости с C++.

B>Никакими оригинальными С там не пахнет. Просто С++ это условно "С с классами", а Rust — это "С с шаблонами и методами". Только далеко уже не С


С шаблонами и интерфейсами трейтами, наверное? Или о чем-то другом речь?
Re[4]: Какой бы язык изучить?
От: Basil2 Россия https://starostin.msk.ru
Дата: 12.09.19 12:16
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Что бы быть заменой чего-то, крайне желательно либо быть лучше в какой-то конкретной нише (что проделали Java, C#, Go, Python) либо предлагать обратную совместимость при наличии лучших возможностей (C++ как замена Си). А вот в случае в Rust тут сложности.


Быстро он С/С++ конечно не заменит, это да. Но это особенности предметной области — новый системный софт создают гораздо реже, чем новый веб-сервер.

KP>Он не предлагает никакой серебряной пули (ну, пытается со своей защитой памяти, но это работает только с теми, кто нормально C++ не знает и слышал страшилки образца pre-C++11) и при этом не дает обратной совместимости с C++.


"Защита памяти" — это псевдоаргумент, которое противники Rust выдумали, чтобы потом самим же и опровергать. В Rust очень много вещей, заточенных на создание надежного кода (паттерн-матчинг, обработка ошибок через специальные типы, итераторы, алгебраические типы, встраивание тестов и т.д.). А "защита памяти" обычно это аргумент плюсовиков, которые уже оценили RAII но не пробовали Rust.

Потому что как раз те, кто знает современный С++, восхищаются моделью памяти Rust. Серебряной пули там действительно нет, но простота и строгость модели воспринимаются очень хорошо. Тем более что база модели это время жизни ссылок и move-семантика — как раз то, что пошло в ход с С++11.

KP>С шаблонами и интерфейсами трейтами, наверное? Или о чем-то другом речь?


О них, но "трейты" странновато звучит.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re[5]: Какой бы язык изучить?
От: Иван Дубров США  
Дата: 12.09.19 16:07
Оценка:
Здравствуйте, Basil2, Вы писали:

B>О них, но "трейты" странновато звучит.


Их ещё "типажи" называют.
Re: Какой бы язык изучить?
От: Vladek Россия Github
Дата: 13.09.19 11:10
Оценка:
Здравствуйте, Basil2, Вы писали:

B>Что скажете?


Мой список, в порядке убывания интереса: D, Lisp, Rust, Go.

Лучше всего писать код на этих языках, но я пока остановился на приобретении книг. Если честно, просто не хватает времени вплотную заняться изучением.
Re[6]: Какой бы язык изучить?
От: Basil2 Россия https://starostin.msk.ru
Дата: 15.09.19 11:34
Оценка:
Здравствуйте, Иван Дубров, Вы писали:

B>>О них, но "трейты" странновато звучит.

ИД>Их ещё "типажи" называют.

Называют, но "типаж" звучит неочевидно для тех, кто не знает что это такое. Тогда как "метод" поймут все.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re[2]: Какой бы язык изучить?
От: Basil2 Россия https://starostin.msk.ru
Дата: 15.09.19 11:41
Оценка:
Здравствуйте, Vladek, Вы писали:

V>Мой список, в порядке убывания интереса: D, Lisp, Rust, Go.

V>Лучше всего писать код на этих языках, но я пока остановился на приобретении книг. Если честно, просто не хватает времени вплотную заняться изучением.

У Алексендреску есть статья как раз про сравнение этих языков:
https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.