Re[5]: Как у Вас обычно происходит процесс изучения нового языка
От: dimgel Россия https://github.com/dimgel
Дата: 02.08.14 09:09
Оценка: 22 (1)
Здравствуйте, dr. Acula, Вы писали:

DA>я про хеловорлд и его сборку — не более.

DA>для этого вполне подойдёт онлайн-иде, глянул туториал — попоробовал.
DA>а дальше уже читать маны как разворачивать локально.

Возьмём скалу:

object MyApp extends App {
    println("hello world")
}


Большинство нормальных людей (Влада в расчёт не берём
Автор: dimgel
Дата: 22.04.11
) тут затупят и не сразу поймут:

1. что object — это синглтон (а если догадаются, у них возникнет куча вопросов на тему "как это реализовано и что с этим можно сделать");
2. что println() здесь вызывается в конструкторе объекта, а App, из которого объект наследуется, содержит def main(), который кстати говоря и вызываться-то не должен, т.к. конструктор отработает раньше;
3. что то же самое можно написать гораздо понятнее без наследования из дурацких helper-ов, хрен пойми зачем в язык добавленных:

object MyApp {
    def main(/*args: Array[String]*/) {
        println("hello world")
    }
}


, и это устранит вопросы по п.2, но не по п.1.

Но даже если тут человеку всё понятно, и он закроет туториал, при первом же заходе в apidoc по классу, например, Map, он немедленно охренеет, увидев Map[-K,+V]. Поднимите руки, господа мейнстримщики, многие ли из вас знают про ковариантность и контравариантность (а это не единственное, от чего вы охренеете, глядя на apidoc класса Map). А те, кто знают про вариантность, откуда без туториала узнают про то, как писать на данном конкретном языке в функциональном стиле; про for, который на самом деле синтаксический сахар над map/filter/etc.; про implicits, которые ненавязчиво, но активно использются; про типовой синтаксис создания Tuple2 с использованием этих самых implicits (Map(k1 -> v1, k2 -> v2)); и про все остальные фишки и recommended practices языка, которых чуть более, чем до хрена? В конце концов они всё равно будут вынуждены читать книгу (слава те яйца, по скале таковая имеется от авторов языка, отменного качества), но из-под палки, в разнобой — и обучение в итоге займёт больше времени, да и пробелов/каши в головах может остаться больше, чем если бы сразу взять эту книгу и прочитать от корки до корки.

Это к вопросу о недавно упоминавшейся
Автор: himace
Дата: 01.08.14
потребности в глубоком понимании используемых технологий — или хотя бы контролируемой степени непонимания, не доставляющей дискомфорта.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.