Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Java и ее область применения  (Прочитано 38363 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dead Krolik
Участник

ru
Offline Offline
Пол: Мужской

WWW
« : 03-06-2006 12:27 » 

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

Встает вопрос о среде и версионности языка. У меня есть NetBeans+что_там_с_ним_последнее_стабильное_было. Может есть что-то  лучше. И вопрос по поводу версий - я не шибко понимаю, но различие между J2EE и SE всякими они в чем выражаются. Только лишь в предлагаемом наборе компонент и инструментов?
Записан
Hoha
Гость
« Ответ #1 : 04-06-2006 09:07 » 

Основные приложения:

1) Десктоп и апплеты. Программы для "просто юзверей" мало пишутся, т.к. возникает проблема установки (нужно ставить Java-машину, это не всем по силам или просто влом). Поэтому десктопы чаще пишутся под конкретного заказчика. Для большинства таких приложений хватает ядра языка + стандартная библиотека. Это есть SE.

2) Мобильные приложения (телефоны и пр.). Там свой мир, я далек от него и ничего путного сказать не могу. Своя версия платформы (ME). Как я понял, все крутится вокруг оптимизации.

3) Серверные приложения, чаще ориентированные на веб: от простых сайтов на Servlets+JSP до очень серьезных сервисов. Для упрощения разработки таких приложений разработан (и продолжает развиваться, конечно) набор спецификаций и расширений библиотеки. Это EE.

JDK поставить 1.5, т.к. много полезных изменений со времен 1.4. Хотя на работе могут заставить писать и под 1.3 - когда проект старый, например.
Насчет IDE не заморачивайся. Неконкурентные почти все сдохли. Лидеры: Eclipse (бесплатная) и IDEA (платная). Первые несколько программ лучше собрать из командной строки руками. Это сильно помогает понять как работает класслоадер и пр.
Записан
Hoha
Гость
« Ответ #2 : 04-06-2006 09:25 » 

Про источники информации.

java.sun.com - само собой. Куча туториалов, форум на котором сидят гуру. Образцово-показательные (!= лучшие) реализации спецификаций.

jcp.org - здесь основные игроки Java-рынка разрабатывают спецификации вместе с коммьюнити в виде т.н. JSR. Можно посмотреть, куда собираются двигать Java дальше и ознакомится с уже существующими спецфикациями.

Есть еще куча сайтов, ищи в Гугле. Из русских знаю: juga.ru, jug.ru, jugu.ru (последние два почти постоянно лежат Улыбаюсь )

Книжки по языку здесь уже обсуждались несколькими темами ниже.
Записан
Dead Krolik
Участник

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 04-06-2006 16:32 » 

Большое спасибо за внимание к теме. Возник вопрос - почему заказчики требуют создавать десктоп приложения на яве? Только ли из-за переносимости? Можешь ли привести пример веб-сервиса, например апач это сервис? Или я не о том подумал.

Что лучше сначала изучать - десктоп (я так понимаю Swing) или что-то другое? Точнее не так - что прибыльнее и что более востребовано в реальных конторах, пускай даже России.

И нет ли IDE написанной не на яве, ибо много памяти жрут.

Все изменения 1.3, 1.4, 1.5 касаются языка или касаются дополнений и компонент?

Последние два сайта как ты и сказал не фурычат. Первый оч даже интересен.
Записан
Hoha
Гость
« Ответ #4 : 05-06-2006 07:46 » 

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

Самая простая причина - server side написан на Java, логично и клиента писать на ней.

Java проще C++ во всех отношениях, а для подавляющего большинства приложений мощь C++ не требуется. Тем более - найди программиста, который ее может выжать Улыбаюсь. Java vs .Net ищи сам, я в holy wars не участвую.
В Java все стандартизировано (ты это уже понял, если зашел на jcp.org) - одна и та же спецификация исполняется множеством вендоров, есть выбор.
Есть еще фактор разрекламированности, не без этого.

Цитата
Можешь ли привести пример веб-сервиса, например апач это сервис?

Ты про httpd? Это веб-сервер. Кстати, про Apache. Смотри проект Jakarta на apache.org . Апачевская реализация веб-контейнера, например, самая популярная (Tomcat). Как и реализация JSF. Не говоря о Struts, который там родился. + куча полезных библиотек
Пример веб-сервиса - поиск в Гугле. Ты регистрируешься, полученный ключ позволяет твоему приложению пользоваться возможностями поиска на Гугле и т.д.

