LINUX.ORG.RU

Интерфейс по-умному


0

0

Некоторое время назад начал писать прогу (под винду). Суть - мат. рассчеты, так что скорость очень критична. В связи с этим сама прога была написана на си, а интерфейс к ней - как html файл (JavaScript, ActiveX).

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

Вопрос - как это сделать по-уму? Есть небольшой опыт программирования под wxWidgets (опять-же, под Винду), но тут (на ЛОРе) вроде бы считается, что писать интерфейс на си/си++ - идиотизм.

anonymous

>тут (на ЛОРе) вроде бы считается, что писать интерфейс на си/си++ - идиотизм.

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

anonymous
()

> "как надо".
> чтоб работало и в линухе, и в винде.

Я что-то не понял -- а HTML-ник в Linux что ли не работает?

unDEFER ★★★★★
()

>но тут (на ЛОРе) вроде бы считается, что писать интерфейс на си/си++ - идиотизм.

а ты меньше слушай: на чём легче - на том и пиши свой гуй, некоторые просто неплохо знают, скажем, питон и поэтому на нём всё и пишут, но это не факт.

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

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

Так написано же - ActiveX. Какой активикс в линуксе? :)

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

>на чём легче - на том и пиши

Легко было на JavaScript. Но не прокатило. Остальное - уже сложнее.

Собственно сейчас выбираю не столько язык, сколько библиотеку. Есть ли какие-то причины предпочесть что-то определенное? Раз уж пишу под Линух, то лигично было бы выбрать Qt/GTK. Но не будет ли проблем с виндой? Или лучше та же wxWidgets, вроде как ориентированная на переносимость?

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

Qt тоже ориентирована на переносимость де юре, как де факто - нзн.

Вот сейчас на Gtk# (+Mono) програмулину бухгалтерше пишу - пока (!) проблем под виндой нет - как будет дальше - не знаю :D

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

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

Вы, Pi, неумный человек. Язык много чего меняет. Возможность динамики - в некоторых языках её просто нет, удобство кодирования - в Си/Си++ приходится писать очень много лишнего, всякого синтаксического мусора, скрывающего за собой суть.

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

я знаю что я недалёкий: мне это уже не раз говорили.

но в моём посте попрошу заметить 2 слова: "много" и "только".

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

Еслм Tk-шный look&feel не пугает, то для программирования Tcl/Tk - идеален. Очень удобны биндинги Guile-gtk, код читабельный, без единого лишнего символа, писать одно удовольствие, динамика, обратно же. Далее - весьма удобен lablgtk и labltk, но это если динамики не надо. Perl-gtk не так уж и страшен. Питон и Руби - после всего вышеперечисленного идут, но всё равно в разы лучше, чем C++.

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

>Язык много чего меняет.

согласен.

>Возможность динамики - в некоторых языках её просто нет

Во многих задачах нужна как рыбке зонтик.

>в Си/Си++ приходится писать очень много лишнего, всякого синтаксического мусора

Не пишите мусор.

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

Нерелевантное замечание. Ответ был именно к этим словам: язык ОЧЕНЬ много чего меняет, просто драматически, фундаментально. И API - это далеко не главное, так что "только" тут не в тему.

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

> Во многих задачах нужна как рыбке зонтик.

Ну ну. Практически в каждой гуйне это сильно нужно, если только это не окошко с кнопочкой "hello, world".

> Не пишите мусор.

Ну покажи, умненький ты наш, как на C/C++ писать без мусора. Языки то мусорные. Одни только объявления типов - уже мусор, и от них нельзя избавиться. Так же мусором становятся все те параметры, которые могли бы иметь значения по умолчанию, но убогонький язык не позволяет умолчания как следует задавать. И, конечно же, отсутствие замыканий и вообще лямбды, делает язык очень громоздким.

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

обалдеть...

зато мы скоро буим все ваять на супер абстрактных скриптовых языках без "мусора" в виде объявления типов и позабудем о том, что лучший язык пр-я тот, который ты знаешь лучше и не будешь делать ошибок по незнанию. Человеку всего лишь нужно написать гуй, логика уже есть, требования относительно языка отсутствуют. Но некоторые уже успели промыть мозги, что С/++/ "некрута".

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

>Так же мусором становятся все те параметры, которые могли бы иметь значения по умолчанию

void func_foo(TypeA& a, TypeB& c=*(TypeB*)NULL){...}

>И, конечно же, отсутствие замыканий

destructor cleanup - и какие супер-пупер языки этим могут похвастать. python ?

>отсутствие ... вообще лямбды, делает язык очень громоздким.

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

============================================== Задача - нужна прога с функциями растрового редактора. Какой язык будеш использовать?

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

> лучший язык пр-я тот, который ты знаешь лучше

Тот, кто хорошо знает менее дюжины языков, вообще не имеет права браться за программирование. Никогда!

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

> void func_foo(TypeA& a, TypeB& c=*(TypeB*)NULL){...}

Оно и есть - мусор. Ты создай структурку разлапистую в умолчательном параметре.

> Ее чрезмерное употребление тоже.

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

> Задача - нужна прога с функциями растрового редактора. Какой язык будеш использовать?

Guile, скорее всего. Если юзеры не уроды зажравшиеся на свистелках-перделках, то Tcl/Tk.

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

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

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

> Guile, скорее всего. Если юзеры не уроды зажравшиеся на свистелках-перделках, то Tcl/Tk.

А вы не трындун ли? Файлы каких форматов начинается с II либо MM.

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

Ну не совсем так. Не то чтобы мне и впрямь "промыли мозги" - просто был опыт создания гуя на плюсах. И не слишком понравилось. Почему и стал писать на JavaScript. Вот теперь думаю, как быть.

