Почему Clojure?
От: varenikAA  
Дата: 13.11.19 03:12
Оценка: -1
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Почему Clojure?
От: scf  
Дата: 13.11.19 06:25
Оценка: +3
Здравствуйте, varenikAA, Вы писали:

AA>


Похоже, Боб выпал из мира разработки больших программ. Написать код — это нетрудно, гораздо больше времени и сил уходит на его чтение и правку.
Проблема лиспа в том, что при написании кода крайне сложно инвестировать в читабельность и устойчивость кода к изменениям. Конечно, можно писать тесты, но тесты намного более трудоемки, чем работа с типами.
Re[2]: Почему Clojure?
От: varenikAA  
Дата: 13.11.19 06:39
Оценка:
Здравствуйте, scf, Вы писали:

scf>Здравствуйте, varenikAA, Вы писали:


AA>>


scf>Похоже, Боб выпал из мира разработки больших программ. Написать код — это нетрудно, гораздо больше времени и сил уходит на его чтение и правку.

scf>Проблема лиспа в том, что при написании кода крайне сложно инвестировать в читабельность и устойчивость кода к изменениям. Конечно, можно писать тесты, но тесты намного более трудоемки, чем работа с типами.

С языка снял. Почему-то тоже показалось, что нормальная строгая типизация заменяет кучу примитивных тестов.
Однако, все же хочу проверить как в ощущениях это будет. Что-нибудь на пару вечеров — todolist, например.
Пока не вкусил.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Почему Clojure?
От: $$ Австралия жж
Дата: 13.11.19 06:49
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>


Кложа офигенный. Проблема лишь в недостатке способных это понять. Выгоднее же "продать" спрингбут и дружно с ним #####ся всей командой. Вот это- респект.

Наверное, лучший вариант- начать свой бизнес, и там писать на кложе. Не потому, что он модный, а потому, что быстрей и выразительней. Или не быстрей, это быстро выяснится.
Re[2]: Почему Clojure?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 13.11.19 07:15
Оценка:
Здравствуйте, scf, Вы писали:

scf>Похоже, Боб выпал из мира разработки больших программ. Написать код — это нетрудно, гораздо больше времени и сил уходит на его чтение и правку.

scf>Проблема лиспа в том, что при написании кода крайне сложно инвестировать в читабельность и устойчивость кода к изменениям. Конечно, можно писать тесты, но тесты намного более трудоемки, чем работа с типами.

Читабельность у Clojure очень хорошая, а specs частично (на критичном пути) заменяют типы. То есть на фоне любого другого динамически типизированного языка Clojure просто фантастическое решение за счет простоты и скорости написания кода с одной стороны и specs, которые в отличие от тех же аннотаций Python работают (опционально) и во время исполнения приложения.

С другой стороны, сложно да и глупо отрицать что с типами лучше, когда везде напиханы словари, оно не очень прикольно и поддержка дороже.

Так что если говорить про стартап, где надо быстро-быстро и при этом качественно и маленькой командой, что совершенно критично для языков типа Clojure, Haskell, Elixir и прочих, то это очень хороший и разумный выбор. Я вот сейчас в стартапе где 2 человека + Elixir сделали чудо по меркам любой корпорации. А вот для большой и матёрой компании это уже не вариант, но исключительно по причине человеческого фактора.
Re[2]: Почему Clojure?
От: elmal  
Дата: 13.11.19 07:48
Оценка: +1 :))
Здравствуйте, scf, Вы писали:

scf>Похоже, Боб выпал из мира разработки больших программ. Написать код — это нетрудно, гораздо больше времени и сил уходит на его чтение и правку.

scf>Проблема лиспа в том, что при написании кода крайне сложно инвестировать в читабельность и устойчивость кода к изменениям. Конечно, можно писать тесты, но тесты намного более трудоемки, чем работа с типами.
Вообще то дядя Боб за 100 процентное покрытие тестами каждой строчки кода. При таком подходе будет пофиг строгая типизация или нет. А строгая типизация позволяет как то жить с гораздо меньшим процентом покрытия тестами, когда тесты весьма фрагментарны и на критичную важную и сложную логику.
Re[3]: Почему Clojure?
От: GarryIV  
Дата: 13.11.19 08:01
Оценка: +2
Здравствуйте, elmal, Вы писали:

scf>>Похоже, Боб выпал из мира разработки больших программ. Написать код — это нетрудно, гораздо больше времени и сил уходит на его чтение и правку.

scf>>Проблема лиспа в том, что при написании кода крайне сложно инвестировать в читабельность и устойчивость кода к изменениям. Конечно, можно писать тесты, но тесты намного более трудоемки, чем работа с типами.

