LINUX.ORG.RU

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

 ,


1

5

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

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

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


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

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

Ваши действия?

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

unsafe.putByte(0, 0)

Это ты запишешь что-то в память _VM_ а не реальной железки. Ты покажи как в физическую память железки что-то записать.

Или другая проблема - прерывания.

JVM намеренно сделана изолированной от железа.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от Stanson

Это ответ на «Это поэтому требуется топовый девайс с восемью ядрами и восемью гигами, чтобы оно хоть как-то шевелилось?»

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

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

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

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

Тут больше вопрос в драйвере сетевого девайса, а не в реализации TCP/IP стека. А в жабе драйвера невозможны в принципе.

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

Что можно написать сетевую программу на бейсике в 150 bytes RAM?

Да. Это открытие, что-ли? На ассемлере можно вообще в 100 уложиться. Много зависит от сетевой периферии, но даже вообще без неё (совсем без контроллера ethernet, программная реализация ethernet 10BASE-T) мне вот на сях удалось обойтись 74 байтами, правда, только посылка стандартных сообщений по протоколу syslog через UDP.

какой-нибудь WizNet W5500 позволит вообще десятком-другим байт обойтись, но это немножко читерство, ибо TCP/IP hardware offload.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 3)

Java programmisti, sobaka neschastnaya! return 0;

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

имеется ввиду полноценную сетевую программу, типа клиента telnet

Для самого клиента - байтов 100-200 надо, для TCP/IP - 100 байт, если без ARP/DHCP, полноценно - байт 300 наверно. А вот дальше всё зависит от контроллера сети. Именно его обслуживание может сожрать большую часть памяти. А если тот же W5500 в качестве контроллера взять - наоборот, можно сэкономить кучу памяти.

Впрочем, HTTP сервера ещё на PIC16F84 делали без проблем.

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

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

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

А зачем это все нужно, когда платка с линуксом и 512 м памяти стоит 5 долларов? Это как болты дома ковать, когда можно купить в магазине.

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

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

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

unsafe.putByte(0, 0)

Условия задачи выполнены, молодец. Только получить unsafe можно только через рефлекшен иначе:

Exception in thread "main" java.lang.SecurityException: Unsafe
	at sun.misc.Unsafe.getUnsafe(Unsafe.java:90)
	at alex.test.GenericsDevices.main(GenericsDevices.java:32)

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

А зачем это все нужно, когда платка с линуксом и 512 м памяти стоит 5 долларов?

А зачем платка с линуксом и 512Мб (и без сетевого интерфейса, кстати) за $5, если можно обойтись одной микрухой за $1? Удорожать в 5 раз только ради того, чтобы жабу впихнуть? Но зачем?

Это при том, что за $1 можно аж целый ESP8266 взять. А ведь можно и $0.5 обойтись, если wifi не нужен.

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

tcp протокол размером в 100 байт полноценно работать не будет, т.к. не реализует протокол в полном объеме, даже я это понимаю

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

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

Так она на старом swing написана, JavaFX и SWT (Eclipse) не тормозят.

Таки да. Открываем большой файл в IDEA и наблюдаем уныние:

http://esxi.z-lab.me:666/~exl_lab/movies/ide-speed/idea.webm

Открываем этот же файл в Eclipse:

http://esxi.z-lab.me:666/~exl_lab/movies/ide-speed/eclipse.webm

Всё чётко и плавненько. Всё-таки Eclipse Foundation грамотно подходит к разработке своих IDE и вообще платформы. Стыд и срам JetBrains'ам.

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

tcp протокол размером в 100 байт полноценно работать не будет, т.к. не реализует протокол в полном объеме, даже я это понимаю

Полноценная реализация TCP/IP по всем RFC типа uIP влезает в 10k RAM 100k ROM. Однако, в подавляющем большинстве случаев, полноценная реализация просто нафиг не нужна.

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

О как. больше 20 лет жаба пыжилась пролезть в эмбеддед, и только в следующем году, наконец, её можно будет пользовать?

(а ты пробовал вообще жабу на RPi запускать? На это без слёз смотреть невозможно. node.js на ESP8266 и то быстрее.)

даже не тестируя,

Приплыли.

а тебе придется для каждого нового процессора все переписывать и тестировать заново

А зачем мне новые процессоры? MCS-51 вот до сих пор выпускается. Написал один раз - и почти 40 лет можно не париться вообще.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от Stanson

Это ты запишешь что-то в память _VM_ а не реальной железки.

А память VM чем-то отличается от памяти реальной железки по-твоему? Куда TLB показывает, туда и запишется.

Ты покажи как в физическую память железки что-то записать.

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

