LINUX.ORG.RU

Кто пишет gui на яве?

 ,


1

5

Правда, что одно и тоже приложение javaFX можно запустить на десктопе, в браузере и на мобильном устройстве? Насколько это хорошо работает?

Хотя ни одной такой программы не встречала, интересно кто их пишет и для кого?

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


Ответ на: комментарий от EXL

Жирный >100мбайтный рантайм сбоку

Спасибо электрону. Он приучил нас, что отожрать 100 мегабайт на старте это совсем не много.

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

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

Привет тормоза.

Откуда тонна боли? Это теперь так сложно - прочитать доку на тулкит и в тупейшем цикле загнать массив в виджет?

При чём тут жаба? Разговор о GUI.

Берём простую задачу - фильтрация таблицы. Есть поле ввода, при вводе каждого нового символа нужно фильтровать таблицу, оставляя только те строки, в которых попался данный текст. В самих ячейках найденный текст подсвечиваем любым цветом. Сколько вам нужно времени, чтобы реализовать это на mfc/wpf + qt/gtk + cocoa? Таблица на 10к строк * 10 колонок. Тормозить не должно.

О, и дофига ли данных влезает в табличку даже на самый супер-пупер огромный монитор?

В таблице есть прокрутка, ваш КО.

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

Берём простую задачу - фильтрация таблицы. Есть поле ввода, при вводе каждого нового символа нужно фильтровать таблицу, оставляя только те строки, в которых попался данный текст. В самих ячейках найденный текст подсвечиваем любым цветом. Сколько вам нужно времени, чтобы реализовать это на mfc/wpf + qt/gtk + cocoa? Таблица на 10к строк * 10 колонок. Тормозить не должно.

Ты и правда не знаешь как это делается, да? Чтоб не тормозило даже на 10М строк и 10М колонок?

Ты просто абсолютно некомпетентен.

В таблице есть прокрутка, ваш КО.

ЧТД. Абсолютная некомпетентность.

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

netbeans же на swing'е? запустил сейчас, в за <1секунды все запустилось, при этом, проект не маленький

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

Ты и правда не знаешь как это делается, да?

Ну так расскажите.

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

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

Ну так расскажите.

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

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

Доли процента от времени потраченного на реализацию движка. Абсолютно несущественно.

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

Это когда не успеваешь заметить, как появляется окно

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

В среде профессиональных разработчиков вопрос «нужна ли IDE?» просто не возникает.

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

Потому что делать руками то, что лучше получается у машины — глупость.

И что же делает IDE? Снижает порог вхождения, допуская до написания кода макак?

Впрочем у многих линуксоедов количество ручной суходрочки — показатель «крутости».

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

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

Что нужно сделать, чтобы оно запускалось в качестве отдельного приложения (имело заголовок окна и кнопки сворачивания на таскбар)? И почему такие лаги между нажатием на «плашку» и результатом её перемещения? (в Java-версии таких лагов не наблюдается).

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

Таблица на 10к строк * 10 колонок.

Тебе нужен монитор порядка 50 метров высотой чтобы увидеть это всё одновременно.

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

Таблица на 10к строк * 10 колонок. Тормозить не должно.

О боже, ты всю базу что ли выгружаешь в одну таблицу и потом фильтруешь в гуйне? Сходи к ортопеду что ли.

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

Кроме SweetHome3D об остальных даже не слышал никогда.

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

Но оно ж опять же тормозное в смысле интерфейса (по сравнению с Blender'ом, например). А 3D виджеты отрисовывает таки OpenGL, к жабе никакого отношения не имеющий.

Пусть хотя бы SweetHome3D будет, уговорил.

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

В Swing так изначально сделано: модели данных неизменны, а тулкит Metal, Windows, Gtk2, Motif, Nimbus) выбирается по желанию пользователя, да хоть параметром командной строки запуска Java-приложения на Swing. Причём представляемый тулкит реализует практически все особенности поведения родного. Это называется Look&Feel.

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

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

Есть такой крупный САПР Xilinx Vivado, говорят GUI написан целиком на Java. Это лишь подтверждает твой и мой скептицизм - графический фреймворк там не стандартный, какая-то сторонняя разработка, которую они лицензировали. Вот еще раз - если те дяди смогли такое годное налохматить, но почему тогда «в стандарт» попал такой тормозной кал в качестве GUI?

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Есть такой крупный САПР Xilinx Vivado, говорят GUI написан целиком на Java.

Оно адекватно работает?

