2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 На чём писать GUI? (Qt, wxWidgets, ...)
Сообщение11.08.2006, 21:24 


22/06/05
164
Какие языки программирования и библиотеки хороши для написания несложного визуального интерфейса (логические игры, оффлайн-тесты с картинками и т. п.)?

Важно, чтобы пользователь мог без особых хлопот запустить программу под Windows; неплохо, если будет работать и в Юниксах.

Решил создать эту тему, прочитав следующее высказывание:
bugmaker писал(а):
Следует более осмотрительно подходить к выбору инструментария, я про это и говорю. Судьба проектов на Delphi и Visual Basic общеизвестна - обновлений компиляторов не будет, портированы на другие платформы не будут, новые возможности добавляться не будут. Почти 100% вероятность что потребуется написание с нуля. Все, кто работал над ними, были или будут вынуждены переучиваться. Вопрос относительно причины, по которой этот инструментарий был выбран изначально, остаётся пока открытым. К стожалению, Эти, далеко не единственные подобного рода примеры, так никого ничему и ненаучили :( .

 Профиль  
                  
 
 
Сообщение11.08.2006, 21:54 


21/03/06
1545
Москва
Borland С++ Builder?
Delphi вроде как портировали под Линукс в свое время.

А вообще, в чем проблема? Если приложение под виндоус написано грамотно, то у прользователя как правило еще долго не бывает хлопот с запуском данного приложения, даже под более новые версии Windows. Пока Микрософт не изобретет чего-либо глобального, конечно :)

 Профиль  
                  
 
 
Сообщение11.08.2006, 22:21 


25/01/06
102
Лично мое предпочтение было бы за wxPython (binding wxWidgets aka wxWindows для Питона). Либо за Питон+Tkinter+Megawidgets. Преимущества обоих пакетов - многоплатформенность плюс скорость и легкость разработки и дистрибуции. На инете имеется огромное количество расширений, хелпов и примеров для обеих систем. Вдобавок, в случае wxPython окна будут выглядеть родными для каждой ОС. Дистрибуция Питон+Tkinter+Megawidgets чуть более хлопотна чем для wxPython, но тоже вполне возможна. Я пользовался в обоих случаях py2exe.

Qt требует лицензирования, в отличие от Tkinter и wxPython, которые совершенно бесплатны.

 Профиль  
                  
 
 
Сообщение11.08.2006, 22:53 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
К wxPython я бы добавил Boa Constructor

 Профиль  
                  
 
 
Сообщение12.08.2006, 07:29 


21/03/06
1545
Москва
Господа, объясните мне, реалисту, как можно надеяться на неповторение следующего сценария:
Цитата:
Судьба проектов на Delphi и Visual Basic общеизвестна - обновлений компиляторов не будет, портированы на другие платформы не будут, новые возможности добавляться не будут. Почти 100% вероятность что потребуется написание с нуля. Все, кто работал над ними, были или будут вынуждены переучиваться.

в случае прменения не коммерческого продукта, в работе над которым заинтересована фирма-производитель (денежно, взятыми обязательствами и т.п.), а продукта, сделанного эээ... энтузиастами?? Они же в любой момент забьют на него, и все... То, что он кем-то спонсируется - слабая гарантия. И потом - Питон мало кто знает (я например нет), по любому надо будет осваивать... а потом:
Цитата:
Все, кто работал над ними, были или будут вынуждены переучиваться.


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

 Профиль  
                  
 
 
Сообщение12.08.2006, 09:13 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
e2e4 писал(а):
Господа, объясните мне, реалисту, как можно надеяться на неповторение следующего сценария:

Обратите внимание — Вы (опосредовано через цитату) привели примеры именно комерческих проектов. Я затруднюсь найти брошенный OpenSource проект, не подхваченный кем-то другим. Иногда движение тормозится, поскольку всех разработчиков устраивает, как он работает. Если Вас не устраивает — поправьте, все будут Вам благодарны. Это и есть принцип FOSS. Phillip Katz умер, но отданный им в общее пользование zip жив. Жив именно потому, что не нуждается ни в поддержке автора, ни в PKWARE. Зато если завтра MS откажетсяя поддерживать Office, где будут все Ваши документы? В мусорной корзине?

