Perl – жив?!
        Блиц доклад
Perl Mova + YAPC::Russia 2010
Последние 2 года
все говорят только
     об одном
Жив ли Perl,
мёртв ли Perl?
Мёртв ли
живой Perl?
Жив ли
мёртвый Perl?
На самом деле я
хочу рассказать
другой доклад :)
Perl – зло?!
        Блиц доклад
YAPC::Russia + Perl::Mova 2010
Каждый год
на «May Perl»
Я рассказываю
  про «зло» :)
CGI
 «CGI.pm – зло?!», May Perl 2008
LWP
«Модули Net::*, использующие LWP::UserAgent – зло?!»,
                                      May Perl 2009
POE
 Такого доклада не было, но это так :)
PHP
ой :)
TT
«Template Toolkit – зло?!», May Perl 2010
– зло!
Может быть
CGI.pm, LWP, POE, TT
    не виноваты?
Может быть
Perl – зло !
Может быть
Perl – зло?!
НЕТ :)
На РИТе 2010 меня
попросили рассказать
     про «добро»
Поэтому я хочу
рассказать другой
    доклад :)
Perl – добро?!
        Блиц доклад
YAPC::Russia + Perl::Mova 2010
Однозначно,
Perl – добро!
Потому, что это
 мой доклад :)
Если речь идет
 о добре и зле
То это сказка :)
Если серьезно
«Мифы Перла»
Алексей Капранов
http://kapranoff.ru/myths
Я пишу про Perl в ЖЖ
    несколько лет
Решил проверить
реакцию читателей
Написал пост
«Perl гавно!»
«Я смотрю в будущее и
 в будущем Perl нет!»
       Андрей Шетухин
Реакция на пост

• Пост удалили с planetperl.ru
• «Как сделать так, чтобы меня
  отпустило, пожалуйста»
• «Бог умер» (с) Н...
Язык Perl толком
 не поменялся
  с 2003 года
Качество и стиль
моего кода изменился
    очень сильно
2003
#---------------------------------------------------------------#
#                        index.cgi                      ...
# student.cgi

head_title('Студенты кафедры');
print "
   <tr>
    <td valign="top" id=left>

    </td>";
vertical_line();...
2004
my $dbh = Tools::connect();

my $tpl = new CGI::FastTemplate($PATH{template});
$tpl->no_strict;
$tpl->define(%DEFINE);

