Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Коммерческое ПО на Perl


Автор: rcdimon 29.11.2006, 14:45
Всем привет. 
Меня начал интересовать вопрос почему нет толком ПО на перл вообще... а коммерческого так тем более.. Я про всевозможные веб-приложения и фирмы.

Существует куча всякого софта под веб на PHP... знаменитые IPB, phpBB, Gallery2.. Перечислять на самом деле можно бесконечно. Всевозможные системы автоматического управления сайтами (CMS) пишутся на PHP... Все фирмы, которые предлагают создать сайт или веб-приложение делают их опять же только на PHP... 

Почему?

У Perl есть какие-то серьезные недостатки перед PHP в данной области? Может не на всех серверах он стоит? Может большее потреление ресурсов и меньшая производительность? Или может трудности при установке?

Автор: GoodBoy 29.11.2006, 14:59
форум - http://www.yabbforum.com/   пример - http://stl-fun.ru/yabb/YaBB.pl
CMS - http://www.twl.ru/

всего-лишь поискать в яндексе...

Автор: DiverD 29.11.2006, 16:02
комер - hotscripts.com
фривар - freshmeat.net

Автор: rcdimon 29.11.2006, 22:18
Вы не верно поняли тему. Я не прошу дать мне примеры таких скриптов. Я хочу подискутировать на эту тему. Понять все плюсы и минусы создания ПО на пхп и перл

Добавлено @ 22:24 
Например на чем стоит профилироваться современной фирме по разработке ПО для веба.. К числу критериев можно отнести и количество программистов на тех или иных языках.. Обяхательно нуно учитывать необходимый уровень квалификации программсита для решения одинаковых задач на разных языках  и конечно процент квалифицированных программистов от числа всех знакомых с ним... И т.д. Короче предлагаю просто провести некое исследование

Автор: Wowa 30.11.2006, 00:43
Многие с Perl перешли на PHP для создания веб-сайтов. И я в том числе, хотя раньше был ярым сторонником Perl.

Добавлено @ 00:45 
Цитата(rcdimon @  29.11.2006,  12:45 Найти цитируемый пост)
Может не на всех серверах он стоит? Может большее потреление ресурсов и меньшая производительность? Или может трудности при установке? 

Почти везде стоит Перл, однако основная проблема в том, что сайт написанный на perl грузит сервер больше, чем написанный на PHP. За счет того, что PHP обычно, как модуль апаче идет mod_php, а перл обычно через cgi работает, что медленнее и эта задержка становится критичной  при большом наплыве посетителей.

mod_perl тоже существует, однако не получил должного распространения, как mod_php.

Автор: rcdimon 30.11.2006, 10:33
да тут я соглашусь... Еще не в пользу перл играет тот факт, что мало программистов на нем... а хороших программистов на перл говорят в россии вообще нет. Отсюда и последствия... Собираясь писать крупный групповой проект на этом языке мы столкнемся с проблемой кадров.

Автор: GoodBoy 30.11.2006, 12:15
Цитата(rcdimon @  30.11.2006,  10:33 Найти цитируемый пост)
а хороших программистов на перл говорят в россии вообще нет. Отсюда и последствия... Собираясь писать крупный групповой проект на этом языке мы столкнемся с проблемой кадров. 

 smile  smile  smile 
повеселил.........

В вообще я вот что скажу. РНР - примитивнее!!!  И поэтому выучить его проще, чем Perl.  Там куча готового кода засунуто во встроенные функции и ничего делать не надо - вызвал функцию и готово!!!  Вот поэтому РНР программистов больше, чем Perlистов...

Автор: korob2001 30.11.2006, 12:58
Цитата

а хороших программистов на перл говорят в россии вообще нет.

Болтают.  smile 

Автор: DiverD 30.11.2006, 20:25
Wowa
Скажи пожалуйсто почему через cgi медленная работа.

