Интересные и полезные программы на java
Частый вопрос среди тех, кто только собирается изучать программирование и вот-вот сделает выбор в пользу Java — где и как можно использовать этот язык? Общая фраза “где угодно” вряд ли удовлетворит интерес. Поэтому предлагаем посмотреть на рейтинг Java среди других языков программирования, его преимущества и основные сферы применения.
Место Java среди других ЯП
Сначала немного истории. Java появилась 24 лет назад как ответ на потребность в платформенно независимом языке. Иными словами, языке для создания ПО, которое встраивается в любые девайсы: стационарные ПК, бытовые приборы, а впоследствии и мобильные устройства. Это, а также постоянные улучшения в частых релизах (актуальная версия Java — 12) позволили ей быстро распространиться и “захватить мир”.
Сегодня Java доминирует в разработке корпоративных приложений, веб-сайтов для больших проектов в e-commerce, мобильных приложений. В мире — более 10 миллионов Java-разработчиков и более 3 миллиардов устройств, на которых используется Java.
Этот язык — бессменный лидер среди десятков других. Согласно рейтингу TIOBE, в котором ЯП расположены по количеству поисковых запросах на порталах Wikipedia, Google, YouTube и других, Java занимает первое место с долей 16% (результаты мая), опережая на несколько процентов язык С и вдвое — C++ и Python.
Ключевые преимущества Java
Главный плюс Java — принцип “написано однажды — работает везде”. Это значит, что ПО, написанное на одной платформе, будет запускаться и на других устройствах. В принципе, Java буквально способна “петь из каждого утюга”: она используется для создания приложений для мобильных устройств, удаленных процессоров, беспроводных модулей, датчиков, да и в целом — практически любых электроустройств. Адаптивность — одна из причин, по которой Twitter перешел на JVM.
Java — в числе самых популярных языков на GitHub по количеству коммитов. Язык востребован благодаря огромному выбору библиотек под любые задачи. Ну а многомиллионное сообщество постоянно наращивает их количество.
Таким образом, Java постоянно развивается и создателями языка, и его “пользователями”.
Благодаря разнообразию библиотек, этот ЯП — гибкий, поэтому он прекрасно подходит для реализации новых функций. И для больших корпораций, и для компаний меньшего масштаба эти ценно. Так, гибкость языка помогла компании Spotify построить набор модулей для разработки микросервисов Apollo.
Перечислить все бренды, которые используют Java, невозможно. Так что можно ограничиться несколькими топовыми:
Java активно задействуется для построения серверной части. В Amazon практически вся “внутренняя кухня” работает на Java; Oracle использовала Java еще до поглощения Sun Microsystems; даже официальный сайт Пентагона использует Java.
Большую роль этот ЯП играет и в поддержке сервиса Netflix. Их инфраструктура работает на Linux, а кодирование видео — на машинах Windows. Благодаря тому, что в Java есть множество инструментов с открытым исходным кодом, мониторинг и обновление данных в разных средах становится гораздо проще.
Международная финтех компания LMAX использует Java для того, чтобы операции на фондовой бирже проводились с минимальными задержками. В целом, во множестве крупнейших компаний бекэнд-часть написана Java для решения вопросов, связанных с безопасностью, переносимостью и производительностью.
Звучит неплохо, но можно ли делать с Java что-то по-настоящему крутое? Еще как. Вот лишь 10 из сотен интересных возможностей программирования на Java 🙂
1. Android-разработки
То, что в свое время Google выбрал Java для разработки Android, безусловно подогрело интерес к этому языку среди разработчиков. Сегодня это самая популярная операционная система, и практически все мобильные приложения для нее написаны на Java.
2. Облачные проекты
Миграция в облако — необратимый процесс на глобальном рынке. Компании переносят на облачные платформы все — от хранилищ данных и отдельно взятых сервисов до IT-инфраструктуры целиком. А самым популярным языком программирования для корпоративных разработок в облаке стал Java. В прошлом году независимая организация Cloud Foundry Foundation (CFF) провела опрос среди 600 ИТ-специалистов и выяснила, что для разработки корпоративных приложений в облаке Java используют 58% респондентов.
Java применяют в создании серверов приложений в облаке, сетевого программного интерфейса и т.д. Java нужна не столько для разработки новых приложений в облаке, сколько для гарантии, что приложение будет одинаково успешно работать в современном “платформенном миксе” из облака, мобильных и десктопных устройств.
3. Виртуальная и дополненная реальность
Еще одна привязка Java к облаку — AR/VR разработки. Многие мобильные приложения (и под Android в том числе) с технологией дополненной / виртуальной реальности расположены в облаке. И их гораздо больше, чем кажется: travel- и игровые приложения, соцсети, приложения в сферах моды и красоты, образования и т.д.
4. Программный инструментарий
Именно Java использовалась при создании популярных средств разработки ПО: IntelliJ Idea, Eclipse, Netbeans. А также — бизнес-объектов SAP, системы отслеживания ошибок Jira (которая также используется как система управления проектами) и многого другого.
5. Работа с Big Data
Есть мнение, что для работы с большими данными больше подходят Python и R. Но аналитика данных — это отдельная планета. Для разных задач используются разные языки и Java в их числе. В частности, для внедрения Hadoop (файловая система и набор инструментов для обработки данных) и Kafka (распределенный программный брокер сообщений для показа потоков данных в режиме реального времени, сбора больших данных и их анализа).
В Java есть ряд библиотек и фреймворков, заточенных под работу с Big Data. Например, Weka, Rapid Miner, JSAT, Java Machine Learning Library — Java-ML, Java Data Mining Package — JDMP и другие.
6. Беспилотные автомобили
Чтобы самоуправляемые машины были безопасными, нужно проработать до малейших нюансов решение “компьютером” задач, которые для человека кажутся элементарными. Например, определение типа объекта, расстояния, состояния (движется — стоит на месте), распознавание лиц. И здесь программирование на Java играет важную роль. Есть достаточно много туториалов, которые помогут вникнуть в суть вопроса.
7. “Робомедицина”
Чат-боты в телемедицине (как и в других сферах) — в общем-то не новость. А вот роботы-доктора — наше скорое будущее. Благодаря встроенным технологиям Интернета вещей, врачи не заходя к пациенту смогут выполнять простейшие манипуляции: измерять температуру, слушать сердечный ритм, измерять давление.
А когда-нибудь на помощь обычным врачам придут роботы. Пару лет назад китайский робот Xiaoyi, оснащенный искусственным интеллектом, успешно справился с экзаменом для получения медицинской лицензии, набрав 465 из 600 баллов. Исследователи из университетов Пекина и Циньхуа потратили год на то, чтобы “заправить” в базу знаний робота содержимое десятков справочников и учебников по медицине. И, как видим, успешно!
Да и в любой другой сфере робототехника не менее востребована. Например, в искусстве: программист Дэн Ройер создал арт-робота Makelangelo, который рисует постеры.
8. Разработка игр
Множество популярных игр написаны на Java, и многие из них хорошо знакомы каждому. Примерно с начала двухтысячных началась эпоха расцвета Java-игр, тогда же появились RuneScape, Gangstar, Zuma и многие другие. “Звездными” проектами на Java остаются видеоигра Assassin’s Creed и не теряющий актуальность Minecraft. Последний еще и крепко “подсаживает” на Java: чтобы писать плагины для Minecraft, нужно знать джаву, а потом уже не остается ничего другого, кроме как создавать и другие программы на нем.
Почему Java —привлекательный язык для разработки игр? Во-первых, потому что пакет графических программ Open JavaFX (OpenJFX) облегчает работу над созданием визуала, который так важен для геймеров. Во-вторых, есть специализированные библиотеки для гейм-разработок, например, Lightweight Java Game Library (LWJGL). В-третьих, в игры на Java можно пошпилить на любом устройстве.
Если вас интересует этот ЯП для разработки игр, можете почитать специализированные форумы, а еще лучше — узнать, каково быть гейм-разработчиков на практике. Начните с простейшего — выполните несколько проектов-задач в разделе “Игры” на JavaRush.
9. Спецэффекты в киноиндустрии
С Java можно пойти гораздо дальше в создании визуала. Крупнейшие компании по киношным спецэффектам используют Java для разработки программно реализованных чудес. Например, Industrial Light and Magic, которая участвовала в создании визуальных эффектов для “Мстителей”, “Капитана Марвел”, “Тора”, “Трансформеров”, “Звездных войн” и других блокбастеров с миллионами фанатов по всему миру.
10. Космические разработки
NASA использует Java для ряда крутых приложений. Например, World Wind — набора для разработки ПО (SDK — software development kit). Он позволяет рассмотреть крупным планом любой участок Земли, задействуя при этом искусственный спутник Landsat и данные Радиолокационной топографической миссии шаттла (SRTM). 3D-визуализация чем-то напоминает Google Earth, только все полностью написано на Java. Спектр написанных в NASA программ на Java широк: от инфраструктурных приложений до сервисов поддержки пользователей и аналитических инструментов.
Как подчеркивали “местные” разработчики, благодаря Java можно создавать мультиплатформенные, производительные, простые для понимания решения. При этом — не затратные в разрезе цикла разработки ПО.
И это только сливки на торте
Есть десятки и сотни проектов, в которых можно применить программирование на Java. Популярность языка растет, востребованность разработчиков — тоже. А над каким проектом мечтали бы поработать вы?
Источник
Все свое ношу с собой
Конечно, для решения сугубо деловых или офисных задач больше подходят карманный компьютер или ноутбук, но их использование зачастую неудобно, а порой и вовсе невозможно. Пожалуй, сегодня каждый производитель телефона предлагает в своих аппаратах такие возможности, однако, чего греха таить, их функциональность не всегда соответствует нашим представлениям об идеальном миниофисе. Раз так, давайте попробуем самостоятельно подобрать набор мидлетов, реализующих все необходимые нам задачи.
И начнем мы с планирования рабочего времени, то есть органайзеров. Оказывается, эту, простую на первый взгляд, проблему можно решить различными способами. Так, к примеру, мидлет mOrgan (22 Кб) при своей внешней непритязательности представляет огромный спектр возможностей. Вы можете с одинаковым успехом как закомментировать уже прошедшие события, так и запланировать грядущие, доступна возможность копирования или перемещения отдельных записей, причем в их роли могут выступать внутренние записи органайзера или внешний источник (компьютер или Интернет). По своему внешнему виду это приложение больше похоже на календарь. Если же вы больше привыкли к КПК-шному стилю, то стоит обратить внимание на JTasks. Это 4-х килобайтное приложение реализует идею списка дел (To Do) во все красе. В качестве примеров удачно реализованных приложений такого рода можно также привести оригинальный таймер-менеджер MBITS от Warren Crossing, отличающийся синхронизацией времени с атомными часами (по Интернету, разумеется), и планировщик Sheduler от HolyCowBoy. Хотя, если вы сторонник «всего в одном флаконе», то стоит взглянуть на Mobile Office, состоящий из трех мини приложений m*Contacts, m*Calendar и m*Email.
Слева направо: mOrgan, JTasks, MBITS, Sheduler, Mobile Office.
Говорить о том, что существует огромное количество мидлетов, реализующих функции часов и будильников мы не будем, здесь все зависит от личных предпочтений владельца телефона. Остановимся лучше на калькуляторах, ведь не секрет, что штатного калькулятора хватает только для банальных расчетов, ставить же мобильный Excel, на наш взгляд, нецелесообразно. Оптимальный вариант – установить один из многочисленных научных калькуляторов, скажем PCalc. Это весьма скромное по мобильным меркам творения может очень и очень много. В первую очередь, это поддержка логических, тригонометрических, логарифмических и др. функций. Если этого недостаточно, то можно определить собственные функции (удобно для повторяющихся вычислений). Во-вторых, высокая точность вычисления. В-третьих, помнит все формулы, которые вы вводили. Ну и, наконец, умеет строить графики и понимает простенькие функциональные программы. Думаем, большего и не надо.
Есть еще один тип мидлетов, который может оказаться полезным «человеку с деньгами», которые, как известно, нужно тратить с умом. Это финансовые приложения. Весьма удобно реализован контроль за расходами в Cost Manager от Jacado. Вся прелесть этого мидлета состоит в том, что спустя время (то есть, когда наберется некоторое количество введенной вами информации) скупые цифры можно мгновенно превратить в график. Что же касается приложения Expense Man, то это яркий пример интеграции телефона и компьютера. Ведь вся ваша информация, накопленная в течение дня, может быть легко «сброшена» на компьютер и импортирована в программы Quicken, MS Excel или MS Money. Прекрасная возможность посмотреть, а куда, собственно говоря, уходят деньги.
Слева – Cost Manager, справа – Expense Man.
Раз мы заговорили об Excel, то следует сказать несколько слов и об использовании на телефоне офисных файлов компьютерного формата. Да, существуют приложения DocViewer и PdfViewer, работающие с файлами Microsoft Word/Excel и PDF (только просмотр). Но их использование не дает ощутимой пользы. Так размер этих мидлетов составляет соответственно 869 и 275 Кб, при загрузке солидного по объему файла счет идет не на секунды, а на минуты, да и внешний вид отображенного файла очень значительно отличается, от того, что видно на мониторе настольного компьютера. В общем, телефоны пока еще не «созрели» для нормальной работы с такими файлами.
На просторах всемирной паутины
Что ж, настало время расширить внутренний мир нашего телефона, обратившись к WWW. И здесь нас поджидают «три кита» – веб-обозреватель, почтовый клиент и инернет-пейджер. Думаем, такого набора вполне достаточно для того, чтобы удовлетворить все наши запросы в плане неголосового общения. В среде интернет-обозревателей долгие годы лидером является веб-браузер WebViewer от Reqwireless, уже «доживший» до версии 3.5 и уменьшившийся до 46 Кб. Классика жанра, позволяющая на телефонах вполне прилично (желательно иметь дисплей побольше) просматривать HTML-страницы. Конечно, увидеть с его помощью все 100% сети невозможно, навороченные страницы будут отображаться неверно. В качестве альтернативного варианта можно предложить jBrowser (58 Кб), отличающийся поддержкой HTTP 1.1., графических форматов WBMP и PNG и удачной реализацией кэширования.
Слева – WebViewer, справа – jBrowser.
Что касается почтовых клиентов, то они частенько устанавливаются на телефон производителем, однако функциональность далека от желаемой. Но это легко исправить. Устанавливаем, к примеру, MailMan (51 Кб) и получаем поддержку протоколов POP3 и SMTP, форматов TXT и HTML, кодировок KOI8-R и Windows-1251, возможность отправки вложений, множество вариантов загрузки писем (сохранение копии, удаление копии, загрузка только заголовка и т.д.), адресную книгу.… Если же взглянуть на EmailViewer от уже упомянутой компании Reqwireless, то он вдобавок к этому поддерживает фильтрацию спама и непосредственный переход по ссылкам из писем. Еще один сильный игрок на рынке e-mail-клиентовэто Mail4Me. Этот небольшой мидлет размером 27 Кб знаком с IMAP и MIME и позволяет свободно работать с графическим форматом PNG.
Слева направо: MailMan, EmailViewer, Mail4Me.
Поговорим теперь об интернет-пейджерах. Программ такой направленности существует достаточно много, поэтому мы остановимся только на трех, по нашему мнению, самых достойных. Во-первых, это Mobicq. Этот ICQ-клиентразмером 69 Кб является облегченной версией «аськи» и работает напрямую через сервер ICQ. Приложение умеет загружать контакт-лист, отправлять текстовые сообщения, устанавливать статус, имеет различные варианты поиска, историю и т.д. Нет проблем и с русским языком. Идеальный вариант для начинающего пользователя. Приблизительно в таком же ключе выполнена и набирающая в последнее время популярность программа Jimm (65 Кб). Интересно, что в ней реализована возможность непосредственной передачи файлов, например, фотографий со встроенной камеры. Наибольшей же функциональностью обладает Virca, универсальный интернет-пейджер, который может подключаться не только к ICQ, но и к MSN Messenger и Yahoo Messenger. Девиз этого мидлета – максимум функций при минимуме объема.
Сверху – Mobicq, снизу – Virca.
С графикой на ты
Что касается мультимедийных возможностей телефона, то они в большинстве случаев ограничены производителем. Правда, последние модели частенько являются универсальными аппаратами, поддерживающими воспроизведение аудио и видео. А вот более «древним» телефонам такая задача не по силам. Однако попытаемся исправить ситуацию. Рассмотрим, например, проблему просмотра графических изображений на дисплее телефона. Приведем только два примера таких программ, это GifView и JpegView (соответственно 11 и 13 Кб) от компании JShape, назначение которых понятно из их названия. Помимо непосредственно просмотра, эти мидлеты позволяют изменять разрешение и яркость фотографий.
Слева направо: GifView, JpegView.
С фоторедакторами положение не столь однозначное. Разнообразие используемых аппаратных платформ и различных подходов к фотосъемке не позволяет создавать универсальные приложения. Это стихия Symbian (Nokia Series 60), для которой создано немало таких мидлетов. Однако сегодня мы говорим только о Java, поэтому наш выбор пал на линейку редакторов Photo Editor от компании Softex Digital. Думаем, что программа по праву может считаться самым эффективным мобильным редактором. Здесь можно отрегулировать яркость, контрастность или насыщенность картинки, убрать шумы, трансформировать изображение, наложить специальные эффекты и рамки и т.п.
Конечно, ради справедливости следует заметить, что многие приложения такого рода не несут полезной нагрузки, они скорей создают приятную атмосферу. В качестве примера можно привести подборку оригинальных мидлетов от компании DS Effects, реализующую различные визуальные эффекты: огонь, дождь, снег, молнию, звезды и т.п. Причем все эти «события» происходят на рабочем фоне дисплея, и вдобавок программа высвечивает текущие дату или время. Смотрится очень эффектно.
«Полезные мелочи»
Наверняка, все слышали об открытом в апреле этого года компанией Google бесплатного сервиса для просмотра спутниковых фотографий земной поверхности. Хотим обратить ваше внимание, что эти возможности нынче доступны не только владельцам компьютеров, но и телефонов. Достаточно загрузить мидлет Mobile GMaps размером 29 Кб, активизировать услугу GPRS (а лучше EDGE, поскольку, сами понимаете, передача графических изображений требует хорошего канала), и вы сможете в полной мере оценить все прелести нашей планеты. Если же вам больше по душе родные места, то лучше остановиться на приложении MobiMap, предлагающем карты многих российских (и не только) городов. Замечательная программа для путешественников – можно ориентироваться по номерам домов и адресам, а также разрабатывать оптимальный маршрут движения.
Mobile GMaps
Еще одним веянием, завоевавшим в последнее время умы многих, стали блоги. Если вы являетесь поклонником такого способа самовыражения, то можете не расстраиваться оттого, что под рукой нет компьютера. Вполне подойдет и телефон. Установив, к примеру, блог-клиент Azure, вы можете легко создавать и редактировать свои посты в любом месте и в любое время. Для более продвинутых подойдет BlogPlanet от одноименной компании. Вдобавок к стандартным функциям создания, редактирования и удаления, этот мидлет обладает уникальной возможностью вставки в посты фотографий. Вот уж здесь точно не пожалеешь, что в телефоне есть встроенная цифровая камера.
Слева – Azure, справа – BlogPlanet.
Задавшись целью найти что-либо полезное из образовательных программ, мы заметили интересный факт – практически полное отсутствие русскоязычных мидлетов. Конечно, тот же медицинский или православный словарь настоящий профи поймет и на языке оригинала, для остальных можем предложить что-либо попроще, ну, скажем, периодическую таблицу химических элементов нашего соотечественника Д.И.Менделеева. Прекрасная шпаргалка для студентов и прочих увлекающихся химией. А вот еще один полезный мидлет Dictionary. Как следует из названия, это словарь, и для него как раз таки существует англо-русская версия. Даже две, первая на 6,5 тыс.слов (57 Кб), и вторая, более объемная на 28 тыс.слов (230 Кб).
Слева – Periodic Table (два варианта), справа – Dictionary.
Java -это сила
Согласитесь, что очень заманчиво иметь в кармане устройство, служащее «палочкой-выручалочкой» в самых различных ситуациях. И если ваш телефон поддерживает загрузку Java-приложений, то считайте, что вам повезло – вы можете самостоятельно решать, каким образом он будет вам служить. Конечно, спектр задач ограничен физическими возможностями аппарата, но, как вы убедились, эта технология способна на многое. Тем более что она поддерживается все большим и большим числом телефонов.
Алекс Ксенин
Источник