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

Like this? Share it with your network

Share

Perl – жив?!

  • 4,580 views
Uploaded on

Perl Mova + YAPC::Russia 2010

Perl Mova + YAPC::Russia 2010

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,580
On Slideshare
4,361
From Embeds
219
Number of Embeds
5

Actions

Shares
Downloads
0
Comments
0
Likes
1

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

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Perl – жив?! Блиц доклад Perl Mova + YAPC::Russia 2010
  • 2. Последние 2 года все говорят только об одном
  • 3. Жив ли Perl, мёртв ли Perl?
  • 4. Мёртв ли живой Perl?
  • 5. Жив ли мёртвый Perl?
  • 6. На самом деле я хочу рассказать другой доклад :)
  • 7. Perl – зло?! Блиц доклад YAPC::Russia + Perl::Mova 2010
  • 8. Каждый год на «May Perl»
  • 9. Я рассказываю про «зло» :)
  • 10. CGI «CGI.pm – зло?!», May Perl 2008
  • 11. LWP «Модули Net::*, использующие LWP::UserAgent – зло?!», May Perl 2009
  • 12. POE Такого доклада не было, но это так :)
  • 13. PHP
  • 14. ой :)
  • 15. TT «Template Toolkit – зло?!», May Perl 2010
  • 16. – зло!
  • 17. Может быть CGI.pm, LWP, POE, TT не виноваты?
  • 18. Может быть Perl – зло !
  • 19. Может быть Perl – зло?!
  • 20. НЕТ :)
  • 21. На РИТе 2010 меня попросили рассказать про «добро»
  • 22. Поэтому я хочу рассказать другой доклад :)
  • 23. Perl – добро?! Блиц доклад YAPC::Russia + Perl::Mova 2010
  • 24. Однозначно, Perl – добро!
  • 25. Потому, что это мой доклад :)
  • 26. Если речь идет о добре и зле
  • 27. То это сказка :)
  • 28. Если серьезно
  • 29. «Мифы Перла» Алексей Капранов
  • 30. http://kapranoff.ru/myths
  • 31. Я пишу про Perl в ЖЖ несколько лет
  • 32. Решил проверить реакцию читателей
  • 33. Написал пост «Perl гавно!»
  • 34. «Я смотрю в будущее и в будущем Perl нет!» Андрей Шетухин
  • 35. Реакция на пост • Пост удалили с planetperl.ru • «Как сделать так, чтобы меня отпустило, пожалуйста» • «Бог умер» (с) Ницше • «БУДУЩЕЕ С RUBY!» Аноним
  • 36. Язык Perl толком не поменялся с 2003 года
  • 37. Качество и стиль моего кода изменился очень сильно
  • 38. 2003
  • 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. # 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. 2004
  • 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. 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. unless ($topimg || -s "$PATH{topimg}/$topimg") { $topimg = (substr($fio, -2, 2) eq 'ич') ? 'man.jpg' : 'woman.jpg'; }
  • 45. 2005
  • 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. 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. 2010
  • 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. «Хороший программист всегда важнее хорошего языка» Тим Банс
  • 51. «Плохие программисты будут программировать нечитаемо на любом языке» Дамиан Конвей
  • 52. Почему многие программисты ненавидят Perl?
  • 53. И считают, что Perl умер
  • 54. Либо они плохие программисты
  • 55. Либо им пришлось поддерживать Perl-код 1998–2005 гг. :)
  • 56. Либо они завидуют живому мёртвому Perl
  • 57. Что нужно сделать, чтобы поменять мнение хейтеров?
  • 58. НИЧЕГО :)
  • 59. Удалить весь свой говнокод
  • 60. Удалить из индексов Google и Яндекс говностатьи начала 2000х годов
  • 61. Продолжать программировать на Perl
  • 62. И популяризировать это :)
  • 63. P. S.
  • 64. Perl – жив, хотя бы потому что мы живы и собрались здесь :)
  • 65. use Perl or die
  • 66. JFDI
  • 67. Спасибо за внимание! Анатолий Шарифулин sharifulin