δμ Dmitry
У меня есть проект, хочу типы
Он новый или уже куча кода?
Чурка
С JS, наверное.
Artem
Так на CS не надо переходить, строго говоря. На нем можно писать, где хочется и не писать. где не хочется. Можно вообще мешать модули спокойно из-за 100% совместимости.
а ради чего мне писать даже часть кода на CS, если он ничего мне не даёт, а лишь усложняет вхождение в проект для других разработчиков и увеличивает сложность сборки и кол-во зависимостей
Yaroslav
Он новый или уже куча кода?
Не куча, но уже есть минимальный функционал
Чурка
Ради возможности писать на языке с несколько (заметно) более выраженной функциональной идеологией и менее заметно торчащими ушами Алгола. Порог вхождения для разработичков увеливиается не настолько, как от любого сложного фреймворка, если честно.
Artem
а в чём более выраженная функциональная идеология? По мне так одинаково что в JS, что в СS
Ale
так лучше уж purescript брать, чем кофе
Чурка
Вот ту соглашусь.
Чурка
Была бы у него поддержка в IDE такая же.
δμ Dmitry
Не куча, но уже есть минимальный функционал
Я бы взял TS, если было бы не лень переписать что есть. Но я бы и reasonml взял бы, так что может я плохой советчик.
Smooth Operator
ну там цикл по объектам с одним вызовом не в 2 строках а в 1
δμ Dmitry
Не куча, но уже есть минимальный функционал
мне кажется что тулинг у ts лучше. Но я живу в vim, хз как в нормальных IDE с flow
Ale
Я бы взял TS, если было бы не лень переписать что есть. Но я бы и reasonml взял бы, так что может я плохой советчик.
а зачем переписывать, максимум это расширение поменять, делается одним башскриптом)
δμ Dmitry
а зачем переписывать, максимум это расширение поменять, делается одним башскриптом)
ну я представил, что у человека может быть babel и разные плагины (у меня так было) и вот этот "баш скриптом" не прокатило. Но в целом да, можно посадить джуниора переписывать (:
Ale
ну если совсем обмазано stage-0/1, то тут ничто не поможет
Yaroslav
Т.е люди которые изначально выбрали flow, а потом проект вырос хотят все переписать на typescript
Чурка
а в чём более выраженная функциональная идеология? По мне так одинаково что в JS, что в СS
Все функции по умолчанию описываются, как лямбды, любая последовательность кода является валидным вычисляемым выражением (что, опять же, хорошо идет с лямбдами), отказ от теранрного цикла в пользу итерации по множествам.
Ale
ну вот flow помог (:
это если вы случайно угадали с набором плагинов
δμ Dmitry
Т.е люди которые изначально выбрали flow, а потом проект вырос хотят все переписать на typescript
нет, меня flow устраивает, я буду дальше им пользоваться у меня тут например возникла необходимость кусок коды вынести в отдельную либу на npm просто удалил типы командой и вуаля, js на выходе
Ale
только не типизированный)
Ale
а с ts в npm можно еще и тайпинги отправить и они подхватятся автоматом
Artem
Все функции по умолчанию описываются, как лямбды, любая последовательность кода является валидным вычисляемым выражением (что, опять же, хорошо идет с лямбдами), отказ от теранрного цикла в пользу итерации по множествам.
тернарный цикл - это for(init; cond; inc)? Так его и в JS давно никто не использовал в массе, есть же forEach(), for in и for of. Последний работает с любыми итераторами. Первый пункт не совсем понял, лямбды в ES2015 вполне себе коротко можно описать - const fields = list.map(item => item.field). Ну а то, что тот же for - это выражение, у которого есть результат, то тут я не уверен, что это хорошо. Конкретно for намного понятнее заменяется на some(), find() и подобные методы
Чурка
>Так его и в JS давно никто не использовал в массе Суть в том, что он сам по себе идеолгически вреден, ибо плодит сущности. Из того же разряда, почему в языках отказываются от меток.
Чурка
Вот именно поэтому и не нужен.
Чурка
>Первый пункт не совсем понял, лямбды в ES2015 вполне себе коротко можно описать Опять же, отсается статическое определение через function <name>, которое вообще неясно зачем нужно в языке, где функции - объект первого класса. И да, оно используется -> продолжает использоваться.
Artem
>Первый пункт не совсем понял, лямбды в ES2015 вполне себе коротко можно описать Опять же, отсается статическое определение через function <name>, которое вообще неясно зачем нужно в языке, где функции - объект первого класса. И да, оно используется -> продолжает использоваться.
так JS вынужден тащить обратную совместимость. Да и зачем конкретно это удалять, если можно настроить линтер и просто не использовать. А использование этого в сторонних библиотеках никак не аффектит вызывающий код
Artem
я прошу аргументы "за" CS, а не аргументы в стиле "а у вас негров линчуют"
Чурка
Так CS изначально создавался именно как антипод JS в плане примеченных автором недостатков.
Чурка
Что нынче это один из наиболее логичных языков, где вся спецификация элементарно учится за день - другой вопрос.
Ale
изначально там был сахар, теперь сахар есть и в жсе
Чурка
Забавно. что в общем-то таким должен был быть Питон.
Artem
ладно, я понял. Что-то у меня больше нет желания тратить время на этот разговор
Чурка
изначально там был сахар, теперь сахар есть и в жсе
Хм. Мне вот что-то стало интересно: Неужели правда есть люди, которые использовали CS только из-за стрелочных ф-ий, определения классов и интерполяции строк ? Это просто странно. брать язык не за идеи, вложенные создателем, а ради вещей, реализуемых библиотеками
V◌┗⢎ℍıK
Сейчас бы обсудить мертвый жс-препроцессор из 2014-го.
Smooth Operator
там еще есть safe navigation operator, которого мне не хватает)
Чурка
Ну... Как сказать... В той же степени, в которой возможности самого JS выходят за рамки анимации кнопочек на сайте. Хотя многие тоже до сих пор уверены, что в этом его главное и единственное предназначение ¯\_(ツ)_/¯ .
Nikolay
zip = lottery.drawWinner?().address?.zipcode
Nikolay
Вот это типа читабельно?
anoru
Мне элвиса не хватает из него. Но вроде в es что-то подобное пилят
Nikolay
Вся команда должна уметь в CS тогда
Чурка
Зачем делать языки без безопасной навигации - это вообще очень интересный вопрос .-.
Чурка
Вон, в Шарпе есть.
Nikolay
Вот это особенно классно)
Nikolay
# Health conscious meal. foods = ['broccoli', 'spinach', 'chocolate'] eat food for food in foods when food isnt 'chocolate'
Чурка
Неплохо так.
Smooth Operator
ох уж эти синтетические примеры
Чурка
Кстати, на is вместо == спасал не раз.
Чурка
Точнее, is вместо =
Чурка
C is(nt) эту крайне распространенную ошибку просто не сделаешь.
Smooth Operator
а может стоит линтер для таких случаев юзать)
anoru
Без линтера в 2017 и правда лучше в js не лезть
Чурка
При том, что код CS совершенно спокойно пишется из обычного Саблайма с базовым плагином.
Чурка
(BetterCoffeescript)
anoru
Косяков и в CS можно наделать. Там тоже нужен линтер
anoru
http://www.coffeelint.org/
anoru
Так что очень странный спор тут товарищи
Oleg
Что там с выходом второй версии кофе?
CherryTea
Очень жаль что совсем не раскрыли тему ts vs purescript
Oleg
/ban
Group Butler [beta]
Oleg banned Alina!
Ilay 🐕💨
/ban
Oleg
В 2 чата разной тематики добавился человек, без аватарки
Oleg
Было конечно предположение что это эйчар или фулстак разработчик с интересным кейсом
Oleg
Но с большим процентом уверенности подумал что это всё-таки спам-бот
Oleg
И таки спам бот, тлен, боль, заполонят всё
Oleg
Непопулярные чаты не заполонят
Дима
Им недолго осталось 😏
Дима
Спам ботам
andrei
@SpamBot ))))))
Дима
?
Ну они примитивно себя ведут, просто автоматически кикать их их по шаблону