LINUX.ORG.RU

Perl теперь используется менее чем на 1% веб-серверов

 ,


0

1

По данным последнего исследования, представленного компанией W3Techs, использование Perl на веб-серверах упало ниже отметки одного процента. Когда-то самый популярный скриптовый язык занимает всего лишь пятое место по популярности, с долей в 0,997%.

Места распределились следующим образом:

  • PHP - 77.3%
  • ASP.NET - 21.7%
  • Java - 4.0%
  • ColdFusion - 1.2%
  • Perl - 1.0%
  • Ruby - 0.6%
  • Python - 0.3%

Подробнее про ситуацию с Perl на сайте W3Techs.com

>>> Подробности

Ответ на: комментарий от I-Love-Microsoft

то, как считали(эвристическим анализом сгенерённого html) могло показать почти любые результаты. Ну и facebook, last.fm посчитаны как phpшные :)

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

Что-то хотели этим доказать? Или вы хотели сделать из меня нового адепта питона? У вас пока не получилось.
Впрочем, хитрые оптимизации применимы и к перлу. Например, предложенная товарищем helios:

[nexfwall@LenovoS10-20027 Рабочий стол]$ echo "test.py:"; time ./test.py; echo "test.pl:"; time ./test.pl; tail -n +1 test.p*
test.py:
Result = 4999499949500000


real	2m32.878s
user	2m17.640s
sys	0m0.291s
test.pl:
Результат = 4.9995000495e+15

real	1m23.645s
user	1m17.340s
sys	0m0.088s
==> test.pl <==
#!/usr/bin/perl
$sum += $_ for (-1000000 ... 100000000);
print("Результат = $sum\n");

==> test.py <==
#!/usr/bin/env python
summ=0
i=-1000000
summ=sum(i for i in xrange(i, 100000000))  
print ("Result = {0}\n").format(summ)
[nexfwall@LenovoS10-20027 Рабочий стол]$ grep "model name" < /proc/cpuinfo
model name	: Intel(R) Atom(TM) CPU N270   @ 1.60GHz
model name	: Intel(R) Atom(TM) CPU N270   @ 1.60GHz
По сравнению с предыдущим результатом - блестяще, но все равно перл не догоняет. Вывод здесь один: скорость зависит сначала от самого кода, а потом уже от интерпретатора/компилятора. Но все равно, перл побыстрее будет.
Рас с этим покончили, тогда вопрос как к питонщику: Чем же так удобен питон, что вы его хвалите? (не бойтесь, кидаться какашками не буду, я еще не настолько в перл погрузился. просто хочу знать)

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

Как язык, на котором написаны скрипты, исполняемые на стороне сервера, влияет на системные требования к клиенту?

Пагубно же! Просто не люблю php и поправился за зиму на олевье и компотах. Не обращайте внимания.

fero ★★★★ ()

А мне казалось, что всякие там Django и RoR занимают очень большую часть, а тут оказывается =(

Perl как то приятнее python и роднее =)

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

Я не считаю это в принципе возможным. Но smarty сам по себе гадость для сервера, и лишние символы пробелов в размётке страницы. Которые косвенно увеличивают вес страницы, и объём памяти, нужной для представления DOM-дерева. Вы не согласны? Я когда работал над магазинчиком одним, заметил что объём выдаваемой страницы сильно распухает от пробелов. Которые появляются именно на выходе из smarty. Что касается функции, о которой вы писали - она даже косвенно не влияет на поведение страниц на клиенте, это любой нуб вроде меня знает.

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

У python синтаксис уродский. А так он даже ничего. Есть в нём что-то от паршивого Basic'а. Но это что-то хорошо замаскировали.

lucentcode ★★★★★ ()

ASP.NET > Java

кто бы мог подумать...

x0r ★★★★★ ()

Замечательная статистика - краткая методология: 1. Под сайтом понимается домен второго уровня то есть (mail.google.com и picasaweb.google.com - один сайт) 2. Используются данные о миллионе самых популярных сайтов по мнению компании Alexa 3. Используются данные предаставленные самим сайтом и данные полученные сигнатурным поиском по веб страницам.

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

Кто-нибудь сомневается что движки на PHP реже всего доводят до ума, или что MS сует свои сигнатуры везде и большими буквами? Так же как и специфичные js от gwt прикрасно показывают что это сделано на Java?

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

Отлично:) Так гораздо быстрее.


[lucentcode@glowingsword-station ~]$ time python2 exp.py
Result = 4999499950500000


real	0m1.271s
user	0m1.263s
sys	0m0.007s
[lucentcode@glowingsword-station ~]$ cat exp.py
#!/usr/bin/python2
summ=sum(xrange(1000000, 100000000))
print («Result = {0}\n»).format(summ)
[lucentcode@glowingsword-station ~]$ time perl exp.pl
Result = 4999499949500000

