Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×
  • Про ниасиливших Scala (или фигак фигак и сервисы на Go лучше)

    А что такое спарк этот?
    lmgtfy.com/?q=spark
    на Scala — низя.
    Ложь и провокация. Учить скалу и потом успешно ее использовать, не зная, что такое «аппликативный функтор» не просто реально, а во многих случаях даже правильно. Язык в своей основе состоит из нескольких ортогональных фич, из которых затем строится что угодно, такая уж у него философия. А сразу нырять в самые глубокие впадины никто не заставляет, и часто это не нужно.

    Загуглите уже «scala» на гитхабе.

    Підтримав: Yura Xs
  • Про ниасиливших Scala (или фигак фигак и сервисы на Go лучше)

    А этот gofmt работает на уровне AST, или «грепает» ?

  • Про ниасиливших Scala (или фигак фигак и сервисы на Go лучше)

    Те Akka, Spark, Play — не «продакшн» ?

    Кстати, показательная ситуация со Спарком. Его авторы придерживаются достаточно строгого codestyle (github.com/...abricks/scala-style-guide ).

    Есть условное разделение на «программистов библиотек» и «прикладных программистов». Для первых важно минимизировать неправильное использование своего инструмента (для вторых собсно тоже, но немного в меньшей степени). Далее, типы — подсказки компилятору, и, что важнее, программисту. Есть два экстремума — типов «нет» (ну или тип унитарный, или еще какая несущественная терминология), как в Питоне, или же «типы везде», «фанатизм типов». Оба варианта, как показала практика, не подходят для крупных проектов. Оптимум где-то посередине, что Скала позволяет получить. Здесь «оптимум» — ограничения на неверное использование методов, без «связывания рук»

    И есть мнение, что для этого надо не 100 «умников-скалистов», а одного-двух адекватных архитекторов + кодстайл, остальным достаточно знать действительно базовые вещи и придерживаться кодстайла. При этом профит (читать как уменьшение трудозатрат на развитие и поддержку проекта) будет бОльшим, чем если бы проект был на Го или Джаве. За счет этих самых «подсказок».

    Я бы еще подискутировал насчет иммьютабл вс мьютабл подходов, но это уже будет оффтопиком.

    Підтримали: Sergii Vashchyshchuk, Pavlo Voznenko
  • Про ниасиливших Scala (или фигак фигак и сервисы на Go лучше)

    «Упаковка» значения в некоторый контекст («коробку») + удобные способы композиции. Исключительно практическое применение — контроль «побочных эффектов» (что бы последним не называлось).

    Классический пример использования — есть функция, которая делит два числа. Что делать, если попался ноль? Возвращать «null» — неправильный ответ, при оговорке, что обсуждаемый ЯП создавался «с чистого листа» (надеюсь, тут споров не будет). Я знаю три более-менее работающих способа (все со своими плюсами, минусами и границами применимости), это 0) Null Object Pattern 1) исключения и 2) некоторая «обертка», в которой либо есть результат (и с ним можно работать вне «обертки», как с обычным обьектом), либо нет. Последнее, вместе с методами-для-работы-с-ним, и есть «монадой». В чем плюсы конкретно этой «монады» — гарантированная (на уровне компилятора) проверка содержимого, и, главное, улучшение семантики кода — явное указывание, что вот этот аргумент может отсутствовать.

    Еще важный плюс в том, что методы работы с этой «оберткой-монадой» совпадают с методами работы с любой другой монадой. Как практическое следствие, очередное понижение «энтропии кода» и значительное повышение читабельности.

    Підтримали: anonymous, Ivan Shubin
  • Про ниасиливших Scala (или фигак фигак и сервисы на Go лучше)

    Стоит заметить, что намечается редизайн.
    github.com/...lampepfl/dotty/issues/818

    Підтримали: anonymous, Grez
  • Про ниасиливших Scala (или фигак фигак и сервисы на Go лучше)

    В каком стиле?
    В стиле «атомарных композируемых блоков».
    В Go практически нет мест, где что-то можно сделать несколькими способами

    Честно говоря, такое впечатление у меня не сложилось. Смотрел сравнение на rosetta.alhur.es/compare/scala/go для более-менее больших листингов (и с другими языками тоже). Да что там, даже в Питоне, с его максимой «There should be one—and preferably only one—obvious way to do it» все не так гладко.

    И все же, какие есть паттерны языка для достижения (поощрения, доступности, ...) «юникс-вей»?

    Небольшой проект на Го я обязательно сделаю в ближайшем будущем.

  • Про ниасиливших Scala (или фигак фигак и сервисы на Go лучше)

    Я понимаю и даже согласен. Писать в таком стиле можно что на Джаве, что на Пхп (наверное). Но аналогию «элементарных блоков» несложно отобразить в «функциональщину» — небольшие функции без побочных эффектов, удобство их композиции, отсутствие глобального стейта.

    Мой вопрос — что именно в Го поощряет вышеописанный стиль программирования?

    Я не спорю, что на той же Скале можно писать ужасно, это вовсе не идеальный язык. Но на ней можно писать действительно понятно, красиво и изящно. Последнее, к сожалению, никак не «форсируется», и зачастую у разных людей свои мнения о том, как вот эту конкретную изящность реализовать. Есть ли такой механизм у Го? Если есть, как Вы его сравните с вещами из первого абзаца?

  • Про ниасиливших Scala (или фигак фигак и сервисы на Go лучше)

    Так подход юникса очень даже «функциональный». Взять данные отсюда, отфильтровать ерунду, пайпнуть на один скрипт, результат пайпнуть на другой, ошибки на третий, и вывести в стдаут. Это с точностью до синтаксиса переносится на любой язык с «map, filter, bind, ...» -like операциями. И это я считаю «декларативщиной».

    Go я практически не знаю, и поэтому хотел бы уточнить, что именно в нем «юникс-вей».

    Пишу не для холивара, мне интересно прояснить вещи.

    Підтримав: Gremlin
  • Про ниасиливших Scala (или фигак фигак и сервисы на Go лучше)

    Вообще-то, при разумных предположениях, «функциональное програмирование» — подмножество «декларативного программирования» ( stackoverflow.com/...nd-imperative-programming ).

    Это если вопрос о терминологии, сам я думаю, что слова туда-сюда гонять можно как угодно, без видимого профита.

    Ну и, опять же, главное не увлекаться и выдерживать баланс Силы. «Идеальный ФП-код» так же вреден, как и «идеальный ООП-код», или «идеальный ТДД», или любая другая крайность.

  • Про ниасиливших Scala (или фигак фигак и сервисы на Go лучше)

    Ну, у Go есть свои неоспоримые плюшки, вроде одного небольшого бинарника, и в некоторых задачах это полезно.

    А Scala, действительно, не запрещает (напрямую, код стайлы и ревью помогают) всякую дрянь вроде «—==>>» методов. Вот не понимаю, если автор этого кода такой умный, почему бы не придумать человекочитаемый алиас? Всегда считал, что, если для функции/класса/переменной трудно придумать хорошее имя, то что-то пошло не так.

    С другой стороны, я искренне не понимаю, за счет чего Go пиарят как «удобный для больших проектов». Легкость входа для новичков — это, конечно, сильная фича, но явно не решающая. По моему мнению, функциональщина (а точнее декларативщина, просто её удобнее использовать именно с ФП) значительно снижает ментальную нагрузку для программиста (иммутабельность, минимизация сайд эффектов). Продвинутая система типов уменьшает количество «случайных» ошибок (вроде сложения id: String с name: String) и повышает абстракцию кода, что (если не увлекаться), приводит к значительному уменьшению копипаста.

    Было бы интересно послушать опытных Go-водов, какие у них аргументы.

    Підтримали: Ivan Danyliuk, minodvesP Vasya
  • Proffstore Hackathon — хакатон 1001 человека

    А когда он будет-то?
    Здесь указана одна дата, на сайте с регистрацией — другая.

  • Scala-ua #9

    Спасибо. Темы интересные, а я не факт, что смогу приехать.

  • Scala-ua #9

    Будут ли записи докладов?

  • ДОУ Хакатон: Революція

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

    Из команды несколько человек были онлайн в нужное время, но не проверяли ДОУ и почту постоянно.

  • ДОУ Хакатон: Революція

    Мне письмо с подтверждением пришло 3 часа назад. Не знаю, может, остальным раньше, в любом случае я не имел возможности ответить на это подтвержение, ведь домой попал только что. При этом, первую регистрацию я отправил пару месяцев назад (и тогда же подобрал команду) => ждал хакатона очень долго.

    Это ужасная организация. Люди должны 24 часа в сутки мониторить ДОУ, чтобы неожиданно не пролететь? Более того, если я хотя бы знал, что будет такой бред с “окончательной регистрацией”, я нашел бы возможность сегодня регулярно проверять почту. Неужели было так трудно написать сообщение

    Сьогодні протягом дня буде надіслано всім на пошту.
    хотя бы за несколько дней до рассылки?
    Підтримали: Pasha ahsaP, anonymous
  • LinguaHack

    Возможно, из-за совместимости с библиотеками. Я лично более-менее плотно работал только со Scala, у нее в этом плане все отлично, но у остальных языков могут возникнуть различные проблемы.
    Первое, что приходит в голову — конвертация коллекций.

  • LinguaHack

    Приходить просто так, или будет какое-то извещение по почте/телефону (мало ли, может, для всех желающих мест нет)?

    Кстати, очень любопытно, какие же это задачи в области NLP на <100 суммарных часов.

  • LinguaHack

    Форму давно заполнил и отправил, но подтверждения (как минимум, о доставке) нету. Так и должно быть?

  • LinguaHack

    Есть ли еще места?
    И подходит ли Scala под

    до тех пор пока это Java
    ?
    Підтримав: Daria Golovach
← Сtrl 1234 Ctrl →