E>Вообще то дядя Боб за 100 процентное покрытие тестами каждой строчки кода. При таком подходе будет пофиг строгая типизация или нет. А строгая типизация позволяет как то жить с гораздо меньшим процентом покрытия тестами, когда тесты весьма фрагментарны и на критичную важную и сложную логику.


Покрытие само по себе не дает ничего. Я долгое время специализировался на тестировании качества кода и качества юнит тестов в частности. Покрытие строк везде 80+ было а вот проверки на Weak Test, Strong Test и другие фейлились для подавляющего большинства проектов.
WBR, Igor Evgrafov
Re[3]: Почему Clojure?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 13.11.19 08:06
Оценка: +5
Здравствуйте, elmal, Вы писали:

E> А строгая типизация позволяет как то жить с гораздо меньшим процентом покрытия тестами, когда тесты весьма фрагментарны и на критичную важную и сложную логику.


Это миф. До тех пор пока не покрыты негативные сценарии, а они почти никогда и ни у кого не покрыты, ценность модульных тестов довольно не велика. Да, они как-то помогают при рефакторинге отследить простейшие ошибки, не более того. Покрытие порядка 92-95%, а дальше уже идут кейсы которые даже эмулировать сложно, даёт реальную гарантию, типы же в первую очередь просто упрощают разработку.
Re[2]: Почему Clojure?
От: varenikAA  
Дата: 18.11.19 07:54
Оценка:
Здравствуйте, $$, Вы писали:

$>Здравствуйте, varenikAA, Вы писали:

AA>>


$>Кложа офигенный. Проблема лишь в недостатке способных это понять. Выгоднее же "продать" спрингбут и дружно с ним #####ся всей командой. Вот это- респект.

Меня мучают сомнения.
1. старт java -jar app.jar — довольно медленное занятие. более медленная кажись только скала.
2. динамика версус статика. вот только что вносил дополнительное поле в сущность, поле интовое, а из базы стринг забираю — уже на моменте компиляции я узнал об этом.
3. от Хикки — критика паттерн-матчинга(я за последний год уверовал в необходимость паттерн-матчинга). Хикки же считает это недостатком полиморфизма(см. протоколы — похоже на экстеншены).
критика кортежей — кложевский синтакс для именованных кортежей под названием хэшмап нехило заменяет record-типы ( в свою очередь record-типы/case-классы классная фича с реализацией сравнения по значению и пр. плюхами)
4. от кложуриства Н. Рыжикова услышал в докладе — "уникальность кложи в ее макросах". Практически 1в1 фраза из доклада В. Чистякова по Nemerle.
5. плюс в кложу — на жаве, которая интерпрайх и на 10 лет старше донтета.
6. еще в кложе отсутствие приоритетов в порядке применения функции. тоже прикольно.

резюме: можно, но 1. динамика 2. жава(медленный старт/прожорливый рантайм).
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Почему Clojure?
От: MasterZiv СССР  
Дата: 19.11.19 08:05
Оценка:
Здравствуйте, scf, Вы писали:

scf>Здравствуйте, varenikAA, Вы писали:


AA>>


scf>Похоже, Боб выпал из мира разработки больших программ. Написать код — это нетрудно, гораздо больше времени и сил уходит на его чтение и правку.

scf>Проблема лиспа в том, что при написании кода крайне сложно инвестировать в читабельность и устойчивость кода к изменениям. Конечно, можно писать тесты, но тесты намного более трудоемки, чем работа с типами.

Кложа -- это не лисп.
Re[3]: Почему Clojure?
От: scf  
Дата: 19.11.19 08:35
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Кложа -- это не лисп.


Если вы в этом уверены и способны доказать это, исправьте статью в википедии: https://en.wikipedia.org/wiki/Clojure
Первый абзац, второе предложение: "Like other Lisps, Clojure treats code as data and has a Lisp macro system."
Re[4]: Почему Clojure?
От: Mamut Швеция http://dmitriid.com
Дата: 19.11.19 08:38
Оценка:
scf>Первый абзац, второе предложение: "Like other Lisps, Clojure treats code as data and has a Lisp macro system."

Это потому что есть секта «ваш Лисп — не настоящий Лисп». Lisp 1 vs. Lisp 2, отличия Кложуры от ИСТИННЫХ ЛИСПОВ, вот это всё


dmitriid.comGitHubLinkedIn
Re[3]: Почему Clojure?
От: Ziaw Россия  
Дата: 19.11.19 09:45
Оценка: +1
Здравствуйте, kaa.python, Вы писали:

KP>Читабельность у Clojure очень хорошая


А можно какой-то пример сложной логики, которая хорошо читается на кложе и хуже на других языках?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.