real	0m6.872s
user	0m6.860s
sys	0m0.007s
[lucentcode@glowingsword-station ~]$ cat exp.pд
cat: exp.pд: No such file or directory
[lucentcode@glowingsword-station ~]$ cat exp.pl
#!/usr/bin/perl
use strict;
use integer;
my $sum = 0;
$sum += $_ for -1000000..100000000-1;
print «Result = $sum\n»;
lucentcode ★★★★★ ()
Ответ на: комментарий от nexfwall

А как вам это?


[lucentcode@glowingsword-station ~]$ time python2 exp.py
Result = 4999499950500000


real	0m1.271s
user	0m1.263s
sys	0m0.007s
[lucentcode@glowingsword-station ~]$ cat exp.py
#!/usr/bin/python2
summ=sum(xrange(1000000, 100000000))
print («Result = {0}\n»).format(summ)
[lucentcode@glowingsword-station ~]$ time perl exp.pl
Result = 4999499949500000

real	0m6.872s
user	0m6.860s
sys	0m0.007s
[lucentcode@glowingsword-station ~]$ cat exp.pд
cat: exp.pд: No such file or directory
[lucentcode@glowingsword-station ~]$ cat exp.pl
#!/usr/bin/perl
use strict;
use integer;
my $sum = 0;
$sum += $_ for -1000000..100000000-1;
print «Result = $sum\n»;

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

а тебя не смущает, что ты сравниваешь неэквивалентные конструкции? я же сравнивал код на питоне с эквивалентным кодом на перле (с использованием «ленивых» списков). ты бы ещё с «print «Результат = 4999499949500000\n»» сравнил, чесслово…

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

Да ничем он не отличается от других скриптовых ЯП. Средне-паршивый синтаксис и такая же производительность. Популярный он просто потому, что хорошо разрекламирован и под него много различных библиотек. Что касается скорости - то самый быстрый ЯП - это тот, который вам хорошо знаком(не в теории, а на практике).

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

При одинаковой конструкции мы имеем


[lucentcode@glowingsword-station ~]$ time perl exp.pl
Result = 4999499949500000

real	0m6.937s
user	0m6.856s
sys	0m0.010s
[lucentcode@glowingsword-station ~]$ time python2 exp.py
Result = 4999499949500000


real	0m8.070s
user	0m8.006s
sys	0m0.020s

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

+1

Начал писать на перле, когда стал хачить исходники RT. Потом уже осилил Lama book, Alpaca book и прикупил в качестве справочника Camel book.

DELIRIUM ☆☆☆☆☆ ()

а рубистов нет совсем чтоле? а то ток 2 языка сравнивают))))

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

ASP.NET - поделие мелкомягких?

А каковы её премущества?

во-первых - удобно и легко разрабатывать, во-вторых - куча контролов, компонент и пр. (всякие DevExpress, Telerik, Infragistics)

из минусов - IIS. Хотя народ успешно перед ним ставит nginx в качестве фронтенда.

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

Он должен был исчезнуть вместе с появлением php и питона.

Perl ровестник Python.
А вот то, что Python так и не взлетел - это отдельная тема.

grim ★★★☆ ()
Ответ на: комментарий от nexfwall

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

Чем меньше мозга, тем легче его вынести, однако.

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

Последний его результат, там питон в самом ленивом исполнении делает все.

На счет перла я незнаю, не понимаю я его

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

В двух из трёх реализаций код на python рвёт похожий код на perl. Один раз побеждает perl. Вывод, важно знать, как лучше оптимизировать код для выполнения задачи.

lucentcode ★★★★★ ()

Even today, if you happen to see a file with the extension .cgi on a web server, it's a safe bet that this is a Perl script.

Ржали всем шредером.

aedeph ()

Отличная новость, RIP

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

0_о с каких пор код на пхп выполняется на стороне пользователя? учи мат. часть.

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

Т.е. вы думаете что за 4 года Питон догонит Перл?

Я думаю, что в общем он его уже перегнал, но дело не в этом... Представь себе 1997, когда Perl уже стал «липкой лентой Интернет», а Питон используется разве что в Анаконде. И тут ты, весь в белом, заявляешь «эти языки - ровесники». При том, что одному 10 лет, а другому - 6.

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

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

Про преимущества я имел в виду Perl'a как генератора веб-страниц.

А ASP.NET жрёт наверно ресурсов немеренно?

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

При одинаковой конструкции мы имеем

roman@rcomlt:~/test$ apps=`ls`; for app in $apps; do echo; echo $app; time ./$app; done; for app in $apps; do echo; echo $app; cat $app; done

