北陸ディベロッパーズ忘年会'18に参加してきた

北陸ディベロッパーズ忘年会 '18 - 北陸ディベロッパーズ交流会 | Doorkeeper

久しぶりに参加してきた。めちゃくちゃ濃い話ができた。

幹事のみなさんありがとうございます!

以下、覚えてる範囲で何喋ったっけ。

  • Netlify の中の人と Netlify の Feature, Pricing などの deep な話と NetlifyCMS の改善案の話1
    • Tokyo は meetup あったけど、北陸でも採用を考えている人が自分以外にもいた
  • 個人のブログ静的サイトジェネレータで書くの割とストイックだよね話
  • WordPress 強すぎ問題
  • Ruby は PHP や JavaScript よりはずっとカタイんだよ話 vs Java 勢
    • アンサーでアセンブラ派の話
  • スプラトゥーンつらいっすね話
  • DBのからむテストの話
  • やっぱ SaaS 使いまくりになるよね話
  • Dart 面白そうだよ話
  • あいつどうなってんだよ話
  • 北陸で北陸以外の仕事してる人ばかりになってきてるなー話

超久しぶりに樽の酒飲んだりしてた。いやー悪いことたくさんしたわ! また今度!

  1. i18nとか 

2007年振り返り

とりあえずコっち系のだけ。今年はなんか妙に長い。

記録

形になったもの

形にならなかったもの

まとめ

振り返りのために過去日記を読んでいたら今年はいつもより振り返りの記事が多いような気がする。この日記がやたら長いのも今年の傾向を最も顕著に具現化してるんだな。なるほど。あと言語の話とか開発の話はほとんど書いてないですな。管理方面ばかり。書いてない方はたぶん悩んだりハマったりすることがなかったんだな、きっと。仮想化は以前からずっと気になっていたのを実際に手を動かして確認することができてなかなか充実していた。

全体的に動きは細かめ。道具の持ち替えや大きなアップグレードは Emacs 22.1 くらい。安定は確かにしていたかもしれない。

冬休みは読みたい本がたくさんあるのと、coderepos の commit 権をもらったので、PukiWiki の plugin を中心に手元のものを解放してしまいたい。あとオレライブラリの作りについて、もっと独立性を高くするために試行錯誤する。

来年は Xen, CentOS(RHEL), PHP 5 が当面の大きな課題。その後は Rails, 管理系の効率化を中心に攻めたいがどうなるかはよく分からない。

コっち系以外も安定、、、してたかな。去年、一昨年は訃報ばかりだったが、今年は何事もなく過ごせた。

あー来年は、オフというか勉強会やりたいな。特に Rails とかに限定する気もなくて、開発でもサーバ管理でもクライアント管理でもなんでもいい。あんまり限定するともともとパイの小さい田舎じゃ身動き取れないだろうし。

参考

RubyグループとRubyistグループって何が違うんだ?

Rubyに関するグループとRubyの勉強をする人のためのグループ。らしい。うーん。

ダブルショック

昨日の夜ショックなことがあった。

やけ酒飲んでたらどうでしょうクラシックの録画を忘れた。

どちくしょう。

チクショー!!

ってお笑いの人、この応用の効かないネタでどう引っ張っていくんだろう。メイクとか頑張りすぎてるしね。あれ以外でテレビ出てても急にネタできないし。だからと言ってずっとあのままってわけにもいかないだろうし。HG みたいにキャラとして確立できてるわけじゃないんだから。

知ってて選ぶこと、知らずに決められること

PHP の人気がなぜ高いのかは kunitの日記 にあるように、お互いの現在の姿ではなく、人気を得たプロセスを周辺の言語や DB, Web サーバなどのテクノロジーの状況も含めて考えないと答えは出ないと思う。良いものは放っておいても人気が出るなんてことはあり得ないし、人気の話に言語のデキの話題を持ち込むのは賢明なやり方ではないだろう。ただ以下のようなストーリーは考えられそうだ。

PHP は本当に手軽に動的な Web サイトの構築ができる。現在では HTML の中にコードを埋め込んでしまうとぐちゃぐちゃでデザイン変更しんどいやんけとか再利用考えてちゃんとクラスにするなりフレームワーク利用するなりせえよ、という考え方も見られるようになったが、それは PHP をきちんと突っ込んで使えるようになって初めて分かる問題で、重要なのはこれらを知らなくても動的な Web サイトの構築は可能だということ。

逆に Ruby を始め汎用の言語は動的な Web サイトの構築にも利用できるが、それにはこれとこれとこれの準備が必要で、これはお約束だから必ず守ってね、ということを踏まえたうえでできるようになる。ひとたびやり方が分かればいつもと同じ言語で Web サイトの構築ができた方が楽に決まっているので、先に言語をある程度マスターしている場合は、それに少しの上乗せをするだけで動的な Web サイトの構築が可能になる

現在、Perl がそうだったように LL の人気について Web の存在を抜きにして語るのは難しい。1

ここに一人の Web デベロッパの卵が居るとする。彼はまだ Perl も PHP も Ruby も知らない。彼の目的は Web アプリの開発だ。さて彼はまずどの言語を習得しようと思うだろう? ちなみに HTML, CSS, JavaScript という回答は却下させていただく。