Комерческому же проекту надо не просто существовать, надо приносить достаточное количество денег, чтобы удовлетворять владельцев (обычно, инвесторов), а совсем не потребности разработчиков и пользователей. Именно поэтому Interbase умер (или умирает), а Firebird цветет и благоухает. Это редкий пример и еще в одном отношении — обычно, убивая проект, фирмы не отдают его код другим. Лучше никому, чем даром.

Известны примеры, когда корпорации убивали успешные продукты, поскольку они мешали их бизнесу в другом направлении, или же продукт оказывался слишком нишевым для большой корпорации.

e2e4 писал(а):
И потом - Питон мало кто знает (я например нет)

:D Ну что Вам сказать — изучите. Во-первых, получите удовольствие. Во-вторых, в Вашем арсенале появится еще один мощный инструмент. В-третьих, отнюдь не малое количество знающих (а может быть, со времением — и знатоков) Python возрастет.

По крайней мере, давать совет на основе собственного незнания я бы не стал.

e2e4 писал(а):
используйте стабильный, коммерческий компилятор

Добавьте уж сразу — от Microsoft. :lol: (Я подозреваю, что gcc старше VS. И еще неизвестно, кто первым умрет. По крайней мере, VB умер, а gcc жив. Python, BTW, circa 1990, a VS — 1997.)

~~~~~~~~~~~~~~~

Между прочим, Вы цитируете bugmakerа как аргумент. Но его позицию трудно принять безоговорочно. Тем более, что он считает, что всем следует двигаться в сторону функционального программирования, вообще не признавая никаких практических доводов. Народ не знает Lisp — пусть выучит. А Вы про Python так…

 Профиль  
                  
 
 
Сообщение12.08.2006, 10:51 


21/03/06
1545
Москва
Ув. незванный гость, вы во многом правы. Признаться, я не думал о концепции свободного программного обеспечения в тех ракурсах, на которые вы указали. Но тем не менее, я не верю в идеальность человеческой природы, не верю в вечный энтузиазм. Поэтому я не могу основывать какой-то проект на основании программного продукта, за который никто не несет ответственности.
Если вдруг Микрософт откажется от поддержки офиса, то, я не сомневаюсь в трех вещах:
1. Эта ниша мгновенно заполнится другим(и) коммерческими продуктами;
2. В этих продуктах будет поддерживаться формат Офиса;
3. Я смогу какое-то время надеяться на поддержку Микрософта, ибо вступая с ним к коммерческие отношения, коими является лицензия, я получаю, кроме права пользования самой программой, еще и поддержку производителя.

Потом, нельзя умилять тот факт, что именно коммерческое программное обеспечение устанавливает стандарты. На это тратятся большие деньги, которые оправдываютяс продажей самого программного продукта. Без стандарта практически невозможно двигаться вперед. Поэтому, будь он даже не идеальным, стандарт необходим. Поэтому я за:
1. Большие программные продукты от больших софтварных фирм;
2. За повсеместное использование языков C/C++ вместо десятков полу-осмысленных, полу-документированных, полу-совместимых реализаций других языков.
3. Свободную конкуренцию. И пусть фриварные программы будут создателями такой свободной конкуренции. В этом их огромнейшая роль.
Нельзя также отрицать факт более-менее стабильности, эээ... надежности коммерческих продуктов (сравните пожалуйста клоны юникса и линукс). Вообще, меня умиляет концепция - напишите нам участок кода ядра операционной системы, и мы его (возможно, после тестирования) вставим. Знаю я таких кодо-писальщиков. Не воспринимаю это серьезно. Еще древние греки подметили, что демократия, как власть толпы - невозможный политический строй, ведущий к разрухе. Какая-то аналогия просматривается и здесь. А в качестве тестировщика нового участка кода предлагается выступить пользователям? А если этот код будет установлен на подводную лодку? Вот так-то вот...

