The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск языка программирования Rust 1.48, opennews (ok), 19-Ноя-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


39. "Выпуск языка программирования Rust 1.48"  –5 +/
Сообщение от Ordu (ok), 19-Ноя-20, 23:39 
> Стоит ли его изучать сейчас при наличии С++, vala, nim?

Конечно. Опыт раста будет тебе очень полезен и в C, и в C++, если сам раст не потребуется.

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

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

42. "Выпуск языка программирования Rust 1.48"  +1 +/
Сообщение от Аноним (15), 19-Ноя-20, 23:42 
Я бы плюсанул лисп и хаскелл, на самом деле
Ответить | Правка | Наверх | Cообщить модератору

46. "Выпуск языка программирования Rust 1.48"  +2 +/
Сообщение от Аноним (38), 19-Ноя-20, 23:44 
Плюсанул если бы знал что это такое.
Ответить | Правка | Наверх | Cообщить модератору

49. "Выпуск языка программирования Rust 1.48"  +1 +/
Сообщение от Аноним (15), 19-Ноя-20, 23:46 
Ad hominem аргументы вечно в моде.
Ответить | Правка | Наверх | Cообщить модератору

210. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Ordu (ok), 20-Ноя-20, 14:38 
Плюсануть -- это одно, но вот перечислить конкретные знания/умения/навыки, которые человек оттуда подцепит, и которые окажутся ему полезными -- это другое. Я вот не могу сказать ничего конкретного, лишь всякую неконкретику, типа "функциональный подход".
Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

226. "Выпуск языка программирования Rust 1.48"  +1 +/
Сообщение от Аноним (15), 20-Ноя-20, 16:03 
Что ж, справедливо, тогда давайте раскрою чуть по-подробнее.

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

Теперь Haskell. Haskell в шутку можно назвать "плюсами от ФП", ибо они вобрал все основные концепции ФП в себя. Лямбда-функции, использование списков, map/fold к спискам, алгебраические типы данных и сопоставление с шаблоном (pattern matching). Вещи очень удобные. А ещё ленивые вычисления - позволяют работать с бесконечными списками или решать задачи на динамическое программирование в пару строк. Может на самом хаскеле и не будешь прогать (хотя я прогнал, там для парсинга языков удобные библиотеки, например), то получишь хорошее представление о ФП, что ФП-фичи других языков поймёшь легко. Я после курса хаскела в момент разобрался с джавскими streamами, например

Ответить | Правка | Наверх | Cообщить модератору

230. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Ordu (ok), 20-Ноя-20, 16:53 
> Лисп - очень изящое мета программирование и система макросов. Вот принято ужасаться
> этих скобок, а не деле в этом все и изящество -
> Лисп сразу пишется в виде абстрактного синтаксического дерева. И так как
> код представлен в виде списков, как и самые обыкновенные данные, то
> кодом можно манипулировать с такой же лёгкостью, как и данными =
> метапрог и потрясающая система макросов. Мы в универе писали эмуляцию ленивых
> вычислений и бесконечных списков в стиле Haskell, вышло очень красиво.

Вот это и есть неконкретика. Да это красиво, мне тоже нравится. Но если уж говорить неконкретно, то я бы сказал, что lisp учит писать языки заточенные под задачу. Не API создавать для решения задачи, а языки. (Если мысль не ясна, то стоит глянуть на loop из common-lisp'а, на cl-iterate -- это внешний пакет дающий замену для loop; -- на cl-sql -- SQL в синтаксисе s-expr, на лисповские "шаблонизаторы" html'я, если их так можно назвать, хотя они html в синтаксисе s-expr). Я в целом склонен думать об APIs как о языках, после опыта lisp'а, но C'шные API довольно ограничены синтаксисом в своих выразительных возможностях, поэтому я затрудняюсь сказать, насколько мне такое мышление помогает работать с C.

