Perl – жив?!

  • 3,598 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
3,598
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
1
Comments
0
Likes
1

Embeds 0

No embeds

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