LINUX.ORG.RU

Программирование на Java в Linux под Windows

 , , , ,


0

1

Уже спрашивал, но про C++. Предвидя вопросы, уже погуглил, но все так же абстрактные мнения о вакууме в районе 2000 лет до нашей эры.

Пришла мысля - учить Java. Самый популярный и востребованный, да, и, вроде как мне понравился. Но так как Java кроссплатформенная, значит, можно писать и в Linux на другие ОС? Вот хотелось бы узнать, обязательны ли «платформозависимые» вызовы или API? Нет ли различий в программировании на Java в этих системах (Linux, Win)?

И, наконец, уж очень глупый вопрос... Можно ли выучить Java в полном объеме на Linux? Будут ли эти знания платформозависимы?..

Очень прошу помочь, уважаемые!



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

Можно ли выучить Java в полном объеме на Linux?

Да

Будут ли эти знания платформозависимы?..

Нет. Или <1%

vertexua ★★★★★
()

Не видел и не слышал от знакомых джавистов, про проекты декстопных приложений на java. Java - в основном ентерпрайз(слой базы, слой сервисом, слой веба). Следовательно все ок будет под линуксом и пользлваться всякихи гитами, мавенами и томкатами более удобно чем под виндой, ихмо. Следовательно под линукс как по мне удобнее. IDE, имхо, IDEA.

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

Не видел и не слышал от знакомых джавистов, про проекты декстопных приложений на java

Их полно. В основном не потому что это очень хорошая идея (это НЕ хорошая идея с технической точки зрения обычно), а из-за того, что в Java проектах внезапно - Java разработчики и хочется команду взаимозаменяемых разработчиков.

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

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

Встречаются иногда, первые же вспомнившиеся примеры - JDownloader и Eclipse. И на, именно на десктопных бывает делают платформозависимые фишки, но этого обычно мало. А вообще, наверное, чаще всего какая-никакая платформозависимость обусловлена GUI-библиотеками.

orm-i-auga ★★★★★
()
Ответ на: комментарий от orm-i-auga

платформозависимость обусловлена GUI-библиотеками

Eclipse

Редкий случай, никому нормальному в голову больше не придет писать на SWT

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

Думаю внешний вид - дело субьективное, лично мне эклипс не нравится. Но тащить натив в java приложение, при том что обещания от скорости и легковесности по сравнению со Swing похоже не совсем правдивы. Тот же java-gnome явно очень легковесный

vertexua ★★★★★
()

Но так как Java кроссплатформенная, значит, можно писать и в Linux на другие ОС?

Если оставаться в рамках кроссплатформенного API, то можно.

Вот хотелось бы узнать, обязательны ли «платформозависимые» вызовы или API?

Не обязательны, если у тебя обычные потребности.

Нет ли различий в программировании на Java в этих системах (Linux, Win)?

Если оставаться в рамках кроссплатформенного API, то различий практически нет.

И, наконец, уж очень глупый вопрос... Можно ли выучить Java в полном объеме на Linux? Будут ли эти знания платформозависимы?..

Можно.

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

нормальному в голову больше не придет писать на SWT

А я, вот, и являюсь таким ненормальным начинающим Java-разрабом, пилящим в данный момент времени SWT.

Менять на AWT, пока не поздно? Или чо?

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

Не слушай ты форумных троллей :)

SWT хорош тем, что там многие контролы нативные, а ненативные лежат в custom. Хотя идиосинкразии SWT порой надоедают.

dave ★★★★★
()

По работе встала задача. Долго выбирал инструментарий посматривал на С++ (главным образом из-за GUI), ориентируясь на знание Си.

В итоге пишу проект на Джава. Одновременно вкуривая.

Волнуют пока что вот такое: в маштабах предприятия продукт вроде как нужен. И по идее его, по мере готовности, стоило бы интегрировать в существующую ИС. Благо АПИ имеется (гуглил специально).

Ну так вот. Является ли выбор инструментария и ЯП достаточно оптимальным. В том смысле, что я-то в своём коде разберусь. Если что.

Deleted
()

обязательны ли «платформозависимые» вызовы или API?

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

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

Не видел и не слышал от знакомых джавистов, про проекты декстопных приложений на java

JavaFX 2 многообещающе выглядит. Написал на нем несложную десктопную учетную программу - для явы очень шустро работает и писать довольно приятно (хотя недопиленных деталей до сих пор много).

ovk48 ★★★
()