Цитата:
Я подозреваю, что gcc старше VS. И еще неизвестно, кто первым умрет.

Вы имели ввиду Visual C++? Я конечно не копал так глубоко, но есть мнение, что Микрософт тесно сотрудничает с Интелом. Интел делает процессоры под продукты Микрософт еще со времен 80386 процессора. Микрософт имеет наиболее полные даташиты от Интела. Visual C++ генерит наиболее оптимизированный код. Вы с этим не согласны?

 Профиль  
                  
 
 
Сообщение12.08.2006, 14:58 
Заслуженный участник


15/05/05
3445
USA
незваный гость писал(а):
Я затруднюсь найти брошенный OpenSource проект, не подхваченный кем-то другим
...
Если Вас не устраивает — поправьте, все будут Вам благодарны.
...
Известны примеры, когда корпорации убивали успешные продукты, поскольку они мешали их бизнесу в другом направлении, ...
...
(Я подозреваю, что gcc старше VS. И еще неизвестно, кто первым умрет. По крайней мере, VB умер, а gcc жив. Python, BTW, circa 1990, a VS — 1997.)

IMHO Вы приукрашиваете OpenSource. Все-таки найти брошенный OpenSource проект как минимум не сложнее, чем коммерческий, "убитый" корпорацией-прародительницей. Мне иногда кажется, что OpenSource движение начинает приобретать экстремистские черты движения зеленых или антиглобалистов. :)

А советы типа "если Вас что-то не устраивает, Вы можете поправить код сами" мне почему-то напоминают мультфильм про Маленького Мука. Помните его состязание в беге с леопардом? И напутствие эмира: "Если леопард догонит тебя, он может тебя съесть. С другой стороны тебе предоставляются такие же права."

По поводу продуктов MS: VB по-прежнему жив и здоров в виде VB .NET. А при сравнении возрастов GCC (1987) нужно сравнивать не с VC++, а с MSC (не позднее 1983).

 Профиль  
                  
 
 Спасибо за советы.
Сообщение12.08.2006, 19:37 


22/06/05
164
Python, wxPython и py2exe легко скачались и установились под Windows. Похоже, что py2exe не компилирует программу в машинный код, а приклеивает интерпретатор Питона к байт-коду программы, так что получается exe-файл размером около 5MB.
e2e4 писал(а):
За повсеместное использование языков C/C++ вместо десятков полу-осмысленных, полу-документированных, полу-совместимых реализаций других языков.

Насколько я понял, в MFC, Builder, Qt и wxWidgets некоторые вещи (например, связь событий с обработчиками) сделаны не средствами C++, а с помощью хитроумной прекомпиляции.

Слышал, будто Гномы (GTK+ и GTKmm) ближе всего к C и C++, но практически не умеют работать под Окнами.

Если ограничиться только программированием под Windows, то не лучше ли тогда использовать C# + Windows Forms?
e2e4 писал(а):
Visual C++ генерит наиболее оптимизированный код. Вы с этим не согласны?

Подозреваю, что в большинстве случаев на первом месте Intel-компилятор. ;) Впрочем, это тема для отдельного обсуждения.

 Профиль  
                  
 
 
Сообщение12.08.2006, 20:32 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
e2e4 писал(а):
Но тем не менее, я не верю в идеальность человеческой природы, не верю в вечный энтузиазм.
Yuri Gendelman писал(а):
IMHO Вы приукрашиваете OpenSource. … Мне иногда кажется, что OpenSource движение начинает приобретать экстремистские черты движения зеленых или антиглобалистов.

Я тоже. Фокус в том, что когда кончается энтузиазм одного, часто есть достаточно энтузиазма у другого. В FOSS этого достаточно, в фирмах — нет.

