68
Perl – жив?! Блиц доклад Perl Mova + YAPC::Russia 2010

Perl – жив?!

Embed Size (px)

DESCRIPTION

Perl Mova + YAPC::Russia 2010

Citation preview

Page 1: Perl – жив?!

Perl – жив?!Блиц доклад

Perl Mova + YAPC::Russia 2010

Page 2: Perl – жив?!

Последние 2 года все говорят только

об одном

Page 3: Perl – жив?!

Жив ли Perl,мёртв ли Perl?

Page 4: Perl – жив?!

Мёртв ли живой Perl?

Page 5: Perl – жив?!

Жив ли мёртвый Perl?

Page 6: Perl – жив?!

На самом деле я хочу рассказать другой доклад :)

Page 7: Perl – жив?!

Perl – зло?!Блиц доклад

YAPC::Russia + Perl::Mova 2010

Page 8: Perl – жив?!

Каждый год на «May Perl»

Page 9: Perl – жив?!

Я рассказываю про «зло» :)

Page 10: Perl – жив?!

CGI«CGI.pm – зло?!», May Perl 2008

Page 11: Perl – жив?!

LWP«Модули Net::*, использующие LWP::UserAgent – зло?!»,

May Perl 2009

Page 12: Perl – жив?!

POEТакого доклада не было, но это так :)

Page 13: Perl – жив?!

PHP

Page 14: Perl – жив?!

ой :)

Page 15: Perl – жив?!

TT«Template Toolkit – зло?!», May Perl 2010

Page 16: Perl – жив?!

– зло!

Page 17: Perl – жив?!

Может быть CGI.pm, LWP, POE, TT

не виноваты?

Page 18: Perl – жив?!

Может бытьPerl – зло !

Page 19: Perl – жив?!

Может бытьPerl – зло?!

Page 20: Perl – жив?!

НЕТ :)

Page 21: Perl – жив?!

На РИТе 2010 меня попросили рассказать

про «добро»

Page 22: Perl – жив?!

Поэтому я хочу рассказать другой доклад :)

Page 23: Perl – жив?!

Perl – добро?!Блиц доклад

YAPC::Russia + Perl::Mova 2010

Page 24: Perl – жив?!

Однозначно,Perl – добро!

Page 25: Perl – жив?!

Потому, что это мой доклад :)

Page 26: Perl – жив?!

Если речь идет о добре и зле

Page 27: Perl – жив?!

То это сказка :)

Page 28: Perl – жив?!

Если серьезно

Page 29: Perl – жив?!

«Мифы Перла»Алексей Капранов

Page 30: Perl – жив?!

http://kapranoff.ru/myths

Page 31: Perl – жив?!

Я пишу про Perl в ЖЖнесколько лет

Page 32: Perl – жив?!

Решил проверить реакцию читателей

Page 33: Perl – жив?!

Написал пост«Perl гавно!»

Page 34: Perl – жив?!

«Я смотрю в будущее и в будущем Perl нет!»

Андрей Шетухин

Page 35: Perl – жив?!

Реакция на пост

• Пост удалили с planetperl.ru

• «Как сделать так, чтобы меня отпустило, пожалуйста»

• «Бог умер» (с) Ницше

• «БУДУЩЕЕ С RUBY!» Аноним

Page 36: Perl – жив?!

Язык Perl толком не поменялся с 2003 года

Page 37: Perl – жив?!

Качество и стильмоего кода изменилсяочень сильно

Page 38: Perl – жив?!

2003

Page 39: Perl – жив?!

#---------------------------------------------------------------## 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);

Page 40: Perl – жив?!

# 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});

Page 41: Perl – жив?!

2004

Page 42: Perl – жив?!

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};

Page 43: Perl – жив?!

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' ",);

Page 44: Perl – жив?!

unless ($topimg || -s "$PATH{topimg}/$topimg") { $topimg = (substr($fio, -2, 2) eq 'ич') ? 'man.jpg' : 'woman.jpg'; }

Page 45: Perl – жив?!

2005

Page 46: Perl – жив?!

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'});

Page 47: Perl – жив?!

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,);

Page 48: Perl – жив?!

2010

Page 49: Perl – жив?!

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';

Page 50: Perl – жив?!

«Хороший программист всегда важнее хорошего

языка»Тим Банс

Page 51: Perl – жив?!

«Плохие программисты будут программировать

нечитаемо на любом языке»

Дамиан Конвей

Page 52: Perl – жив?!

Почему многие программисты ненавидят Perl?

Page 53: Perl – жив?!

И считают, чтоPerl умер

Page 54: Perl – жив?!

Либо они плохие программисты

Page 55: Perl – жив?!

Либо им пришлось поддерживать

Perl-код 1998–2005 гг. :)

Page 56: Perl – жив?!

Либо они завидуют живому мёртвому

Perl

Page 57: Perl – жив?!
Page 58: Perl – жив?!

Что нужно сделать, чтобы поменять мнение хейтеров?

Page 59: Perl – жив?!

НИЧЕГО :)

Page 60: Perl – жив?!

Удалить весь свой говнокод

Page 61: Perl – жив?!

Удалить из индексов Google и Яндекс говностатьи

начала 2000х годов

Page 62: Perl – жив?!

Продолжать программировать

на Perl

Page 63: Perl – жив?!

И популяризировать это :)

Page 64: Perl – жив?!

P. S.

Page 65: Perl – жив?!

Perl – жив, хотя бы потому что мы живы и собрались здесь :)

Page 66: Perl – жив?!

use Perlor die

Page 67: Perl – жив?!

JFDI

Page 68: Perl – жив?!

Спасибо за внимание!Анатолий Шарифулин

sharifulin