「Retina」を含む日記 RSS

はてなキーワード: Retinaとは

2020-06-20

はてなも一流IT企業なんだからブクマ数の画像もいいかげんRetina対応したらどうや

いつまでも解像度の低い画像で、しか古典的カクカクしたドットの荒い文字なんてもうインターネットのどこにもないで?

2020-01-13

anond:20200112165955

こういう用途だとUMIDIGIのような格安スマホwifi専用で買えばよかったのかもしれない。fire7は171ppiなのでかなり目が粗い。そもそもタブレットスマホよりppiが粗いことが多く廉価版となれば当然粗い。retinaのように、網膜判別できないと言われる300ppiくらい必要なのかはわからんが今のスマホはだいたいそのレベルに達しているので、スマホを想定してる用途タブレットでは不可ということはよくあるのかもしれない。まあfire7でもwifi端末としてコンビニwifi地図くらいは見れるのでよいおもちゃだと思うしかない。

2020-01-05

ローソン受け取りのバーコードfireタブレットfire7で軽い気持ち提示したら読み取れなかった。安い端末なのであきらもつくが何が原因か?もともとバーコードリーダーというのは液晶は読み取ることはできず、あたりまえにできたわけではないらしい、しかもできるとしてもretinaIGZOみたいな高級ディスプレイを想定していて解像度が低い安い液晶ではできないのかも。よくある読み取れないとき対策に明るさを最大にというのがあるがfire7は明るくしても反射が強いので明るさまだ足りてない気がする。つまりもっと明るくするか反射をもっとおさえられたらどうか。ノングレアの反射防止の保護フィルムというのがあるのだが保護フィルム貼るとバーコードを読みとれなくなるかもしれないという注意はよく見かけるが、認識率が上がったという話はない。安い液晶では無理なのか、明るさや角度の検証など店の端末で小一時間テストしたいんだが

2019-10-03

SurfaceMacbook Pro比較

気持ち悪い信者共が常軌を逸した持ち上げ方をするので冷静に比較

比較モデルは "ほぼ" 同額のモデルとする

Surface Laptop3 15inch

\308,880

Macbook Pro 15inch

\302,800

優位を太字で表記する

名前SurfaceMacbook Pro
価格\308,880\302,800
ディスプレイ2496x16642880x1800 Retina Display With TrueTone Technology
プロセッサCore i7 4-CoreCore i9 8-Core
メモリ16GB16GB
ストレージ512GBPCIe ベース 512GB
dGPU無しRadeon Pro 560X
Thunderbolt無し4
セキュリティ無しApple T2 Processor
指紋認証無しTouch ID
Touch Bar無し搭載
カメラ720p720p FaceTime HD
バッテリ最大 11.5 時間(真偽不明)最大 10 時間
オペレーティングシステムwindows10macOS
オフィススイート別売り付属
開発環境Windows ベースUnix ベース + Xcode

優位天は僅か 1.5 時間の "バッテリ駆動時間" だけ

Mac が "ぼったくり" などと寝言を抜かす諸君, この比較を見ても同じ事を言えるのかな ?

2019-09-24

iPhone 11 の驚異的コストパフォーマンス説明する

センセーショナルスペックで華々しいデビューを遂げた iPhone 11

主に映像を中心としたコストパフォーマンスの凄まじさをここに書いておく.

レンズ

13mm F2.4

24mm F1.8

52mm F2.0

3 種のプライムレンズを搭載している

iPhone 114K/60fps の動画撮影可能, 4K 対応レンズとなると写真レンズでは解像力不足.

まり "シネプライム" レンズを搭載している事になる.

さて, シネプライムレンズ 3 本の値段を見てみよう.

要件を満たせる近しいレンズは CarlZeiss の Compact Prime CP.3 になると思われる

以下に国内ディストリビュータプライスリスト引用する.

https://www.system5.jp/products/detail93889.html

CP.3 15mm/T2.9 \653,562

CP.3 25mm/T2.9 \466,830

CP.3 50mm/T2.1 \466,830

いかがだろうか, これだけで 100 万円を超えてしま

ただし, 広角側は Zeiss より 2mm も広角なので 13mm のシネプライムレンズとなるとそれだけで数百万オーダーである.

これで iPhone 11レンズ凄さが伝わっただろうか.

スチル用では Zeiss の Otus シリーズギリギリ要件を満たせそうだが, 広角は 28mm しかラインナップされていないので除外した.

動画機能

4K/60fps

1080p/120fps

上記レンズに交換可能上記要件動画撮影できるカメラを探してみた.

13mm (上記レンズでは 15mm) の画角撮影するには "フルフレーム" もしくは "ラーフォーマット" のカメラ必要になる.

クロップされて画角が狭くなる Super35 や マイクロフォーサーズは論外という事をあらかじめ言っておく.

SONY FX9 (未発売, 120万円前後)