Цитата
Что лучше сначала изучать - десктоп (я так понимаю Swing) или что-то другое? Точнее не так - что прибыльнее и что более востребовано в реальных конторах, пускай даже России.

Сначала изучай non-GUI Java. Фактически, это SE без мультимедии - Swing'а, звукового API и пр. База, без которой ты просто не сможешь работать. Из не-Java: основы баз данных (терминология, SQL, простенькое проектирование), XML (и, особенно, XSLT-преобразования).

Потом думай сам Улыбаюсь. Если ты занимался вебом и тебе интересно продолжать, смотри на веб-приложения EE. Копай в сторону Servlets, JSP, JSTL, Struts, JSF.

Насчет денег, больше все равно платят DBA, так что Java не при делах Улыбаюсь .

Цитата
И нет ли IDE написанной не на яве, ибо много памяти жрут.

Апгрейди машину.

Цитата
Все изменения 1.3, 1.4, 1.5 касаются языка или касаются дополнений и компонент?

Новое вносится в библиотеку в каждой версии. Из остального - в 1.4 появилась новая машина HotSpot, которая сильно быстрей старой. В 1.5 много дополнений на уровне языка - generics, аннотации, продвинутый for для итерации по коллекциям и т.п.
« Последнее редактирование: 19-12-2007 21:28 от Алексей1153++ » Записан
Dead Krolik
Участник

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 05-06-2006 18:01 » 

>Java vs .Net ищи сам, я в holy wars не участвую.
Ну дык если я спрашиваю про яву, то я уже все решил для себя. Ява мне кажется перспективнее, при том что ни о том ни об этом я мало что знаю. Но тот факт, что мелкософт второй уже многое решает.

Про сервисы я так и думал, в принципе. Просто я чета не представляю что это так мега распространено. Это может просто слово такое умное "веб-сервис", а по сути унифицированный протокол, обычный listen в сокете, отдача и прием данных.

>Если ты занимался вебом и тебе интересно продолжать, смотри на веб-приложения EE.
Ннет. PHP вполне подходит для этой цели. Зачем туда прицепили яву я не представляю (только лишь ради того, что бы показать как она могуча?).

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

P.S.Что есть "DBA", пару слов скажи, что бы легче в гугле было ориентироваться.
P.P.S. И я все-таки пытаюсь вытянуть, хоть какой-то пример, на котором можно потренироваться Улыбаюсь
Записан
Hoha
Гость
« Ответ #6 : 06-06-2006 08:33 » 

Про сервисы я так и думал, в принципе. Просто я чета не представляю что это так мега распространено. Это может просто слово такое умное "веб-сервис", а по сути унифицированный протокол, обычный listen в сокете, отдача и прием данных.

http://www.soaprpc.com/faq.html#q1
http://java.sun.com/javaee/5/docs/tutorial/doc/ , глава про веб-сервисы

Цитата
Ннет. PHP вполне подходит для этой цели. Зачем туда прицепили яву я не представляю (только лишь ради того, что бы показать как она могуча?).

http://java.sun.com/javaee/5/docs/tutorial/doc/ , глава про веб-приложения

Цитата
P.S.Что есть "DBA", пару слов скажи, что бы легче в гугле было ориентироваться.

http://en.wikipedia.org/wiki/Database_administrator

Цитата
P.P.S. И я все-таки пытаюсь вытянуть, хоть какой-то пример, на котором можно потренироваться Улыбаюсь

Эмм, ну "hello world" напиши Улыбаюсь.
Записан
Serega
Гость
« Ответ #7 : 06-06-2006 08:47 » 

Что такое веб сервисы и как с ними работать очень советую узнать
На мой взгляд лучше всего начать разведку боем:
идем в гугл и набираем "google web service", получаем страничку с кучей линков о том что такое гугловские веб сервисы, что позволяют делать и как ими пользоваться
не интересен посковик гугла, набираем допустим "amazon web service" или "google maps web service" или "yahoo web service" (принцип думаю ясен) и получаем инфу о том, как можно пользоваться многими сервисами не бродя по страничкам, а создав свою гую (а может и не только гую).

