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

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

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

Но ведь и на серверах с linux/bsd тоже не по одному сайту крутится.

Или сервера с ASP.NET - это как раз те, на которых крутится over9000 поделок по типу narod.ru?

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

Не знаю, как ты считал:

test.py:
Результат = 4999499949500000


real	4m24.292s
user	3m44.261s
sys	0m0.406s
test.pl:
Результат = 4.9994999495e+15

real	2m45.240s
user	2m25.596s
sys	0m0.266s
[nexfwall@LenovoS10-20027 Рабочий стол]$ tail -n +1 test.p*
==> test.pl <==
#!/usr/bin/perl
$sum = 0;
for ( $i = -1000000; !( $i == 100000000 ); $i++ ) {
  $sum += $i;
};
print("Результат = $sum\n");

==> test.py <==
#!/usr/bin/env python
# -*- coding: utf-8 -*-
sum = 0
for i in xrange(-1000000, 100000000):
    sum += i
print ("Результат = %d\n" % sum)

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

А я забыл представится - ведь я кэп Очевидность;) Я подозревал, что это сарказм. Но чисто инстинктивно отмёл подозрения. Привычка...

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

На сайте могут использовать сразу несколько технологий.

Эх, а я только на митинг «за честные веб-приложения» выходить собрался.

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

Не знаю, что тебе не по нраву. $_ - переменная по умолчанию, по ней «бежит» цикл, X .. Y - способ задания массива. Ну и полезно знать, что существует постфиксная форма для for, if и прочих.

В итоге получился легкочитаемый пример (если знать азы). В вашем же случае - куча ненужной логики. Нужно стремиться к упрощению.

И да, Сишный for зачастую не нужен.

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

Условие было, использовать подобное тому, что я привел. Т.е. это с использованием for, и без извращённых «оптимизаций»

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

Smarty - не PHP. За то, как генерирует размётку smarty, его создателей надо навечно отогнать от клавиатуры. Он ужасен. И его не подсвечивает Eclipse, приходится юзать для редактирования этой гадости emacs. Чистый PHP - лучший шаблонизатор. Только когда логику не переносят в шаблон, конечно.

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

Знаю, но я как-то к второму больше привык. Хотя как-то писал что-то на python 3 с range.

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

Хотя, он __getitem__ поддерживает. А вот __setitem__ уже нет.

buddhist ★★★★★ ()

Подробнее про ситуация с Perl

Восемь лет живу Москва. Все татары кроме я.

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

Конечно. Node.js - это попытка сделать что-то, похожее на сервер с использованием NIO в Java, и даже больше похоже на неблокирующий асинхронный сервер на Erlang. Сервер на Erlang порвёт Node.js по фичам, у ноды есть пара узких мест. Но есть и плюс несомненный, код выполняется в самой быстрой VM для скриптового языка в мире - в V8. Которая базируется на наработках самой быстрой VM для Smalltalk.

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

[qoute]постфиксная форма Я пытался написать так:

...
$sum += $i for ( $i = -1000000; !( $i == 100000000); $i++ );
...
Но компилятор только выдавал ошибку, поэтому решил использовать по старинке.

X .. Y - способ задания массива

Диапазоны, конечно. Я только учусь, и попросту не знал, что дапазон можно ТАК применить. Но с каждым днем натыкаюсь на все более изощрённые конструкции на перле, благодаря его мегасинтаксису.

переменная по умолчанию

И где например она по умолчанию? Интересно знать

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

А, совсем забыл про него.

Которая базируется на наработках самой быстрой VM для Smalltalk.

Не верю :) Про Дарт тоже кричали, что он насквозь пропитан духом Smalltalk и Self, а на оказалось, что он просто полон костылей, отдаленно напоминающих Смоллток.

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

Причем тот-же, даже до того момента как PHP с него на C переписали.

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

То есть, ты считаешь, что описанное мной в принципе возможно?

PS Прости, это был сарказм. Не смог удержаться после твоего серьезного и обстоятельного поста на очевидный fail :)

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

А более быстрый код для python? Измерьте это:)

Неоптимизированный код:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
sum = 0
for i in xrange(-1000000, 100000000):
    sum += i
print ("Результат = %d\n" % sum)


real 0m17.833s
user 0m17.802s
sys 0m0.023s

А это хитрая оптимизация, как же в python без неё?

#!/usr/bin/python2
summ=0
i=-1000000
summ=sum(i for i in xrange(i, 100000000))  
print ("Result = {0}\n").format(summ)


real 0m7.813s
user 0m7.809s
sys 0m0.003s

Результат скрипта на Perl ниже, ничего не поделаешь. Я не раз замерял, глязам не поверил. Ведь Perl всегда уделывал Python по скорости.

lucentcode ★★★★★ ()

очень хорошо

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

И где например она по умолчанию? Интересно знать

http://perldoc.perl.org/perlvar.html

Много где. Так с ходу и не вспомню - но оно логично, поэтому и не запоминал.

Вообще, в perl многое решает контекст. И эта переменная - замечательный тому пример. Это как в предложении местоимение - от контекста понимаешь о чём идёт речь.

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

Что делать, python - учебный язык. Будут лямбды нормальные и у него когда-то.

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

гм, а что, list(range(100)) не вернет список? в 3 питоне range поидее создает класс, который умеет итерироваться (также как во втором xrange)

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

Тьфу ты, совсем элементарные вещи уже из питона забыл :)

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

Это я знаю. Но не думал, что ещё и для генерации веб-страниц юзается.

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

Попробуйте мой вариант, поидее быстрее должен быть (т.к. ваш сначала список создает)

[code]sum(xrange(-1000000,1000000) [/code]

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

> Результат скрипта на Perl ниже, ничего не поделаешь.

в прикольной вселенной ты живешь…

$ time perl test.pl
Result = 4999499949500000

real    0m12.633s
user    0m12.509s
sys     0m0.036s

$ time python test.py 
Result = 4999499949500000


real    0m14.603s
user    0m14.593s
sys     0m0.005s

$ cat test.py
#!/usr/bin/python2
summ=0
i=-1000000
summ=sum(i for i in xrange(i, 100000000))
print ("Result = {0}\n").format(summ)
bash-4.1$

$ cat test.pl
use strict;
use integer;
my $sum = 0;
$sum += $_ for -1000000..100000000-1;
print "Result = $sum\n";

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

V8 базируется на коде VM от Strongtalk VM, шустрой но нарушающей стандарты Animorphic VM для Smalltalk. В исходниках V8 есть парочка подтверждений моим словам:) С лицензией от Sun:)

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

Вы бы еще через специализирующий компилятор пропустили.

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

[lucentcode@glowingsword-station ~]$ time perl exp.pl
Результат = 4999499949500000

real	0m18.485s
user	0m18.372s
sys	0m0.033s
[lucentcode@glowingsword-station ~]$ time python2 exp.py
Результат = 4999499949500000


real	0m16.066s
user	0m15.952s
sys	0m0.057s
[lucentcode@glowingsword-station ~]$ cat exp.pl
#!/usr/bin/perl
$sum = 0;
for ( $i = -1000000; !( $i == 100000000 ); $i++ ) {
  $sum = $sum + $i;
};
print(«Результат = $sum\n»);
[lucentcode@glowingsword-station ~]$ cat exp.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
sum = 0
for i in xrange(-1000000, 100000000):
    sum += i
print («Результат = %d\n» % sum)
[lucentcode@glowingsword-station ~]$ 
lucentcode ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.