https://www.pronews.jp/news/20190913165025.html

CANON C500 Mark II (未発売, 170 万円前後)

https://www.pronews.jp/news/20190906130311.html

他にも探してみたが, 要件を満たせるカメラ上記 2 機種しか見当たらなかった.

4K/60p がどれだけ敷居の高い物だったのかをおわかり頂けると思う.

モニタ

Super Retina XDR

https://www.apple.com/jp/iphone-11-pro/

6 月の WWDCMacPro と同時に発表された前代未聞の高性能ディスプレイと同じ "XDR" を冠するモニタを搭載している点も見逃せない.

"XDR" モニタは 400 万円のプライスタグが付く SONY のマスタモニタであることは皆さんもご存じだろう.

https://japan.cnet.com/article/35138580/

これだけのモニタを搭載したスマートフォンが今まであっただろうか ?

答えは "No" だ.

プロセッサ性能

Apple による比較解説を以下に紹介する

https://japanese.engadget.com/2019/09/11/iphone-a13-bionic/

見ての通り Galaxy の 2 倍, Pixel に至っては 3 倍のプロセッサ性能性能を叩き出している.

これらに相当するプロセッサは何だろうか.

それは Mac 上位機種にのみ許された Core i9Xeon プロセッサだ.

これら Intel フラグシッププロセッサを搭載したコンピュータが 15 万円で買える話しなど聞いたことがない.

さらに A13 プロセッサ内蔵の GPU は Metal のアクセラレーション可能だ.

もはやスマートフォンというよりはクリエイティブワークステーションである.

まとめ

iPhone 11カメラ機能だけを見ても数 100 万円相当の価値がある事がわかっただろうか.

高い高いと言うがよく考えて欲しい.

170 万円相当のカメラに 200 万円相当のレンズ, 400 万円相当のモニタ, それを Appleエコシステムに裏打ちされた唯一無二で孤高のユーザエクスペリエンスが包括するオールインワンクリエイティブワークステーションである.

これでも 15 万円のプライスタグを "高い" と揶揄できるだろうか ?

揶揄出来るとしたら貴方の頭はどうかしているか Apple より優れた企業のある別時間軸の住人なのだろう.

まり iPhone 11 は "写真が撮れるスマホ" を突き放し, シネティックスマートフォンという新たな次元進化した新世代のマシンである.

タピオカなどと揶揄する人達は, iPhone 11撮影された映画フォトグラフィを見て自分の浅はかさを恥じる事になるだろう.

iPhone 11 で良きクリエイティブライフを !!

2019-03-06

anond:20190306161306

ワイの記憶が正しいなら2019年3月現在でもiPad 3以降のretinaiPad中古価格が1万円切ってるものジャンク以外無いぞ。

retinaのやつでも結構怪しい。

いげーとあいつら値段保ってるぞ。

2018-12-04

ケチすぎる男

今日仕事終わりに久しぶりにソフマップに行ってきた。

もちろんpaypayの20%還元を使うためだ。

そして何も買わずに帰ってきた。


paypayの20%還元ニュース自体は一週間ほど前に聞いていたが忘れていた。

昨日になって「あ、明日からだ、これ結構早く終わっちゃいそうだよなぁ」と思い

何か買うものがないか考えていたが正直何も思いつかなかった。


キャッシュバックの上限は5万円、つまり購入金額としては25万円分ある。

Twitterなどをぼーっと見ているとビックカメラApple製品を購入するのがとてもお得らしいことはわかったが

数年前に購入した親用のRetina iPadはまだ十分すぎるほど使えるし、

1年半前に購入したMacbook proCTOでかなりいいスペックにしただけあって何ら不満はなく買い換える必要もない。


そこで、ようやく思いついたのがデスクトップWindowsPCを新調してはどうか、というものだった。

私が今使っているデスクトップPC2009年に自作した。

当時最新だったi7-860 2.66GHz、メモリ8GB、SSD 80GB、HD5850で組んで、SSDのあまりの速さに感動した覚えがある。

途中、メモリは16GB、SSDは250GB、GPUはGTX570に換装したが、このPC自体はもう9年も使っていることになる。


このPCに買い換える前は、確か2~3年おきにPCを買い替えていた気がする。

初めてのPCは、PC9821 Cb10だった。

Pentium 100MHz、メモリ64MB、HDD 850MBで14型インチモニタと一体型のPCで、TVチューナーもついていた。

TVチューナーではTVを録画することも出来たが、avi形式の無圧縮で録画されるため

1分そこらでHDDの空き容量が無くなりかけて焦った思い出がある。

次のPCK6 300MHzで、次がAthlon TB 1.4GHzで、その次がCore2Duo E6600 2.4GHzだった。(うろ覚えなので数値は間違ってるかも)


これらのPCに買い替えた理由は、単純に遅さに耐えられくなったからだ。

ゲームが重すぎる、ブラウザがすごいもっさりしている、VisualStudioの起動や動作が遅すぎてイライラする等々、

どれも切実に、今よりも速いPCが欲しい!!、という思いがあって買い換えていたのだと思う。


そう、今回CPUに関しては9年も買い換えずに来てしまった理由はまさにそれで、現状あまり困ってないのである

SkyrimやWitcher3は普通に遊べたし、VisualStudio普通に快適だし(VisualStudio自体バージョンあがるごとに速くなってるのもある)、

Chromeメモリは潤沢に使うものの相変わらず速いままだ。


とはいえ、不便なこともないわけではない。

USB3.0対応していないのでスマホUSBメモリデータ転送する(この機会自体以前に比べてめっきり減ったが)のは若干時間がかかるし、

Windows10アップデートしてからスリープ出来なくなってしまったので毎回PCを起動/シャットダウンしなければいけなくなった。


そういうわけで、デスクトップWindowsPCを9年ぶりに買い換えることにした。

休みのうちに最近自作事情を調べて、よし今回はRyzen5 2600にして久しぶりにAMDで組むぞ!とワクワクしていた。

そして退社後に意気揚々ソフマップに向かい、その他のパーツもあらかた決めたんだけど、結局買わずに帰ってきた。


買えなかったのだ。

どうしてもこのPC必要なんだ!という強い気持ちを維持できなかった。

から無駄遣いはしない方だったが、最近特に酷く、

そういう強い気持ちを持てないと、私はモノが買えなくなっているのだ。

それも何故か収入が増えるに従ってその傾向は強くなっているように思える。


どうしても、

本当にこれは必要なのか、

別に現状そこまで困ってないのに何故買うのか、

もし買ったとして今持っているものとそこまで違いがあるのか、

買った場合ちゃんと使い続けることができるのか、

と考えてしまう。

先述のiPadMacbookにしても、

iPadは親のため、Macbookは移動中等のスキマ時間有効活用してスキルアップを図る、

という大義名分があって初めて購入できた。


このような状態のため貯金はすごい勢いで溜まっていっているが

正直幸せ状態ではない気がする。

何故こんなつまらない人間になってしまったのだろう。

2018-11-25

理想Mac+iPhone妄想

#

泥酔しながら書いた。

前略

20XX年、スティーブジョブスシアターから中継される光景に、日本人狂喜乱舞した。

ジョナサン・アイブ更迭されて間も無い中の発表会を、一部の信者心配そうに見守り、残る大多数の一般人は期待を持って目の当たりにしていたのだ。

そこで発表された新製品は、大多数の一般人が求めていたまさにそれであった。

MacBook Air

2018年Retina 13インチは、皆が求めていたものだったが、今年のMacBook Airさらに一味違った。

OK、分かった。MacBook Airスペックは平凡、その割には値段が高く、MacOSデザイン以外、魅力のないラップトップだった。」

「それも今日で終わりだ。MacBook Airは、世界第一線で戦える最強のラップトップに仕上げた。それは値段にも反映している」

「899ドル世界で尤も安く買えるハイスペックUnixシステムの一つだ」(1アップルドル105円とする)

特盛にしても2500ドルMacBook Airは飛ぶように売れた。

なお、無印MacBookCPUArm 64bitとして、物好きどころか割とヘビーユーザーにもそこそこ売れた。こちらは599ドルから

USB Type-Cも2つ付いたのは嬉しい悲鳴。重い処理はできないが、Arm最適化されたバイナリAdobeもまあまあ動くし、Logicも動く。ピンク色の筐体が、オルチャンメイクで丸眼鏡女子大生にウケた。

Mac Pro

Mac Mini買えばいいじゃん」

違う、そうじゃない、デカくて早くて(排熱が)燃えるように熱いMac Proが欲しいんだよ。GPUかいっぱい積んじゃってさ、CPUサーバのいいやつがよう。

OK小僧。用意してやったさ。これで好きなだけFacebookTwitterをやるがいい。」

「おいちょっと待てよ、ThunderboltディスプレイThunderboltディスプレイじゃないか。お前ちょっと痩せたかベゼルがないじゃないか

Mac Proのお披露目の影に隠れるように、こっそりと。そうThunderboltディスプレイが帰ってきたのだ。

8K対応でスペースグレイカラーとなって蘇えったのさ!

幾年ぶりかの再開に、マカーたちはサムスンとLGロゴの入ったディスプレイを窓から放り投げた。

iMac

CPUが新しくなった。価格1099ドルから。なんか新しいRadeonが乗ってる。

MacBook Pro

CPUが新しくなった。価格は1299ドルから。こっちもなんか新しいRadeonが乗ってる。

Mac Mini

もう来週を待たんでええんだぞ。499ドルから

訓練された貧乏信者たちは、涙を流しながら、メインボードを傷付けないようにそーっとメモリ増設した。もちろん保証は効かない。