Более простого интерфейса к веб сервисам чем в .NET я не видел, но в яве должно быть тоже не слишком сложно

PHP конечно круто, пожалуй единственный LAMP язык достойный уважения разработчика обьекто-ориентированных приложений, НО он как и любой другой язык из LAMP подходит только для ограниченного набора приложений
в первую очередь это приложения где практически всё состояние хранится в БД и вся информация для генерации страниц может быть получена с помощью запросов к БД, в этом случае PHP рулит, но дело в том что веб не ограничивается этим классом приложений
есть различные виды приложений которые используют информацию из разних источников (например другие приложения), соединенных очень разными типами соединений (TCP/IP, CORBA, Web Services, RMI, .NET Remoting), для таких приложений у PHP просто напросто нет того бэкенда, который есть у Java или .NET
есть также приложения, активно использующие в своей работе бизнес транзакции, которые не могут быть смоделированы с помощью транзакций БД, обычно таким приложениям также требуется гибкая политика управления доступом к сервисам, PHP с такими требованиями никак не справиться, тут на помошь и приходит бэкенд в виде сервисов управления транзакциями (JTA в Java) и контейнеров приложений с поддержкой политик безопасности

Думаю не стоит начинать с чего-то сложного вроде изучения работы контейнеров J2EE,
для начала стоит пописать немного простеньких консольных приложений чтобы разобраться с синтаксисом языка, стандартной библиотекой (алгоритмы, коллекции и т.п.), сборкой и запуском приложений (обязательно узнай как пользоваться ANT(nANT) [и Maven]), выбрать IDE (Java - IntelliJ Idea или Eclipse, .NET - Visual Studio 2005 + ReSharper)

а дальше тебе решать что делать:
можно взятся за окошки (Java - Swing, .NET - WinForms)
или делать веб гую (Java - JSP(Struts), JSF(MyFaces,Shale), .NET - ASP.NET)
поиграться с веб сервисами (Java - AXIS, в .NET встроена поддержка веб сервисов)
очень полезно научиться рабоать с БД (Java - JDBC, Hibernate, .NET - ADO.NET)
а там дело само дойдет до контейнеров и всего остального.

IMHO Java vs .NET:
Java круто потому что спецификации есть чуть ли не все случаи жизни (конечно преувеличиваю) и самое главное - есть Jakarta, JBoss и т.п. (сайт Jakarta надо обязательно изучить если будешь писать что-то серьезное на Java, там очень многие стандартные вещи уже написаны).
.NET круто потому что это продукт MS - очень тесно интегрирован c Windows и вообще всеми продуктами MS (особенно приятна интеграция с COM, что позволят писать различные плагины и примочки ко множеству виндовых программ).
Записан
Serega
Гость
« Ответ #8 : 06-06-2006 09:01 » 

если нужна задачка для раздумий - глянь http://www.touchgraph.com/TGGoogleBrowser.html

можно много узнать на основе анализа результатов поиска googl или amazon,
а получить эти данные с помощью веб сервисов проще простого
Записан
Dead Krolik
Участник

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 06-06-2006 17:11 » 

О, скока написали

Hoha
>Эмм, ну "hello world" напиши
Уже написал, пока не шибко понял что там делать с package, думаю дело времени. Даже трэды потрогал. Мега вещь, когда трэды встроены в язык, я даже подумал сколько времени я бы потратил на такое консольное приложение, вспоминал какие параметры у CreateThread() а если захотел запустить в линуксе так pthread_create(), тока пока не понял как их синхронизовать, но думаю разберусь.

О веб-сервисах теперь знаю больше, значительно больше.

Serega
Пасиб, записал на бумажку, буду мучить.

Ну если будут дополнения по методологии, то с удовольствием выслушаю.
Записан
infinity
Гость
« Ответ #10 : 08-01-2009 20:03 » 

А у меня тут возникла проблема с выбором темы на дипломную работу. Хотелось бы что-то сделать на java (EE\SE). Но суть проблемы в том, что я, чесно говоря, не совсем представляю какие именно задачи решаются с помощью этого языка. В этом топике вроде как в общем можно понять что к чему ..... но все равно мало конкретности. В общем, профи, что можете подсоветовать, какую прогу можно написать для фирмочки .... если в качестве базы есть средних размеров строительная фирма, в которой из ПО установлены только автокад, 1С и АВК, и нет своего сайта.
Записан
ObamaBarak
Гость
« Ответ #11 : 08-01-2009 22:40 » 

