Столлман проснулся
Sep. 22nd, 2009 11:40 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Почитал тут отчет о Software Freedom Day в Бостоне.
Обратил внимание на впечатление о речи RMS
Блин, где был Столлман 10 лет назад, когда Иказа начинал свое предательство - проект GNOME.
Тогда RMS отзывался об Иказе с куда большим энтузиазмом. Mono - это фигня, это мертвому припарки.
Лицензионные и патентные проблемы где-то как-то преодолимы. А вот принципиальная проблема
Windows-подобного десктопа, который все делает за юзера сам, и если он что-то делает не так, хрен разберешься кто виновать - десктоп, hal или настройки конкретного дистрибутива.
В принципе, понятно что на протяжении многих лет control казалался естественным и неотъемлемым правом пользователя. Free Speech - это на самом деле как раз про control - это возможность изучить систему настолько, чтобы полностью её контролировать.
Но оказалось, что кроме внешних, юридических ограничений на этот процесс, бороться с которыми можно посредством принципов свободы слова, есть и внутренние, технические. Искусственно переусложненная, или просто непродуманная, архитектура.
Заметим что последнее время Столлман также борется с проприетарным Javascript. Там в общем-то картина почти та же самая - код по определению открыт для пользователя, чай не флэш. А вот разобраться в нем далеко не всегда возможно.
Обратил внимание на впечатление о речи RMS
Control has replaced Free Speech in Stallman’s the rhetoric. This is one of the most noticeable things I took away from today, that there has been a cultural shift from the way proponents of Free Software talk and communicate about the ideas and rationalities of Free Software principles. Although I’ve been picking up on the same advantages to using control language instead of freedom of speech in my own advocacy.и
Miguel de Icaza “is basically a traitor to the Free Software community”
Блин, где был Столлман 10 лет назад, когда Иказа начинал свое предательство - проект GNOME.
Тогда RMS отзывался об Иказе с куда большим энтузиазмом. Mono - это фигня, это мертвому припарки.
Лицензионные и патентные проблемы где-то как-то преодолимы. А вот принципиальная проблема
Windows-подобного десктопа, который все делает за юзера сам, и если он что-то делает не так, хрен разберешься кто виновать - десктоп, hal или настройки конкретного дистрибутива.
В принципе, понятно что на протяжении многих лет control казалался естественным и неотъемлемым правом пользователя. Free Speech - это на самом деле как раз про control - это возможность изучить систему настолько, чтобы полностью её контролировать.
Но оказалось, что кроме внешних, юридических ограничений на этот процесс, бороться с которыми можно посредством принципов свободы слова, есть и внутренние, технические. Искусственно переусложненная, или просто непродуманная, архитектура.
Заметим что последнее время Столлман также борется с проприетарным Javascript. Там в общем-то картина почти та же самая - код по определению открыт для пользователя, чай не флэш. А вот разобраться в нем далеко не всегда возможно.
no subject
Date: 2009-09-22 01:06 pm (UTC)Он минималистичен, он логичен, он понятен.
Отдельные косяки типа client-side rendering для иксов вообще говоря не косяки архитектуры как таковой, а недоработки (и то под вопросов, вон пишут что так правильно) реализации.
Мой point простой - кроссплатформенные приложение можно писать лишь на кроссплатформенных языках с кроссплатформенными библиотеками.
С++, С, Python на эту должность подходят.
А для комфортного написания кроссплатформенного GUI подходят лишь C++/Python + Qt/PyQt.
Вот на чём gui под венду писать? Не .net же в самом деле...
Недаром лишь кде есть под windows ***, linux, mac
no subject
Date: 2009-09-22 01:15 pm (UTC)Ничего странного. Все существующие оконные системы event-driven. Как ни маскируй событийность объектным syntax-sugar-ом, какие не изобретай препроцессоры/расширения к компилятору, уши событийной модели все равно вылезут.
Можно, конечно, попробовать как в SWING, сделать GUI принципиально многопоточным. Но обмен событийности на многопоточность - это изгоняние домового именем Белиала.
А вот про минималистичность Qt позвольте не поверить. Там как-то до хрена всего лишнего. Там своя криптография, свои интерфейсы к БД, и еще много-много всего. В четвертой версии вон еще врапперы вокруг TCP-сокетов и XML-парсер добавили. Свои контейнеры опять же.
Нафиг-нафиг. Если уж я взялся писать на языке, который позволяет дергать функции из системных библиотек непосредственно, то нефиг мне предлагать в одном флаконе с GUI решения столь высокоуровневых не-GUI-задач. Сам выберу какую из десятков имеющихся реализаций мне удобнее в данном проекте использовать.
А новичка все равно надо учить работатать с TCP по Стивенсу. Иначе не будет понимать как оно работает. А практика показывает, что у тех, кто не понимает, оно и не работает.
no subject
Date: 2009-09-22 01:20 pm (UTC)Криптография - обёртка над OpenSSL, для единобразия интерфейсов.
Аналогично с драйверами к БД.
А сокеты и Xml парсер прикрутили чтобы разработчикам сторонние библиотеки не тащить.
НО! Qt модульная. Эти модули - опциональны. Вы можете самостоятельно работать с сетью, своим парсером, openssl - никто не заставляет тащить модули Qt что занимаются этой функциональностью.
Из этой картины лишь чуть-чуть выбиваются драйвера к БД - Qt позволяет делать в чистом виде MVC к реляционным СУБД, и это хорошо.
no subject
Date: 2009-09-22 01:29 pm (UTC)С таким подходом получается в одном приложении по 5-6 разных библиотек для XMLа используют, и еще 6-7 для сокетов и тп. А потом удивляются, почему программы такие жирные.
no subject
Date: 2009-09-22 01:31 pm (UTC)Стандартом дефакто для С++ стали boost, Qt - в них есть 90% необходимого.
И это, я считаю, очень хорошо.
Дайте мне сравнимые по качеству и покрытию библиотеки под Си - я буду с удовольствием писать на Си.
Дайте для Питона - буду писать на Питоне.
Язык всего лишь язык, но самые качественные библиотеки общего назначения почему-то под С++
no subject
Date: 2009-09-22 01:21 pm (UTC)Как я уже написал выше - эти модули не являются обязательными - пожалуйста, вызывайте библиотеки напрямую, а эти модули (QtSQL, QtNetwork, QtXML) просто не используйте - благо это отдельные библиотеки.
no subject
Date: 2009-09-22 01:22 pm (UTC)Как ни странно, начинал я с man по socket под cygwin, продолжал по Стивенсону, и лишь потом познакомился с Qt и прочим. В принципе, симпотичные у них сокеты, у boost.asio, правда, получше.
Но напрямую с POSIX сокетами я работать отказываюсь, вы уж извините - дико неудобно.
no subject
Date: 2009-09-22 01:25 pm (UTC)Да и в интрефейса с БД вытащить сокеты наружу не помешало бы. Помнится, пришлось помучаться, что бы свой http-сервер мог с MySQL работать - пока на несколько процессов не разнес, блокировался в самых неподходящих местах.
no subject
Date: 2009-10-02 06:20 am (UTC)no subject
Date: 2009-10-02 06:29 am (UTC)Но всё неоднозначно, много аспектов, и помимо "не-трушности" с точки зрения GNU, есть ещё много факторов - удобство разработки, наличие инструментария, популярность языка.
no subject
Date: 2009-10-02 11:16 am (UTC)Лицензия у PLT Scheme - LGPL, вполне православная и при этом usable.
С популярностью языка у scheme, конечно, есть проблемы, в этом плане позиции C++ очень сильны. Но я неоднократно не мог собрать тестовое задание от кандидата, написанное на Qt (у меня мак). При этом чтобы программа на plt scheme не работала из-за того, что написана была на другой платформе - я такого не видел. То есть в плане кроссплатформенности у C++ дела похуже, чем у нормальных лиспов. Ну и эти страшные autoconf (ну или там qmake, без разницы, да и не разбираюсь я в этом) - если это удобно, то я, видимо, чего-то не понимаю.
А так-то - да, аспектов много, и технические параметры технологии далеко не на первом месте. К сожалению.
no subject
Date: 2009-10-02 08:49 am (UTC)Второй вопрос - потому что "для себя" можно хоть на брейнфаке писать, а вот как другим программу отдать?
no subject
Date: 2009-10-02 10:50 am (UTC)2. http://doc.plt-scheme.org/mzc/exe.html (ну или из dr.scheme кнопочку нажать, которая делает то же самое). Пока что кросскомпиляции вроде бы нету, так что для сборки под все платформы надо иметь инсталляции этих платформ.
Ну и всегда есть путь "сделаем вебморду, web-server притащим с собой, а браузер у каждого и так есть". Благо в случае plt scheme тащить с собой web-server стоит примерно столько же, сколько тащить с собой библиотеку для GUI.