rcdimon
Я думаю если писать перловаый проджект то он координально будет отвечать плюсами безопасности в отличии от php, проста перл сам по себе ьак зделан а вот в php безопасноть зависит в большую сторану от программиста, имх0 людям которым нужна безопасное web-приложение виберет perl.
Вот даже если лазить по нету, взять тот же freshmeat.net или перлманастырь, там двиги сайтов перловые, и посетителей думаю тысячи, у них же апач не тормозит наверное=)

Автор: rcdimon 30.11.2006, 21:05
ну почему... в перле тоже есть веселости... например с символом | в имени файла при открытии ))

Добавлено @ 21:07 
Цитата

Скажи пожалуйсто почему через cgi медленная работа.


Потому что интерпретатор перл стартует каждый раз заново при запуске программы.. вся эта махина заново грузится в память... А PHP, собранный как модуль апача постоянно находится в памяти загруженный и всегда готов приступить к обработке скрипта... Эта проблема решается установкой mod_perl. Однако далеко не везде он есть..  А программа написанная под mod_perl без него работать не будет и наоборот.

Добавлено @ 21:10 
Цитата

Цитата

а хороших программистов на перл говорят в россии вообще нет.


Болтают.  


Хорошо. Допустим я хочу написать крупный проект... я выбираю на каком языке писать. Мне как директору важна экономическая сторона этого вопроса... Например что бы этот проект написать на PHP мне нужно найти программистов средней руки.. Таких каких кучи.. Поэтому брать за работу они будут не очень много.. А если я захочу писать на перл- то мне для того же проекта наверняка потребуются более квалифицированные программисты, платить которым придется больше. 

Еще необходимо учитывать трудоемкость создания ПО на обоих языках... Время... и т.д.

Автор: Buhalich 30.11.2006, 23:04
Perl создавался не как язык для веб програмирования, в отличии от php.

Автор: rcdimon 30.11.2006, 23:52
Это я в курсе. Однако целью этого топика не является оскорбление любого из этих двух языков. Целью является лишь высяснить какой язык более коммерчеки пригоден.. С чем выгоднее работать

Автор: DENNN 1.12.2006, 00:27
Цитата(rcdimon @  30.11.2006,  23:52 Найти цитируемый пост)
Целью является лишь высяснить какой язык более коммерчеки пригоден..

С такой точкой зрения на вопрос советую сразу смотреть в сторону Java.
Ну вы ведь действительно очень крупный и серьезный проект собрались вести  smile 

Автор: GoodBoy 1.12.2006, 11:05
Цитата(rcdimon @  30.11.2006,  21:05 Найти цитируемый пост)
Например что бы этот проект написать на PHP мне нужно найти программистов средней руки

Вот ключевая ошибка!!!!!  Она так и называется - "хочу подешевле - найду программиста средней руки"...  Но это только на первый раз....  Получив, как правило (исключений - единицы), за свои небольшие деньги большое [censored33! Пожалуйста, соблюдайте элементарные правила приличия при общении на форуме] вместо сайта, заказчик в следующий раз понимает, что всё стоит своих денег, и что Мерседес по цене Оки не бывает...  И (обычно), приходится платить вторично уже большую сумму, переделывая то, что было сделано "программистом средней руки"...

Автор: korob2001 1.12.2006, 12:03
Серьёзный и крупный проект можно вести и на Perl, причём не хуже чем на Java.
В Perl есть возможность загрязнения (пометки) данных и их последующей очистки. Не знаю, но анологов этого в Java или в PHP, я пока не нашёл.
Регулярные выражения встроены в язык, а не ввиде класса или модуля расширения. Да и регулярные выражения пакета java.util.regex.* пока слабоваты, по сравнению с регулярными выражениями Perl. Я как раз сейчас об этом читаю в книге "Философия Java" Брюса Эккеля.

ЗЫ: Java конечно очень мощьный язык, к тому же он мне очень нравится. Но и Perl уже не тот, что был в 86 году.

Автор: rcdimon 1.12.2006, 12:59
ну к минусам широкого приминения перл я еще отнесу что его коды могут работать только из папки cgi-bin. Если конечно не настроить сервер иначе.. но перенастроить люди, пользующиеся хостингом, не могут.
Получается ПО на перл менее гибкое

Автор: DENNN 1.12.2006, 13:15
Аха, а на яве значит могут перенастроить?

Автор: korob2001 1.12.2006, 13:50
А почему это минус? Каталог для исполняемых файлов, тоже появился не просто. К тому же PHP ты тоже врядле запустишь из каталога /cgi-bin.
Единственное, чем PHP хорош, на мой взгляд, тем что он встраивается непосредственно в HTML код. С другой стороны, одним регулярным выражением можно заставить и Perl так же просто встраиваться в HTML код. Например вот так:
Код

<html>
  <head>
      <title><?perl print "Home page : $ENV{HOST_NAME}"; ?></title>
  </head>
  <body>
  <?perl
      my $time = time();
      print scalar localtime($time);
      print "\n";
      for (1..20) {
          print qq[Итерация: $_<br/>];
      }
  ?>
  </body>
</html>

Вот тебе простешее регулярное выражение, для отлова и нтерпритации этого кода. Переменная $full_file должна содержать весь файл, в одной строке.
Код

$full_file =~ s/(.*?)?(?:<\?perl\s*(.*?)\s*\?>)?(.*?)?/{print $1; eval "$2"; print $3;}/segi;

Теперь уже можно создать и .htaccess, в котором указать, что файлы, скажем с раширение .plx, должен парсить наш парсер.

Примерно так и родился первый PHP, который кстати изначально был написан именно на Perl. После чего, для оптимизации был переписан на C.

Но если так по душе встроенный код в HTML страницы, то наверное действительно лучше воспользоваться PHP, а не Perl. Этот же подход удобен, если ты юзаешь шаблоны. Я просто сейчас пишу один проект, в котором использую шаблоны. В одном из шаблонов я столнулся с такой проблемой, мне нужно было вывести popup-меню, с диапазоном лет от 1900 до 2000. Что бы не писать вручную 100 раз строку:
Код

<option value="1900">1900</option>
<option value="1901">1901</option>
<option value="1902">1902</option>
<option value="1903">1903</option>
<option value="1904">1904</option>
и т.д.

Я решил написать небольшой класс, который транслирует встроенный в шаблон код. Примерно таким образом, как показано выше. В итоге получилося такой код, в том месте где выводится popup-меню:
Код

<select name="birth_year" class="field">
<?perl
   my $year = (localtime)[5] + 1900 - 5;
   print qq[<option value="0"></option>];
   for (reverse(($year-100)..$year)) {
        print qq[<option value="$_">$_</option>];
   }
?>
</select>

PS: Если интересно, то примерно через неделю буду заливать этот проект в сеть, могу потом дать ссылку на него.

Автор: rcdimon 1.12.2006, 14:16
Нет я как раз нелюблю когда мешают HTML и перл... ну или пхп.. Мое глубокое убеждение- что это должно быть отдельно и полностью независимо

Автор: korob2001 1.12.2006, 14:21
Моё мнение такое же, но иногда это очень удобно. Где мне это понадобилось, я указал выше.

Автор: rcdimon 1.12.2006, 15:19
То есть вы хотите таким образом сказать, что написав коммерческий продукт на перл я смогу расчитывать на то, что покупатели не будут шарахаться от него? Что он не будет иметь недостатка внимания из-за языка.

Автор: korob2001 1.12.2006, 15:29
Ниразу с этим не сталкивался.
Perl есть практически на всех хостах. Заказчику не важно на чём написан проект, лишь бы он работал складно. Ниразу ещё не услышал возмущения или недовольства со стороны заказчика, когда говорил ему, что проект будет на Perl.

Автор: rcdimon 1.12.2006, 15:38
Ну одно дело если заказчик заказал у тебя уникальный проект. А другое дело готовое ПО.. которое он модет купить а может не купить