Dead Krolik, есть три вида JAVA программ: апплеты, мидлеты и сервлеты. Под ПК, сотовый и сервер, соответствено. Основано все на ООП. Используешь методы классов, стандартных и не очень стандартных библиотек. Так, в целом не сложно.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 08-01-2009 22:45 » 

ObamaBarak, посматривай на дату - 2.5 года прошло...

infinity, ничего не понятно. Можно вопросы поконкретней задать?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
infinity
Гость
« Ответ #13 : 09-01-2009 01:21 » 

ObamaBarak, посматривай на дату - 2.5 года прошло...

infinity, ничего не понятно. Можно вопросы поконкретней задать?
[/quote]

Можно и поконкретней. Скоро надо будет писать диплом. Темы нет (и не будет). Известно лишь, что в дипломе должна быть рабочая программа, которая коим-то образом облегчает жизнь предприятию. А теперь суть проблемы - я никак не могу придумать что моя программа будет делать. И поэтому решила поспрашивать у тех, кто реально занимается написанием прог для предприятий - может подскажете, что можно выбрать, чтоб не было слишком сложно, но и соотвествовало уровню (диплом). Я понимаю, что наверное как правило делают заказы на сложные и большие программы ...... но  .... может у кого-то есть какие-то идейки ..... . Просто мне вообще в голову ничего не приходит.
(на всякий случай уточню - речь идет не о коде программы, интересует сама идея, т.е. задачи программы)
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 09-01-2009 05:28 » 

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

P.S.: Не стоит стремиться сделать в дипломе что-то очень нужное и полезное - вероятность его внедрения стремится к 0. Это шанс по тренироваться. Просто выбери, обоснуй, зачем это надо, спроектируй и сделай.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
infinity
Гость
« Ответ #15 : 09-01-2009 09:45 » 

Да, есть. Строительная фирма. из ПО установлены 1с автокад и АВК. Выделенного сервера нету, просто хаб с модемом соединен (но если надо, можно будет организовать) . Есть локалка. До 20-ти компов.

Т.е. суть моего вопроса в принципе тоже самое что и у автора этого топика - область применения джава. Понятно что это язык программирования, и на нем можно писать программы от калькулятора и до ........ Но ведь у каждого языка своя особенность. Почему-то те, кто заказывает программы на джаве, несмотря на медлительность выбирают именно этот язык ....... т.е. я так понимаю, у него есть своя ниша. Т.е. если я для диплома выберу какую-то примочку например для отдела снабжения какая-то прога по складу (хотя зачем, если есть 1с) - то возникает логический вопрос, почему я не написала это на С++ (ведь быстрее) ........... вот я и хочу узнать ..... какие именно проги на джаве пишутся как правило на практике (это раз) .... и что из этих задач можно выбрать мне (ну, чтоб не сильно сложно было)
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 09-01-2009 10:11 » 

infinity, выбор языка обосновывают обычно:
1. Я его лучше знаю.
2. Требование заказчика/работодателя.
3. Необходимость стыковки со сторонним ПО, имеющим ограниченную по языкам поддержку.
4. Доступность и правомерность использования среды разработки.
5. Так звезды сложились...

Java имеет, на мой взгляд, два основных достоинства: кроссплатформенность (если не использовать JNI) и строгость самого языка. Сам я не любитель строгости и на Java не программирую.

Кстати, скорость - не главное в офисной/складской программе.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
ObamaBarak
Гость
« Ответ #17 : 09-01-2009 19:38 » new

infinity, тебе надо начать с того, что ты поймешь работу всей фирмы по направлениям. Например: отдел проектирования (архитекторы, дизайнеры), отдел внедрения (технологи, архитекторы), финансовый отдел (сметчики), отдел маркетинга и рекламы (дизайнеры, полиграфисты), менеджеры, отдел реализации (прорабы, бригадиры, каменьщики, сварщики и т.д.), бухгалтерия, отдел кадров. Посмотри, какая есть рутина (оборот документов, например). Автоматизируй это с помощью твоей программы. То есть пересылка документов из одного отдела в другой по сети.
Улыбаюсь
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines