LINUX.ORG.RU

Жаба GUI

 


0

2

Доброго времени суток. Старательно изучаю жаву. Дошел до развилки с неоновой вывеской «GUI», однако самостоятельно, боюсь, не в состоянии адекватно все взвесить и сделать правильный выбор дорожки для дальнейшего следования. Технологий много: окна, jsp, апач+хтмл+пхп (это не считая горы фреймворков разной степени паршивости), на изучение каждой уйдет куча времени неясной степени окупаемости, потому хотелось бы уяснить, что востребовано, удобно, в конце-концов юзабельно, на что есть смысл тратить молодые годы. Спасибо



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

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

Ну, апач понятно: доп. софт, лишние скрипты и т.д; а jsp-подобные чем не «угодили»? А свинг, по-моему, не очень любят, особенно за их политику фикса багов.

WennY
() автор топика

У java не все так хорошо с графикой, как может показаться.
А точнее, там так, более менее нормальные библиотеки, на которые стоит обратить внимание это swing и javafx. У первого уже дела не очень хорошо (устаревает), у второй - еще не очень хорошо (сырая). И это при том что они несовместимы, и узучая одну, нельзя автоматически знать другую, как было со swing и awt.
Но вообще, javafx перспективнее. Мб отдебажут ее. А поддержка swing прекращена.
А вообще, читай это Осторожно, Швабр!

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

jsp-подобные чем не «угодили»?

Тем что это веб, а не GUI

comp00 ★★★★
()

Не надо на яве графику городить. Она или для сервера (и там свинг никому не нужен), или для андроида, где вообще свой тулкит со своими багами, фичами и подходами.

Если учишь просто яву, то лучше коси глазом в сторону html/js/css. Современный GUI - это именно они.

Если же кровь из носу нужна десктопная графика, то разбирай Swing. Awt слишком низкоуровнево (Swing на нем и базируется), про FX не скажу ничего хорошего, кроме плохого, Swt, в принципе, ничего, но надо таскать с собой нативные либы. Прости-прощай кроссплатформенность.

Да и если взять Swing, то лучше сразу лабать на Groovy Swing Builder. Еще жручее явы, но хоть программировать можно по-человечески.

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

Просто swing - это generic GUI программинга. Если умеешь его, умеешь за одно принципы гуя любой десктопной технологии, тотже qt, только там язык другой.

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

а лучше вообще на Qt гуй писать (если не приемлешь никаким разом все эти js/css и прочее ребячество) :) Не так сильно оно синтаксисом и понятиями от явы отличается.

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

Swt, в принципе, ничего

Вот только не надо забывать освобождать ресурсы и чистить память, т. к. оно тащит за собой нативные либы. И swt под gtk тот ещё тормоз.

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

unt1tled

а лучше вообще на Qt гуй писать (если не приемлешь никаким разом все эти js/css

Qt это здорово, но хотелось бы что-то погибче в плане мультиплатформы. js/css/html приемлю, 5 лет оттрубил в сфере веб. И да, я под graphical user interface не имел в виду, грубо говоря, виндовс формс; в моем понимании, html-страничка это тоже graphical. В итоге ты предлагаешь jsp или апач подымать?

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

В итоге ты предлагаешь jsp или апач подымать?

интересно, в каком слове из моих постов ты узрел данный замысел?

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

Если учишь просто яву, то лучше коси глазом в сторону html/js/css. Современный GUI - это именно они.

В каком именно виде? Мне все никак не скажут: мне апач подымать или как? :)

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

Embedded Jetty. http://wiki.eclipse.org/Jetty/Tutorial/Jetty_HelloWorld

Апач нужен для CGI скриптов: вызвал скрипт, прочитал STDOUT, отдал пользователю по HTTP. Java в норме так не работает.

Она реализует весь сетевой стек, начиная с сокетов: прием соединения, http-шные финтифлюшки, логика работы, данные сессии/бд, подготовка html, все крутятся в одном процессе, в одной и той же JVM-ке.

Так что каждый раз если меняешь код, то перезапускаешь сервер (в случае embedded - просто перезапуск метода main).

...

Если ссылка пришлась по нраву, то, во-первых нужно уйти от ручного вызова javac/java к сборке maven-ом или gradle, а во-вторых, сразу же поставит IDE: Netbeans или Idea.

Пример maven-проекта: https://gist.github.com/jesperfj/1054400 . Полученый pom.xml можно просто открыть в идее, и проект автоматом импортируется.

