Perl – жив?!
Upcoming SlideShare
Loading in...5
×
 

Perl – жив?!

on

  • 4,458 views

Perl Mova + YAPC::Russia 2010

Perl Mova + YAPC::Russia 2010

Statistics

Views

Total Views
4,458
Views on SlideShare
4,239
Embed Views
219

Actions

Likes
1
Downloads
0
Comments
0

5 Embeds 219

http://allframeworks.ru 169
http://lj-toys.com 23
http://www.slideshare.net 13
http://l.lj-toys.com 11
http://www.allframeworks.ru 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Perl – жив?! Perl – жив?! Presentation Transcript

  • 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 • «Как сделать так, чтобы меня отпустило, пожалуйста» • «Бог умер» (с) Ницше • «БУДУЩЕЕ С RUBY!» Аноним
  • Язык Perl толком не поменялся с 2003 года
  • Качество и стиль моего кода изменился очень сильно
  • 2003
  • #---------------------------------------------------------------# # 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);
  • # 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});
  • 2004
  • 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};
  • 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' ", );
  • unless ($topimg || -s "$PATH{topimg}/$topimg") { $topimg = (substr($fio, -2, 2) eq 'ич') ? 'man.jpg' : 'woman.jpg'; }
  • 2005
  • 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'});
  • 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, );
  • 2010
  • 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';
  • «Хороший программист всегда важнее хорошего языка» Тим Банс
  • «Плохие программисты будут программировать нечитаемо на любом языке» Дамиан Конвей
  • Почему многие программисты ненавидят Perl?
  • И считают, что Perl умер
  • Либо они плохие программисты
  • Либо им пришлось поддерживать Perl-код 1998–2005 гг. :)
  • Либо они завидуют живому мёртвому Perl
  • Что нужно сделать, чтобы поменять мнение хейтеров?
  • НИЧЕГО :)
  • Удалить весь свой говнокод
  • Удалить из индексов Google и Яндекс говностатьи начала 2000х годов
  • Продолжать программировать на Perl
  • И популяризировать это :)
  • P. S.
  • Perl – жив, хотя бы потому что мы живы и собрались здесь :)
  • use Perl or die
  • JFDI
  • Спасибо за внимание! Анатолий Шарифулин sharifulin