Или другая проблема - прерывания.

И в чём эта проблема заключается?

JVM намеренно сделана изолированной от железа.

Любой язык кроме языка ассемблера изолирован от железа. Это не мешает в том числе и на Java писать операционные систему

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

Только получить unsafe можно только через рефлекшен иначе:

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

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

А память VM чем-то отличается от памяти реальной железки по-твоему? Куда TLB показывает, туда и запишется.

А кто скажет TLB указывать на IO region? В жабе таких функций нету. Что ОС выдаст, то и будет.

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

Что-то типа inb()/outb()

И в чём эта проблема заключается?

в JVM вообше нет реализации прерываний. Поэтому даже отмапить железное прерывание в жабомашину затруднительно.

Это не мешает в том числе и на Java писать операционные систему

И зачем нужна ОС которая не умеет ни c железом общаться, ни прерывания обрабатывать, да даже сисколлы не умеет?

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

Ты покажи как в физическую память железки что-то записать.

Господи, вот это мрак.

Ты конечно, полный виндузятник, но думаю эта информация будет для тебя полезной:

Java - JDK вообще, и JVM в частности, и некоторые системные Java-библиотеки типа Thread - написаны в том числе и на С++. Сборщик мусора и JIT-компилятор - тоже. Все нативные свойства процессоров и другого железа напрямую доступны на этом уровне.

Если ты хочешь потерять платформо-независимость с целью обретения возможности напрямую юзать железо - просто делаешь точно так же, нужные места пишешь на C++ и оборачиваешь в жавное API.

Если же хочешь пользоваться готовым, то в жабе есть готовое GPIO , UART, I2C, SPI, итп. Например, первая строчка в гугле по запросу «java gpio»: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/RaspberryPi_GP...

Have a nice day

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)

нужно создать сайт «тормозотворец» и помещать туда данные тех негодяев, кто пишет GUI на жабке :)

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

Java - JDK вообще, и JVM в частности, и некоторые системные Java-библиотеки типа Thread - написаны в том числе и на С++. Сборщик мусора и JIT-компилятор - тоже. Все нативные свойства процессоров и другого железа напрямую доступны на этом уровне.

Ты всё пропустил, тут речь шла о написании ОС целиком на жабе.

Так-то элементарно всю работу с железом в JNI вынести и всё.

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

если две трети жабы все равно C++, то как это мешает сделать ОС целиком на жабе? это задача эквивалентная написанию ОС на С++, а такая уже есть - Windows

Sun, кстати, пытались сделать JavaOS, но проект закрыли по причине коммерческой несостоятельности: https://en.wikipedia.org/wiki/JavaOS Там было собственное микроядро, кусок интеграции с жабой на чистом Си, и портанутая жаба.

читал несколько пейперов с экспериментальными реализациями системных интерфейсов в жабке. Например вот тут кто-то написал прерывания: http://people.cs.aau.dk/~apr/RTS/KSR08.pdf

то есть, технически это реализуемо... но зачем? Гораздо коммерчески более эффективно - делать пересборки OpenJDK под конкретные хостовые ОС

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

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

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

Всё чётко и плавненько. Всё-таки Eclipse Foundation грамотно подходит к разработке своих IDE и вообще платформы. Стыд и срам JetBrains'ам.

Да да слышали, только как только люди переходят на JetBrains то все кричат алилуя, и зарекаются садится за баранку пылесоса типа Eclipse

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

если две трети жабы все равно C++, то как это мешает сделать ОС целиком на жабе?

Да я откуда знаю? Любители жабы утверждают что жаба годится для всего. Вот мне и интересно, как они это себе представляют.

это задача эквивалентная написанию ОС на С++, а такая уже есть - Windows

Windows написана на С. На С++ написан Symbian.

Sun, кстати, пытались сделать JavaOS

Пытались делать даже жабопроцессоры. Кстати, до сих пор во многих армах таки есть жабомашина. Не в курсе, есть ли жабомашины которые эту жазель используют реально.

то есть, технически это реализуемо... но зачем?

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

Вон, гугль юзерспейс ведроида на жабе сделал. Говно ведь получилось.

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

Сколько лет яве? Уже 20. Где десктопные killer app на яве? Их нет. Ни офисных пакетов, ни ОС. Все обещания что вот вот будут. Это всё что нужно знать о яве на десктопе. Сравните с историей c/c++.

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

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

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

Конечно провал, только для нее вакансий 1700 по Москве, С++ 955 вакансий, ну да полный провал.

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

сейчас даже саму жабу переписывают на жабе.

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

Вон, гугль юзерспейс ведроида на жабе сделал. Говно ведь получилось.

получилась самая популярная ОС в мире, алё

