http://qiita.com/mizchi/items/3bbb3f466a3b5011b509 で紹介したモダンJSスタックの上に、flowtype を導入して型をボトムアップに追加していくアプローチを紹介します。 なぜflowtypeか、そのゴールは 流行っているライブラリのみを組み合わせて使う場合や、バックエンドとの連携において型が十分に提供される環境なら、正直、flowtypeよりtypescriptでいいと思っています。flowtypeが力を発揮する環境は、既存のJSが大量に存在する環境や、railsなどの動的な型のフレームワーク環境で、静的な定義が抽出できない環境だと思います。 よほど品質が低いライブラリを使わないかぎり、バグはほとんど自分が記述したコードによって発生します。なので、まずは「自分が書いたコードのIFを明確にし、その静的なチェックを行なう」、というのを最初の目
前回に引き続き、はじめてのPHPプログラミング 基本編5.3対応のゆるいところの最終回はセキュリティの話題ではなく、データベースの列の型についてだ。 本書のP215には、SQLiteを使って住所録のテーブルを作ろうとあるのだが、テーブルの形式は以下のようになっている。 カラム名 意味 データ型 主キー NOT NULL 備考 id 通し番号 INTEGER ○ ○ 自動的に通し番号が割り振られる name 氏名 TEXT - ○ zip 郵便番号 INTEGER(7) - - ハイフン(-)を除いた7桁の整数 address 住所 TEXT - - create_at 登録日時 DATETIME - ○ 郵便番号の型がINTEGER(7)になっているのを見て、私は目をむいた。 一般的に、郵便番号はVARCHAR(7)かVARCHAR(8)にする場合が多いと思う。もっと一般的に、「××番号」
http://cpansearch.perl.org/src/GFUJI/Mouse-2.1.0/t/040_type_constraints/009_union_types_and_coercions.t subtype 'IO::StringOrFile' => as 'IO::String | IO::File'; だけで動くのかと勝手に思ってたけど、そうでもないようです。 subtype 'IO::String' => as 'Object' => where { $_->isa('IO::String') }; subtype 'IO::File' => as 'Object' => where { $_->isa('IO::File') }; subtype 'IO::StringOrFile' => as 'IO::String | IO::File';
釣り記事はスルー推奨だけど、200ブクマ越えてたりするとほっとくのもどうかなー、と思うので、twitter のつぶやきをテキトーにまとめるよ。 僕も動的型に関する釣り記事書いて、80ブクマとか集めてみたいw— tsucchiさん (@tsucchi) 2013年2月27日 型のやつ今朝みたら200ブクマ超えてたので、ちゃんと「おかしいよ」って指摘する記事とか書いたほうがいい気もしてるんだけど、ちゃんと語れるほど静的型言語分かってないし、各主張を引用しつつおかしいトコ指摘するようなめんどいことする暇は無い— tsucchiさん (@tsucchi) 2013年2月28日 業が深いと思うのは、ブクマコメも結構おかしなこと書いてあったりするんだよなー— tsucchiさん (@tsucchi) 2013年2月28日 どんな凄い型システム持ってても、テストは必要だと思うし、どんなゆるい型システムで
自分の思考を整理する意味でも、件のアレについて考えたことを書いてみる。 変数に型がないということの利点について考える - サンプルコードによるPerl入門 http://d.hatena.ne.jp/perlcodesample/20130227/1361928810 この件に触れることはプログラマとしての中二病である。恥ずかしい。マジレス乙だ。 でも気づいたら5000文字も書いてしまったし、公開して酒のんで寝る。 型のフローは機械のためだけでなく、人間に対するものでもある 最近TypeScriptを書いている。こいつを使って、二次元座標上で二点間を求める関数、getDistanceを定義してみよう。 interface IPoint { x: Number; y: Number; } var getDistance = (a:IPoint, b:IPoint): Number => Ma
2013年03月01日16:00 カテゴリLightweight Languages 型を忘れる静的言語、型を覚えてる動的言語 召還されたますた。 @dankogaiさんがブログで参入したら面白そう。 「変数に型がないということの利点について考える - サンプルコードによるPerl入門」 (id:perlcodesample / @perlcodesample2) d.hatena.ne.jp/perlcodesample…— r-west (@rwest2112) February 28, 2013 言語設計者たちが考えること Mastermind of Programming Federico Biancuzzi / Shane Warden 伊藤真浩 / 頃末和義 / 佐藤嘉一 / 鈴木幸敏 / 村上雅章訳 [原著:Masterminds of Programming] まず、よくあ
id:perlcodesample さんの 変数に型がないということの利点について考える - サンプルコードによるPerl入門 から。 ううむ。 けれども、型がないということは、本当に素晴らしいことです。 型がないことによって、たくさんの面倒から解放されるからです。 冒頭のこれが、「静的型付き言語にはメリットが(ほとんど)ない」と言っているように思えてしまいます。 コメントのやり取りを見ても、ある程度そう考えているように受け取れます。 勘違いなどが多く見られたので、補足というか、反論というか、そんな感じのことを書きます。 追記: ごく一部、このエントリを「動的型付き言語と静的型付き言語を比べて、静的型付き言語の方が素晴らしい言語である」ということを言うためのものだと勘違いしている人を見かけました。 このエントリは、そこについては言及していません。 あくまで、元記事で「動的型付き言語のメリッ
某エントリが型について再考するきっかけになったのは事実だが、個々人の思想の成否を問う気がないのでとくにリンクはしない。ここでは型とは何かという点について僕なりの思想を記しておきたい。 データ型を区別しない世界 ごくシンプルなチューリングマシンを考えよう。 チューリングの仮想機械は、 無限に長いテープ その中に格納された情報を読み書きするヘッド 機械の内部状態を記憶するメモリ で構成され、内部状態とヘッドから読み出した情報の組み合わせに応じて、次の動作を実行する。 ヘッド位置のテープに情報を書き込む 機械の内部状態を変える ヘッドを右か左に一つ移動する 上の動作を、機械は内部状態が停止状態になるまで反復して実行し続ける。 チューリングマシン この原始的な世界において「型」はない。メモリは抽象的で全てのメモリは同等に扱われ区別する必要はない。 また、チューリングマシンに程近い原始的なプログラム
変数に型がないということの利点について考える http://d.hatena.ne.jp/perlcodesample/touch/20130227/1361928810 が大変お粗末な内容だったので、反論記事を書きます。 型推論はソースコードのコンパイルの時間を遅くしてしまいます。ソースコードが大きくなってきた場合に、すばやく書いて、すばやく実行結果をもらうことができなくなります。今時のパソコンならコンパイル時間なんて大したことない。 大規模開発環境はコンパイル時間よりリンク時間の方が問題になりやすいが、それは別に型の話とは関係ない。 あと、インタープリタも最近は実行時にJITコンパイラが走る。 実行時間に影響がなく、開発者の待ち時間で済む方が実はよいのでは? 統合開発環境での、メソッドの自動補完の機能の実装が少し難しくなります。みんなが統合開発環境をつくるとでも? そもそも型が不定なら
Perl › 読み物 PHPやPerlやRubyやPythonなどのスクリプト言語に対して、変数に型がないということを否定的にとらえる人もいるかと思います。特にC言語やJavaなどの静的言語を使ってきた人にとっては、型がないということが不安材料として目に映ることが多いのではないかと思います。 けれども、型がないということは、本当に素晴らしいことです。型がないことによって、たくさんの面倒から解放されるからです。 どのような型の値でも代入できる まず基本的なこととして変数に型がなければどのような型の値でも代入できるということです。つまり、受け取るときに、どのような型の値を受け取るのかを意識する必要がありません。 my $str = 'Hello'; my $num = 1; my $nums = [1, 2, 3]; my $person = {age => 2, name => 'taro'
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く