Автор: Danissimo 8.12.2006, 12:03
Я вот чего думаю.

Хотите быстро склепать сайтец -- PHP. Особенно, если общую задачу можно декомпозировать на уже решенные в PHP задачи (читай, для которых код уже написан). На сколько он будет расширяем? Мне трудно судить. Я не большой знаток перла или пхп, но по стравнению с тем, где я действительно профи, складывается ощущение, что рост стоимости добавления фич с ростом размеров сайта будет расти намного быстрее, чем, скажем, если бы он был сделан на java.

Мне пришлось попрограммировать на нескольких языках. Так вот лично мое мнение -- удобнее java ничего нету. Помните, раньше был такой юмор: прострелить себе ногу. Типа, на С вы просто берете и простреливаете себе ногу. На С++ нужно создать класс нога, класс пистолет, пуля и т.д., с намеком на то, что появляется куча лишней писанины.

Ключевой вопрос, я считаю, как раз в количестве этой самой писанины. Если мне нужно всего лишь переименовать по некоторому правилу файлы в каталоге и его подкаталогах, то я напишу это на перле. Поолучу минимальное кол-во строк. Но, как я чувствую, ясли я попытаюсь написать, скажем, сайт амазон на перле, я не смогу. Почему? Потому что там огромное кол-во кода. И вот тут как раз-таки лучше вначале написать побольше, но фундаментального, чем можно управлять, как марионеткой, а на основе этой амазоновской платформы, ядра, уже наворачивать фенички.

Итог: чем проще сайт, тем проще д/б средство, что в итоге экономически выгоднее. Чем крупнее сайт, тем более мощное д/б средство. Дороже программисты. Но в итоге, это будет экономически выгоднее, ибо надежность в таких системах начинает выступать на первый план.

Вот такой сумбур.

Автор: korob2001 8.12.2006, 14:07
Цитата(Danissimo @  8.12.2006,  09:03 Найти цитируемый пост)
Ключевой вопрос, я считаю, как раз в количестве этой самой писанины.

А что мешает заниматься этой писаниной в Perl?

Автор: Danissimo 8.12.2006, 14:18
Ничто не мешает. Поинт в другом. Чем больше писанины на именно перле, на мой взгляд, тем дороже становится любое изменение в коде.

Как бы это сказать... Представим себе функцию, аргументом которой является объем кода (выраженный в каких-то единицах), а значением -- стоимость внесения изменений. Так вот первая производная этой функции для перла больше, чем она же, но для, скажем, java. В этом заключалась моя мысль.

Автор: korob2001 8.12.2006, 14:39
Хочешь сказать, что Perl не читаемый язык?

В литературе по Java, часто об этом упеминается. Но это не совсем так.
Правильнее было бы сказать, что на Perl можно просто ужасно запутать код, в котором через месяц и сам не разберёшься и вообще никто не разберётся, а можно этого и не делать и код будет понятен всегда.

К тому же Java код можно встроить прямо в Perl программу и генерировать классы Java на лету, если это в какой-то момент будет нужно. После можно рабоать с классами Java прямо из Perl. Создавать объкты и работать с ними как со своими собственными.
Вот простой пример:
Код

#!/usr/bin/perl -w
use strict;

use Inline Java => <<"END_JAVA";
    public class Person {
           private String name;
           private String family;
           private int age;

           // Перегружаем конструктор
           public Person(String name,String family,int age) {
                  this.name = name;
                  this.family = family;
                  this.age = age;
           }

           public Person(int age, String name, String family) {
                  this(name,family,age);
           }

           // Метод возвращает копию объекта
           public Person clon() {
                  return new Person(name,family,age);
           }

           public String toString() {
                  String s = "Name: " + this.name;
                  s += " Family: " + this.family;
                  s += " Age: " + this.age;
                  return s;
           }

           public void setName(String name) {
                  this.name = name;
           }

           public void setFamily(String family) {
                  this.family = family;
           }

           public void setAge(int age) {
                  this.age = age;
           }

           public String getName() {
                  return name;
           }

           public String getFamily() {
                 return family;
           }

           public int getAge() {
                  return age;
           }
    }
