The Perspectives of Using Java Server Pages
Перспективы применения Java Server Pages
Аннотация
Данная статья рассматривает возможность применения технологии Java Server Pages как альтернативы существующим платформам на основе PHP. Были собраны и обработаны данные о сравнительной производительности, мощности и основных дырках этих систем. Также были проанализированы статистические данные о трендах поддержки различных языков программирования с точки зрения выбора технологии, имеющей наибольший потенциал.
The Perspectives of Using Java Server Pages
This paper considers the possibilities of using Java Server Pages technologies as an alternstive to the existing platforms on PHP basis. There have been collected and transformed the data on the relative productivity, capacity and the main gapes of this system. There hd been also analyzed the statistic data on the trends for supporting different programming languages concidering the technologies with the significant potencial
Затем был дан краткий дискурс установки выбранной в качестве такой альтернативы JSP и приведен пример простейшей программы.
Чтобы продемонстрировать мощность и потенциал этой платформы, был дан приблизительный (не полный, но показательный) список возможностей данной платформы, призванный продемонстрировать возможность разработки мощных веб-приложений.
Из приведенных примеров и аналитических выкладок сделан обоснованный вывод о применимости JSP as an alternative to PHP.
Key words: сервлети, технологи Java Server Pages, PHP, Python.
Intoduction
The rapid development of web technologies as well as a variety of tools for cteating web-applications which do not differ from the stationary ones, has practically created a giant industry of “cloud” culculations and services which are used every day and make an integral part for not only to bisiness processes but for everyday life as well. But the way of life encorages people to renew web-sites, create up-to-date content, new services and support their incecent operation.
Бурное развитие веб-технологий, а также различных инструментов для создания веб-приложений, ничем не уступающим стационарным, практически создало гигантскую индустрию «облачных» вычислений и служб, которые используются каждый день и составляют неотъемлемую часть не только бизнес-процессов, но и повседневной жизни. Однако жизнь тоже не стоит на месте, и ее развитие заставляет постоянно обновлять сайты, создавать новый контент, новые службы и поддерживать их бесперебойную работу.
Analyzing the most popular web-sites testifies that most of them are created on the PHP basis. The data of the research made in 2011 [1] testified that more than 50% of web-sites with the biggest number of visitors were created with the help of either this programming language or on the platforms based on it. However, in the same 2011, there was the decrese in the PHP popularity (not significantly, just by 0,8% [3], but this fact lowered the PHP to the 6th place in the common list of languages), and the PHP outran the Python - the other popular programming language. Besides, the rating of TIOBE demonstares an interesting trend– the decrese in the language popularity, though the number of web-sites on this basis does not go down. It means that in most cases the PHP platform is used as the “black box” that will result in the real crash of the technologies. Nowadays, there is no reasons to speak about it, as the PHP controls over 21% of the market [2, 5], but with the availability of the frightening signals – such as the lowest language rating for the last 8 years and the continious decrese since 2009 [4] – it must be at least started to examine the alternatyive possibilities.
Если проанализировать наиболее посещаемые сайты, окажется, что большинство из них создается на базе PHP. По данным исследования 2011 г. [1], более 50% сайтов с максимальной посещаемостью, созданы при помощи либо самого этого языка программирования, либо платформы, на нем основанной. Однако в том же, 2011-м году было зафиксировано снижение популярности PHP (не намного, всего на 0.8% [3], но это опустило PHP на 6 место в общем зачете языков), причем PHP опередил другой популярный язык веб-программирования - Python. Кроме того, рейтинг TIOBE [3] демонстрирует любопытный тренд – снижение популярности языка, хотя количество сайтов на его основе не снижается. Это значит, что в большинстве случаев просто используется платформа PHP как «черный ящик», что в конечном итоге приведет к реальному краху технологии. На сегодня пока нет оснований говорить о таком, т. к. по последнему рейтингу PHP занимает около 21% рынка [2, 5], однако при наличии угрожающих сигналов – таких как самый низкий рейтинг языка за 8 лет и неуклонно снижающийся рейтинг с 2009 г. [4] - нужно хотя бы начать рассматривать альтернативные возможности.
The most obvios alternative appears to be the direct rival of the PHP on the language rating – Python. Even not taking into account the fact that Python has the same problems in reality that the PHP has (after the peak in 2011 it has ptactically fell down to the level of the year of 2008).
Наиболее очевидной альтернативой является прямой конкурент PHP по языковому рейтингу – Python. Даже не принимая во внимание то, что у Питона в сущности, те же проблемы, что у PHP (после пика в 2011 г. он практически скатился на уровень 2008 г. [5]), эта альтернатива не совсем равноценна. Точно так же, как и PHP, она ориентирована на «движки», к которым следует писать дополнения, а это значит, что и этот язык рано или поздно придет к тем же проблемам, что и PHP. Следовательно, его применение просто оттянет возможный кризис отрасли, а не решит проблему.
Возможным вариантом решения проблемы является переход на другой язык программирования, достаточно простой и достаточно рейтинговый, чтобы в случае авральной ситуации можно было привлечь разработчиков из другой отрасли. Согласно общим рейтингам [2, 3, 6], первые места в общем зачете занимают С, С++ и Java. Из них только Java располагает платформенными решениями для веб-приложений, поэтому рассмотрим именно ее в качестве альтернативы.
Одним из очевидных аргументов против применения Java в веб-технологиях является ее сравнительно небольшая распространенность. Она обусловлена тем, что разработка веб-приложений на PHP, как правило, быстрее, так как каждая страница на последнем представляет собой простой скрипт, генерирующий HTML. В то же время, простота оборачивается катастрофическим проигрышем по временным показателям. В [7] приведена довольно любопытная статистика производительности, учитывающая, что и Java, и PHP и Python являются в сущности – интерпретаторами, работающими по принципу виртуальной машины. В этом исследовании брался одинаковый фрагмент кода, и сравнивалось время выполнения. Частично приведем результаты этого сравнения:
Таблица 1: Сравнительная характеристика времени исполнения кода
Язык | Платформа | ОС | Строки кода | Время, мкс |
Java | Sun JDK 1.6 | Ubuntu | 1,6 | |
Python | 2.5.1 | Ubuntu | ||
PHP | PHP 5.2.3 | Ubuntu |
Стоит заметить, что в данном исследовании применялись 32-битные рабочий станции. Однако в 64-битных скорость выполнения того же кода на PHP уменьшалась всего вдвое (323 мкс. против 593 мкс.), все равно катастрофически проигрывая по производительности Java. Аналогичные результаты также показывают «лобовые тесты» [8], и ряд других исследований [9, 10].
Однако существует и обратная сторона. Опережая PHP по времени выполнения программ, Java проигрывает в массовом обслуживании [11], обрабатывая пользовательские запросы как на страницу, так и к базам данных почти в 6 раз медленнее. Это, правда, легко компенсируется правильно подобранным сервером (как правило, «стандартный» Apache Tomcat, применяющийся во всех тестах, является наиболее медленным из всех). There is the fundamental research, made by Х. Веллманом [12]. Кроме того, есть ряд альтернативных реализаций HTTP-серверов, быстрее коммерческих аналогов, например, NanoHTTPD, который вообще представляет собой один класс.
Однако главное преимущество, которое имело PHP над Java – модульность и шаблонность. Как мы уже говорили выше, его преимущество состоит в том, что скрипты PHP (как и Python) встраиваются непосредственно в веб-страницу. Однако, существует подобная технология и для Java. Она была недооценена, так как появилась, уже когда по рынку победно шествовал PHP, но тем не менее, достойна пристального рассмотрения, поскольку может оказаться как раз той альтернативой, которая заменит PHP в случае кризиса отрасли и позволит привлечь к разработке новые силы.