LINUX.ORG.RU

Где целесообразно использовать java?

 


0

1

Решил изучить новый ЯП, выбрал java. Погуглил, узнал что она используется при написании мобильных приложений, для десктопных программ и для web. С мобилами все понятно (привет, ведроид), а про последние два где можно подробнее узнать? В каких случаях нужно писать на java и какие для этого есть технологии? Где, так сказать, ниша жабы и какие ЯП способны с ней там конкурировать?

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

Не лучше и не хуже, если весь вместе.

Java состоит из стандартов, которые написаны на бумаге. И для каждого есть набор реализаций, подставляешь любой из них без проблем (ой, и отгребаешь от маленьких нюансов). В итоге - приложение франкенштейн из частей склеенных скотчем. С другой стороны больше выбора, фич, шире экосистема, больше открытых разработок. В .NET стандарты для галочки чтобы никто не ругал Майкрософт, но да, .NET == Microsoft, он твой лучший друг, ты с 95% вероятностью будешь писать код на Windows, ASP .NET MVC, Entity Framework, C# в Visual Studio, точка.

Почти однозначно C# лучше Java как язык, во многом CLR лучше JVM. Но рожденный ползать летать не может. JVM работает нативно, с официальной реализацией на тех ОС, на которых любой вменяемый человек будет строить сервер. Мир Java в разы шире и мощнее того что есть для .NET. В .NET ты будешь радоваться что у тебя есть var, в Java ты будешь радоваться поддержке кучи облаков, всяких eventual consistent баз данных и тонн мощных ORM фреймворков.

Разработка на Java более стрессовая. Франкенштейны трещат по швам, их надо конфигурировать и писать горы файлов. Эдакий Exception driven development. Очень злит. Когда все завел, то обычно проект более вменяемый.

.NET лучше для разработки десктопа для Windows, вообщем только на нем будет нативный user experience. И да, XNA, этим все сказано

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

Они могут быть однобокие, так как я Java/Scala-программист, хотя и отношение к .NET положительное. У меня очень отрицательное отношение к .NETчикам у которых ваш вопрос вызывает обсуждение только синтаксиса языка, так как действительно - синтаксис Java значительно более убог по сравнению с C#. А потом как то магическим образом оказывается что Java проекты проще поддерживать и экосистема более мощная.

Работал чуть больше года на .NET, но пару лет назад, перешел на Java. Спросите .NETчиков, у которых это основная работа, но на сравнение уровня var/лямбды, просто в рамках синтаксиса, не ведитесь.

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

Не работает, [ user]vertexua[ /user], только без пробелов

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

Хренасдва ты поднимешь эти книги без знания элементарной математики.

anonymous
()

Как уже сказал vertexua - суровый энтерпрайз. Из лично известного - системы управления документооборотом, системы управления и мониторинга в телекоме(сам честно пока не очень разобрался, с этим работает компания NetCracker, откуда и знаю). Вроде бы как в embedded средах используется, стоит только вспомнить Jazell, которая сопроцессор на ARM и для нативного исполнения Java-байткода.

Язык странный и тяжкий, если учил плюсы - будешь много материться(сужу по одногруппникам, тупят-с). Его плюсом является отсутствие Undefined Behaviour. По крайней мере декларируемое отсутствие. Есть много удивительных с точки зрения плюсовика вещей(int i = 5; i = ++i + ++i; Что будет?) да и вообще странностей(short x1 =3; short x2 = 3; short x3 = x1+x2; что получится?) но на мой взгляд язык достаточно интересный и удобный.

Тех кто советует учить Scala, Clojure и не учить Java... Хм... Ребят, вы бы еще советовали выучить дискретку не уча алгебру в школе... Java в первую очередь платформа. И для изучения этой платформы подходить именно язык Java.

Для десктопа ничего посоветовать не могу. Для веба - начни с Servlet, JSP, JDBC, да и вообще спокойно можешь читать JavaEE6 Tutorial. Ну или Spring References manual. Ну или что найдешь. Мобильные телефоны - ну помимо андроида много что хорошего есть. Встраиваемые системы - опять таки не подскажу, но вроде был проект реализации хардварного java-процессора под ПЛИС.

P.S.: Мне язык нравится. Мало есть шероховатостей. И да - как по мне, он почти универсален с точки зрения стеков технологий.

TheKnight ★★★
()

Написать на жабке сайт?

trex6 ★★★★★
()

Единственное, что видел годного для десктопа на яве, это биндинги java-gnome. Запуск, латенси не отличимы от нативного гтк (l&f, разумеется тоже), память ест очень экономно (голое окно, например, в два раза меньше свинга). Но это на хеллоуворлдах, серьезных приложений на нем не нашел. Ну и, опять же, оно будет прибито гвоздями к линуксу. Все остальное: ГОВНО! ГОВНО! ГОВНО!111 никогда даже не пытайся что-то сделать для десктопа на чисто явовских гуи-фреймворках, не надо мучать пользователей, любой разумный человек выкинет твое говно сразу же, как только появится хоть какая-то альтернатива хоть на чем.

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