my ...
our %SELECT = (
   # ФИО по id
   fio => "SELECT name FROM person WHERE id = ?",
   ...
   0 => "SELECT * FROM info",	

   ...
unless ($topimg || -s "$PATH{topimg}/$topimg") {
    	

 $topimg = (substr($fio, -2, 2) eq 'ич')
           ? 'man.jpg'
   ...
2005
my $REQUEST = (
	

   	

 {
	

   	

 	

 1 => sub {
	

   	

 	

 	

 require Apache;
	

   	

 	

 	

 my $r = shift || ...
my $self = $class->SUPER::new(
   %$config,
   'method' => $REQUEST
      ? $REQUEST->method
      : $ENV{'REQUEST_METHOD'}...
2010
use Mojolicious::Lite;

get '/rss' => sub {
	

 my $self = shift;
	

 my $DB = $self->app->db;
	

	

 $self->render(
	

 	...
«Хороший программист
всегда важнее хорошего
        языка»
         Тим Банс
«Плохие программисты
будут программировать
       нечитаемо
    на любом языке»
       Дамиан Конвей
Почему многие
программисты
ненавидят Perl?
И считают, что
   Perl умер
Либо они плохие
 программисты
Либо им пришлось
  поддерживать
     Perl-код
 1998–2005 гг. :)
Либо они завидуют
 живому мёртвому
      Perl
Что нужно сделать,
 чтобы поменять
мнение хейтеров?
НИЧЕГО :)
Удалить весь
свой говнокод
Удалить из индексов
  Google и Яндекс
    говностатьи
 начала 2000х годов
Продолжать
программировать
     на Perl
И популяризировать
      это :)
P. S.
Perl – жив, хотя бы
потому что мы живы
и собрались здесь :)
use Perl
  or die
JFDI
Спасибо
за внимание!
 Анатолий Шарифулин
          sharifulin
Perl – жив?!
Upcoming SlideShare
Loading in...5
×

Perl – жив?!

3,732

Published on

Perl Mova + YAPC::Russia 2010

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,732
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Perl – жив?!

  1. 1. Perl – жив?! Блиц доклад Perl Mova + YAPC::Russia 2010
  2. 2. Последние 2 года все говорят только об одном
  3. 3. Жив ли Perl, мёртв ли Perl?
  4. 4. Мёртв ли живой Perl?
  5. 5. Жив ли мёртвый Perl?
  6. 6. На самом деле я хочу рассказать другой доклад :)
  7. 7. Perl – зло?! Блиц доклад YAPC::Russia + Perl::Mova 2010
  8. 8. Каждый год на «May Perl»
  9. 9. Я рассказываю про «зло» :)
  10. 10. CGI «CGI.pm – зло?!», May Perl 2008
  11. 11. LWP «Модули Net::*, использующие LWP::UserAgent – зло?!», May Perl 2009
  12. 12. POE Такого доклада не было, но это так :)
  13. 13. PHP
  14. 14. ой :)
  15. 15. TT «Template Toolkit – зло?!», May Perl 2010
  16. 16. – зло!
  17. 17. Может быть CGI.pm, LWP, POE, TT не виноваты?
  18. 18. Может быть Perl – зло !
  19. 19. Может быть Perl – зло?!
  20. 20. НЕТ :)
  21. 21. На РИТе 2010 меня попросили рассказать про «добро»
  22. 22. Поэтому я хочу рассказать другой доклад :)
  23. 23. Perl – добро?! Блиц доклад YAPC::Russia + Perl::Mova 2010
  24. 24. Однозначно, Perl – добро!
  25. 25. Потому, что это мой доклад :)
  26. 26. Если речь идет о добре и зле
  27. 27. То это сказка :)
  28. 28. Если серьезно
  29. 29. «Мифы Перла» Алексей Капранов
  30. 30. http://kapranoff.ru/myths
  31. 31. Я пишу про Perl в ЖЖ несколько лет
  32. 32. Решил проверить реакцию читателей
  33. 33. Написал пост «Perl гавно!»
  34. 34. «Я смотрю в будущее и в будущем Perl нет!» Андрей Шетухин
  35. 35. Реакция на пост • Пост удалили с planetperl.ru • «Как сделать так, чтобы меня отпустило, пожалуйста» • «Бог умер» (с) Ницше • «БУДУЩЕЕ С RUBY!» Аноним
  36. 36. Язык Perl толком не поменялся с 2003 года
  37. 37. Качество и стиль моего кода изменился очень сильно
  38. 38. 2003
  39. 39. #---------------------------------------------------------------# # index.cgi # # Стартовый файл - путеводитель # #---------------------------------------------------------------# require "functions.cgi"; $query = new CGI; $user = get_user(); print $query->header(-charset => 'windows-1251'); for my $i(0..$#menu) { for (keys %{$menu[$i]}) { if ($query->param('menu') eq $_) { $title .= " :: $menu[$i]{$_}"; html_head($title); html_menu(); require "$_.cgi"; html_right($user); html_foot(); }}} exit(0);
  40. 40. # student.cgi head_title('Студенты кафедры'); print " <tr> <td valign="top" id=left> </td>"; vertical_line(); $stud_way = "$path{student}/info.txt"; print " <td valign="top">"; print $site_construct; print " </td> </tr>n"; foot_way($way{student});
  41. 41. 2004
  42. 42. my $dbh = Tools::connect(); my $tpl = new CGI::FastTemplate($PATH{template}); $tpl->no_strict; $tpl->define(%DEFINE); my $q = new CGI; if (my $page = $q->param('page')) { my $url_page = $URL{cgi}.$PARAM.$page; if (my $p = Tools::get_one($dbh, $MENU{1}, $page) { print $q->header(-charset => 'windows-1251'); # информация о разделе меню my $m = Tools::get_one($dbh, $MENU{2}, $p->{menu}); my $k = Tools::get_one($dbh, $SELECT{0}, undef); my (%assign); $assign{IMG} = $URL{images}; $assign{CSS} = $URL{css}; $assign{JS} = $URL{js};
  43. 43. our %SELECT = ( # ФИО по id fio => "SELECT name FROM person WHERE id = ?", ... 0 => "SELECT * FROM info", # id персоны по виду д.з.с. 1 => "SELECT person FROM dzsperson WHERE dzs = ?", # название д.з.с. по коду преподавателя и виду д.з.с. 2 => "SELECT dzs.name FROM dzsperson, dzs WHERE dzs.id = dzsperson.dzs AND dzsperson.person = ?AND dzs.kind = ? AND dzsperson.kind = '0' ", );
  44. 44. unless ($topimg || -s "$PATH{topimg}/$topimg") { $topimg = (substr($fio, -2, 2) eq 'ич') ? 'man.jpg' : 'woman.jpg'; }
  45. 45. 2005
  46. 46. my $REQUEST = ( { 1 => sub { require Apache; my $r = shift || Apache->request || return; $r->register_cleanup(sub {1}); return $r; }, 2 => sub { require Apache2::Response; require Apache2::RequestRec; require Apache2::RequestUtil; require Apache2::RequestIO; require APR::Pool; my $r = shift || Apache2::RequestUtil->request || return; $r->pool->cleanup_register(sub {1}); return $r; }, }->{$ENV{'MOD_PERL'} && $ENV{'MOD_PERL_API_VERSION'}} || sub {} )->($config->{'request'});
  47. 47. my $self = $class->SUPER::new( %$config, 'method' => $REQUEST ? $REQUEST->method : $ENV{'REQUEST_METHOD'}, 'type' => $ENV{'CONTENT_TYPE'}, 'query' => $REQUEST ? $REQUEST->args : ( $ENV{'QUERY_STRING'} || $ENV{'REDIRECT_QUERY_STRING'} ) , 'length' => $ENV{'CONTENT_LENGTH'}, 'stream' => *STDIN, );
  48. 48. 2010
  49. 49. use Mojolicious::Lite; get '/rss' => sub { my $self = shift; my $DB = $self->app->db; $self->render( format => 'rss', list => $DB->select( 'select * from url order by -id limit ' . CONF->{'limit'}->{'rss'} ), ); } => 'index';
  50. 50. «Хороший программист всегда важнее хорошего языка» Тим Банс
  51. 51. «Плохие программисты будут программировать нечитаемо на любом языке» Дамиан Конвей
  52. 52. Почему многие программисты ненавидят Perl?
  53. 53. И считают, что Perl умер
  54. 54. Либо они плохие программисты
  55. 55. Либо им пришлось поддерживать Perl-код 1998–2005 гг. :)
  56. 56. Либо они завидуют живому мёртвому Perl
  57. 57. Что нужно сделать, чтобы поменять мнение хейтеров?
  58. 58. НИЧЕГО :)
  59. 59. Удалить весь свой говнокод
  60. 60. Удалить из индексов Google и Яндекс говностатьи начала 2000х годов
  61. 61. Продолжать программировать на Perl
  62. 62. И популяризировать это :)
  63. 63. P. S.
  64. 64. Perl – жив, хотя бы потому что мы живы и собрались здесь :)
  65. 65. use Perl or die
  66. 66. JFDI
  67. 67. Спасибо за внимание! Анатолий Шарифулин sharifulin
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×