END_JAVA

# Создаём три объекта Java класса
my $p1 = new Person("Maша","Степанова",28);
my $p2 = new Person("Коля","Герасимов",3);
my $p3 = new Person("Вася","Пупкин",38);

# Покажем их состояние
print $p1->toString() . "\n";
print $p2->toString() . "\n";
print $p3->toString() . "\n";

# Просто разделитель
print "=" x 79 . "\n";

# Клонируем объкт
my $p4 = $p2->clon();

# Покажем только что родившийся клон
print $p4->toString() . "\n";

# Изменим возраст клона
$p4->setAge(5);

# Покажем состояние объекта с которого клонировали
print $p2->toString() . "\n";

# Покажем состояние объекта который был создан при клонировании
print $p4->toString() . "\n";

При этом будет скомпилирован файл Person.class, который всегда можно заюзать и из Java программы. Этот код показывает наглядно ООП в Perl. Хочешь писать на Perl легко читаемый код, юазай ООП.

Автор: Danissimo 8.12.2006, 15:05
ВАУ!!! Вот это да. Я потрясен.

Возможно ты прав. У меня мало опыта. Не так давно я получил перл код. Это просто говнище. Видимо это апогей того случая, когда через месяц сам не разберешся.

Вобчем, может я и ошибаюсь. Но почему-то озоны-амазоны на ASP или java написаны. Встает вопросом, почему же... Может как раз-таки из-за той самой функции, чья производная меняется в зависимости от языка. А ведь в конечном итоге все вокруг денег крутится.

Автор: korob2001 8.12.2006, 16:14
Да на Perl тоже есть нормальные проекты. Вот хотя бы этот: http://mobile.de или вот русскоязычный http://rin.ru/

Автор: Danissimo 8.12.2006, 16:19
http://rin.ru слабоват все-таки. http://mobile.de посильнее будет. Я помню его, там интересные фенечки есть. Но все же это не амазон. Или хотя бы не http://thinkorswim.com -- online realtime trading на различных биржах США.

Добавлено @ 16:21 
Собсно, автор топика интересный вопрос поднял. Почему? Каковы причины того, что амазоны не на перле делаются? Более того, почему на перле сайтов мало, по сравнению с PHP, Java, .NET?

Автор: korob2001 8.12.2006, 16:27
Ну это я так, слёту привёл примеры. Вот тоже помоему на Perl написан: http://activestate.com/

Нормальный код можно написать на чём угодно, так же как и кривой. 

Автор: Danissimo 8.12.2006, 16:29
Может потому, что на java и .NET jsp/asp -- это всего лишь фасад, за которым скрывается витиеватая логика. И опять-таки все упирается в стоимость. Все-таки я все больше и больше склоняюсь ко мнению, что этим процессом рулит стоимость внесения изменений относительно размеров системы.

Вот на рисунке я показал точку, до которой лучше делать на перле, после -- не на перле.

Добавлено @ 16:31 
Ок, я не болшой знаток перла, чтобы утверждать, что мое понимание причин верное. Тогда вопрос: правда ли, что сайтов на перле меньше, чем на PHP?

Добавлено @ 16:33 
Кста, а на чем этот сайт сделан?

Автор: korob2001 8.12.2006, 17:07
Конечно сайтов на PHP больше.
Но это не говорит о том, что PHP круче. Просто он легче.

Добавлено @ 17:08 
Цитата(Danissimo @  8.12.2006,  13:29 Найти цитируемый пост)
Кста, а на чем этот сайт сделан?

Какой?

Автор: Danissimo 8.12.2006, 17:12
Цитата
Но это не говорит о том, что PHP круче. Просто он легче.

Эээ... Так я как раз об этом и говорю =))

Цитата
Какой?

Ну вот этот, на котором мы пишем.