> Теперь Haskell. Haskell в шутку можно назвать "плюсами от ФП", ибо они
> вобрал все основные концепции ФП в себя. Лямбда-функции, использование списков, map/fold
> к спискам, алгебраические типы данных и сопоставление с шаблоном (pattern matching).
> Вещи очень удобные. А ещё ленивые вычисления - позволяют работать с
> бесконечными списками или решать задачи на динамическое программирование в пару строк.
> Может на самом хаскеле и не будешь прогать (хотя я прогнал,
> там для парсинга языков удобные библиотеки, например), то получишь хорошее представление
> о ФП, что ФП-фичи других языков поймёшь легко. Я после курса
> хаскела в момент разобрался с джавскими streamами, например

Да, это становится конкретикой, особенно если вспомнить о том, что все современные языки -- swift, go, rust, -- набиты функциональщиной.

Ответить | Правка | Наверх | Cообщить модератору

348. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от burjui (ok), 24-Ноя-20, 21:15 
Код пишется, в первую очередь, для людей, а им гораздо понятнее вменяемый синтаксис, а не AST с туевой хучей скобок. Скобки - это просто синтаксический мусор. Делать вид, что AST'шность является плюсом, может только синтаксический террорист. Это просто прикольная фича для метакодинга и годная отмазка, чтобы компилятор упростить. На деле же, тот факт, что все разные по смыслу языковые конструкции выглядят идентично - жирнейший минус. Это как ассемблере - пока код не прочитаешь досконально раза два-три, не поймёшь, о чёс там вообще речь. А в нормальных языках код можно охватить взглядом и сразу понять, какую его часть имеет смысл разбирать.

Haskell в этом смысле антипод Lisp'ам: синтаксис сделан не для роботов, а для людей. Единственный существенный недостаток - фанатично чистая функциональщина, сильно ограничивающая удобство и целесообразность написания кода в реальных проектах.

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

Хороший программист не ищет способов выпендриться умениями вроде чтения Матрицы по абракадабре на экране, а понимает разницу между research и production и выбирает инструмент, соответствующий задаче.

Ответить | Правка | К родителю #226 | Наверх | Cообщить модератору

167. "Выпуск языка программирования Rust 1.48"  –1 +/
Сообщение от пох. (?), 20-Ноя-20, 10:45 
> Конечно. Опыт раста будет тебе очень полезен и в C, и в C++

не лучше ли потратить время и деньги - непосредственно на C и C++ ? Опыт в них точно будет полезен для программирования на них же.

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

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

R и пролог можно пропустить, все равно этим занимаются специальные люди в специальной клетке.

Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

184. "Выпуск языка программирования Rust 1.48"  –1 +/
Сообщение от Ordu (ok), 20-Ноя-20, 11:55 
> не лучше ли потратить время и деньги - непосредственно на C и C++?

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

Люди, приходящие в раст, часто начинают ругаться матом. И не только из-за борроу-чекера, но ещё и потому, что их привычные способы решения проблем не работают. В расте приходится осваивать новые методы решения проблем, потому что многие привычные для C/C++ программистов в расте под запретом из-за лайфтаймов, или, скажем, из-за отсутствия наследования. Осваивать новые подходы полезно. Развивающе.

Ответить | Правка | Наверх | Cообщить модератору

216. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от пох. (?), 20-Ноя-20, 15:38 
> Скажем как ты научишься писать код, который сделает борроу-чекер счастливым,
> если у тебя нет борроу-чекера?

а зачем? Если в перспективах у тебя его и не будет, а будет только нечто lint'ообразное или valgrind (то есть если писать все равно на плюсах потом).

По-моему это как раз малополезно для общего развития (ну то есть с тем же или большим эффектом можно осваивать новые подходы к штанге или учиться разводить кроликов), ибо вне экосистемы не встречается.

Ответить | Правка | Наверх | Cообщить модератору

227. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Ordu (ok), 20-Ноя-20, 16:24 
Полезно. Я пишу на C и вижу места, где борроу-чекер будет ругаться. Более того, я заранее обдумывая ещё ненаписанный код, задумываю его таким, чтобы там не было бы причин бесить несуществующий в C борроу-чекер.

> вне экосистемы не встречается.

Смотря что называеть "встречается": то что делает раст -- это доведённое до уровня синтаксиса то, что грамотные программисты на C делают и так. То есть, вроде как и нет, но вроде как и есть.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру