Ребята, какой нафик паскаль? То что вас им пичкают или пичкали в школе\универе не означает его пригодность в современном мире.
Python - просто синтаксис, удобная и наглядная реализация алгоритмов. Хорошая работа со структурами данных. Большая юзергруппа, что не маловажно в обучении - умение находить информацию и общаться в группах по теме.
javascript - хорошо реализованная динамика. возможность понять, что рекурсия - зло, на начальном уровне манипуляция с дом-деревом поможет перестроить мозги под правильные структуры данных. Множество уроков на зарубежных ресурсах, можно поиграться с серверными решениями.
По-моему это вы не особо осведомлены. Джава скрипт ложит в стек каждый контекст выполнения функции. В случае большого уровня рекурсии мы приходим к избыточному использованию памяти, так как каждый уровень сохраняет весь свой контекст в стеке, как я уже писал выше. В связи с этим, если выборка маленькая - нет смысла выебываться - используй рекурсию, если это красиво. Если выборка может быть большой - нужно уходить от рекурсии. Если пересечь эти два множества то внимательный читатель AstarothAst может замтетить, что реализация алгоритмов с применением рекурсий в продакшне - избыточное явление и, так же, тяжело в дебагинге, при сколько нибудь сложном алгоритме. Еще умные замечания будут?
Как этот поток мысли оправдывает тезис о том, что "рекурсия - зло"? Хотя если имелось ввиду, что рекурсия зло именно в js, то... возникает вопрос в чем смысл изучения js для того, что бы понять, что в js есть свои особенности? :D Давай просто признайся, что очень хотелось ввернуть что-то умное про рекурсию, а? ;)
Ты наверное мало работал дебажа код таких же умников. Нахуячат рекурсивного говна, да покрупнее, потом жалуются на скорость и невозможность найти ошибку. В любом языке. В моем родном мире c# это применимо тоже, но несколько с другой стороны.
Это ты, наверное, мало работал с нормальным кодом во-первых, и дальше решеток не смотрел во-вторых. Насчет "любых языков" рискну сломать шаблон - в том же erlang рекурсия есть бест практис, и через нее делают чуть более, чем ВСЕ. Никаких тебе итераций, сплошные рекурсии. И ничего, код получается в разы короче, никто не плачет...
К счастью я работал с большим кол-вом кода. К счатью делал много code review. И я в упор не могу понять, как ты можешь говорить о красоте рекурсии кроме как академической ее ценности. На счет erlang - ты много его в энтрепрайзе видел?
Да я его ТОЛЬКО в энтерпрайзе и видел. Он как раз и делался для прикладного применения, а не для философских академических диспутов. Коммутаторы как бы его родная экосистема. Более свежее - CouchDB и тот самый кролик, которого всем так не хватало, и который почему-то появился только на эрланге и стал де факто чуть ли не стандартом. Ё-мое, тут как бы и доказывать нечего - эрланг по факту востребован и используется, нравится, не нравится - а факт об лицо.
Под энтерпрайзом я имею в виду прикладные приложения короративного сегмента. Я не имел в виду применение языка для, couchdb\simpledb, в облачных решениях амазона и т.д. или в инфраструктуре фейсбука в чат-сервисах. Так как там происходит жесткая оптимизация и там они бы и на R писали бы если бы это было быстрее.
Чем тебе Rabbit.MQ не прикладное приложение? Тем, что источником и потребителем данных является не конечный пользователь? Ну, извините, язык собственно не под это и делался. На каком-нить pl/sql тоже не больно много вне инфраструктуры оракла написано.
Мы его кстати использовали, полное говно. Я просто хочу спросить, ты в бизнесе, приложения для аккаутинга, master-data management, страховые, банкинг etc видел erlang?
>> Мы его кстати использовали, полное говно. А мы его используем и не нарадуемся. Может в консерватории что-то подправить?
>> Я просто хочу спросить, ты в бизнесе, приложения для аккаутинга, master-data management, страховые, банкинг etc видел erlang? Я ж уже ответил - да, видел. Подробностей, сам понимаешь, не будет. Либо принимай на веру, либо не принимай, дело твое.
Ну адекватно, без выдумывания всяких применений. Ты ж сам понимаешь, что вилка языков сейчас - c#\java\++\php\js\obj-c\ruby. Ты любишь там возиться с сложной логикой завязанной на рекурсию?
Я не демонизирую рекурсию и не отношусь к ней в терминах "люблю - не люблю". Если я вижу, что она нужна - я ее использую. Если я вижу, что она не нужна - я ее не использую. Если мне нужно обойти дерево, то я не буду щемиться по углам - я напишу рекурсивную функцию, которая мне это дерево обойдет. Да ее отлаиват не сложнее, чем итеративный цикл из over9000 проходов. Циклы отлаживаются как-то, и явно не по шагам - поверни голову на 90 градусов и рекурсия будет отлаживаться точно так же. В чем с ней проблема-то? Там же на каждой итерации происходит ОДНО И ТОЖЕ! Всей проблемы определить условие выхода.