это биндинги java-gnome

Кстати да, работают вроде годно. Надо глянуть есть ли че для Gtk 3

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

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

vertexua ★★★★★
()

Если хочется десктопы на Linux и Windows - то Qt (OS X тоже как бы есть, но будет смотреться убого), если только Win - то C#, если OS X - ObjC + Cocoa. Еще PyQT есть - на нем тоже много написали.

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

Гуй присутствует

Java

Пошутил так пошутил.

Deleted
()

В ентерпрайзе. Если связался с жабой, дуй в EE

vasily_pupkin ★★★★★
()

BigData, LowLatency (в разумных приделах) - явка тут рулит. Короче хардкорное серверное программирование под серьезные юниксовые системы.

dizza ★★★★★
()

На мобильных телефонах, ну типа Java игры там, вся фигня, для детей.

какие ЯП способны с ней там конкурировать?

Все нативные.

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

Есть же ещё какой-то qt-jambi. К сожалению, его не щупал.

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

А что для тебя ресурсы? Суровый realtime писать сложно, как мне кажется. С точки зрения решения сложных алгоритмических задач - один из топ-участников topcoder писал на Java.

По памяти.. Учти, что есть GC, JIT и так далее. В связи с этим накладные расходы на память увеличиваются, но при этом появляется ряд плюшек, которые как по мне оправдывают это. Включая полуавтоматическое управление памятью(на уровне пожеланий GC), профилирование на лету(да да, я про JIT) и безопасность(как минимум на уровне выхода за пределы массива).

Что касается скорости... Обычно хватает, там где не хватает, чаще всего достаточно включить голову - и начнет хватать. На крайняк можно написать на C. И так далее. «Premature optimization is the root of evil».

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

ох лол язык как программирования можно с 6 лет изучать.

а если есть возможность то и раньше.

язык(иностраный) - говорением.

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

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

ничто не мешает самостоятельно открывать теорему пифагора.

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

+много.

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

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

Вроде бы как в embedded средах используется, стоит только вспомнить Jazell, которая сопроцессор на ARM и для нативного исполнения Java-байткода.

Неверно. Jazelle - не «сопроцессор», а расширенный набор инструкций в ARM. Для полностью нативного исполнения не годится, но позволяет ускорить работу JVM.

Встраиваемые системы - опять таки не подскажу, но вроде был проект реализации хардварного java-процессора под ПЛИС.

Их есть десятки, вообще-то. Но если говорить про встраиваемые системы, то скорее уж стоит JavaCard упомянуть.

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

ох лол язык как программирования можно с 6 лет изучать.

Можно. Но не нужно. Программировать такой человек потом будет очень паршиво.

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

Представил ядро со 100500 драйверами, Xы, DE и браузер на Java. Представил как на операцию над 8 байтами создают ByteBuffer из куска большого ByteBuffer, потом пишут через put.

NOOOOOOO

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

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

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

Да кто бы спорил. Только это не изменяет того факта, что с кроссплатформенностью у java плохо.

anonymous
()

а про последние два где можно подробнее узнать?

Энтерпрайз. Java хороша не своими возможностями, а своей простотой и дружелюбностью, из-за чего ее полюбил энтерпрайз. Причем полюбил — это слабо сказано =)

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

зря тебя алфавиту научили когде тебе 10 лет ещё небыло.

в твоём случае только после срочной . в 20 лет узнал бы много нового.

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

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

а вот то что люди которые прогали только на джава - это печально ибо часто не понимают (просто не нужно было для генерирования продакшенквелити кода) что делает под капотом jvm что бы безболезнено возвращать из функции локальный обьект .

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

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

Ну, я в embedded разбираюсь чуть лучше чем никак. Если не чуть хуже.

А вообще да, как то я забыл про SIM-карты...

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

Ну вроде как понимание работы GC, JVM и так далее требуется на некоторых должностях... Причем нормальное понимание, а не «У нас есть GC, он убирает мусор и можно вообще особо не думать». Может я конечно идеализирую...

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

Читай «Конкретную математику» Кнута, читай Фихтенгольца.

выбросить фихта, взять зорича.

ymn ★★★★★
()

Java для энтерпрайза. Типа такого: http://habrahabr.ru/post/172119/

Это не язык одиночек или маленьких команд, Java - язык толпы.

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

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

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

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

Нанотехнологии. ИТ-пирог уже поделён, там денег нет.

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

spring (и 100500 модулей), hibernate, java ee (много и сразу), maven, технологии тестирования и ты 23-летний сениор (мем ДОУ)

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

Да кто бы спорил. Только это не изменяет того факта, что с кроссплатформенностью у java плохо.

У тебя нетрадиционное понимание кроссплатформенности.

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

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

попилы и откаты. Можешь с помощью Java, а то с php могут и не заплатить. В принципе, Brain Fuck ещё лучше, но писать на нём сложнее. Java хороша тем, что освоить её не сложнее php, и у неё нет такого отрицательного мнения в среде околоITшных ГСМов.

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