Search
Write a publication
Pull to refresh

Comments 18

Главный вопрос забыли. Есть ли смысл смотреть на Scala, если есть Kotlin. Причем с активно растущим ФП-комьюнити. Не так давно вышла книжка "Functional programming in Kotlin with tutorials", где прям хардкор из теории категорий. Плюс либа Arrow. И вакансий на Kotlin сейчас раза в 3 больше.

Можно пойти еще дальше и спросить: есть ли смысл смотреть на Kotlin, если есть Java? Последняя, к слову, на месте не стоит и довольно неплохо развивается. Добавляются аналоги data class и smart check, на горизонте pattern matching. А уж про количество вакансий на Java по сравнению с Kotlin и говорить не приходится.

Если уж на то пошло, то при должной сноровке можно в чисто функциональной парадигме писать даже на ассемблере.

Можно? Сомневаюсь. Будет несколько десятков тысяч строк кода на один раз для одной платформы. Только колхозники будут год писать такое приложение, которое можно было написать за неделю на той же java и кроссплатформенное. К тому же если потребуется внести изменения в код, развивать, то земля пухом...

Хочется написать оргомный комментарий. Постараюсь быть лаконичным.

Кто сейчас вообще пишет на ассемблере?

  1. Микроэлектронщики;

  2. Студенты;

  3. Обычные программисты, не электронщики для изучения и саморазвития;

  4. Те, кто просто хотят писать на ассемблере.

Правильно ли они поступают?

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

Студетны? Очевидно все правильно делают. Им это надо для образования, и самое главное, чтобы сдать сессию, чтобы не отчислили и чтобы не подпортить себе из за этого жизнь.

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

Четвертая категория наверное самая спорная. Ну что за дураки, которые пишут на асме просто потому что хотят, ну глупо же! Или все-же нет? Они во многом пересекаются с 3й категорией, ведь в любом случае это саморазвитие. И наверное можно сказать, что это не самое эффективное и не самое оптимальное саморазвитие, но когда человек делает то, что хочет, он таким образом борется с выгоранием. Саморазвитие плюс выгорание это сразу два зайца одним выстрелом. Тем более, что борьба с выгоранием это не просто заяц, а Царь Заяц. Например человеку может быть интересно писать на асме в функциональном стиле. Крошечные маленькие программки или задачки, просто побаловаться. Например порешать некоторые задачки из SICP-а не на лиспе, а на асме, но в лисповом стиле - джаст фор фан!

Я, честно говоря, не знаю котлин, но насколько понимаю, на нем нет множество концепций которые есть на скале. Например типы высших порядков, например логическое программирование в виде given/using.

Скала, как я её вижу, все больше идёт в сторону compile time programming. До idris/coq/agda ей как до луны в этом плане, но зато тем языкам как до луны в плане продакшн кода.

Да, наверное и на котлин можно писать в фп стиле, но вряд-ли компилятор котлина сможет помочь программисту также как ему помогает компилятор скалы при использовании фп подхода

На js тоже можно писать бекенд в фп стиле, но я б опписался от страха, если бы мне предложили такое поддерживать

Scala классно себя проявляет, если работать с Apache Spark, там даже уже есть классные либы для распределённого ML (Catboost for Spark, XGBoost4Spark, LGBM for Spark и тд.). Но в других задачах ML юзабилити у Scala критически отстаёт от Python

В научных публикациях практически в любой области знаний превалирует код R. Почему? Его можно воспроизвести - убедиться в корректности опубликованных результатов. Такая же ситуация в криптографии, где новые алгоритмы проверяются на Си. Питономания раздута искусственно.

Надо было на Ютубе подписаться на Вадима Ксендзова, он запускал две группы бесплатные. На линкидине можно посмотреть какие дз делают студенты. Такого уровня не даст никакой платный курс

UFO landed and left these words here

У нас Скала используется только в Спарке. Стараемся писать код как можно проще. С самым минимумом возможностей языка. А все остальное на Джаве. Это API, шина данных, батчи. Полностью переходить на Скалу - это огромный риск, связанный с поиском людей и с дальнейшей поддержкой легаси.

В опросе разработчиков Stackoverflow за последние годы в топе и по зарплате и по желанности Clojure, а Скалу там не заметил.

Clojure непобедим уже много лет. Однако в этом году Play Framework в тройке Top paying web frameworks, а сама Scala на 7-м месте в рейтинге самых оплачиваемых языков. Для сравнения Java на 35-м месте, а Kotlin на 29-м.

Видимо, релиз третьей версии сказался.

Читал когда-то книжку Одерски по Скале. Тогда подумал что все это здорово было до джавы 8. А чем сейчас скала принципиально лучше джавы? помимо некоторого синтаксического сахара для list comprehensions. Архитектура программ на джаве как то принципиально отличается от скалы?

Более мощная система типов, более умный компилятор. У Java есть только зачатки ФП, а Scala - это Haskell для JVM.

слышал этот тезис, но честно говоря не вижу принципиальной разницы. В обоих языках функции - это "first-class citizen". В обоих языках можно писать "нечистый код". Система типов в скале видимо чем-то мощней, но в обоих языках нельзя в общем виде описать тип "монада" или "функтор". Скале бесконечно далеко до Haskell по чистоте конструкций, я не вижу чем она принципиально более "функциональна" чем джава на данный момент.

Sign up to leave a comment.