Scala и эксперты
Кстати, если вдруг надо мгновенно пропалить кого-то, что реально Scala он никогда не видел, а просто почитал таких же экспертов в интернете, то вот список ключевых фраз для этого.
1. Скала — это язык для функционального программирования.
Ну, тогда C#, Java и Python тоже. Да и, чего там, JavaScript. Не, ну, ссылки на функции есть — сразу понятно, что это язык для функционального программирования.
2. В Скала есть имплиситы, а это совершенно непонятно и инфернально.
Имплиситы в Скала — это способ добавить методы к объектам уже готовых классов и не передавать вспомогательные объекты в явном виде. Ту же роль в Kotlin и C# играют extension. И, таки да, implicit в этой роли в Скала были переименованы в extension пять лет назад.
3. Скала — очень экзотический язык.
Само собой — именно поэтому наверно сейчас то, с чего когда-то начиналась Скала, есть во всех мейнстримных языках — даже в C++. Да и многое из того, что добавляли потом, тоже в них перекочевало. Так что, видимо, все языки теперь очень экзотические.
4. Скала — это для очень особенных: обучаться долго и трудно.
Экспертное заключение тех, кто даже не попробовал. Поскольку, тащем-то, обучаться Scala проще, чем даже Python и Java, поскольку организация языка позволяет писать, даже когда не знаешь большинства фич, а вот с Java так уже не получится.
То, что когда-нибудь потом можно узнать ещё про штуки, которые вам понадобятся с вероятностью 0.01%, не означает, что про них надо обязательно узнать прямо сегодня.
5. В Scala можно определить оператор :-:>>!# или &@!#$$$, а потому код на Scala тяжело читать.
Сто пудов. А на Python можно объявить функцию __iiytadsfSDFdsad663gkERTEadfdsfGER_____. И на Java. И на C#. И на Kotlin. И на C++. И вообще практически на любом языке. При этом на некоторых языках ещё до кучи можно определить и сабжевые операторы тоже. Поэтому все языки плохие — надо искать тот, где названия всех функций определены специальным комитетом по названиям функций, а другие имена компилятор не даст использовать.
6. Scala — это для математиков.
Э-э-э… как бы вам сказать… Математики обычно проживают в мире, где последним изобретением человечества в области языков программирования была машина Тьюринга. На которой, впрочем, они тоже обычно не в состоянии написать хоть что-то. Как, впрочем, и все остальные люди.
7. Scala не подходит для математиков — им нужен Python.
Вообще, если мы про заточенность языка под математику, то под неё заточены Lean и Wolfram. Какой-то особой математической специфики у Scala, как и у Python нет, но Scala при этом позволяет малыми силами определить вещи вроде «универсальной арифметики», которая будет работать для многих типов сразу. Python, впрочем, тоже это позволяет, но там тяжелее сделать код, который как бы подсказывает создателям новых типов, что им надо сделать, чтобы с их типом эта универсальная арифметика тоже заработала.
8. В Scala странный синтаксис.
Чел, ты наверно хотел сказать «синтаксис не как у Паскаля, которому нас учили в вузе». Синтаксис Scala — это синтаксис сегодняшнего мейнстрима: он в основном такой же, как на Python, Java, Kotlin, C#, JavaScript, lua и, в общем-то, даже Rust. В ряде случаев язык вообще можно угадать только по ключевым словам. В среднем на Scala обычно будет несколько короче, но общая идея — та же, к которой сейчас пришло программирование в целом.
Другое дело, что система образования так и не смогла выйти за пределы семидесятых, поэтому для неё всё ещё «обычный синтаксис» — это абсолютно всё реализовывать через for со счётчиком, if-else и, возможно, try-catch в стиле спагетти-кода. Из-за чего куча людей уверены, что «это — база». Но нет — вы хотя бы раз в пять лет пытайтесь нажимать на «рефреш», если уж к вам не приходят уведомления об обновлениях.
1. Скала — это язык для функционального программирования.
Ну, тогда C#, Java и Python тоже. Да и, чего там, JavaScript. Не, ну, ссылки на функции есть — сразу понятно, что это язык для функционального программирования.
2. В Скала есть имплиситы, а это совершенно непонятно и инфернально.
Имплиситы в Скала — это способ добавить методы к объектам уже готовых классов и не передавать вспомогательные объекты в явном виде. Ту же роль в Kotlin и C# играют extension. И, таки да, implicit в этой роли в Скала были переименованы в extension пять лет назад.
3. Скала — очень экзотический язык.
Само собой — именно поэтому наверно сейчас то, с чего когда-то начиналась Скала, есть во всех мейнстримных языках — даже в C++. Да и многое из того, что добавляли потом, тоже в них перекочевало. Так что, видимо, все языки теперь очень экзотические.
4. Скала — это для очень особенных: обучаться долго и трудно.
Экспертное заключение тех, кто даже не попробовал. Поскольку, тащем-то, обучаться Scala проще, чем даже Python и Java, поскольку организация языка позволяет писать, даже когда не знаешь большинства фич, а вот с Java так уже не получится.
То, что когда-нибудь потом можно узнать ещё про штуки, которые вам понадобятся с вероятностью 0.01%, не означает, что про них надо обязательно узнать прямо сегодня.
5. В Scala можно определить оператор :-:>>!# или &@!#$$$, а потому код на Scala тяжело читать.
Сто пудов. А на Python можно объявить функцию __iiytadsfSDFdsad663gkERTEadfdsfGER_____.
6. Scala — это для математиков.
Э-э-э… как бы вам сказать… Математики обычно проживают в мире, где последним изобретением человечества в области языков программирования была машина Тьюринга. На которой, впрочем, они тоже обычно не в состоянии написать хоть что-то. Как, впрочем, и все остальные люди.
7. Scala не подходит для математиков — им нужен Python.
Вообще, если мы про заточенность языка под математику, то под неё заточены Lean и Wolfram. Какой-то особой математической специфики у Scala, как и у Python нет, но Scala при этом позволяет малыми силами определить вещи вроде «универсальной арифметики», которая будет работать для многих типов сразу. Python, впрочем, тоже это позволяет, но там тяжелее сделать код, который как бы подсказывает создателям новых типов, что им надо сделать, чтобы с их типом эта универсальная арифметика тоже заработала.
8. В Scala странный синтаксис.
Чел, ты наверно хотел сказать «синтаксис не как у Паскаля, которому нас учили в вузе». Синтаксис Scala — это синтаксис сегодняшнего мейнстрима: он в основном такой же, как на Python, Java, Kotlin, C#, JavaScript, lua и, в общем-то, даже Rust. В ряде случаев язык вообще можно угадать только по ключевым словам. В среднем на Scala обычно будет несколько короче, но общая идея — та же, к которой сейчас пришло программирование в целом.
Другое дело, что система образования так и не смогла выйти за пределы семидесятых, поэтому для неё всё ещё «обычный синтаксис» — это абсолютно всё реализовывать через for со счётчиком, if-else и, возможно, try-catch в стиле спагетти-кода. Из-за чего куча людей уверены, что «это — база». Но нет — вы хотя бы раз в пять лет пытайтесь нажимать на «рефреш», если уж к вам не приходят уведомления об обновлениях.