LINUX.ORG.RU

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

 


0

1

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

★★

суровый ынтырпрайз же

anonymous
()

Где, так сказать, ниша жабы

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

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

Всякие i2p, freenet и другие скрытосети на ней написаны.

vurdalak ★★★★★
()

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

anonymous
()

Очень много жырного ынтырпрайза на ней.

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

Десктоп-клиенты банков для электронных рассчетов

pylin ★★★★★
()

прикладное ПО под Android

wota ★★
()

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

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

Legioner ★★★★★
()

Банки, стиральные машины, утюги. Энтерпрайз и эмбеддед, хотя некоторые засранцы тащат её на десктопы. Как я. :3

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

Надо падаваном устроиться

Как думаешь, в 15 лет возьмут куда-нибудь?

Или ты без практики учиться собрался?!?

Можно сделать свой небольшой проект для практики.

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

В 15 лет рано учить Java в частности и программирование вообще. Учить надо инглиш (пока еще легко, потом в разы труднее станет), и математику, дабы в приличный вуз поступить.

А на «своих небольших проектах» ты энтерпрайз-программирование никогда не осилишь, только дурацких привычек наберешь.

anonymous
()

Всякий инди-геймдев любит жаву (см. libgdx и jmonkeyengine).

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

Таки почему? Гуй присутствует, jvm установить не сложно.

Как вы сделаете поддержку global menu, drag&drop и системных тем оформления? Как вы будете использовать системные библиотеки, или откажетесь от их использования?

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

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

Эклипс это специализированный софт, под десктопом я подразумеваю программы общего назначения. Календарь менструаций, например, и прочие полезные всем приложения. Ты еще какой-нибудь oracle enterprise manager в пример приведи.

Legioner ★★★★★
()

Подботай Java, недельку Haskell (чтобы начать чувстовать ФП), а потом учи Scala. На данный момент это очень перспективный язык. Функциональщина в java 8 во многом благодаря его влиянию появилась.

А pure-java-related технологии во многом избыточны и тяжеловесны, имхо.

Сам прогаю в основном на C++ и ruby/rails.

mr_ffloyd
()

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

Где джаву не использовать:

  • приложения среднего и малого размера на десктопе. Оверхед на Java не окупается. Плюс GUI тулкиты - не идеал. Если тебе надо гуй на Windows, то нет малейшего смысла выбрать что-то кроме .NET
  • приложения со сложной графикой, но не OpenGL. Java2D тяжеловата для анимации. OpenGL зато работает как часы
  • приложения с большой кучей и без костылей - привет Full GC на полчаса. Есть костыли в виде Off Heap хранилищ
  • если нужно много сложных трансформаций данных, тогда JVM все еще катит, но Java как язык - нет. Groovy, Scala, Clojure. JRuby, Jython наконец. Или вообще C# - отличный язык.

Еще она адски жрет память на каждый чих. Работают байткоды JVM очень быстро. Операция new за амортизированный O(1), не хило? Но активная и большая сборка мусора может вызыват тормоза. Тормозит в тех случаях если выжирание памяти а) не получается, б) уходит в своппинг в) приводит к частым сборками мусора.

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

Как будто их можно изучить не понимая ничего в Java

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

В 15 лет не рано! Я в 7 с бейсика начал.

И почему ты думаешь, что из тебя что-то стоящее вышло? Практика показывает, что таких, в 7 лет начинавших, проще придушить чем переучить по-человечески. Люди, учившиеся программировать до того, как натренируют мозги математикой, получаются на редкость отстойными и убогими программистами.

А английский сам подтянулся,

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

в процессе познания паскаля, а затем плюсов.

Вот уж что точно никак не поможет в изучении инглиша. Или он у тебя подтянулся до уровня «which watch? six watch!»?

anonymous
()

Мне кажется сейчас Scala перспективнее учить. Хотя если опыт программирования мал, то Java будет намного проще.

Используется в Web, Android, ынтырпрайзе (т.е. где много быдлокода из разных источников, который нужно соединить вместе).

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

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

Математику мне натренировало обучение в СУНЦ'е и МФТИ. И олимпиадное программирование. Из моих ровесников наиболее сильные программисты - те кто постигал алгоритимическое мышление в раннем возрасте. В 15 лет некоторые из них уже умели прогать дейкстру за O(m log n). Это очень большой плюс, потому что надо _чувствовать_ как твоя программа работает, а это приходит с опытом. И юном возрасте получить этот скилл легче.

В процессе познания прочих языков быстро пришло осознание убогости рунета и сами по себе начали читаться англоязычные статьи. Был _стимул_ изучать язык. Так как я его _использовал на практике_.

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

Есть случай отсутсвия нормальной самокритики и ориетации на сообщество (Бабушкин, Попов) - это отдельный диагноз. А тот кто чувствует как его код _дышит_ - тот быстрее поймет суть паттернов проектирования, внутреннего устройства фреймворков.

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

Scala

Android

Если сможешь пройти через шаткий путь компиляциии

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

Кроссплатформенность? У явы? Не смешите. Сейчас даже С/С++ кроссплатформеннее явы. Если я хочу, чтобы софт работал, например, под android и iOS, мне придется брать или C++(ибо NDK и Objective-C++) или какой-нибудь C#(mono).

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

Для нормальной практики работы со scala и clojure знание java все равно нужно.

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

libgdx (java) работает под iOS. На данный момент компилируется через monotouch, позже планируется использовать robovm.

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

Стоящий я программист или нет - я сужу по отзывам коллег.

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

Математику мне натренировало обучение в СУНЦ'е и МФТИ.

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

Был _стимул_ изучать язык. Так как я его _использовал на практике_.

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

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

«Сначала матан заботай» - не старперство, а практика. Те, кто не заботал, потом банально не поддаются лечению.

А тот кто чувствует как его код _дышит_

Ага, вот именно это и не лечится. Такие люди в принципе не способны к абстрактному мышлению.

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

Я слишком поздно заметил, что ты anonymous. Пойду учиться на токаря. Ведь я еще не вижу в токарном станке «душу» и не чувсвтую как им надо управлять.

mr_ffloyd
()

Насоветуйте кстати годных книг по математике. Чтобы школьный уровень повторить.

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

В iOS работает только то, что хочет apple и тут ничего не сделать. Была бы открытая платформа, были бы программы на Java.

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

Он более ООП'шнутый чем python. Там можно написать 1.to_s - что вернет «1». А 1.class вернет Fixnum. Вторая его основа - это метапрограммирование, за счет него строят магию которая делает код более компактным и читаемым. Правда код самой «магии» первое время выглядит тарабарщиной =) Третья его основа - это ситаксис приближенный к естественным языкам. Он гораздо более человечен, чем Java или C++.

http://www.codeschool.com/courses/try-ruby - лучше сам попробуй =) В общем - приятный язык, с приятными инстументами и приятным сообществом.

Минусы - используется в основном в вебе (rails, chef, capistrano) и server-scripting. Недавно завоевал iOS (проект RubyMotion). Отлично обитает в linux и OS X. С виндой дружит, но проблемы с библиотеками могут возникнуть (особенно если в них есть native code).

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

Перед тем как учить ruby необходимо прочитать вот эту статью Ментальный вирус

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

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

Чтобы школьный уровень повторить.

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

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

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