test.php
Result = 4.9994999495E+15

real	0m17.859s
user	0m17.821s
sys	0m0.024s

test.pl
Result = 4.9994999495e+15

real	0m45.743s
user	0m45.719s
sys	0m0.004s

test.py
Result = 4999499949500000


real	0m52.347s
user	0m50.175s
sys	0m1.716s

test.rb
Result = 4999500049500000

real	1m31.564s
user	1m31.422s
sys	0m0.096s

test.php
#! /usr/bin/env php
<?php
$sum = 0;
for ($i=-1000000; $i<100000000; ++$i) {
    $sum += $i;
}
echo «Result = $sum\n»;

test.pl
#!/usr/bin/env perl
$sum = 0;
for ( $i = -1000000; !( $i == 100000000 ); $i++ ) {
  $sum += $i;
};
print(«Result = $sum\n»);


test.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
sum = 0
for i in range(-1000000, 100000000):
    sum += i
print («Result = {0}\n».format(sum))


test.rb
#!/usr/bin/env ruby1.9.1
sum = 0
-1000000.upto(100000000) { |i| sum += i }
puts «Result = #{sum}\n»

PS Руби видел давно и недолго --- за «одинаковость» конструкции не ручаюсь, написал как сумел.

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

А вам не кажется, что ваш код на питоне немного не соответсвует коду на пхп и перле?

По идее должно быть что-то такое:

#!/usr/bin/env python
sum = 0
iter = -1000000
while iter < 100000000:
        iter += 1
        sum += iter
print ("Result = {0}\n".format(sum))

В противном случае оно есть сотни мегабайт памяти, т.к. там разворачивается массивчик нехилого размера в отличие от php и перла.

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

Собственно тут представлен самый близкий вариант к перловому коду.

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

Причем тут мозг? Я бы скорее не советовал изучать перл в 3 часа ночи, на сонный рассудок, и уставший мозг.

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

оно есть сотни мегабайт памяти, т.к. там разворачивается массивчик нехилого размера

Там должно быть xrange(). Я сравнивал с range() и забыл вернуть `x' обратно. Да, и скобки в питоньем принте не нужны. С xrange() время сравнимое с перлом и код соответствует другим примерам.


roman@rcomlt:~/test$ time ./test.py && cat ./test.py
Result = 4999499949500000


real	0m46.359s
user	0m46.291s
sys	0m0.016s
#!/usr/bin/env python
# -*- coding: utf-8 -*-
sum = 0
for i in xrange(-1000000, 100000000):
    sum += i
print «Result = {0}\n».format(sum)
anonymous ()
Ответ на: комментарий от anonymous

Веб-программирование - это всего лишь изощренный способ конкатенации строк.

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

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

Я думаю, что в общем он его уже перегнал

Monster.com как измеритель я уже приводил.

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

Возможно.
По моему сугубо личному мнению Питон так и не взлетит так как сейчас идёт активное развитие PHP(будь он неладен) и динамических языков для JVM/CLR
Тот-же Groovy скоро может обогнать Питон который так и не влетит.

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

Что-то у тебя больно маленький процент. Даже если считать, что сишные CGI пишу лишь я, а написанием веб-приложений занято все население Земли, получится 0.000000014%. А реально это будет по крайней мере 0.014% ☺

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

Тест на python и на ruby отличаются. Но сути это не изменит. PHP рвёт всех, как тузик грелку. Python - в зависимости от алгоритма может порвать perl, а может слить. Используя range вы создаёте последовательность значений от начала до конца данного диапазона.А потом в цикле плюсуете их к sum. PHP, Perl и Ruby прибавляют по 1 к sum за каждый шаг цикла. for в pyton != for в других языках. Он умеет пробегать по массивам, и всё. xrange как раз и создаёт такой массив. Итерация в цикле происходит автоматически, от начала к концу списка. В PHP и Perl используется итератор, который мы изменяем приращение определённого значения за каждую операцию, и условие выхода из цикла. В python этого нет. Хотите циклы как в C-подобных ЯП? Используйте while.

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

Да, и скобки в питоньем принте не нужны

Не, нужны. Как минимум в версиях 3.*. Т.к. приходится писать под разные релизы - приучился использовать скобки.

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

Поэтому для просмотра Интернетов нужно over 4GB ОЗУ?

жесть!) не знаешь о чем речь, не говори. Сколько делаю сайты, первый раз «такое» слышу :D

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

По моему сугубо личному мнению Питон так и не взлетит так как сейчас идёт активное развитие PHP

Ну, если «взлет» - это уровень популярности PHP в вебе, то нет, конечно.

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

Это я про свой пример. Думал мы о втором питоне говорим.

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