One More Thing... iPhone SE2

iPhone XSとXRの登場はApple企業価値を大きく傾けさせた。あまりにも売れなかったのだ。

しかしそれも今日までだ。そうiPhone SE2、皆が待っていた小さいあいつがパワーアップして帰ってきたのだ!


しかしその頃、世界では……

既に世界の半分以上はLenovoを使ってるし、残りのシェアの大半をDELL占拠していた。安価かつハイスペックWindowsは、僅かなMacBookシェアさらに削っていった。

そして、中国のAndoroidシェア100%になった瞬間、iPhoneは既に過去のモノとなってしまったのだ。

いまイケてるスマホと言えばシャオミのAndroidだし、日本ではXperiaを持つことがステータスの一つとなった……。

おしまい。以上妄想

2018-03-31

何回やっても

しばらくDSやった後にRetina見るとその美しさに驚く。

2017-09-08

anond:20170908121039

「iPhoneX」の類例として挙げるには不適切だという根拠が間違ってるんだよ

どちらもApple表記した物だろ

同列にしても何も不都合はない

不都合があるのなら理由をどうぞ

後、解像度の低さって何だよ

Retinaかよ

2017-06-18

4K出力に対応していないノートPC4Kモニターにつないで使っている。

フルHDで出力されているので単純に縦横二倍に拡大されていて、近くで見るとぼやけまっくているが、普通にデスク作業する距離で見ているとそんなにぼやけているわけではないし、似非Retinaなんじゃないかってくらいきれい

28インチでこれなんだから、27とか24インチ4Kならもっとれいに見えると思う。

2016-09-14

http://anond.hatelabo.jp/20160911212226

安野モヨコ浮世絵がまあまあよかったと書いた。

他の浮世絵はたいていダメとも書いた。

どうしてアニメ浮世絵とかがだいたいクズかの理由を述べていく。

いくつかパターンはあるけれど、一番多いパターンは、単純に見れたものじゃないというレベルのものだ。

そんなものが売れるのは

江戸時代から続く浮世絵の彫師摺師が作っています

っていう前書きがあるからだ。

こういっちゃなんだが、伝統工芸品というもの全般的に嫌いだ。

手で作ったからといって、伝統技術で作ったからといって、機械印刷したほうが綺麗なら、そんなもの価値はない。

元来、木版はどんな印刷よりも綺麗なものだった。

から価値があった。

おそらく、ここ数十年まではカラー印刷技術の中で最強の座を誇ってたと思う。

2枚の版木、赤、青で摺るとする。

1枚目で摺る。

1枚目の赤の版木が当たる部分、当たった部分は赤になり、当たらない部分は紙の地の白のまま、つまり2色の世界

2枚目の青の版木が当たる部分、一枚目の版木も二枚目の版木も当たった部分は赤と青が重なり紫に、二枚目の版木だけ当たった部分は青に、一枚目の版木だけ当たった部分は赤になり、当たらない部分は紙の地の白のまま、4色の世界

3枚の版を使えば、8色、4枚の版を使えば16色、理屈の上では指数関数的に色数が増える。

雑誌なんかで、表紙のすぐ下や、誌面の中頃に、一枚だけカラーページでグラビアイラストカラーページがあったりするのはわかるだろうか?

昭和の初期までは、あれを木版でやっていた。

しかも、浮世絵時代と遜色ないどころか、それ以上に15度20度と摺って色を重ねて印刷していた。板を彫って。ばれんで摺って。

しかもそれを、何千部発行したかしらないが、毎月作ってた。

キチガイ仕事しか思えない。

中でも、最もキチガイじみた雑誌はというと、毎号50度摺以上の手間暇をかけて、日本画の複製を誌面に挟んでいたある美術雑誌だ。

号によっては100度近い摺りを重ねたらしい。

色数の問題だけではない。

ほとんどの印刷技術は、オフセット印刷シルクスクリーンレーザープリントインクジェットプリントも、色の濃淡を色の粒の"密度"で表現している。

木版で使うグラデーションをつける技法は、粒ではなく無段階のグラデーションをつけることが可能である

人間が視認できる限界を超えたRetina Displayがでるまでは、真のグラデーションは木版の中にしかなかった。

そして発色である

から燃えるように強く出る色だ。

浮世絵技術で摺られた絵は、直後に触っても、手に絵の具は移らない。表面には絵の具は残ってない。

紙の繊維の奥から、輝くのだ。

いつものように、能書きが長くなったが、

江戸時代から続く浮世絵の彫師摺師が作っています

っていうことを強く打ち出した売り方だと、極端な話、出来のいい悪いに関係なく売れる。

普通印刷よりも汚くても、「それが木版の味です」として売れる。

たぶん、下絵もどんな絵なら工数ケチっても綺麗に仕上がるかなんてことも考えていないし、職方に高いレベル要求しないし、職方もそれを見抜いてそれなりの手間しかかけない。

企画元「安く版権が手に入ったから、斜陽産業職人を安く買いたたいて作らせて、オタクに高く売ろう」

職人「どうせわかりゃしないから、材料と手間をケチろう。どうせ工賃も半額に値切ってくるんだろう」

っていう思惑が誰でもわかる。

みれたもんじゃない0点の浮世絵、これがアニメ浮世絵の約8割。

実は、丁寧過ぎるのも嫌いなので、それについてもややこしいんだが、それについてはまた後日。

2016-04-10

僕のMacBookRetina Displayなんだけど

他人PC作成したExcel開くとウィンドウめっちゃ小さいんだけど。

これはおそらく保存時のウィンドウサイズを記録していてそれを元にしてるんだろうね。

でも僕のパソコンの画面Retina Displayだからちょっと困るんや。自分で広げなあかんから

Retinaディスプレイ場合は保存時のウィンドウサイズを2倍にするなりやってくれると嬉しいなあ。

2016-02-04

http://anond.hatelabo.jp/20160204150959

ノングレア原理はもやっとさせる技術で、くっきりさせるRetina とは相性が悪いんだよ

2015-11-07

桑港の報い

Appleが売っている端末。Retinaの有無とかiMacとかもあるけど省略。

画面サイズだけでもこのラインナップ。消費者にこんなに選択肢を与える価値があるのか。

ラインナップを整理するという判断すらできないのなら、Appleがかつての業績低迷期に逆戻りするのも時間問題だと思う。

能が無い経営者無尽蔵にラインナップを増やしたがる。

2015-05-28

Macbook Retina 15 画面割れ修理代が税込み9万円

この9万円どうやって自分の中で消化するか。

画面割れ自己反省だけだとまだ高く感じてしまって消化できない。

appleへのお布施だと思うか。

2014-11-02

PCディスプレイretina化により、低画質の古いエロ画像の淘汰

が起こるのではないかと予想する(と言うか、そうあってほしい)。

被写体女性は今ではオバさんかと想像すると虚しいし。

被写体女性にとっても自分エロ画像が何時までもネット流通してるのは嫌だろうし。

PCディスプレイのretina化によるインターネット感覚の変化

2014-10-22

PCディスプレイretina化によるインターネット感覚の変化

retina化することによってインターネットから得られる感覚が変わる(ような気がする)

実際に私はmacbookpro retinaをずっと使っているがなんとなくそれ以前のアングラで身近なインターネット感が薄れたようなそうじゃないような

ついにimacretina化するにあたってそんなこと考えたり

2014-06-22

部屋とMBPと私

ぼく「やった!念願のMacbook Pro Early 2011だ!すごい速い!デザインカッコいい!Appleサイコー!」

MBP「せやろ」

ぼく「2年ぐらい使ったらなんか画面が突然フリーズするようになったんだけど。。きっとパッチが来るから大丈夫Appleは優秀だから!」

MBP「あーロジックボード換えたら直るで(鼻ホジー)」

ぼく「そうなんだ!Apple Careが切れてたから4万出して換えたよ!でもまだ直らないんだけど。。」

MBP「そうなんか?なんかRadeonGPUおかしいとか言ってる奴がおるようやけど、わしゃ知らんで。リコールもせんぞ」

ぼく「3年使ったからね!そろそろ寿命かな、今までありがとう!新しいRetina 15inch Late 2013買うよ!」

MBP「よっしゃ27万もろたで」

ぼく「すごいSSD速い!筐体も薄いし、Retinaやすい!Appleサイコー!」

MBP「せやろ」

ぼく「なんか突然キーボードトラックパッドが反応しなくなって再起動しないといけない時があるんだけど。。」

MBP「あーそれな。OSバージョン上げたら直るで。どや」

ぼく「上げたよ!でもHDMIのセカンモニタ繋ぐとまた画面がフリーズするんだけど。。」

MBP「ロジックボード換えたら直るんやないかな(鼻ホジー)」

ぼく「よろしい、ならば戦争だ」

2014-04-30

アップルが新製品出したときの既婚者の反応がウザい

嫁にお願いしてみる、とか

嫁に内緒ポチッた、とか

聞いてねーっつーの氏ね

なにがRetinaじゃなくて残念、だボケ

クリを刺激するのに使うなら解像度なんて関係ないだろうが

2014-04-09

オブジェクト指向 v.s. 関数型プログラミング

近年、関数型プログラミング重要はいろんなところで叫ばれています

Javaの最新バージョン関数型プログラミングに関する新機能が加わりました。

Rubyも昨今、関数型プログラミングへのサポートが手厚くなってきています

プログラミング教科書大手オライリーからJavascript関数型プログラミングを行うための解説書が発行されました。

関数型プログラミングへの注目度は高まってきています

おそらく、みなさんは既にオブジェクト指向が何か、を知っています

