この記事は abicky.net の 初めて Perl でコードを書く時に知っておきたかったこと に移行しました
2005年 Railsの襲来2005年に突如現れたRailsによって国内でRuby利用者が急増したのがPerl滅亡への第一歩となった。書きやすさに作者がとことんこだわって作られたRubyの魅力を一度知ってしまうとPerlの古くさく読み辛く書き辛い文法に誰もがうんざりし始める。 2007年 JavaScriptブームAjaxで再発見されたJavaScriptのブームもPerl終焉に若干ながら貢献している。ブラウザというPerlが全く手を出せないジャンルの王者JavaScriptの持つ華やかさに誰もが憧れ、そして手元のPerlの古くささに反吐が出始める。不器用で不細工なところも含めて愛していた女房とつつましく送っていた人生に、突然ぴちぴちのボイン女子大生が転がり込んで来たようなものである。 スマホ/ソーシャルゲームバブルiPhone市場が本格的に立ち上がり、Perlとは全くの無関係であるスマホ
タイトルは釣りです。 App::WithSound をリリース致しました。 https://github.com/moznion/App--WithSound https://metacpan.org/module/MOZNION/App-WithSound-v1.0.2/with-sound (2013.03.06 追記) App::WithSound はv1.1.0 にバージョンアップしました。 コマンドの成功・失敗時だけでなく、コマンドの実行中にも音声を再生出来るようになっています。 https://metacpan.org/module/MOZNION/App-WithSound-v1.1.0/with-sound (追記ここまで) App::WithSound? コマンドが成功するか失敗するかによって、その結果に対応した音声が流れるアプリケーションです。 まず、このモジュールはm
Perl › 読み物 PHPやPerlやRubyやPythonなどのスクリプト言語に対して、変数に型がないということを否定的にとらえる人もいるかと思います。特にC言語やJavaなどの静的言語を使ってきた人にとっては、型がないということが不安材料として目に映ることが多いのではないかと思います。 けれども、型がないということは、本当に素晴らしいことです。型がないことによって、たくさんの面倒から解放されるからです。 どのような型の値でも代入できる まず基本的なこととして変数に型がなければどのような型の値でも代入できるということです。つまり、受け取るときに、どのような型の値を受け取るのかを意識する必要がありません。 my $str = 'Hello'; my $num = 1; my $nums = [1, 2, 3]; my $person = {age => 2, name => 'taro'
英語圏ではかなり前からPerlで開発し続けることのリスクについて語られていたが、いよいよ具体的な弊害が出て来ているようなので、かいつまんでメモ。日本でもそう遠くない未来だと思う。 若手エンジニアの不足Objective-Cのように需要が逼迫しているのに人材の供給が増えず需給ミスマッチが起っているわけでは無く、需要も供給も減るという状況下でわずかだが需要が上回っているとう性質の悪い状況がPerlに起きている。特に深刻なのは安価な若手エンジニアの採用が絶望的に難しいという現実だ。Rubyが台頭して数年経ちPythonがメインストリームの先頭を突っ走る2013年において新しくPerlを勉強しようとする若者はよほどの物好きしかいない。30~40歳のPerlエンジニアを雇うのはそれほど難しく無いだろうがコストがかかる。安価な20代前半の若手エンジニアを雇いたいという企業の思いとは裏腹にPerlを新た
Perlの食えない事情 より おっと、そうです、Perlには演算子が多すぎるのでした。せっかくの機会なので、Perlの演算子を紹介します。 ビーナス演算子: 0+, +0 数値として評価してくれます。意外とよく見かけますね。 なぜこの演算子を使う必要があるのかというと、Perlは文字列と数値を明確に区別できないからです。scalarを文字列として解釈するならば文字列として、 print 0+ '10'; #=> 10 print 0+ '123b'; #=> 123 print '1.2e3' +0; #=> 1200 print [] +0; #=> 4303367864 ちなみに、文字列として評価するときにはこのようにするとかっこいいと言われています。 $obj.q(); 一見メソッド呼び出しのように見えますが $obj . ''; と等価です。 ベビーカー演算子: @{[ ]} 文字
2006年04月30日03:46 カテゴリOpen Source タブのスペース化はタブ幅よりも重要である あえて断言します。君たちは半分しかわかっていないと。 Charsbar::Note - タブとスペースの話 あえて断言しときます。こんなモンはバッドノウハウなんであって、ベストプラクティスでもなんでもない、と。 最速インターフェース研究会 :: タブとスペースと萌ディタの話なんかそもそもタブを使わずにスペース4で統一せよってのはフォントサイズをピクセル単位で指定したがるデザイナの言い分みたいで気に食わない。君たちは、patchのことをきれいさぱーり忘れている。 人のコードを直したり、人にコードを直してもらったりしなくてもいいというのであれば、君たちのいい分ももっともだ。しかし、人とコードをやりとりする時にpatchをやりとりする場合、tabは頭が痛い以外の何者でもない。 以下に二つの
Hachioji.pm#12で発表したネタです。Data::WeightedRoundRobin使ったら、rand使うようなコードが、いい感じにすっきり見やすくかけましたよーという話です。 嫌なコードの概要 要件 「以下のような感じで、実行する処理をランダムで変更してよ!」って要件がたまにありますね。 3割の確率でhogeを実行 3割の確率でmogeを実行 2割の確率でfooを実行 1割の確率でbarを実行 1割の確率でjarを実行 ファクトリーメソッドパターン的な実装ですね。 ごにょごにょするとこんな感じの実装に my $rand = rand(); my $method; if($rand < 0.3){ $method = 'hoge';#3割 }elsif($rand >= 0.3 && $rand < 0.6){ $method = 'moge';#3割 }elsif($rand
本当は2011年の1-3月の間にやろうと思っていたのだが、卒業の危機などがあり思うように進まなかった。しかし今年Perl/XS以外にもC++, Objective C++, Java, ActionScript, JavaScript, Rubyなどでコーディングする機会があり、自分が欲しい言語が具体的になってきた。 私が欲しいのは、Perlの次を担えるような言語だ。それは必ずしも私の言語でなくてもいいのだが、とにかく「next Perl」が欲しい。 Perl言語のいいところは何か。それは言語に密結合した正規表現構文とテキスト処理機能、シンボルテーブルなど内部データ構造*1や後付けのOOP*2のような原始的な機能の露出、標準ドキュメントフォーマット*3とビューア*4、RAIIとダイナミックスコープだ。私は、これらすべてを備えている言語をPerl以外に知らない。 一方で、不要な機能もある。特
2011年01月31日22:30 カテゴリCultureLightweight Languages perl - から未だに目を離せない四つ、あるいはただ一つの理由 やはりお鉢がまわってきたので。 回答希望。ラクダかわいい以外で。@dankogai さんとか? 「〜今あえてPerlを取る理由というのが個人的には思い浮かばない。生粋のPerl使いならきっと流暢な解答を用意してくれると思う。」 プログラミング言語人気TOP10の簡易解説 http://ht.ly/3NaTkless than a minute ago via HootSuite佐藤 治男 HalSato プログラミング言語人気TOP10の簡易解説用途的にPythonやRubyと被るので、今あえてPerlを取る理由というのが個人的には思い浮かばない。生粋のPerl使いならきっと流暢な解答を用意してくれると思う。 ベタ プログラミ
『スクリプト言語間における「lexical closure」の違い』の整理。 http://d.hatena.ne.jp/karasuyamatengu/20101008/1286568265 http://d.hatena.ne.jp/karasuyamatengu/20101007/1286477371 matz 2010/10/09 16:07 えーとですね。まだ、言語ごとにやってることが違うんですよ。 つまり、PerlとRubyはブロック内だけで毎回新しい変数localvarを作ってる(の で、closure間で変数を共有していない)のに対して、Python(関数レベルしかス コープがない)などはもっと広いスコープでlocalvarが有効でclosure間で同じ 変数を共有しています。localvarのスコープがループの中だけの言語 (Ruby,Perl)とclosuresとloc
YAPC::Asia 2010 で LT をさせていただきました。 5 分枠で 100 枚のスライドになったので、かなり早口になりました。 銅鑼は鳴りませんでしたが、きっと 4:58 ぐらいギリギリにおさまったとおもいます。 トーク自体は日本語で行ないましたが、英語圏の方も結構いらっしゃるので、全セリフを決めておき、LT に英語字幕をつける試みをしてみました。 ただシャッフルするだけなのに、やりかたがこれほどまでに出てくるということに、TIMTOWTDI な Perl の特性がよくあらわれているとおもいます。 スライドは slidshare にアップしたものをご覧ください。 毎週毎週一緒に楽しく頭をかかえながらシャッフルをひねり出した弊社の同僚、元同僚の皆様に感謝します。 今年も YAPC::Asia 楽しかったー!
2010年09月03日05:30 カテゴリLightweight LanguagesMath Algorithm - 0と1を次々と返す簡単なお仕事 ごもっとも。 0と1を次々返す方法 - a2c.get.diary TrueだったらFalseで、FalseだったらTrueにしたい。 なんかそんなことそこかしこで必要で、その為の便利なものが あるのかなぁと思ったんだけど無いぽい Closure 本来は一番おすすめなのだが… JavaScript ()が煩わしいが、perlやrubyよりは自然。 #!/usr/bin/js var flipflop = function(p){ p = !p; return function(){ return p = !p; }; }; var fl = flipflop(); console.log(fl()); console.log(fl()); c
2010年05月01日13:15 カテゴリLightweight Languages perl - 配列の∪と∩ これを解くためには、配列の∩(交わり、intersection)がわかればいいのですが… Perl Cookbook (English) Christiansen / Torkington [邦訳: Perlクックブック] perlかPHPで解決したいです。 複数(最大200程度)の配列があり、 それぞれ有している数字(それぞれ最大50程度)のうち、 二つ以上の値が同じ配列名を抜き出す。 という事をし.. - 人力検索はてな複数(最大200程度)の配列があり、 それぞれ有している数字(それぞれ最大50程度)のうち、 二つ以上の値が同じ配列名を抜き出す。 実にエレガントな方法が、Perl Cookbookに載っています。 以下、実例。 #!/usr/bin/perl use st
2010年4月に出るのは…… 先日、いわゆるPerl 6の実装が2010年4月をめどにRakudo *(Rakudo Star)の名前でリリースされる、という記事が紹介されました。 そのネタ元となった記事を書いたパトリック・ミショー(Patrick Michaud)氏は、2009年4月17日のNordic Perl Workshopを皮切りに、2009年6月22日のYAPC|10(YAPC::NA)、2009年7月22日のOSCON、2009年8月4日のYAPC::EUと、立て続けにRakudoの発表を行い、そのまとめとして当該記事を掲載したのですが(ちなみにRakudo *の公開時期はすでにOSCONの時点で明言されていました)、その3日後にご本人によるフォロー記事が出ているように、この短い紹介記事では意図が伝わりにくい面もあったようです。 そこで、今回はRakudoとはどのよう
Perlの最新バージョンであるPerl5と、現在開発中のPerl6との関係は、 「Perlという大家族の一員ではあるが、同じ血統ではない」 ということが基本合意されたと、ブログ「Japan Perl Association運営ブログ」のエントリ「Perl5 and Perl6」で同団体代表理事の牧大輔氏が書いています。 Perl5とPerl6は同じ血統ではないとはどういうことでしょう? Perl6の開発スタートは2000年 Perl6は、高機能化し複雑になってきたPerl5の実装を見直し、次世代のPerlにふさわしいPerlを作ろうと2000年に開発が始まりました。 Perl6は新しく言語仕様から作り直しているため、Perl4や5に対する後方互換性がなくなることが発表されています。ということは、現在のPerl5で書かれた膨大なソフトウェア資産を維持するには、Perl5の実装を何らかの形で維
「Perl 5コアの開発はここ数年、負の連鎖が続いていた。リリースは滞り、開発者は去り、将来の見通しはどんどん悪くなっていった。ここで話すのは、Perl 5の開発におけるこの悪い流れがどのようにして、楽しく、前向きで、エキサイティングなものに変わったか、というストーリーだ」 Perl 5のコアデベロッパーで、ActiveStateの技術リードでもあるJan Dubois氏は、4月13日に同社のブログにポストしたエントリ「Perl 5 is Alive」で、このように書き出しています。 Perlは、機能が高度化し複雑になったPerl 5までのバージョンを見直し、新たに作り直そうと、2000年にPerl 6の開発が始まりました。しかしPerl 6は10年たったいまでもリリースされておらず(今月に最初のバージョンがリリースされるといわれていましたが…)、一方でPerl 6の開発が始まってからは、
昨日の続きです。Graphviz で何か面白い事を出来ないかなあ、と考えて、ミクシーのマイミクリスト相関図とか、エログサイトのサイト間リンクを可視化とか色々考えて作ってみたりしたものの、どれもありふれてるネタのような気がして今イチな感じ。 で、、、今日ふと旧友に会ったら、最近 Perfume を聞いてる、という話を聞きました。そこで、おーそうだ歌詞を可視化(ダジャレ)してみたら面白いんじゃないか(←ダジャレが)と思いついたので、早速作ってみた。 コードはこんな感じ。 # -*- coding: utf-8 -*- require 'MeCab' require 'kconv' require 'rubygems' require "graphviz" c = MeCab::Tagger.new("-O wakati") lyrics = open(ARGV[0]).read.toutf8
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く