Добавлено @ 17:14 
Честно говоря, я не знаю, как применить понятие крутости к языку программирования =))

Автор: korob2001 8.12.2006, 17:37
Цитата(Danissimo @  8.12.2006,  14:12 Найти цитируемый пост)
Ну вот этот, на котором мы пишем.

Форум написан на PHP.

Цитата(Danissimo @  8.12.2006,  14:12 Найти цитируемый пост)
Честно говоря, я не знаю, как применить понятие крутости к языку программирования =))

Я тоже не знаю, просто много раз уже приходилось слышать вопрос. Что круче Perl или C++, Java или С++ и т.п.?

ЗЫ: я не пытаюсь тебе доказать, что PHP - кака, а Perl - конфетка. У каждого языка есть свои прелести и свои недостатки. Сравнивать их просто глупо. Нужно определиться для чего тебе нужен язык, а потом уже смотреть подходит он или нет для твоих потребностей.

Автор: Danissimo 8.12.2006, 17:46
Согласен.

Автор: Anarki 4.5.2007, 16:28
Еще один факт.
Люди хотят, чтобы в их коммерческом ПО код был недоступен для других.
Для закрытия кода(или сокрытия, как вам больше нравится) коммерческие проекты на php используют Zend optimizer, который является распространненым программным продуктом на серверах и особых трудностей при закрытии кода,как и с обработкой(выполнением) зашифрованных скриптов не появляется.
Perl же лишен этого качества.

Автор: nitr 4.5.2007, 16:35
Anarki, может не будем подымать темы практически годичной давности?!
А коммерческое ПО на Perl вполне прекрасно продается smile 
З.Ы.:не умеем?! тогда не беремся.

Автор: Anarki 5.5.2007, 19:09
[offtop]
Да искал на форуме кое-что, в списке эта тема была, ступил и написал, думал, что это не с поиска список, а просто с форума. Когда куча вкладок открыта и бегаешь по ним - легко перепутать smile
[/offtop]

Автор: tishaishii 7.5.2007, 22:04
Цитата
Почти везде стоит Перл, однако основная проблема в том, что сайт написанный на perl грузит сервер больше, чем написанный на PHP

Это смотря как сделать.Ты подгрузи mod_perl и будет та же хрень, только круче.

Добавлено через 10 минут и 13 секунд
Цитата
Нет я как раз нелюблю когда мешают HTML и перл... ну или пхп.. Мое глубокое убеждение- что это должно быть отдельно и полностью независимо 

Используй XSL.

Цитата
Мне пришлось попрограммировать на нескольких языках. Так вот лично мое мнение -- удобнее java ничего нету. Помните, раньше был такой юмор: прострелить себе ногу. Типа, на С вы просто берете и простреливаете себе ногу. На С++ нужно создать класс нога, класс пистолет, пуля и т.д., с намеком на то, что появляется куча лишней писанины.

Начинай разработку с проектирования аппаратной платы.

Цитата
Почему? Потому что там огромное кол-во кода. И вот тут как раз-таки лучше вначале написать побольше, но фундаментального, чем можно управлять, как марионеткой, а на основе этой амазоновской платформы, ядра, уже наворачивать фенички.

Зависит от твоих способностей.

Цитата
Итог: чем проще сайт, тем проще д/б средство, что в итоге экономически выгоднее. Чем крупнее сайт, тем более мощное д/б средство. Дороже программисты. Но в итоге, это будет экономически выгоднее, ибо надежность в таких системах начинает выступать на первый план.

Пиши на чём можешь, чем проще сайт, тем меньше твоё вмешательство. Оно и правильно. "Жаба", так "Жаба". Главное, чтобы работало и ты был доволен.

Добавлено через 13 минут и 40 секунд
Цитата
Но это не говорит о том, что PHP круче. Просто он легче.

"Легкче" для чего и для кого?
Сейчас в институтах и университетах злонамеренно орудуют бабушки, которых когда-то учили АСМу, а потом Basic.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)