Ну и в-третьих, не рубить raw html, а воспользоваться веб-фреймворком по вкусу, например, spark (sinatra-like), или же play (это уже по-хардкорному). Они внутрях, как понимаю, именно Jetty и используют.

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

swing же заменил swt/awt

Бывших свингеров не бывает.

Кто сказал, что я бывший свингер? Вот прям завтра намереваюсь проснуться, опохмелиться и написать софтину на swing. Так что добро пожаловать ;)

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

Просто swing - это generic GUI программинга. Если умеешь его, умеешь за одно принципы гуя любой десктопной технологии, тотже qt, только там язык другой.

И шо, таки WPF и Qt с QML тоже будут понятны после swing?

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

WPF

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

Qt с QML

Qt будет, QML - высер на подобрии NIH. Я лично встречался с этими высеральщиками. В глазах безумие, в мозгах - доллары.

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

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

Настоящие свингеры не пишут, а жёнами меняются

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

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

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

ну мы все равно меняться будем, так что удачи ;)

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

Если есть время, можно попросить тебя стукнуть: в Skype: wenny611; а лучше - в жабу: wenny@exploit.im.

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

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

Тролли - это очень хорошо, часто дело говорят. Так что лучше пости в development, а не general. Там джависты много и часто общаются, вот, например, тоже про веб-технологии:Ruby vs Scala для одиночки или маленькой команды .

Если уж совсем неохота читать троллеж, то можно просто ждать ответов Legioner, vertexua, stevejobs, maxcom. У них компетенция и частота ответов на очень достойном уровне.

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

Да я так и хотел, но описание раздела «программирование и разработка ПО под Linux/Unix» несколько смутило.

WennY
() автор топика

Можно попросить модеров перекинуть топег в девелопмент, с последующим удалением данного поста? Спасибо

WennY
() автор топика

Swing, Eclipse RCP если надо писать здесь и сейчас.

На Java FX оракл сделал ставку, но я не верю в неё. Мертворожденный проект.

Для ГУИ я бы выбрал что-нибудь другое. .NET, если речь про венду, Qt, если речь про линукс или линукс/венда, Cocoa, если речь про OS X.

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

WPF у нас теперь считается за технологию
QML - высер на подобрии NIH

Не осилил, значит не нужно. Твоя логика понятна.

anonymous
()

Если веб, то обязательно spring и его apring-security, spring-mvc и прочее. В толстом энтерпрайзе (а джава именно там и используется) spring практически в каждом проекте есть.
Гуй не так уж плох, кстати. Если написан нормально, то не тормозит и не жрёт особо, а swing с соответствующим look and feel-ом выглядит вполне нативно. Ну и следует учесть, что swing сейчас только фиксят, но не развивают, все силы отданы javafx. Последний вполне пригоден для писания, но непопулярен.
Но если вопрос в окупаемости, то однозначно - spring, java ee и смежный веб, а уж потом - гуй.

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

Ну, в первую очередь я хочу определиться с технологией для своих, сравнительно небольших тулзов; принципиального приоритета нет. Если на десктоп будет в over10 раз проще, быстрее и целесообразнее, то бога ради, скачаю книжку по fx. Но, на сколько я понял, десктоп нафиг не сдался там, где не требуется убийца фотошопа или из этой оперы. Но не откажусь, если карьерный вопрос тоже не обойдешь стороной :)

WennY
() автор топика

Жаба GUI

Swing или что-угодно с общением через пайп.

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

А с чем связан данный феномен?

Феномен? Вроде обычная ситуация, посмотри на GNU/Linux и MS Windows, например.

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

С тем, что он по меркам джавы не так давно появился и пару раз переписывался. В первый раз у javafx был свой декларативный язык, потом в сане убрали этот декларативный язык и писать на нём стало удобнее. После «интеграции в джаву» он поставлялся отдельно от jdk в виде jfxrt.jar и под линуксы выходил на несколько месяцев позже.
В восьмой джаве его, наконец-то, довели до ума в плане интеграции и теперь он должен быть вполне пригоден для гуя.

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

Немного поздно отвечаю.

На Java пишут на Swing, и для своих тулзов тоже. JavaFX сейчас уже тоже пригоден, но раньше был настолько тормозным, глючным и странно устроенным, что заработал плохую репутацию. Теперь реанимировать его тяжело. SWT - притягивание натива за уши без профитов, нету смысла.

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

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

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

Многие советуют смотреть в сторону сервлетов (тот же Jetty), т.е. web-gui. В итоге лучше мокнуться в web или desktop?

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

Если коротко, то в пределах погрешности java desktop не существует

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