metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-08-13 05:05 pm

Ход раком

Чтобы ИТ-индустрия окончательно встала раком, Гуглу сейчас нужно сделать ход конем - разработать ТРЕТИЙ вариант кроссплатформенного языка-платформы с собственной виртуальной машиной, JIT, итд, итп, в дополнение к жабе и дотнету. И сманить девелоперов на него какими-нибудь заманухами страшными.
Тем более что дотнет семимильными шагами двигается в ту же over-engineered сраку, что и жаба, а альтернативы реальной тому и другому и нету.

[identity profile] freiksenet.livejournal.com 2010-08-13 05:51 pm (UTC)(link)
У коммон лиспа главная проблема - старинный стандарт который тянет кучу ненужного говнеца и при этом не имеет многих действительно важных вещей, например достойно расширяемой и портабельной системы расширения типизации. Плюс у лиспа можно сказать нет стандартной библиотеки с кучей говнокода готовыми решениями для примитивных задач, а 3rd party библиотеки страдают болезнью не особо популярных языков - половина недоделаны, другая половина доделаны криво.

Был бы лисп с хорошей современной стандартной библиотекой (хотя бы на уровне питона), удобной системой распространения (исполняемые файлы генерить), treeshaker-ом для этой системы распростронений и хорошо бы со статической типизацией аля хаскелл (или хотя бы с такой же как щас у SBCL системой type inference плюс достойной системой типов) - был бы идеальный язык. Но увы.

[identity profile] theiced.livejournal.com 2010-08-13 06:18 pm (UTC)(link)
старинный стандарт со старинными факапами (например по причине медленности тогдашних компов) это да - не сильно хорошо, но к этому можно довольно быстро привыкнуть (дни, реально дни). система расширения типизации - поясните. стандартная библиотека есть, огромная (с кучей говнокода, да), сторонние либы для подавляющего большинства задач таки есть (в базу насрать, веб (или гуи) морду наструячить, хымыыль попарсить, письмо послать, ...) и вот насчёт качества я буду спорить с пеной у рта. опять же есть коммерческие реализация коммон лиспа и тучи коммерческих либ - благо кл используется очень широко и сейчас. исполняемые файлы генерятся - без проблем почти всеми реализациями, кто такой тришакер я не знаю - рассказывайте, статическая типизация/система типов - ну сделайте свою, кто вам мешает, задача на лиспе вполне подъёмная (а может кто и сделал, надо погуглить).

[identity profile] swizard.livejournal.com 2010-08-13 06:21 pm (UTC)(link)
>
  • (а может кто и сделал, надо погуглить)


  • Сделали, Qi.

    [identity profile] theiced.livejournal.com 2010-08-13 06:23 pm (UTC)(link)
    угу - уже нагуглил его + ещё пачка ссылок на разные либы и прочая. всё есть если надо, да ;]

    [identity profile] thesz.livejournal.com 2010-08-13 11:07 pm (UTC)(link)
    Ты им пользовался?

    [identity profile] freiksenet.livejournal.com 2010-08-13 06:35 pm (UTC)(link)
    В коммон лиспе есть deftype который позволяет задавать свои типы. К сожалению он очень ограничен, и например рекурсивные типы в нём уже незадать. Была бы более сложная система типизации (аля хаскелл) - было бы проще. Конечно это компенсируется CLOS-ом, но SBCL насколько я помню CLOS выводить не умеет и CLOS-овыми классом переменную не заdeclare-ишь.

    Это кстати достаточно сильно мешает писать в функциональном стиле - стандартные коллекции не расширяемые, ленивых стандартных коллекций нету, приходится многие алгоритмы писать отвратительным loop-ом из-за этого, хотя в хаскелле, или даже в питоне, я могу бы написать это в функциональном стиле. Есть SERIES и подобные альтернативные библиотеки коллекций, но тогда надо полностью на их инфраструктуру переходить, тк они не совместимы со стандартными.

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

    Treeshaker - тулза которая выкинет все инклюды которые программой не используются при создании binary, чтобы образ получился не 20 мегабайт, а 1 мегабайт. В LispWorks он кстати вроде есть, а в опен-сорсных нету.

    Статическая типизация - есть typed lisp в PLT Scheme (Racket он вроде теперь называется), там на макрах сделан type inference, но это схемка. Есть Qi но он не опенсорсный теперь + есть ощущение что у автора ФГМ (судя по его блогу), что делает неопенсорсность серьезной проблемой. В общем наметки есть, но ничего работающего пока нету.

    [identity profile] theiced.livejournal.com 2010-08-13 06:49 pm (UTC)(link)
    По первому обзацу говорить не буду ибо это уже примерно границы моих знаний (ещё раз - я не особо мега гуру лиспа - так, ваяю говнокод переодически рождая велосипеды).

    Да, я в курсе, поэтому и написал что кл язык императивный (у многих почему то есть чёткое мнение что он функциональный, мистика). Про Series как раз в этом проекте обсуждали, решили не юзать - но никто не мешает если очень хочется.

    Я про коммерческие лиспы тоже только читал, но в текущий проект хватает с головой сбкля. Ну и опять же - цены вполне разумны, если мне не изменяет склероз, то лиспвокс энтерпрайз стоил примерно мою месячную зп пер юзер - хуйня совсем.

    SBCL создаёт вполне себе компактные бинарники - ну и кого волнуют размеры когда кругом гопнеты хелловорлду на которых требуется рантайм на сотню мегабайт, пачка либ на гигабайт и мсскль сервер.

    Ну так напишите своё если оно вам так надо. Работа вполне себе подъёмная (опять же гугель выдаёт пачку ссылок на разное, смотреть ша лень ибо очень жарко).

    [identity profile] freiksenet.livejournal.com 2010-08-13 07:01 pm (UTC)(link)
    Ну он таки мультипарадигмовый. Очень много у него функциональщины - связанные списки, map/filterremove-if(-not)/foldreduce, лямбды, замыкания. И вроде пишешь +/- функционально, но потом вдруг тыкаешься носом в штуку которая сильно мешает продолжать это делать и приходится писаь императивщену там где её не нужно было бы писать, если бы было это реализованно прямо.

    А с SERIES главная проблема в том что юзая куча геморроя появится от юзания других библиотек, которые используют обычные sequences. ) Хотя бы у меня такое впечатление возникла от трогания их.

    ЗЫ. В принципе не всё так плохо - http://common-lisp.net/project/sequence-iterators/. Надеюсь когданибудь это выпустят и всем будет нирвана.

    [identity profile] swizard.livejournal.com 2010-08-13 06:19 pm (UTC)(link)
    Тобишь, раз CL пока что еще не совсем идеален, значит следует программировать на омерзительнейшем и кошмарном дерьме, вроде .NET? :)

    [identity profile] freiksenet.livejournal.com 2010-08-13 06:21 pm (UTC)(link)
    Я такого не говорил ) Коммон лисп спорит за звание моего любимого языка с хаскеллем, но некоторые вещи в нём очень бесят (как естественно и некоторое вещи в хаскелле).

    [identity profile] theiced.livejournal.com 2010-08-13 06:24 pm (UTC)(link)
    вот вам ребе метакласс в сраче уже три лиспера ;]

    [identity profile] metaclass.livejournal.com 2010-08-13 06:36 pm (UTC)(link)
    В том то и проблема, что для определенного класса задач дотнет лучше лиспа.
    Ключевой вопрос: десктопное приложение с нативно выглядящим рич gui, работающее с первой попавшейся под руку базой данных, с датагридами и тому подобным, на коммон лиспе за какое время пишется человеком, имеющим общие представления о программирования, знающим пару языков, но не знающим лиспа?

    [identity profile] theiced.livejournal.com 2010-08-13 06:53 pm (UTC)(link)
    http://common-lisp.net/project/commonqt/ например. плюс ещё пара десятков биндингов ко всему что можно (включая и полностью свои имплементации).

    [identity profile] metaclass.livejournal.com 2010-08-13 07:00 pm (UTC)(link)
    Не, что что "где-то есть" это можно для всех языков сказать.
    Тупо: берем не самого тупого выпускника-отличника РТИ, сдавшего лабы на дельфи и чем там еще и говорим ему "напиши ка нам прототип опердени под винду на коммон лиспе, десктопный с рич гуи". Через какое время будет результат?

    Просто я точно помню, что на дельфи я это написал за полдня, на дотнете - за пару дней, на жабе - просто не смог запустить, на QT - оценил затраты времени и положил болт, а вот ребе белнетмон на QT это дело написал, затем взял дотнет и сказал, что дотнет в 10 раз проще и быстрее.

    [identity profile] theiced.livejournal.com 2010-08-13 07:17 pm (UTC)(link)
    ребе, мне сложно оценивать трудозатраты выпускников рти на что нить более навороченное чем формочка-с-кнопочкой-на-дельфи. ну и меня выпускиники мало волнуют - я работаю либо один либо с людьми которые со мной примерно на одном уровне по рабочим вопросам (а идеально - умнее и прошаренней) либо в очень редких случаях с молодыми дарованиями (сейчас например трачу где то час в день на qa кода такого дарования, человек пишет всего месяц (!), до этого вообще ничего и никогда, обучается с сумасшедшей скоростью).

    а вообще сядьте и попробуйте наваять чо нить на коммон лиспе. для начала рекомендую за пару вечеров осилить practical common lisp, прочитать чонить про клос, и взять какую нить либу для гуйни - да тот же коммонкуте если жизненно необходим вентовый лукнфил). тока таки что бы начать получать удовольствие от писания на лиспе потребуется некоторое время. снизойдёт озарение, поймёшь нахуя там столько скобок и насколько они охуенны ;]