Вот еще раз - если те дяди смогли такое годное налохматить, но почему тогда «в стандарт» попал такой тормозной кал в качестве GUI?

Жаба располагает к написанию говнокода, ибо как не напиши - как-то работать будет. Это в общем-то так и планировалось - SUN решил что большое количество макак смогут когда-нибудь родить Иллиаду.

Я когда-то приводил пример звездеца, который получается, когда некомпетентный человек пишет нечто на жабе - программа для расчёта Computer Generated Hologram. https://corticalcafe.com/prog_CGHmaker.htm Тормозит так, что мама не горюй, хотя и работает. Ну как бы понятно, что для написавшего это лишь proof of concept и его не заботила ни производительность ни эффективность. Дык вот, проблема в том, что наплевательство на эффективность в жабе возведено в абсолют. Для снижения порога вхождения. И практически весь софт пишется точно так же, как этот несчастный CGHMaker

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

Ну как бы понятно, что для написавшего это лишь proof of concept и его не заботила ни производительность ни эффективность.

Т.е. ни к подходу (proof of concept), ни к конкретной программе (CGHmaker) претензий нет?

Дык вот, проблема в том, что наплевательство на эффективность в жабе возведено в абсолют.

Это сейчас было про весь «жабий интерпрайз»? Который вам (да и большинству местных аналитиков) недоступен и неизвестен?

И практически весь софт пишется точно так же, как этот несчастный CGHMaker

1. см. предыдущий пункт

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

yyk ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Есть такой крупный САПР Xilinx Vivado, говорят GUI написан целиком на Java.

Ну не совсем САПР, но да на яве. Лицензирование там только на кусок что block design рисует. Остальное просто свинг

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

Т.е. ни к подходу (proof of concept), ни к конкретной программе (CGHmaker) претензий нет?

Это лишь один из примеров, почему написанное на жабе написано так, как написано.

Это сейчас было про весь «жабий интерпрайз»? Который вам (да и большинству местных аналитиков) недоступен и неизвестен?

И что, этот ынтерпрайз не требует гигабайт и гигагерц для работы?

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

Я об этом уже х.з. сколько твержу. Цель жабы - не создание удобных и эффективных для _пользователя_ приложений. Цель жабы - максимально облегчить _написание_ приложений.

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

Лицензирование там только на кусок что block design рисует. Остальное просто свинг

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от Stanson

Я когда-то приводил пример звездеца, который получается, когда некомпетентный человек пишет нечто на жабе - программа для расчёта Computer Generated Hologram. https://corticalcafe.com/prog_CGHmaker.htm Тормозит так, что мама не горюй, хотя и работает.

Писавшему её автору в 2003 году скорее всего не были известны хорошие практики отделения GUI от Модели данных. Поэтому, например, любое нажатие на кнопку и перерасчёт состояния модели выполнялось в одном потоке обработки событий AWT, значит синхронно. При продолжительных математических расчётах в модели данных это приводит к очевидным тормозам в GUI - он как бы залипает и перестаёт реагировать на всякие действия с ним до окончания перерасчёта модели. С тех пор много воды утекло. И продвинутые программисты, кто понял работу Swing, научились отделять модель от представления, не смешивать их потоки в одном потоке обработчике событий.

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

у многих линуксоедов количество ручной суходрочки — показатель «крутости».

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

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

Выше представленная ссылка на игру «Пятнашки» (запуск: java -jar pyatnashki.jar, можно с более модным тулкитом java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel -jar pyatnashki.jar) на старте отжирает 15 МБ, в процессе мышетыканья по плашкам поднимается до 21 МБ и стабилизируется на 19,7 МБ занятого ОЗУ.

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

Писавшему её автору в 2003 году скорее всего не были известны хорошие практики отделения GUI от Модели данных.

Там вовсе не только в этом дело. Там и new на любой чих, и всякое прочее.

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

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

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

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

Пару лет назад пользовался плеером deadbeef, так он залипал при импортировании радиострима, видно в UI потоке сделали работу с сетью, уже пофиксили? :)

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

Цель жабы - максимально облегчить _написание_ приложений.

И в результате сократить сроки и стоимость написания этих самых приложений. Что в первую очередь и надо этому самому «интерпрайзу».

А jff можно хоть на apl писать :)

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

И в результате сократить сроки и стоимость написания этих самых приложений. Что в первую очередь и надо этому самому «интерпрайзу».

Именно. А то, что эти приложения еле ворочаются и требуют топовое железо, это даже выгодно тому же ынтерпрайзу.

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

Вам то что?