ここに海のものとも山のものとも分からない開発者を束ねて Web アプリを開発するプロジェクトがある。不幸にしてあなたはそのプロジェクトの責任者だ。本来なら集められた開発者のスキルは事前に分かっているはずなのだが、残念ながらあなたには開発者を集める段階での発言権はない。さて、このプロジェクトではどの言語を採用すべきだろう?2

現在の PHP は別に Web に特化した言語ではないが、Web アプリ開発の初期コストが他の言語より低いことにはあまり異論はないだろう。だから多くの開発者が他に得意な言語を持っているという場合でない限り、Web アプリの開発に PHP を採用するに当たって積極的に反論する必要はない。逆に、Perl ハッカーが何人も居るなら開発は Perl ベースで行くべきだろうし、Ruby も Python も同様だろう。

問題は、現場を知らない人がこういうごく当たり前な段階を経ずに言語の選定に口を出しているかどうかではないだろうか?

ここに自社の Web サイトを使って直接顧客とやり取りできるような仕掛けを用意し、中間コストや広告費を削減していこうとしている、IT にまったく疎い会社がある。サイトの開発について見積もりを取った。PHP で作るところより Ruby で作るところの方が安い。うーん、安いのは魅力だな。でも Ruby ってなんだ? 聞いたことないぞ? PHP は今人気らしいじゃないか。人気があるってことはいいってことだろ? 安かろう悪かろうって言葉もあるしな。PHP のこの会社にお願いしたらどうだろう?

こういうケース、なんか本当にそこら中で起きてそうでやだ。

個人的には

PHP は最初気持ち悪くて仕方がなかった。

  • Perl のように $ がついてるくせに Perl と違って型を区別しないので、「$ の意味ないじゃん。ない方がマシ。」と思った
  • HTML の中に埋め込まれるのが前提ということが感覚的に理解できず、include するファイルでよく <?php ?> を書き忘れた
  • でも function は sub よりマシかなーとか Perl みたいに my 宣言まみれでタイプ量うなぎのぼりになったりしなくていいな
  • 配列の配列も、リファレンスを使わずに書けるから楽でいいな
  • なんかでも凝った処理すると遅いな
  • この細かいバージョンアップで関数が増えたりデフォルトの設定が変わったりするのはなんとかならんのか

とか感じるようになって現在に至る。慣れてしまえば気持ち悪さもどこへやら。「ちょっと不自由なんだよなー」と感じる程度でとりあえず目的は達成できている。

そしてあの充実したオンラインマニュアルは非常に助かる。思わぬバグについては検証が必要だが、アーカイブ落としてきて Namazu に突っ込んでおくだけでかなり楽になる。

Ruby の場合はまず本家に HTML のマニュアルがないのが痛いし、RWiki のリファレンスマニュアルは決して言語の全体像はつかみやすくない。チュートリアルはマニュアルとは別物だし、一言で言うと情報がとっ散らかってて扱いにくい。まぁ他に何らかの言語(特に Perl)の経験があるならそれでもリファレンスと他の言語との比較のページがあるだけでかなり助かるのも事実だけど。

他の言語の人気を不思議がる前に、Ruby という言語そのものではなく Ruby を取り巻く状況のうち他の言語と比較して足りないものは何かということを真剣に考え、行動に移さなくてはいけないんだよな、本当は。でも懇切丁寧な対応でトーシロ増やすのは自分で自分の首を絞めるようなものという考え方も一方ではあるし、Ruby 界隈の人がそうだとは断言はしないけど、そういう雰囲気は感じるし、自分はそう思っている3だからこれは仕方ないことかなーとか無責任に思ったりもする。Python 界隈はちょうどよくバランスしているのかなぁと思ったりもするけど全然知らないので単に隣の芝生はなんとやら、なのだろう。

  1. 本当は Perl の場合は、すでにシステム管理やテキスト処理で Perl を使っていた「先駆者」が、CGI でも Perl を使ってみせたことから言語の素人にまで Perl が浸透したというだけで、Perl の人気は Web 以前から高かったのだけれど。 

  2. つーか DB とかどうすんの? なんていうマジレスは当然却下だ。 

  3. Ruby な人が優しくないという意味ではなく、私はトーシロに優しくするのもたいがいだと思っているという意味。要するにものには限度ってもんがあるって程度の話。 

OpenSA 入れてみた

入ってる PHP は当然 multibyte 拡張版じゃないのですが、 \OpenSA\Apache\modules\php4ts.dll を multibyte 拡張版と差し替えてやったらうまくいきました。付属の php_mbstring.dll を有効にしても multibyte 拡張版独自の関数は使えないのでダメです。(逆に有効にしておくと php4ts.dll ですでに mbstring が有効になっているので、いろんな関数なんかが二重定義になって Apache 起動時にしこたま叱られます。叱られるだけで動くのは動くのですが、気持ちよくないんでオススメしません。)

一応 OpenSA 1.0.4 に付属している PHP 4.2.2 に合わせて 4.2.2 の multibyte 拡張にしときました。ひょっとすると php4ts.dll を 4.2.3 にして、extensions も全部 4.2.3 のやつに入れ替えたらそれはそれでちゃんと動きそうな気もしますが(問題は Apache の mod_php4.so と適合するかどうかだけだろうし)、やってみてないです。

人柱志望者に期待。まーこれでコンパイラなしでも https と PHP の使える Apache が起こせるってことで、感謝感謝。

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm