Не вброс, не троллинг. Гуглил долго. Нормальных аргументов так и не нашел. Может тут кто-то что-то знает. Стоит ли выбросить яву и начать изучать скалу? И почему?
А что значит «если нужна»? Кому она вообще нужна? Людям нужен готовый стабильный продукт. Уже несколько раз попадал в ситуации, когда в вакансии пишут java, а на деле у них scala.
Гуглил долго. Нормальных аргументов так и не нашел
Попробуй на практике. Подозреваю, что Scala лучше Java тем же, чем Rust лучше Си - более выразительная система типов. Правда, нужно учиться выражать свои мысли ограничениями на типы.
Просто воспринимай не как джава++, а как отдельный язык.
Если сильно нравится джава - то переходить на скалу смысла нет, куда больше смысла в этом случае даже в котлине - он идеалогически ближе.
Современная скала - это просто другая идеалогия разработки и если вашей команде она подходит - хорошо, берите скала, если нет - оставайтесь на джаве и радуйтесь жизни. Скала хороша тем, что там принято писать чистые функции и много юнит тестов, хороша системой типов и наличием хороших функциональных типов данных, хороша тем, что иммутабельность во все поля пропагандируется.
Скала не серебряная пуля, скала хуже поддерживается ИДЕ(просто потому что язык сложнее) и иногда нужно подумать над своими ошибками - не всегда трейс выходит четким и понятным.
На скале, как по мне(сугубо личное мнение), удобнее писать многопоточные приложения, асинхронщину и обработку данных. Итог не будет эффективнее, чем императивная реализация на джаве, но будет читаемее и тестируемее.
Проблема твоей постановки вопроса в том что ты не хочешь узнать в чем Scala лучше. Ты хочешь чтобы тебе сказали, ты отверг все аргументы и утвердился в своем мировоззрении
Гуглил долго. Нормальных аргументов так и не нашел
Исхожу из вот этих лаптей на глазах. Если ты ничего не нагуглил, то мы тут тебе не поможем
Проблема твоей постановки вопроса в том что ты не хочешь узнать в чем Scala лучше. Ты хочешь чтобы тебе сказали, ты отверг все аргументы и утвердился в своем мировоззрении
Ты меня с ттт перепутал. Я выше писал почему интересуюсь.
Видимо, фапают на scala вместо явы просто потому что смузи-коворкинг-борода.
Ну не поэтому, но к ней обычно приходят наевшись джавы/императивщины, а если тебя все устраивает - то нафига что то менять?)
Но если надумаешь освоить скалу - то тут скорее вакансия со сменой языка тебе в помощь, чем самостоятельное изучение скалы - потому что есть небольшой разрыв между реальной скалой и скалой из книг
Я не знаю почему, но написание non-blocking с использованием всяких реактивных api очень нетривиально на java, дебажить тяжело, стектрейс бесполезен, т.к. контекст вообще к треду не привязан, тред сам по себе, данные сами по себе. Может быть во всех этих fp языках уже есть соответствующие подходы и решения.
По-моему, единственное существенное (для некоторых) преимущество Scala - возможность фанатствовать. Аналогично, среди дистрибутивов Linux этим достоинством обладают Arch Linux и Gentoo, и тут часто можно наблюдать, как кто-нибудь влезает в обсуждение проблемы с бесполезным советом «ставь Arch Linux, ставь Gentoo». Иногда бывает удивительно, какая дрянь является поводом для фанатствования. Большинство пользователей просто пользуются чем-нибудь практичным, в данном примере Java, но некоторым надо выпендриться.
Хотя некоторые из преимуществ Scala, перечисленные предыдущими ораторами, имеют место. Но недостатки их перевешивают: уродство исходного кода, маргинальность языка и плохая поддержка в IDE (вызванная однако не сложностью языка, а малочисленностью сообщества пользователей).
Про сам язык не скажу, но котлин обеспечивает JetBrains. У меня лично неприязнь к этой компании. Сегодня она есть, завтра ищи свищи.
kotlin очень похож на все современные языки (hello world на swift от kotlin может отличить только зоркий глаз), т.е. после него освоить другой язык будет не сложно, время на сам язык тратится не много, а classpath и фреймоврки это фактически изучение инфраструктуры java.
Тем, что нет дебильных имплиситов, из-за которых хрен поймешь как этот код работает. Котлин проще, боле эксплицитный и быстрее компилируется. Полный интероп с Жабой. Скаловцы свой дотти все запилить не могут, так что уже почти все сбежали на Котлин.
Дык с появлением и распостранением сишки все эти ненужнокейворды вроде как закопали. Сейчас они опять повсюду. Вот не понятно зачем? почему не int i = 0;? Зачем и кому нужно это var i : type; i := 0?
Да еще и семиколон выкидывают. Не пути. Припекает.
Deleted ()
Последнее исправление: rj45
(всего
исправлений: 2)
Короче, в сях проблема с инструментальной обработкой и постарением ast, ты там очепятку сделал в теле функции, а ошибка пишется вообще в другом месте. Clang пытаются использовать для статического анализа сишного кода, но он же медленно работает по отзывам самих сишников. Плюс теперь мода делать в статически типизированных языках вывод типа, это когда компилятор сам заглянет в объявление метода или функции и посмотрит возвращаемый тип там, потому обязательная декларация типа во многих ситуациях не требуется, постфиксная декларация типа позволяет сделать саму декларацию опциональной и все эти ключевые слова (fun, fn, var) нужны только для того, чтоб убрать неоднозначности когда типы в коде явно не указаны. Это все происходит во всех современных языках (Go, Rust, Kotlin, Swift, Scala, Nim).