でも関数型プログラミングとは何か、胸を張って語れる人は、周りに見当たらないかと思います

実際、オブジェクト指向によってプログラミングする方法は、わかりやすい解説があちこちにある一方で、

関数型プログラミングとは何か、何が良いのか、ということについての、よいまとめは見つけることはできませんでした。

この記事を読む方の中で、「関数型プログラミングを取り入れるか・取り入れないか」で切実に悩んでいる人は、おそらくいないでしょう。

この記事はあまりかいところに立ち入りません。関数型プログラミングを使う側の立場に立って、利点や向き・不向き、それが導くスタイルを書きました。

みなさんは鳥のように飛んで、高い空から関数型プログラミングとは何か、何が良いのか、を見渡してください。

ふたつのアプローチ比較

オブジェクト指向アプローチは、名前をつけてプログラムを整理する

関数型プログラミングアプローチは、汎用部品でなんとかする

オブジェクト指向アプローチ

Googleが近年リリースした言語、Goには、”継承”を直接サポートする仕組みが無いことが話題になりました。

また、Mac OSXの基幹ライブラリCore Foundationは、ライブラリ自体C言語で書かれているにもかかわらず、その設計方針は明確にオブジェクト指向です。

継承クラスは、オブジェクト指向必須条件ではありません。

オブジェクト指向本質とは、何でしょうか。

その本質とは"名前をつけて対象を識別し、それを扱うこと"、にあります

最もプリミティブなオブジェクト指向対象は、ファイルハンドラです。あるファイルを開いて、読み込んで、あるいは書き込んで、ファイルを閉じる。

これらの処理をまとめたら、わかりやすいですよね?

対象に関する処理を、対象の周りにまとめる。これがオブジェクト指向の基礎的な理念です。

識別することとイコール比較できることは、とても良く似ています

イコールによる比較は、オブジェクト指向では鬼門であることが知られています

PointクラスインスタンスとColoredPointクラスイコール演算をどう決めればいいかに、正解はありません(詳しくは"effective java"をご参照ください)。

また名前をつけて識別する対象は、フワフワしていてはいけません。

たとえば、"軍人階級"をオブジェクトにしたとしましょう。"大佐"クラスのある兵士名前フィールドや、性別フィールドを持っているでしょう。

ところで彼が昇格したときに何が起こるでしょうか。

新たに"少将"クラスインスタンスが作られます。"大佐"クラスを破棄する前に、名前性別、その他沢山のデータを引き継がなくてはいけません。フィールドを増やしたい場合はその都度コード修正を加える必要があります(*)。

なるべくイコール比較を避けたい。対象不安定なものはいけない。では何に名前をつけて、識別するか。そこにオブジェクト指向技術者の熟練度が現れるのです。

関数型プログラミングアプローチ

一方、関数型プログラミングでは、特定の何かに名前をつけるより、極力、汎用部品でなんとかしようとしま

さな関数を、集めて撚り合わせて、新しい関数を作る。

関数自体リストなどのデータ構造に詰めることもよく行われます

実は、関数型プログラミングというのは本質を表していません。

その真の名は、"値指向プログラミング"です。

関数をはじめとして、リスト・ツリーのようなコンテナ手続きを抽象化したもの、回路を抽象化したもの

あらゆる対象を値として、合成し、ときに分解し、新しい値を作ります

変数という概念必要ありません。

変数適用する処理を作りあげることが、とても簡単だからです。

四則演算定義されたデータを詰めたデータ構造もまた、四則演算可能だったり。

値をイコール比較することも、なんのそのです。

誤解を恐れずに言うと、オブジェクト指向トップダウンなのに対し、関数型プログラミングボトムアップです。

関数型プログラミングの利点

読みやすい・理解やす

関数型プログラミングサポートする言語には、沢山の汎用部品定義されています

このような構造インターフェイスとして、様々なライブラリが組まれているので、

たとえばモナドを知っていれば、30分程度でパーサー(解析機)を理解することができて、

パーサーを理解できれば、JSONパーサー・ XMLパーサー・markdownパーサー・C++パーサー ... などを理解するのはとても容易です。

理解やすいこと。これが関数型プログラミングの大きな利点です。

追記:

また、汎用部品と型のお陰で、ライブラリドキュメントが圧倒的にひきやすい、というメリットも有ります

Haskellな人がPythonにトライした結果 - Togetterまとめ

書きやす

関数型プログラミングは「厳密な事前設計必要とするため、簡単なことをやるのにも時間が掛かる」。

よく誤解されていますが、これはウソです。

スクラッチプログラムするのは、非常に手軽です。

>> map (*2) [1,2,3]
[2,4,6]

邪魔な”儀式”や、"おまじない"のコードが徹底的に撤廃されているためです。

関数型プログラミングコードは、潔癖かつ濃密です。