Не страдаю я иллюзиями и по поводу движения. OpenSource движение — велико, и в нем хватает радикалов любого толка. Тем не менее: (а) корпорациям выгодно представить opensource как маргиналов. Они охраняют свой метод получения дохода, и были бы идиотами, если бы так не поступали; (б) в среднем, open source уже зарекомендовал себя как вполне успешная модель бизнеса, и многие принимают ее именно так — как одну из моделей. Представлять ее как единственно возможную и единственно этичную — это радикализм, но этим, слава Богу, страдают не все. Но утверждать, что нет спокойно работающих людей — лить воду на корпоративную мельницу.

e2e4 писал(а):
Если вдруг Микрософт откажется от поддержки офиса, то, я не сомневаюсь в трех вещах:

А я сомневаюсь, причем по опыту. И более того, история полна подобными брошенными продуктами, продуктами, специально купленными, чтобы убить. Не пероценивайте MS: зачем ей делать какие-либо телодвижения, если они не приносят денег? Инвесторы не простят.

e2e4 писал(а):
Потом, нельзя умалять тот факт, что именно коммерческое программное обеспечение устанавливает стандарты.

Отнюдь. Весь Интернет, все RFC — пример обратного. Более того, комерческое ПО часто заметно дольше отстает от стандарта. За примерами далеко не надо ходить: VC до сих пор не поддерживает С-99 (даже не упоминает о существовании такого стандарта), и вшив с С++.

e2e4 писал(а):
Свободную конкуренцию. И пусть фриварные программы будут создателями такой свободной конкуренции.

Интересно, как Вы себе это представляете? Пусть кто-то другой будет писать opensource, которым никто не пользуется (и значит, он не конкурирует), и будем называть это конкуренцией? :D

Между прочим, стоит не путать opensource и freeware. Строго говоря, это две очень разные вещи (и разные модели бизнеса).

e2e4 писал(а):
А в качестве тестировщика нового участка кода предлагается выступить пользователям? А если этот код будет установлен на подводную лодку?

А я и не утверждаю, что opensource— это единственный способ разработки ПО. Но и не переоцениваю корпоративную культуру, корпоративный метод разработки. В конце концов, не забывайте, что тестировщика (разработчика) в корпорации вовсе не интересует продукт — его интересует максимум зарплаты при минимуме работы. И в большой корпорации это оч-ч-чень заметно.

e2e4 писал(а):
Я конечно не копал так глубоко, но есть мнение, что Микрософт тесно сотрудничает с Интелом. Интел делает процессоры под продукты Микрософт еще со времен 80386 процессора. Микрософт имеет наиболее полные даташиты от Интела. Visual C++ генерит наиболее оптимизированный код. Вы с этим не согласны?

Не согласен. Вообще, взаимоотношения Intel и MS весьма сложные, но по-моему, Intel и сейчас делает свой компилятор, куда более точный, чем MS.

Но дело даже не в этом. MS гонит .NET, и ему скоро станет весьма начьхать на качество native кода. Runtime можно скомпилировать intel'овским компилятором, и где Вы тогда?! Заметьте, что купить masm сейчас можно только в составе большой годовой подписки (если он туда еще входит). VS6 уже не продается, и если Вам нужен классический VB, Вы на мели.

Yuri Gendelman писал(а):
А советы типа "если Вас что-то не устраивает, Вы можете поправить код сами" мне почему-то напоминают мультфильм про Маленького Мука. Помните его состязание в беге с леопардом? И напутствие эмира: "Если леопард догонит тебя, он может тебя съесть. С другой стороны тебе предоставляются такие же права."

Не скажу про леопардов, но медвежатина вкусна. И я успешно правил чужой код, когда была необходимость. Хотя это, разумеется, не просто, но разница, в конце концов, не в моих способностях, а в моих правах. В худшем случае, я могу нанять человека. С closed source я завишу от милости владельца (которому частенько на меня начихать, поскольку я не представляю сколь-нибудь значимый сегмент рынка).
Yuri Gendelman писал(а):
А при сравнении возрастов GCC (1987) нужно сравнивать не с VC++, а с MSC (не позднее 1983).

Нашел любопытную страничку :D.

 Профиль  
                  
 
 
Сообщение12.08.2006, 20:38 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Егор писал(а):
Похоже, что py2exe не компилирует программу в машинный код, а приклеивает интерпретатор Питона к байт-коду программы

Вы совершенно правы.

Егор писал(а):
Если ограничиться только программированием под Windows, то не лучше ли тогда использовать C# + Windows Forms?

Я бы, скорее всего, поступил именно так. Хотя рекомендовать — не знаю. Что-то меня тяготит с .NET, какая то тяжеловесность, что ли. Очень уж много приходится знать, помимо языка.

~~~~~~~~~~~~~~~~~~~~~~

Егор, вопрос в первую очередь к Вам, но и к остальным тоже: стоит ли отделить предыдущую дискурсию о корпоративном / opensource ПО в отдельную тему? Она уж больно смахивает на off-topic, и я готов выписать замечание себе первому :D. Или Вы считаете, что она пока в русле?

 Профиль  
                  
 
 
Сообщение12.08.2006, 21:20 


22/06/05
164
незваный гость писал(а):
Егор, вопрос в первую очередь к Вам, но и к остальным тоже: стоит ли отделить предыдущую дискурсию о корпоративном / opensource ПО в отдельную тему? Она уж больно смахивает на off-topic, и я готов выписать замечание себе первому :D. Или Вы считаете, что она пока в русле?

Не знаю. Для меня тема OpenSource интересна и сама по себе, и в сочетании с GUI.

 Профиль  
                  
 
 
Сообщение13.08.2006, 00:05 
Заслуженный участник
Аватара пользователя


17/10/05
3709
OK. Тогда нет проблем.

 Профиль  
                  
 
 
Сообщение13.08.2006, 02:34 
Заслуженный участник


15/05/05
3445
USA
незваный гость писал(а):
Yuri Gendelman писал(а):
А советы типа "если Вас что-то не устраивает, Вы можете поправить код сами" мне почему-то напоминают мультфильм про Маленького Мука. Помните его состязание в беге с леопардом?
...

Не скажу про леопардов, но медвежатина вкусна. И я успешно правил чужой код, когда была необходимость...


Да, править можно. Но представьте, что код приложения содержит сотню тысяч строк. Даже в своем коде такого размера через год сходу не разберешься. А на разбор чужого, если он _специально_ не подготовлен для отчуждения, может понадобиться время, сопоставимое с его проектированием заново. В моей практике основная польза от чужого кода - возможность понять, почему приложение работает не совсем так, как ожидалось.

незваный гость писал(а):
Yuri Gendelman писал(а):
А при сравнении возрастов GCC (1987) нужно сравнивать не с VC++, а с MSC (не позднее 1983).

Нашел любопытную страничку :D.

Хорошо, вношу поправку: MSC4 (1985) :)

 Профиль  
                  
 
 
Сообщение13.08.2006, 02:55 
Заслуженный участник


15/05/05
3445
USA
незваный гость писал(а):
Что-то меня тяготит с .NET, какая то тяжеловесность, что ли. Очень уж много приходится знать, помимо языка.

Собственно и в вариантах C++/MFC/COM или C++/XWindows то же самое - помимо языка нужно хорошо знать библиотеки. Причем в Unix это усугубляется отсутствием удобных сред типа VS.
У меня .NET - основная платформа последние 2 года. Что мне нравится - так это исключительно удобная среда. Ощущение тяжеловесности тоже есть. Но ведь .NET - это не только язык и формы, но и поддержка Remoting (замена COM/COM+/DCOM), ASP и Web-services в одном флаконе. Как принято в MS, нормальной будет 3-я версия :)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group