LINUX.ORG.RU
ФорумTalks

Об интерфейсе, программировании и моей ограниченности


0

0

Одно время я занимался созданием сайтов (в основном клиентская часть). html+css+js. И нравилось мне это весьма. Потом с помощью тех же знаний изредка клепал hta приложения (это когда IE "выполняет" html файл, выглядит как запуск "нормальной" проги). Но очень скоро уперся я в ограничения ActiveX (а без оного там вообще никуда). Ну в самом деле, кто ж будет в него (ActiveX) пихать функции типа popen и прочие феньки (да что говорить - там даже диалоги "открыть"/"сохранить" не вызовешь). Да и под линуксом работать тоже хочется. Стало ясно, что пора переходить на "серьезное" программирование.

Но старые привычки мешают. А именно - я просто офигеваю от того, как приходится создавать интерфейс. Вот с html было просто - мало того, что все можно легко поправить руками, в исходнике (подозреваю, что я опухну лазить по исходникам от какого-набудь "билдера", пытаясь найти размер шрифта конкретной надписи). Более того, никакой редактор интерфейса в случае html в принципе не нужен, проще все руками написать. Ну и динамическая работа со всем этим: захотел - приделал кнопку, захотел - убрал. Две-три строки - и изменил вид всей страницы (я даже молчу про css..).

Возникает вопрос - есть ли способ создавать интерфейс к "обычной" программе с такой же легкостью? (я понимаю, что связка html+js не идеальна, хотя бы потому, что "контролсов" мало, но мне ее всегда хватало) Неужто html - такое гениальное изобретение, что разработчики всяческих "студий" до сих пор "ниасилили" и малой части его фич?

О чем это все говорит? О моем ламерстве, ибо я не секу идеологии? Ну тогда прошу объяснить мне, зачем так все устроено. Или все-таки разработка "настоящего софта" специально сделана через жопу и с единственной целью - заставить работать с конкретной средой?

anonymous

Glade + любимые биндинги к GTK.

grob ★★★★★
()

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

anonymous
()

Сначало надо определиться, что ты конкретно хочешь "серьезное программирование" или "поработать в линакс" - это вещи слабопересекающиеся, т.к. знаю ну очень серьезных программистов работающих в вижуалстудио, а также знаю одну девочку, которая хугачит на питоне в емаксе (весьма легкомысленная особа юнных лет)

Sun-ch
()
Ответ на: комментарий от Sun-ch

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

"Серьезное программирование" - да это больше стеб. Просто использование одного из наиболее распространенных языков (c++, c#, java, python наконец). JavaScript к таковым вряд ли причислишь. А чего надо от этого языка - ООП (очень желательно) и работа с системными функциями без особых проблем (всякие там CreateFileMapping для винды, не знаю пока - что там в линухе).

anonymous
()

Tcl/Tk юзай. Он про ресурсы знает - тот же CSS, только умнее и логичнее.

anonymous
()
Ответ на: комментарий от sdio

Почитал про tk. Понравилось. С какими языками оно работать может?

anonymous
()

XUL тебе в руки - это ИМХО лучшая замена hta, с гораздо более широкими возможностями. В качестве языка, также можно использовать любой скриптовый из установленых в системе, а можно и твой любимый JS

Orlangoor ★★★★★
()

Хм... прослеживается типичное заблуждение. HTML - это _не_ язык программирования, это язык разметки, притом весьма посредственный и, стараниями того же IE, весьма неоднозначный. Набрасывая интерфейс с помощью html ты заранее отдаёшся парсеру, который делает за тебя всю работу.

Насчёт вижуал студий всяких по своему опыту могу сказать, что создание интерфейсов там сведено до такого же уровня. Ну что может быть сложного в том, чтобы перетащить какой-нибудь виджет на рабочее окошко? А вот программирование этого самого интерфейса уже уходит далеко за пределы твоих познаний в html+css+js. Так что зря ты словами кидаешся насчёт "ниасилили". Просто это совершенно другой, так сказать, мир:-)

По поводу "настоящего софта". В принципе тебе никто не мешает использовать тот же самый блокнот, для написания мегакода, но вполне очевидно, что хороший IDE никогда не помешает, а только сократит время, необходимое на разработку. Плюс не забывай про кроссплатформенность, которую ты хочешь приследовать. Это тоже создаёт определённые трудности. Вобщем велкам:-)

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

>Хм... прослеживается типичное заблуждение.

Нет никакого заблуждения. Я в курсе, что такое html. Программирование в данном случае - на js. Парсер? Ну ясен пень. Что мешает использовать "парсер" в интерфейсе для проги на си? Layout менеждеры (так вроде) ведь есть.

