Size: a a a

Сообщество Scheme

2019 June 08

P1

Peter 11111000000 in Сообщество Scheme
Go vs Rust vs Elixir | Who cares?
источник

TZ

T Z in Сообщество Scheme
Peter 11111000000
IMHO немного, т.к. упомянутый коллегой Раст - достаточно свежая ниша. Однако, грамотный лид конечно найдёт, где его удачно применить.  Нам платят за решение конкретной задачи в сроки, не за применение полпулярного языка... К тому же, в экосистеме буквально каждого современного языка, на практике постоянно применяются всевозможные трансляторы и интерпретаторы других языков, а также FFI... Короче, можно брать то что под рукой и решать задачу, следуя заветам старой школы: https://royallib.com/book/reymond_erik/iskusstvo_programmirovaniya_dlya_Unix.html
 
Пишут не на языке, но языком. Во-первых, в рамках любого достаточно большого проекта, так или иначе, в коде образуется язык предметной области (и я даже не про эти наши DSL, а просто про "самую трудную проблему программирования", (https://ru.hexlet.io/blog/posts/naming-in-programming)), а семантика языка реализации может только либо несколько помогать, либо мешать  формулировке.

Что касается Лиспа, он не ограничивает свободу программиста от символа nil. Фактически - состоит из Атомов, которым легко придать семантику даже без магии (макросов), т.е. просто в уме. Простота инструмента позволяет быстрее начать думать и записывать задачу в терминах её решения - формализовать её. Естественным, итеративным процессом сводя к более простым задачам.

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

Например есть такой общий принцип архитектуры: "в первую очередь думать о структуре данных", но в лиспе - код и данные имеют одинаковую форму, вот и думай...

Но так-то в среде любого языка остаётся проблема  выбора - парадигмы, паттерна,  фреймворка, ORM, и каждый выбор "модифицирует язык" на том или ином уровне - подобно макросу.
Спасибо за ответ.
источник

TZ

T Z in Сообщество Scheme
Кто имел дело с Racket`ом? Что скажете?
источник

AZ

Aydar Zarifullin in Сообщество Scheme
T Z
Кто имел дело с Racket`ом? Что скажете?
Плюсы примерно такие:
1) Самая популярная реализация Scheme.
2) На Racket относительного много готового кода
3) Хорошая документация
источник

c

