vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Почитал тут отчет о Software Freedom Day в Бостоне.

Обратил внимание на впечатление о речи 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. Там в общем-то картина почти та же самая - код по определению открыт для пользователя, чай не флэш. А вот разобраться в нем далеко не всегда возможно.

Date: 2009-09-22 01:06 pm (UTC)
From: [identity profile] zabivator.livejournal.com
Как ни странно, Qt - это ООП + event-driven. Собственно потому я и считаю его одним из лучших тулкитов (если не забывать про поддержку мультимедиа, MVC, Drag & Drop, прочего).
Он минималистичен, он логичен, он понятен.
Отдельные косяки типа client-side rendering для иксов вообще говоря не косяки архитектуры как таковой, а недоработки (и то под вопросов, вон пишут что так правильно) реализации.

Мой point простой - кроссплатформенные приложение можно писать лишь на кроссплатформенных языках с кроссплатформенными библиотеками.
С++, С, Python на эту должность подходят.
А для комфортного написания кроссплатформенного GUI подходят лишь C++/Python + Qt/PyQt.
Вот на чём gui под венду писать? Не .net же в самом деле...

Недаром лишь кде есть под windows ***, linux, mac

Date: 2009-09-22 01:20 pm (UTC)
From: [identity profile] zabivator.livejournal.com
А вот про минималистичность Qt позвольте не поверить. Там как-то до хрена всего лишнего. Там своя криптография, свои интерфейсы к БД, и еще много-много всего. В четвертой версии вон еще врапперы вокруг TCP-сокетов и XML-парсер добавили. Свои контейнеры опять же.
Криптография - обёртка над OpenSSL, для единобразия интерфейсов.
Аналогично с драйверами к БД.
А сокеты и Xml парсер прикрутили чтобы разработчикам сторонние библиотеки не тащить.

НО! Qt модульная. Эти модули - опциональны. Вы можете самостоятельно работать с сетью, своим парсером, openssl - никто не заставляет тащить модули Qt что занимаются этой функциональностью.

Из этой картины лишь чуть-чуть выбиваются драйвера к БД - Qt позволяет делать в чистом виде MVC к реляционным СУБД, и это хорошо.

Date: 2009-09-22 01:29 pm (UTC)
From: [identity profile] potan.livejournal.com
А сокеты и Xml парсер прикрутили чтобы разработчикам сторонние библиотеки не тащить.

С таким подходом получается в одном приложении по 5-6 разных библиотек для XMLа используют, и еще 6-7 для сокетов и тп. А потом удивляются, почему программы такие жирные.

Date: 2009-09-22 01:31 pm (UTC)
From: [identity profile] zabivator.livejournal.com
Полностью согласен, о чём и речь.
Стандартом дефакто для С++ стали boost, Qt - в них есть 90% необходимого.
И это, я считаю, очень хорошо.
Дайте мне сравнимые по качеству и покрытию библиотеки под Си - я буду с удовольствием писать на Си.
Дайте для Питона - буду писать на Питоне.
Язык всего лишь язык, но самые качественные библиотеки общего назначения почему-то под С++

Date: 2009-09-22 01:21 pm (UTC)
From: [identity profile] zabivator.livejournal.com
Нафиг-нафиг. Если уж я взялся писать на языке, который позволяет дергать функции из системных библиотек непосредственно, то нефиг мне предлагать в одном флаконе с GUI решения столь высокоуровневых не-GUI-задач. Сам выберу какую из десятков имеющихся реализаций мне удобнее в данном проекте использовать.
Как я уже написал выше - эти модули не являются обязательными - пожалуйста, вызывайте библиотеки напрямую, а эти модули (QtSQL, QtNetwork, QtXML) просто не используйте - благо это отдельные библиотеки.

Date: 2009-09-22 01:22 pm (UTC)
From: [identity profile] zabivator.livejournal.com
А новичка все равно надо учить работатать с TCP по Стивенсу. Иначе не будет понимать как оно работает. А практика показывает, что у тех, кто не понимает, оно и не работает.
Как ни странно, начинал я с man по socket под cygwin, продолжал по Стивенсону, и лишь потом познакомился с Qt и прочим. В принципе, симпотичные у них сокеты, у boost.asio, правда, получше.
Но напрямую с POSIX сокетами я работать отказываюсь, вы уж извините - дико неудобно.

Date: 2009-09-22 01:25 pm (UTC)
From: [identity profile] potan.livejournal.com
Гуевая библиотека должна уметь работать с сокетами. Иначе не напишешь однопоточного сетевого приложения.
Да и в интрефейса с БД вытащить сокеты наружу не помешало бы. Помнится, пришлось помучаться, что бы свой http-сервер мог с MySQL работать - пока на несколько процессов не разнес, блокировался в самых неподходящих местах.

Date: 2009-10-02 06:20 am (UTC)
From: [identity profile] grundik.livejournal.com
Я не пробовал большие проекты, но для мелких кроссплатформенных (и с гуём, и без гуя) я лично предпочитаю plt scheme. Хотя Qt я не знаю, да и вообще в гуях не разбираюсь, так что может я СОВСЕМ не прав, но тем не менее мнение имею ;)

Date: 2009-10-02 06:29 am (UTC)
From: [identity profile] zabivator.livejournal.com
Имеете мнение, имеете на него право - я согласен.
Но всё неоднозначно, много аспектов, и помимо "не-трушности" с точки зрения GNU, есть ещё много факторов - удобство разработки, наличие инструментария, популярность языка.

Date: 2009-10-02 11:16 am (UTC)
From: [identity profile] grundik.livejournal.com
Ну, GNU меня не волнует. Их guile - это страшное говно, пусть сами на ней пишут.
Лицензия у PLT Scheme - LGPL, вполне православная и при этом usable.

С популярностью языка у scheme, конечно, есть проблемы, в этом плане позиции C++ очень сильны. Но я неоднократно не мог собрать тестовое задание от кандидата, написанное на Qt (у меня мак). При этом чтобы программа на plt scheme не работала из-за того, что написана была на другой платформе - я такого не видел. То есть в плане кроссплатформенности у C++ дела похуже, чем у нормальных лиспов. Ну и эти страшные autoconf (ну или там qmake, без разницы, да и не разбираюсь я в этом) - если это удобно, то я, видимо, чего-то не понимаю.

А так-то - да, аспектов много, и технические параметры технологии далеко не на первом месте. К сожалению.

Date: 2009-10-02 08:49 am (UTC)
From: [identity profile] os80.livejournal.com
Что юзаете в качестве ГУЯ и как собираете бинарник?
Второй вопрос - потому что "для себя" можно хоть на брейнфаке писать, а вот как другим программу отдать?

Date: 2009-10-02 10:50 am (UTC)
From: [identity profile] grundik.livejournal.com
1. http://docs.plt-scheme.org/gui/windowing-overview.html Это по сути своей tk. tk мне лично нравится (ну, если забыть про страшный вид под linux-ы, но там красивых тулкитов один фиг нету).
2. http://doc.plt-scheme.org/mzc/exe.html (ну или из dr.scheme кнопочку нажать, которая делает то же самое). Пока что кросскомпиляции вроде бы нету, так что для сборки под все платформы надо иметь инсталляции этих платформ.

Ну и всегда есть путь "сделаем вебморду, web-server притащим с собой, а браузер у каждого и так есть". Благо в случае plt scheme тащить с собой web-server стоит примерно столько же, сколько тащить с собой библиотеку для GUI.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 23 4 56 7
89 1011 12 13 14
1516 17 18 192021
2223 2425 262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 26th, 2025 03:13 pm
Powered by Dreamwidth Studios