Фактически выбор между wxWidets/c++ (уже знакомо), wxPython (хоть что-то знакомое будет) и чем-нибудь вроде Tcl/Tk - все с нуля, но обещают мега-кайф.

автор топика

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

Не пойти ли тебе в анус, дитятко? Что, растровый редактор непременно должен с убогоньким TIFF-ом работать? Да ещё и сам его читать, когда библиотек полно для этого дела?

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

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

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

Это да, о дюжине речь не идет. Но с тем, что браться за программирование нельзя - не согласен. Вопрос - что выучить? Что будет полезнее?

"Красота" особо не волнует, можно даже текстовый интерфейс - был бы функционален.

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

>убогоньким TIFF - так ли? ... Да ещё и сам его читать, когда библиотек полно для этого дела?

Батенька не вкурсе, что каждый производитель пишет TIFF со своими расширениями ?

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

Я только за промывку и переживал. :)

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

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

>они ни разу в жизни никакую гуйню не программировали

не верю нифига. Они что, в школе/универе не учились? Не программировали за деньги/на заказ - другое дело.

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

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

Например, такой набор был бы очень адекватен для большинства задач: C/C++ (не обязательно в полном объёме), Tcl, Scheme (сразу даёт богатый выбор реализаций), JavaScript (оченно много где применяется, далеко не только в dhtml), Python или Perl или Ruby, OCaml, Erlang (для распределёнщины всякой). Это почти минимальный набор. Для полноценной работы надо добавить хотя бы по одному представителю всех оставшихся групп языков.

Что из перечисленного годится для гуйни - выше уже было описано.

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

Если учить, то питон - полезная штука.

/мне правда не нравится, но это имхо/

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

> не верю нифига. Они что, в школе/универе не учились?

Когда они в школе/универе учились, за терминалами с хоть какой либо гуйнёй была очередь на недели вперёд расписанная. И многие из них - очень даже профессиональные программисты, зарабатывающие такие деньги, которые сопливым дельфинистам и не снились. Просто задачи у них куда как более интересные и серьёзные, чем гуйня всякая.

У меня самого долгие годы весь опыт графики и вообще UI ограничивался Тектрониксом, REGIS-ом и совсем чуть-чуть VGA-шными демками, когда ненадолго пришлось персоналку поюзать.

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

>Дык потому TIFF и убогонький, и нах не нужный.

http://www.remotesensing.org/geotiff/geotiff.html

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

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

Ну и какое это имеет отношение к простенькому самописному растровому редактору? Для непритязательного железа я pbm выбираю, tiff давно уже заколебал - как раз этими своими сотнями расширений.

anonymous
()

wxWidgets я бы не стал выбирать, не удобный API и падает иногда.

Если хочется кросплатформенный и удобный то qt одназначно.

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

Qt - ацтой. Слишком завязано на один из самых кривых и неудобных языков - C++. А PyQt - очень уж падучий и тормозной, при том, что не то чтоб очень удобен.

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

> qt одназначно

+1

Удобный, неплохая документация, кроссплатформенный.

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

>Для непритязательного железа я pbm выбираю

Я не то железо имел ввиду.

И что, pbm позволяет расширять формат без конфликтов с другими разработками?

Ладно, пламенный привет лисповодам. Поговорим в другой раз.

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

> Я не то железо имел ввиду.

То, то. Вплоть до PIC-ов.

> И что, pbm позволяет расширять формат без конфликтов с другими разработками?

За это надо голову отрывать, и обратно не пришивать. На фиг. Нельзя!!!

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

Ничё ты в садомазо не понимаешь. ГУЙ на Фортране - вот истинный BDSM!

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

>И, конечно же, отсутствие замыканий

>и какие супер-пупер языки этим могут похвастать. python ?

Perl, Lisp

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

> Тот, кто хорошо знает менее дюжины языков, вообще не имеет права браться за программирование. Никогда!

ti smi'lik zabil dobavit'

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

>Слишком завязано на один из самых кривых и неудобных языков - C++.

вообще-то там не совсем C++ именно поэтому он удобен,
хотя его фичи наверное можно реализовать и на чистом C++

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

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

anonymous
()

Имхо Tcl/Tk и Python+GTK стоит освоить в любом случае. Первый просто удобен, а на втором в последнее время много чего под линух пишут. А там определись. Я бы, наверное, взял Tcl - на нем очень хорошо тонкие фронтенды ваять, быстро, и довольно чистенько получается.

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

Ах да... еще есть Nemerle в связке с Gtk#. Тоже весьма неплохой вариант.

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

> Erlang (для распределёнщины всякой)
Erlang насколько я знаю декларативный язык. Попробуй в нем написать простейшее распределенное множение матриц. Я после возни с XSLT сказал декларативным языкам твердое и решительное нет. ;) А для распределенщины лучше взять MPI.

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

Откуда у тебя такой бардак в голове?

"Erlang is a concurrent functional programming language", дальше сам - http://www.erlang.org/erlang_book_toc.html

> Я после возни с XSLT сказал декларативным языкам твердое и решительное нет.

LOL. Без комментариев.

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

Мдя... опять-тринадцать, пошла рубка какой язык круче и у кого пиписька длиньше.

1) для мат.расчетов гуй НЕ НУЖЕН. Вообще. Тем более под линуксом.

2) быро сляпать переносимый гуй на колене - ИМНО однозначно тсл-тк или питон с ткинтером (чтто одно и то же но питон мне гораздо больше нравится как язык:-))

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

4) Наезды на С++ по скромному личному мнению исходят от людей у которых не хватает воображения эффективно работать с темплейтами. Язык конечно неиделаьный (таковых просто нету) но в хороших руках является одним из самых эффективных инструментов программирования...

5) Учить стоит С++, питон (очень эффективен в связке с С++), возможно окамл.

dixi :-)

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