corpix in Сообщество Scheme
T Z
Кто имел дело с Racket`ом? Что скажете?
Удваиваю предыдущее мнение, но добавлю минусов с которыми сам столкнулся:
- документация местами слижком уж академическая с преобладанием теории над практикой(примеров иногда нехватает)
- в стандартной библиотеке встречаются не очень хорошие реализации, например библиотека для работы с http протоколом внутри построена на регулярках и (мягко говоря) работа с ней удручает

Если интересен более развернутый ответ от меня, как разработчика, для которого racket стал билетом в мир лиспов, то я излагал его вот тут https://t.me/documentsjournal/511 :)
Telegram
~/Documents/journal
Через 3 месяца будет год как я начал изучать racket и вообще погружаться в мир лиспов с целью разобраться и начать использовать всю их мощь для своих собственных проектов.

До этого я в основном программировал на Go, а на жизнь зарабатывал тем что программировал на js под nodejs и браузеры, а также делал всякую инфраструктуру для разработчиков в одной конторе, которая занимается поиском.

Кто и что привело меня в лиспы?
История не короткая, но я постараюсь. Прошлым летом я делал сервисы для сбора и анализа данных о криптовалюте с бирж. Всё это делалось на Go и мне нравилось всё кроме скорости с которой я двигался и уровня абстракции, который способна предоставить гошная система типов(иными словами: "писанины много"). Маленькая скорость разработки была вызвана желанием абстрагироваться от конкретики, собирая сервисы из компонентов как из конструктора, что довольно не просто делать в Go.
Эти сервисы делались для десктопного приложения-информера по крипте, который писал другой человек на ClojureScript и в какой…
источник

TZ

T Z in Сообщество Scheme
corpix
Удваиваю предыдущее мнение, но добавлю минусов с которыми сам столкнулся:
- документация местами слижком уж академическая с преобладанием теории над практикой(примеров иногда нехватает)
- в стандартной библиотеке встречаются не очень хорошие реализации, например библиотека для работы с http протоколом внутри построена на регулярках и (мягко говоря) работа с ней удручает

Если интересен более развернутый ответ от меня, как разработчика, для которого racket стал билетом в мир лиспов, то я излагал его вот тут https://t.me/documentsjournal/511 :)
Telegram
~/Documents/journal
Через 3 месяца будет год как я начал изучать racket и вообще погружаться в мир лиспов с целью разобраться и начать использовать всю их мощь для своих собственных проектов.

До этого я в основном программировал на Go, а на жизнь зарабатывал тем что программировал на js под nodejs и браузеры, а также делал всякую инфраструктуру для разработчиков в одной конторе, которая занимается поиском.

Кто и что привело меня в лиспы?
История не короткая, но я постараюсь. Прошлым летом я делал сервисы для сбора и анализа данных о криптовалюте с бирж. Всё это делалось на Go и мне нравилось всё кроме скорости с которой я двигался и уровня абстракции, который способна предоставить гошная система типов(иными словами: "писанины много"). Маленькая скорость разработки была вызвана желанием абстрагироваться от конкретики, собирая сервисы из компонентов как из конструктора, что довольно не просто делать в Go.
Эти сервисы делались для десктопного приложения-информера по крипте, который писал другой человек на ClojureScript и в какой…
Спасибо. Почитаю.
источник

TZ

T Z in Сообщество Scheme
А какими еще реализациями Scheme пользуются участники данного канала?
источник

PG

Pïg Grëënëst in Сообщество Scheme
Гуиль
источник

V(

Vλadimir (Hawthorne the Toolmaker) in Сообщество Scheme
T Z
Спасибо. Почитаю.
Главное сразу увидь, что есть Racket Guide, а есть Reference. Начинать смотреть надо в гайд всегда.
источник

V(

Vλadimir (Hawthorne the Toolmaker) in Сообщество Scheme
Примеров маловато, согласен, но академичность тоже хорошо. В референсах к каким языкам есть ссылки на публикации (sic!!)?
источник

V(

Vλadimir (Hawthorne the Toolmaker) in Сообщество Scheme
»An array is a function of its indeces on a uniform rectangular domain. Проиграл когда это увидел.
источник

V(

Vλadimir (Hawthorne the Toolmaker) in Сообщество Scheme
К плюсам можно добавить что работу с коллекциями пилят с оглядкой на кложу, а там она топ.
источник

PG

Pïg Grëënëst in Сообщество Scheme
А чо? Вроде все верно.
источник

V(

Vλadimir (Hawthorne the Toolmaker) in Сообщество Scheme
Pïg Grëënëst
А чо? Вроде все верно.
так вот именно
источник

PG

Pïg Grëënëst in Сообщество Scheme
В Аде и Скале у них даже синтаксис один и тот же.
источник

V(

Vλadimir (Hawthorne the Toolmaker) in Сообщество Scheme
Местами тяжеловато справку читать, это да. В том же разделе про массивы я не с первого раза разобрал что их капитально три типа.
источник

V(

Vλadimir (Hawthorne the Toolmaker) in Сообщество Scheme
in-memory, ленивые и ленивые с кэшем
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
T Z
А какими еще реализациями Scheme пользуются участники данного канала?
Chicken Scheme. Главный плюс: эгги, это местные гемы/пекеджи.
источник
2019 June 09

AZ

Aydar Zarifullin in Сообщество Scheme
T Z
А какими еще реализациями Scheme пользуются участники данного канала?
Из того что я юзал:
Racket
Chicken
Guile

А ещё Chibi
встраивал в программу на C (Хочу для этих же целей ещё попробовать Gambit или Chez)
источник

TZ

T Z in Сообщество Scheme
А существуют ли в мире программы-переводчики кода одного языка программирования в код другого ЯП? Например, составил я решение задачи на Лиспе, потом копировал-вставил этот код в программу-переводчик, выбрал нужный язык из списка, например, Си, и эта программа перевела Лисп-код в код Си без единой ошибки. А дальше уже откомпилировала и сформировала exe`шник. Или такого еще нет?
источник