И в результате сократить сроки и стоимость написания этих самых >>приложений. Что в первую очередь и надо этому самому >>«интерпрайзу».

Именно. А то, что эти приложения еле ворочаются и требуют топовое >железо, это даже выгодно тому же ынтерпрайзу.

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

Smetchik
()
Ответ на: Вам то что? от Smetchik

Ты вообще в курсе, что компьютеры на этой планете вообще могут работать только и исключительно благодаря нативному софту?

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

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

А кто-то готов платить (массово) за маленькие «вылизанные» программки на си+асм через 5 лет после того, как они понадобились?

Кто-то готов - и платит. Но массово?

А если для кого-то срок выпуска проги дороже на порядки чем её скорость и нежручесть?

А уж jff могут даже на жабке/тикле/делфи/Ноде/... накалякать: не хотите - не пользуйтесь, заставляют что ли?

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

А если для кого-то срок выпуска проги дороже на порядки чем её скорость и нежручесть?

А я о чём? Для этого жаба и создавалась. Поэтому неэффективность софта на жабе - её аттрибут. Дёшево, быстро, качественно - выбирай два из трёх. Это работает и здесь.

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

Любой язык создаётся для того, чтобы сократить «срок выпуска проги». Даже C создавался, потому что ленивые макаки не хотели писать на языке ассемблера. То, что Java лучше C, не делает её неэффективной. Совсем наоборот.

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

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

Написание на ассемблере не делает софт быстрее. Сегодня компилятор лучше справляется с оптимизациями.

То, что Java лучше C, не делает её неэффективной. Совсем наоборот.

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

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

Вам то что?

Ты вообще в курсе, что компьютеры на этой планете вообще могут >работать только и исключительно благодаря нативному софту?

Вы в курсе, что большинству людей добалды, что на чем написано, им нужны от вас программистов инструменты, которые делают работу здесь и сейчас, им как-то нет времени ждать когда вы родите наконец Шадевры, и эти инструменты должны быть понятны им и удобны. Если найтивописатели не способны родить, что-то внятное, приходится пользоваться написанным на Питоне, Джабе и тд. И на том спасибо нет времени ждать когда Гении С, Асм, С++(допишите сами где вы гений) родят.

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

А я о чём? Для этого жаба и создавалась

Вообще-то ява создавалась и для встраивания в бытовые приборы, где эффективность важна в виду небольших ресурсов. Набери в гугле real-time java и удивись насколько ты отстал от жизни.

Eva
() автор топика
Ответ на: Вам то что? от Smetchik

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

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

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

Что и доказывает сравнение использования нативного софта и написанного на жабе софта. При том, что для любой нативной софтины наверняка найдётся аналог написанный на жабе.

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

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

Ты вообще хот раз сталкивался с этой «жабой для встраивания»? А вот я сталкивался. Дык вот, это простенький интерпретатор типа интерпретатора бейсика только с жабоподобным синтаксисом. Ничего общего с жабой, которая тебе известна он не имеет и иметь не может, ибо jvm нельзя реализовать на микроконтроллере с сотней-другой байт RAM, а интерпретатор бейсика - можно.

Жаба мне знакома ещё с 1996 когда SUN привёз эту штуку на какую-то выставку в Экспоцентре и устроил там халявные классы на спарках с жабой. Я даже поначалу повёлся.

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

От том, как начиналась жаба легко почитать прям на самом пруфном пруфце: https://web.archive.org/web/20041228220235/http://www.sun.com:80/software/

The Java Enterprise System reduces infrastructure software cost and complexity accelerating business application and service deployment

Вот истинная цель создания жабы.

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

Вам то что?

Ты в курсе, что пользователю нужен _удобный_ инструмент? И что >удобство включает в себя и скорость работы в том числе. И то, что >каких-то бедолаг заставляют работать на жобоподелках, не делает >эти жабоподелки удобными.
При наличии выбора инструмента - пользователь всегда выберет >инструмент написанный не на жабе.
Что и доказывает сравнение использования нативного софта и >написанного на жабе софта. При том, что для любой нативной >софтины наверняка найдётся аналог написанный на жабе.
Да один пример i2p уже доказывает, что пользователь скорее >откажется от технологии вообще, чем будет использовать жабософт.

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

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

И что? А вот есть такой язык как ADA, который NASA тоже использует. Да вообще, сложно найти язык, который NASA не использует. Разве что какой-ниубдь отечественный 1C. Но это ничего не говорит о качестве языка и софта на нём написанном.

Вот чудесный насовский симулятор 42 написан на сях. Почему не на жабе?

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