Freenet, i2p, Java…

Не так давно, я скачивал и устанавливал систему Freenet. По некоторым причинам (больше время отклика, отсутствие динамического контента, низкая скорость загрузки, отсутствие нормального интерфейса, и т. д.) она удалена с моего компьютера, ибо на данный момент меня больше заинтересовал проект i2p (о том, что это такое, можно прочитать на вики, и на официальном сайте). Оба этих проекта объединяет то, что они OpenSource (который в последнее время всё больше и больше интересует меня), и то, что они написаны на Java. Меня заинтересовал этот язык, дело в том, что он очень похож на C# (а точнее, си-шарп похож на java, так как проектировался с оглядкой на него). А шарп я более-менее знаю, по крайней мере разрабатывал приложения контроля состояния распределённой сети серверов именно на нём. Но на данный момент у явы, как языка прикладного программирования приложений, есть огромное преимущество: он спокойно исполняется на линукс-системах. Т.е. исполняемый файл, в отличие от .NET exe, одинаково выглядит и работает на той же убунту, и на той же винде едва ли не любых версий. Это преимущество стало решающим в определении моего интереса к нему.

Чем же обеспечивается успех и живучесть Java в конкурентной борьбе с .NET? Тут надо сделать оговорку. Вообще, зависит от того, для какой платформы будет вестись разработка — для MS Windows, *Nix, или иных платформ. Если основным целевым сегментом является windows, то тут, безусловно, стоит выбирать .NET разработку, ибо она наилучшим образом интегрирована с системой, предоставляет массу платформо-зависимых инстументов, и писать на ней windows-приложения намного правильнее. Но у OpenSource проектов, как правило, целевые задачи совершенно другие. Зачастую приложения пишутся для бесплатного использования максимальным количеством пользователей (ибо от количества людей, у которых установлено то или иное приложение, зависит работоспособность сервиса, это и freenet, и i2p). И ввиду этого, привязывать к платформе приложение совершенно недопустимо. А поддержка .NET на той же линукс — практически отсутствует (да, я в курсе, что существует порт .NET на Linux, но я даже не проверял его работоспособность).

Единственной платформой, которая позволяет вести разработку для практически всех существующих операционных систем, обладает официальной поддержкой и довольно серьёзным финансированием, а как бонусы — имеет несколько открытых и бесплатных средств разработки (к примеру NetBeans IDE), является Java. Её разрабатывает компания Sun, которая, как можно видеть на их официальном сайте спонсирует и поддерживает также множество известных open source продуктов, среди которых MySQL, OpenOffice, NetBeans, Java… Ввиду этого, Java остаётся едва ли не единственным выбором для программиста, решившего написать прикладное приложение, и которое должно работать на многих платформах. За счёт чего это возможно? Дело в том, что Java-приложения исполняются не напрямую через вызов системных функций целевой системы (к примеру windows-API), а на промежуточном звене, так называемой «Java-машине). Условно, можно назвать это интерпретатором, а ещё точнее — JIT-компилятором. Исполняемый Java-файл не привязан к платформе, а состоит из так называемого «байт-кода», который исполняется на java-машине, которая, в свою очередь, переводит байт-код в исполняемые инструкции для процессора. Сама Java-машина уже привязана к платформе, т.е. машина для Linux не может быть запущена на windows, но прикладного программиста это не должно волновать. К слову, по быстродействию java-код, в настоящее время, не намного проигрывает чисто компилированным приложениям, за счёт применения JIT. Таким образом, лично для меня эти особенности стали поводом для знакомства с языком.

Также, если вас заинтересовала статья, рекомендую почитать ещё и вики: Java и сравнение Java и C#.

Для изучения же языка рекомендую вначале двухтомник Хорстмана и Корнелла «Java 2«, А затем трёхтомник Дейтела, «Технологии программирования на Java». Эти книги отличаются систематизированным изложением материала и по первому впечатлению вполне достойные представители технической литературы по Java. Единственный недостаток — цена бумажных версий, все книги обойдутся в сумму от 2,5 до 5 тысяч рублей. Но ведь мы в России живём, господа! :) И KAD с торрентами (1), (2), (3) ещё никто не отменял.

Автор

Алекс Разгибалов

Сумасшедший мужчина, неопределённого возраста, наслаждающийся манией преследования. Паталогически недоверчив, эгоистичен, авторитарен. Вторичные диагнозы - программист и поц. Владеет английским языком на уровне около хренового разговорного. Также знаком с некоторыми другими языками. Интересуется всем и вся, за счёт чего в любой области знания являются поверхностными, неглубокими. Характер невыдержанный. Крепость - 55 градусов.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Собирать идеально - не обязательно, просто приблизительно соберите картинку (должен быть включен JavaScript).WordPress CAPTCHA