>Ну что может быть сложного в том, чтобы перетащить какой-нибудь виджет на рабочее окошко?

Ничего сложного. И наплевать, что при этом генерируется 1,5 кб кода на каждую кнопку. И, естественно, никто никогда туда руками не полезет. Зачем надо туда лазить? Не знаю, я привык. Динамически изменять гуй, например.

>А вот программирование этого самого интерфейса уже уходит далеко за пределы твоих познаний в html+css+js.

Звучит странно. Видимо под "программированием интерфеса" ты подразумеваешь нечто особенное, никак не обычное раскидывание кнопочек по форме/назначение событий. Поясни эту мысль, пожалуйста.

>Так что зря ты словами кидаешся насчёт "ниасилили".

Да, в принципе, понятно, что если кто чего и не осилил, то это я. Просто понять пытаюсь.

>Просто это совершенно другой, так сказать, мир:-)

Для меня разница между hta прогой и другой клиентской прогой не очевидна. Она есть? Просвети. Достаточно сказать, что и текстовые редакторы бывают и прочие приблуды. Понятно, что это все качует "из другого мира". Но при этом вполне нормально функционирует.

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

Не очевидно. "Блокнот", которым я пользуюсь, когда пишу на ц++, рвет IDE билдера в лоскуты (хотя, возможно, я просто в билдере не разобрался). Но по-любому ресурсов жрет на порядок меньше.

>Плюс не забывай про кроссплатформенность, которую ты хочешь приследовать.

А привязка к определенной среде в этом деле, конечно, очень помогает, так?

anonymous
()
Ответ на: комментарий от Orlangoor

А возможности действительно гораздо шире? Можешь пару примеров привести? И еще, оно браузер требовать не будет (можно ли "собрать" так, чтоб все библиотеки с собой таскало)?

anonymous
()
Ответ на: комментарий от anonymous

>Блокнот", которым я пользуюсь, когда пишу на ц++, рвет IDE билдера в лоскуты

У билдера IDE отсутствует. IDE есть в eclipse, есть в visual studio.

Xellos ★★★★★
()
Ответ на: комментарий от Xellos

Ладно, был неправ. Студию и eclipse видеть не доводилось.

anonymous
()
Ответ на: комментарий от anonymous

>А возможности действительно гораздо шире? Можешь пару примеров привести? И еще, оно браузер требовать не будет (можно ли "собрать" так, чтоб все библиотеки с собой таскало)?

ActiveState Komodo хороший пример. Ну или любой экстенжн для огнелиса. Собрать без зависимостей - только если для софтины будешь лепить дистрибутив куда засунешь компоненты для xul.

Orlangoor ★★★★★
()
Ответ на: комментарий от Orlangoor

Идея XUL (произносить как ZOOL) конечно хорошая, но вот всё равно нету у него кросплатформенности, а баттоны и прочую чихню можно и в JS клепать - по крайней мере и везде запашет.

А два - новая, достаточно сырая технология с небольшим количеством документации. Ещё пол года назад не было и половины доков.

anonymous
()
Ответ на: комментарий от Orlangoor

Оно не мультиплатформенное, оно привязано к движку FF это раз, а два - оно служит только для описания интерфейса: кнопки, текс, скроллбары итд.

Можно конечно в нём и JS запускать и сторонний код ужо скомпилированный. А теперь вопрос: а оно сильно надо?

anonymous
()
Ответ на: комментарий от Xellos

IDE - это Unix. А то, что ты назвал - позорище, а не IDE.

anonymous
()
Ответ на: комментарий от anonymous

>Оно не мультиплатформенное, оно привязано к движку FF

Ладно, поправлюсь - оно мультиплатформенно в рамках gecko но никак не ff.

>Можно конечно в нём и JS запускать и сторонний код ужо скомпилированный. А теперь вопрос: а оно сильно надо?

Надо, так как явно испытывается недостаток в xul приложениях не принадлежащщих mozilla. Тем более, что для многих задач мультиплатформенного JS (в рамках FF) более чем хватит

Orlangoor ★★★★★
()

>Более того, никакой редактор интерфейса в случае html в принципе не нужен, проще все руками написать. Ну и динамическая работа со всем этим: захотел - приделал кнопку, захотел - убрал. Две-три строки - и изменил вид всей страницы

>Возникает вопрос - есть ли способ создавать интерфейс к "обычной" программе с такой же легкостью?

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

Про IDE - для меня IDE - emacs + gcc + ddd (gdb ниасилил). При создании проекта использую anjuta, которая создаёт всякие autogen.sh, configure.in и прочее, потом прибиваю её и снова в емакс :).

Laz ★★★★★
()

Открой для себя Swing/JFC. Тем более для Линуха тебе "всякие" CreateFileMapping не помогут, в линухе этого нет. А Java избавляет от конкретики подлежащей ОСи

anonymous
()
Ответ на: комментарий от anonymous

>Тем более для Линуха тебе "всякие" CreateFileMapping не помогут, в линухе этого нет.

Как это нет? Должно быть.. (я не в том смысле, что в линухе winAPI должен быть, а в том, что замена наверняка найдется)

>А Java избавляет от конкретики подлежащей ОСи

А это мне как раз неважно. Кода, зависящего от ОСи, у меня минимум. И не проблема написать отдельно - для линуха, отдельно - для винды. Главное - чтоб технология в принципе была переносимой и с основным кодом не мучаться не приходилось.

В общем альтернатив тут мне накидали: * XUL * нечто + tk * gtk + что-то-там

Ну и за яву последний товарищ высказался.

XUL не особо впечатлил. Похоже, тот же hta, с теми же проблемами (точнее - ограничениями). Ну только что под линух есть.

Еще пара вопросов: * С чем лучше пользовать tk? (не является ли тикль мертвым/нафиг никому не нужным языком) * Правильно ли я понимаю, что стандартный интерфес питона - тот же tk? * gtk под виндой без проблем идет?

Ну и в общем хотелось бы услышать рекомендацию - что выбрать. Хотя бы из двух альтернатив: tk/gtk. Даже если это скорее религиозный вопрос, то там ведь все равно должны быть какие-то различия. Что нибудь вроде: "если у тебя мозгов не хватает осилить программирование, то нефиг лезть в ***, пользуйся ***". Или там: "*** настраивается очень хорошо, что угодно поменять можно". Ну хотя бы в таком духе.

anonymous
()
Ответ на: комментарий от anonymous

бери tk - очень удобно дулать несложный гуй, будет нехватать осилиш gtk или qt или мож еще что найдеш

anonymous
()
Ответ на: комментарий от anonymous

>не является ли тикль мертвым/нафиг никому не нужным языком

нет, не является.

>gtk под виндой без проблем идет?

без проблем. так же, как и tk. но виджеты там выглядят не как виндовые, в отличие от tk.

>хотелось бы услышать рекомендацию - что выбрать. Хотя бы из двух альтернатив: tk/gtk

если gtk, то libglade или скриптовый язык, или язык, где меньше "мусора" при создании виджета (например, OCaml --- я использовал с gtk, намного приятнее, чем чисто в C интерфейс делать). tk понимает X ресурсы, gtk нет. у gtk есть темы. говорят, что gtk красивее по умолчанию. tk проще.

сравни tkabber и gaim по внешнему виду и погляди в исходники --- может помочь определиться.

hateful_dead
()
Ответ на: комментарий от anonymous

>>Тем более для Линуха тебе "всякие" CreateFileMapping не помогут, в линухе этого нет.

>Как это нет? Должно быть.. (я не в том смысле, что в линухе winAPI должен быть, а в том, что замена наверняка найдется)

Есть, конечно. man 2 mmap

>В общем альтернатив тут мне накидали: * XUL * нечто + tk * gtk + что-то-там

Вот тебе еще альтернатива: ядро на C/C++, обвязка и GUI - на Python/GTK, интерфейс между ядром и обвязкой - на SWIG.

>Ну и за яву последний товарищ высказался.

Тоже хороший вариант, особенно учитывая Eclipse RCP.

Погубит тебя богатство выбора 8)

>Еще пара вопросов: * С чем лучше пользовать tk? (не является ли тикль мертвым/нафиг никому не нужным языком) * Правильно ли я понимаю, что стандартный интерфес питона - тот же tk? * gtk под виндой без проблем идет?

Tcl скорее мертв, чем жив, На Python и Ruby сейчас гораздо больше программ пишется. Tk - это "старый" стандартный Python GUI. Сейчас, когда есть PyGTK, Glade, Gazpacho, GUI Python-программ делаются в основном на GTK.

А ведь еще есть PyQT, но я с ним не работал, так что мнения не имею.

> Ну и в общем хотелось бы услышать рекомендацию - что выбрать. Хотя бы из двух альтернатив: tk/gtk. Даже если это скорее религиозный вопрос, то там ведь все равно должны быть какие-то различия.

GTK. Он активно развивается, поддерживается многими инструментами, испоьзуется многими программами.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.