たとえばC言語でint hoge(int x,int y)が定義されているときhoge(3)はなんの意味も持ちませんが(コンパイルコケますが)、関数型プログラミングでは意味があり、実際に有用です。

上の例では、「掛け算をする」(*)関数は、二引数関数ですが、それに引数を渡して作られた「2を掛ける」関数(*2)は、一引数関数になります

関数型プログラミングでは、「簡単なことは簡単にでき、複雑なことは複雑にできる。ただし、間違ったことは殆どできないか、全くできない」。

多くのバグは、コンパイルエラーとして検出されます

また、静的型付けの力によって、コード補完は非常に強力になっていますインテリセンスの比ではないです。

たとえば、関数中のある表記の型を任意に表示できます(GHC/TypedHoles - HaskellWiki)。

やがてやってくる未来には、プログラムテキストエディタで書くことは時代遅れになっているでしょう。

統合環境サポートで、バグミスの少ない、スムーズプログラミングができます

そしてその環境で動くプログラミング言語は、関数型プログラミングサポートした言語なのです。

いつ関数型プログラミング

以下の様な兆候を感じたら、あなたはそのプログラム関数型プログラミングで書くべきです。

一般に、オブジェクト同士の相互作用が複雑になるほど、オブジェクト指向では手に負えなくなっていきます

そういうときは、オブジェクトを直接扱わず、替わりにその"相互作用"を扱うことで、複雑さを軽減するアプローチ有効です。

それこそが関数型プログラミングアプローチです。

オブジェクト指向の利点

初心者にとっては読みやすい・理解やす

特にオブジェクト指向有効なのはプログラミング初心者がそのコードをいじるかもしれないときです。

関数型プログラミングは、強固さと柔軟さの代償として、高い学習コストを伴います

そのため、初学者にとってはハードルが高いのです。

扱う対象があまり複雑でない時は、書きやす

オブジェクト間の相互作用が複雑でなく、着目している(名前をつけている)概念が安定しているとき

そして、プログラムをいじる人たちの間で共通理解が図れているならば、オブジェクト指向が有利です。

関数型プログラミングの得意分野はなにか

数値計算

遅延評価という機能によって、レガシー言語で扱えなかった、巨大な数を扱うことができます

分数を扱うことができます虚数もです。

関数型プログラミングで書かれたプログラムは、正確さが要求される、金融関連の業界で使われています

テキスト処理

手続きとしてパーサーを記述できるので、テキスト処理プログラムはより理解やすく、メンテナンスやすものになります

関数型プログラミングを知らない人は、「正規表現おk」と言いますが、

彼の書いた複雑な正規表現は、半年後には(書いた本人でさえ)理解できなくなっていることでしょう。

並行処理

手続き一般を扱うことができるので、途中で割り込みのある手続きの表現も容易です。

関数型プログラミングサポートしていない言語ではコルーチン(ファイバー)などをつかってなんとかするしかありません。

さもなくば、非並行処理では普通に関数として記述できるところを、並行処理のために、Builder,Strategy,Command,Interpreterパターンを駆使して書き直すことになります

Javascript使いの方は、Deferredなどの構造を使うでしょう(http://qiita.com/KDKTN/items/4c6986049d204f0645d8)。

C++使いの方はBoostで頑張りましょう。破滅的に解りにくいコンパイルエラーメッセージと格闘してください。

レシピ

もう少し簡単な例をあげます

あなたは、あるレシピにしたがって、自動的料理を行うマシン制御プログラムを書いているとしましょう。

料理レシピは、"手続き"ですよね?たとえば、カレー

1. まず玉ねぎを炒める。

2. 飴色になったら、肉を加えて炒める。

3. 野菜を加える。

4. 水を加えて煮る。

5. スパイスを加える。

しかあなたはこの手続きを関数として表現できるでしょうか。

…できませんよね?何故ならば、各ステップの"間に"、マシンのロボアームの位置や動きを調整する処理が必要からです。

これをオブジェクト指向でやろうとすると、各ステップ副作用として、それらの処理を行うことになります

そうすると、マシンが二機に増えた時などの変更量は、絶望的なものになります

あるいは関数として表現するのを諦め、手順全体をDSL記述できるようにします。

このアプローチ関数型プログラミング的です。しか関数型プログラミングサポートした言語の助けなしでは、そのDSL記述するために沢山のユーティリティコードを書かなくてはならないでしょう。

オブジェクト指向アプローチでこの問題をエレガントに解こうとすると、クラス化の粒度を上げる事になります

野菜クラスフライパンクラス、ボイルクラスフライクラス、焼き加減クラス、アームクラス野菜の大きさクラス、切り方クラス、焼き方クラス、"焦げたよ"クラスetc...

こうすると早晩レシピプログラムコードから消え去ることになります。上記のたった5行は、依存性注入のオブジェクトグラフを構築するコードに取って代わることになります。そこには沢山の挙動制御オプションとして付記されているのです。

カレーなど、ある種のレシピ限定することで、見た目の理解やすさを得ることができますが、一方それは表現力を損なうことを意味します。

C言語などではマクロを使うこともできますが、それは結局、関数型プログラミングアプローチ意味するところと同じになります。すなわち、補助のために沢山のコードを書くことになるでしょう。

GUI

iOSのAppstoreアプリは、"無料"と書かれたボタンを押すと、それが"インストール"ボタンに変わり、それをもう一度押すと、ダウンロードの進捗を表すインジケータに変わり、それを押すとダウンロードキャンセルできます

このように、位置は同じなのに、ステートに依って見た目と機能が変わるボタンは複雑です。

これをオブジェクト指向で実現しようとすると、

1. 三つの異なるボタンを同じ位置に置くか

2. 同じボタンが三つの異なる機能を持つか

という下らない問題にぶつかります

一方関数型では、"機能"、"見た目"、"状態"、を独立に扱って、それらを合成してボタンを作るので、迷うことはありません。

「同じ位置にあるUIオブジェクトは、コード上で(インスタンスとして)独立して、他から干渉を受けない」

この条件が満たされているうちは、オブジェクト指向GUIを実現することに無理はありません。

しかし、携帯端末のような小さい画面で、多くの機能を達成するためには、UI要素はコンテキスト依存的に複雑になりがちです。

近年、PCのディスプレイの大きさは、頭打ちになってきました。

画素数は増えているのですが、MacにおけるRetinaのように、複数ピクセルひとつドットを表すようになってきています

これは、ひとつの画面に置かれるボタンなどのUI要素の数は、これから先の未来で増えることはない、ということを意味します。

したがって、未来GUIプログラミングは、注意深く機能ピックアップして制限するというデザイナー努力を脇におけば、

関数型プログラミングの力を頼るしか無いでしょう。

はじめよう、関数型プログラミング

まり

Haskell さいこうなのおおおおおおおおおおおおおおおおおお!! おしっこ漏れちゃうのおおおおおおおおおおおおおおおおおおおお(゜∀。)ワヒャヒャヒャヒャヒャヒャ

1. google:すごいHaskellたのしく学ぼう を注文する。

2. Download Haskell自分のPCに導入する。

3. コンソールghciと入力して、対話コンソールを立ち上げる。

4. 次の関数コンソールに打ち込んで、結果を見る。即値で書かれているところとかをいろいろ変更してみて、感動する。

take 4 $ map (*2) [1..]

5. ステップ1で買った教科書を読んで、学ぶ。


追記:

いかがでしたか

ちまたには、関数型プログラミングの利点は変数が無いことだ、とか、より安全から、とか、より速いから、などという妄言が満ち溢れています

オブジェクト指向関数型プログラミングは、水と油ではありません。プログラマ自分プログラムに最適なアプローチを選ぶことができます

一般にはあまり知られていないことですが、Haskellにもオブジェクト指向へのサポートがあるんです(Lensライブラリ、これを使用したサードパーティライブラリ最近増えてきています)。

この記事を読んだオブジェクト指向プログラマあなたが、少しでも関数型プログラミングに(そしてHaskell)興味を持ってくださって、ホームセンター大人用オシメのコーナーが大賑わいになれば幸いです。。

2014-02-02

Nexus5 を買うべき7つの理由

1.処理能力が高い!

Qualcomm Snapdragon 800, 2.26GHz」と「Adreno 330, 450MHz」を積んでいます

 どう見てもオーバースペックです。本当にありがとうございました

 アプリの立ち上げ、画像ロード、すべてがみな爆速です。

2. 画面が綺麗で大きい!

 解像度は445ppi

 Retina (笑)を謳う某林檎5sはたったの326ppi

 それに大きくて見やすい!

 4.95インチの画面は、片手でホールド操作できる限界サイズかと思われ。

3. 安い!

 コスパ最強。

 他の同レベルの泥端末は8万円くらいします。

 Nexus5 ならGoogle Playで4万、オクだと3.5万、芋場NMPなら0円で手に入ります

4. 土管屋のゴミアプリが入っていない!

 メモリすっきり! 動作快適!

5. 日本語入力が快適!

 広めのソフトウェアキーボード、秀逸なIME(Google日本語入力)。

 押下するとヴァイブレーションで「押したよ」と教えてくれます

6. 拡張が高い!

 林檎の「ほら、こうすればいいんだよ。これがアフォーダンスさ」といった鼻持ちならない感じがありません。

7. 可哀想!

 モトローラ売却か〜ら~の Google Play Edition 一本化で、Nexus シリーズが消えるとの噂があります

 ひょっとすると Nexus5 が最後Google 先生謹製スマホになるかもしれません。

「守ってあげたい」という母(父)性本能がくすぐられます

ログイン ユーザー登録
ようこそ ゲスト さん