а популярная она в том числе потому, как легко, удобно и радостно под неё кодить

важно отметить, что Android вплоть до версии Android 7 Nougat - не имел никакого отношения к жабе. Не понимаю, почему люди такие безголовые, мозги маркетингом Гугла промыты насквозь

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

Конечно провал, только для нее вакансий 1700 по Москве, С++ 955 вакансий, ну да полный провал.

Так она и сделана была чтобы можно было вместо нескольких нормальных программистов нанять 100 жабомакак и получить как-то работающее поделие в 100 раз быстрее.

Естественно, что жабомакак нужно больше и чаще.

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

И чтобы доступно это было даже младшекласснику. У знакомых дочка во втором классе, уже пишет игрушки

Т.е. жаба - язык программирования для детей?

получилась самая популярная ОС в мире, алё

О как. А с каких это пор пользователь может выбрать ОС на мобильнике? А если не может, то она не у пользователей популярна, а у производителей, цели которых принципиально расходятся с желаниями пользователей.

легко, удобно и радостно под неё кодить

А портировать существующее почему-то безрадостно и неудобно.

важно отметить, что Android вплоть до версии Android 7 Nougat - не имел никакого отношения к жабе

К Жабе(С)(ТМ) - да, не имел. Но если что-то тормозит как жаба, жрёт память как жаба и выглядит как жаба - то это жаба.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от Stanson

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

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

Ты это гений найтива, возьми напиши ос для мобилок свободную. Шо слабо?

Нахрена её писать? Всё уже давно написано. Я вот пользуюсь уже 5 лет и до сих пор доволен. Ипхонолюбцы и ведрочеры скрипят зубами и завидуют.

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

Пользователю все равно радостно вам писать или грустно. Его больше интересуют потребительские свойства программы. Неоднократно сравнивал, программы на яве при исходном функционале требуют в разы больше памяти чем на си. Количество вакансий к наличию и качеству десктопного софта тоже не имеет отношения. Я примерно представляю что и как банки и интеграторы пилят на яве. Ява заняла нишу бейсика или даже кобола.

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

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

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

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

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

Да вы мне программу на С приведите полный аналог по функционалу с IDEA, да так чтобы с модулями расширения, да еще чтобы их было так же много.

QtCreator например. И не тормозит почему-то.

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

Вы думаете в бизнесе идиоты сидят

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

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

Вот поэтому и нужны толпы жабомакак.

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

А то, что память не бесплатная. Это на Лоре у анонимов поголовно и7 с 16 ГБ памяти, а когда я работал в банке, видел как там на рабочих местах экономят эффективные менеджеры. Срок амортизации пк 5-7 лет. Вот он и будет эти 7 лет работать без апгрейдов. На сайте производителя АБС написана минимальная конфигурация на которой программа запустится? Вот её и возьмём. Особо хитро*опые покупали в офис пк на атомах с 2 ГБ памяти, получали премию за экономию а потом претензии ит предъявляли - а чо это у нас всё тормозит...

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

Да и что он может вне Qt, модуль работы с БД есть, JS для фонтенда можно, Python, Rust поддерживает(так чтобы в полном объеме), системы документации CVS все поддерживает, сколько систем сборок поддерживает?

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

И ещё интересный вопрос. Вот эти все жабомакаки, которые востребованы и которые что-то как бы пишут. Что они за 20 лет существования жабы написали на этой жабе кроме тулзов для написания чего-то на жабе? Где то, на что были потрачены вот эти гигантские человеческие ресурсы?

Как-то одного SweetHome3D маловато для столь значительных затрат.

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

А то, что память не бесплатная. Это на Лоре у анонимов поголовно >и7 с 16 ГБ памяти, а когда я работал в банке, видел как там на >рабочих местах экономят эффективные менеджеры. Срок амортизации >пк 5-7 лет. Вот он и будет эти 7 лет работать без апгрейдов. На >сайте производителя АБС написана минимальная конфигурация на >которой программа запустится? Вот её и возьмём. Особо хитро*опые >покупали в офис пк на атомах с 2 ГБ памяти, получали премию за >экономию а потом претензии ит предъявляли - а чо это у нас всё >тормозит...

Ну так благодетель, перепишите их софт на С.

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

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

в том то и дело, что жаба - не тормозит. А Дальвик тормозил ППЦ как. На официальной конфе Google IO, создатель Дальвика рассказывал секрет полишинеля, что нельзя злоупотреблять ООП и создавать много классов, т.к. наследование убивает перфоманс их дальвика в ноль. Ржали всем офисом

О как. А с каких это пор пользователь может выбрать ОС на мобильнике?

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

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

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