если это java2ee и это чисто веб-приложение, то без разницы, виндового(да и линуксового) апи там не будет в 90% случаев. но в конторах(если ты конечно не уйдёшь в фриланс) в основном на корпоративных компах винда, ну это тоже, смотря какая контора. я джаву учила только на линуксах

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

Когда начинаю сомневаться в SWT, то я обычно вспоминаю об Azureus (Vuze) и AnyLogic (российская визуальная система имитационного моделирования, да она позволяет делать аплеты, но сама среда, судя по всему, на SWT).

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

Я вот как раз-таки про венду в офисах :( А фриланс... Кажется, тестирование все равно лучше на винде. Хоть виртуалка.

Ждем банкротства Некро$офта :D

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

Можно ли выучить Java в полном объеме на Linux? Будут ли эти знания платформозависимы?..

ТС, тебе про JNI уже говорили? Если нет, то скажу я: не трогаешь JNI - весь код платформонезависимый, если я правильно понял. Тронул (или даже потыкал) JNI - получил на нем платформозависимый кусок.

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

При этом код споткнется на ENOFILE, а не на сегфолте или какой-нить хренотени, а ля «NoSuchMethodException». Т.е. платформонезависимость декларативно осталась.

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

На сегфолте код не споткнётся в любом случае, если в джаве нет багов. А будет это FileNotFoundException или NoSuchMethodException, конечному пользователю разницы нет, он не поймёт ни то ни другое.

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

JavaFX... ...Написал на нем несложную десктопную учетную программу

База внешняя, встроенная или вообще не хранишь данные?
Тоже типа этого сейчас пишу. Но у меня ТЗ с аналитикой, далеко не примитивной. Поэтому без базы никак. Вопрос только, в какой.

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

Ну если сегфолт будет во внешней библиотеке, то да. Но я так понимаю, предполагается, что программа на Java пытается подключить внешнюю DLL, а её на платформе просто нет, тогда segfault-а не будет.

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

если ты конечно не уйдёшь в фриланс

Во фрилансах тоже под венду, бывает, нужно.

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

российская визуальная система имитационного моделирования

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

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

А будет это FileNotFoundException или NoSuchMethodException, конечному пользователю разницы нет, он не поймёт ни то ни другое.

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

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

На джаве можно так наговнокодить, что будет работать только в конкретной JVM, таких нужно лечить током

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

Hibernate

Спасибо, понял уже. Я слегка неофит в джаве.

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

Хороший пример - IDE. Тормозить будет все равно, просто из-за сложных алгоритмов,

Может Вы даже и правы, но это - нехорошая мысль. Меня, например, ужасно бесят тормоза в IDE (особенно NetBeans/Eclipse/IDEA).

GUI надо писать на Qt.

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

В качестве бонуса она еще работает быстрее какого-то MySQL из-за того что встроенная. Особенно на быдлохостингах до $10 в месяц. Меня в свое время только она там и выручила, приложение стало летать, до сих пор как часы работает

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

При том что JNI обычно не нужне кроме встраивания браузера, видеоплеера или OpenGL графики. Ну и для всяких Off-heap без sun.misc.Unsafe

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

По идее SWT должне быть лучше Swing своей скоростью и легковесностью. Так нет же, тормозит прекрасно. Еще он должен быть красивее, так как нативно использует тему системы, но нет же, Eclipse - наиболее уродливое и глючное приложение которое терпела матушка-Земля. При всем этом IDEA быстро работает и хорошо выглядит. NetBeans только хорошо выглядит ;)

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

Как это странно ни звучит, но Eclipse не показатель. Судя по всему, они там используют много своих самописных компонент, которые, конечно, строятся на основе нативных, но там много «своей» графики и обработки. Этим, кстати, грешит JFace. Если же использовать только минимум SWT, то вроде бы все нормально. Выглядит лучше, чем Swing.

По поводу IDEA и NetBeans, у меня глаз быстро замечает, что это Swing. На винде еще терпимо, а вот на линуксе плохо. Не знаю, как на маках.

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

Ну диспетчер задач выдает 120 Мб, а всякими визуалвмами не смотрел :)

ovk48 ★★★
()

Java - это кроссплатформенный язык, какая разница, где его учить? Различий нет, практически. Вот если под Андроид, то это другая история

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

Java – write once, debug everywhere.

Гугл давно уничтожил это

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

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

IDE, имхо, IDEA

дважды плюсую

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