「Builder」を含む日記 RSS

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

2023-12-27

anond:20231227120052

一応世界Top10くらいのテックエンジニアやってたけど

一つもやったことないなw

データストラクチャとアルゴリズムは割とガッツリ手を動かしてやった

O(N)はこんなの当たり前だろと思ったら世の中考えてないエンジニアが山ほどいた

Builderだののパターンはまあ見ればわかるっしょ

DDDだのTDDだののデザインパターンは大体Wiki

OOP英語Javaチュートリアル

Web ServiceはSun本社で計3週間くらい

勉強仕事中にやる方針

残業はしない方針

こんな感じ

2023-11-12

きっと今頃すいすい増田GPT Builderを使ってGPT4Turbo水野曜子ちゃんを作っているにちがいない

期待している

2023-06-15

面白かった2Dアクションフリゲリスト2

https://anond.hatelabo.jp/20230615211440

ナイトメアスフィア』(暁音)

ttp://mickmanx.blog71.fc2.com/

難易度:★★

ダークファンタジー正統派メトロイドヴァニアちょいエログロリョナ)。死亡した最強の女戦士が禁断の術で復活させられ、再び魔物と戦うことになる。

明確にストーリーがあるのは最初最後ぐらいで、マップ全体が実質的に一つの大きなダンジョンとなっている構成のため、ひたすら戦闘と探索に没頭できる。ボリュームたっぷりかつ、戦闘難易度サクサクなので、マップ埋め作業が止まらない。

基本操作レスポンスが非常によく、ボタン連打で出る通常攻撃コンボで戦ってるだけで十分楽しいさらに、追加されるコマンド技も多段ヒットするものが多いため、敵をボコボコにする快感さらに加速する。昇り斬りからの斬り下ろしのお手軽連携最高。

レベルアップ(で得たポイントの割り振り)と、発見したアイテムによる能力追加の両方の強化がある、自分が一番好きなタイプメトロイドヴァニア

アイテムによる強化は、空中ジャンプなどの移動系、武器種追加、技習得・強化(アイテム消費制で任意選択可能)、各属性オーブ魔法)、魔法の種類追加(拡散ショットなど)……と多彩。特に移動系は、空中ジャンプ回数+1のような強化が複数あるため、最終的な機動力がとんでもないことになる。

探索面でも、各セーブポイントにはどこからでも自由に飛べる上に、現在地を同様の転移可能ポイントとして設定できたり、部屋移動時にそのエリアで未取得のアイテム数が表示されたりと、快適にする仕組みが完備されている。

エログロリョナ要素について。あくま残酷世界表現にとどまっており、グラフィック的に見てもそんなに「実用性」はない。と思うのだが、行為としてはたしかに異種姦孕ませや腹パン吐血・吐ゲロなどが描かれているので、そういうのを求めている層も忌避している層も、自分の目でアウト/セーフを判断してほしい。エロアクションではテンポを悪くしがちな拘束攻撃も、緊急回避技で即抜けることができるのは助かる。

ストーリー性が強化され操作キャラ複数になった続編(時系列的には過去)が予定されており、公開されている体験版を見ても大いに期待できる出来だったようだが、残念ながら制作現在休止しているようだ。惜しすぎる。


『ミックマンX2』(暁音)

ttp://mickmanx.blog71.fc2.com/

難易度:★★★★★

ボーカロイド(ミク・リン)を主人公にしたロックマンXパロディ

Xの方のロックマンほとんどやったことがないが、それぞれ近接と飛び道具担当で、ミク=ZEROリン=Xという感じ。操作キャラステージ内でいつでも変更できる(ライフは共有)

なぜかプロローグスーパーメトロイドネタだったり(自爆カウント有り)、暫定ラスボスマリオだったり、ロックマン系の敵ボスの中になぜかモリガンヴァンパイア)が混じっていたりと、悪ノリ全開のゆるいバカゲー的内容。

と思いきや本編は、難易度インフレしがちなロックマンオマージュフリゲの中でも、はっきり言って最悪レベルの激ムズさ。特にクイックママンステージは、道中もボスも二度とやりたくない(しかお約束ボスラッシュがあるので最低二度は戦う)

一応、ステージ内やボス撃破で入手できるアイテムを消費して行う能力追加があり、各ボスの弱点になるリンショット計画的に取得していけばだいぶラクにはなるが、弱点を突いてもクイックマンは、クイックマンだけは、キツい……。あの高速体当たりをかわす方法はあるのだろうか。

上の感想デフォルト難易度のものだが、難易度設定はいつでも7段階から選択可能。ただ、最低の「ゆとり」は画面右上に大きく「私はゆとりです」と表示されて煽られることになるので選びづらい。

しかったというよりも、とにかく辛かったという印象の方がはるかに大きいが、ナイトメアスフィア同様に操作性そのものは非常に快適。壁蹴りや空中ダッシュを駆使したパロディ元風のスピーディなアクションを実現している。グラフィックに関しても、プリレンダ?の敵や顔グラはともかく、ドット絵で描かれた自キャラとしてのミク・リン普通にかわいくてよく動く。

この超難易度が気にならないぐらいの腕さえあれば、手放しで絶賛できる内容だろう。

余談だが、ミックマンX2とナイトメアフィアにはどちらも、迷宮組曲露骨パロディがある。なんでもアリかつ一応ボーカロイド主人公音楽繋りのミックマンはともかく、基本的シリアスオリジナル世界観を貫いているナイトメアスフィアにまで出すとは、作者はそんなに迷宮組曲が好きなのだろうか。たしかに探索系アクションの源流の一つと言えなくもないが。

疾風戦記フォースギア2』(Master.typeX)

ttps://www.freem.ne.jp/win/game/21774

難易度:★★★

Clickteam Fusion製

ロックマン風横スクロール美少女アクション2作目。

良くも悪くも普通の高難易度ロックマンファミコン時代)風だった前作から、大幅に爽快感がアップ。グラフィック面の強化と合わせて、全体的に非常に洗練されたゲームになった。

デフォルト使用可能な二段ジャンプ、専用ボタンが割り振られて切り替え無しで通常攻撃と併用できるサブウェポン、射程が長めで使い勝手がいい(敵に接近し過ぎない)ブレード、下+ジャンプスライディングではなくボタンによるダッシュ……など、気持ちよく動かせる変更が随所に見られる。体力減少時にのみ使える大技も追加され、派手さもばっちり。

さらに、一応は前作にもあったショップ要素が大充実。基礎能力の強化や、特殊能力を追加する装備アイテム販売など、カスタマイズの幅が大きく広がった。これにより、安定してクリアできるステージを周回して金を稼いで能力を強化し、詰まったステージに再挑戦する、といったアクションRPG寄りのプレイ感覚に近づいている。

他にも、残機制廃止無限コンティニューになってたり、復帰ポイントがはっきり可視化されていたりと、ロックマン系にありがちなストレスをなるべく排除しようとしていることがうかがえる。E缶に相当する使用回復アイテムが、取得したステージ内で使い切る形式になってるのも、かえって後腐れがなくていい。

ただ、そうは言っても、落下即死はある(装備で軽減可能)し、ボスはある程度攻撃パターンを把握しないと弱点を突いても苦戦必至だし、やはり並以上の歯ごたえはある。ラスボスは、回復アイテム使用で倒せる気がしない。

それぞれ操作感が大きく異なる使用キャラが6人もいて(初期2人、他は条件で追加)、アチーブメント要素もあるため、気に入れば長くやり込めるのもいい。

ティルキッス ~Princess Shade~』(MIR

ttps://www.freem.ne.jp/win/game/16574

難易度:★★★★

見下ろし型アクションRPG。騎士を目指す少女が戦うファンタジー。もともと有料だったものフリー化したらしく、全体的に完成度が高い。

通常戦闘では剣による攻撃がメインだが、攻撃ボタンを押しっぱなしにすることで、魔力を消費して装備武器ごとに特性の異なるショットを撃つことができる。さらボス戦では、ショットの魔力消費がなくなり撃ち放題のため、実質的シューティング化するというおもしろ構成になっている。

公式説明では、「ボスキャラとの戦闘弾幕シューティング風の戦闘に一変します」とのことで、ボス戦の弾幕は実際ガチなのだが、ある程度進むと通常戦でザコも容赦なく弾をバラまいてくるようになり、これも十分しんどい

経験値を使った能力強化の要素はあるものの、イベント進行でほぼ最大値が決まっており、無制限な強化はできない。また、回復や買い物の機会がないまま長めの連戦を強いられることが多かったりと、アクションRPGの中でも、プレイヤースキルを強く求められる側のゲームといえる。難易度設定などの救済策は一応あるが。

ストーリーは、「のじゃ」語尾がかわいい長命種ではなく単に老父の口調が移っただけ)純情で熱血な女剣士主人公と、主君であるわがままな姫のソフト百合

的な部分もないではないが、男キャラも交えた陰謀と巨大感情によるドロドロした展開の印象の方が強い。戦う相手人間が多く、要所要所で「〇〇ーッ!」と感情を爆発させてくれる主人公が熱い。

『ザコリオン』(IN)

ttps://www.freem.ne.jp/win/game/12878

難易度:★★

アクションエディター4製

スーパーシンプルスーパーインフレ見下ろし型アクションRPG。

1マップで描かれたモノクロダンジョンをひたすら進んでいく。無限に敵の湧く小部屋で戦ってレベルを上げ、ある程度強くなったら通路を進んで次の部屋でまたレベル上げ、の繰り返し。

操作は移動と攻撃(剣を振る)のみ、ステータスレベル経験値HP攻撃力ぐらい。自機は棒人間で敵のグラフィックも似たようなものだし、BGMすらない地味さ。もちろんストーリー要素など皆無。

レベル上げは好きだし、レトロ風ならこのぐらい単純でも悪くはないかな……

妥協しつつレベルを上げていくと、ある段階でびっくりさせられることになる。公開ページのスクショにも映っている要素なので別にネタバレというほどでもないと思うが、一応伏せておく。

シンプルなのは初見の印象通りだが、シンプルな中での大きな変化が楽しめるゲームだった。

これも敢えてのレトロ演出なのか制作ツールの都合なのかは分からないが、セーブ機能がなくパスワード方式になっている。そもそも30分もかからずにクリアできるボリュームなのでほとんど問題はないが、できればセーブはあった方がより気軽にプレイできたと思う。

『thePrincess ひきこもり姫の奮闘記』(IN)

ttps://www.freem.ne.jp/win/game/22405

難易度:★★★

アクションエディター4製

スクロール超強化アクションひきこもりで超恵体の姫が限定販売ミルクを買いに行く。

移動やジャンプといった行動全般で体力を消費するシステムだが、主人公の姫は極度の運動不足のため、初期状態では超鈍足の上にスタート地点からスクロールすることすらなく力尽きてしまう。そこで、「こんなこともあろうと買っておいた、どんな運動不足コインでなんとかしてしまマシン」で主人公を徹底的に強化していくことになる。

辛うじて手に入る数枚のコインで移動速度や体力を増やし、何度も力尽きながら行動範囲を広げていき、より多くのコインを手に入れて更に強化を重ねる、というのが基本の流れ。

強化項目は体力・速度以外にも、ジャンプ力、防御力、ショットボムなどの攻撃、といろいろ用意されていて、自由な順番で強化していける。最終的には、異常な俊足だわ、敵は触れただけで倒せるわ、ほとんど自由に空を飛べるわというチート姫ができ上がる。

難易度がどうというより、苦労して乗り越えていたステージを雑に数秒で突破できるようになって姫TUEEEを味わうのがメインのゲームだが、最後ボス戦はアクションとしてもそれなりの歯ごたえがある。

タイトル画面で圧倒的な恵体を見せつけ、ゲーム中も終始何かが揺れている主人公と、それを健気に支える従者のケモ少年という、キャラクター・関係性(おねショタ)要素もいい感じ。

現在は、上級者向けの「拡張版」である『~EXTEND』も公開されており、作者によると、

ttps://www.freem.ne.jp/win/game/24016

初めての方や、アクションゲームに不慣れの方は、先に通常版から

 プレイする事をお勧めします。

とのことだが、実際にプレイしてみたところ、通常版とかぶっている部分にそこまで大きな違いは感じられなかった(背景などは違う)。そのため、追加要素までプレイする気があるならいきなり『~EXTENDから始めても別に問題ないと思う。作者の意向尊重すべきかもしれないが。

現象使い首都高無敵伝説 Firststage 氷眼の魔女』(こなわさび

ttps://www.freem.ne.jp/win/game/21429

難易度:★★★

Shooting Game Builder製。

首都高には魔力がある」

首都高を走る走り屋たちは体内に魔力を蓄積する

走り屋たちが異能に目覚める

という恐るべき三段論法支配する世界で、走り屋たちが抗争を繰り広げる格闘?アクションキャラ設定やセリフ回しの中二病度合を含めて、いわばレースしないレーシングラグーン

ゲーム進行は、4人のキャラから一人を選び、他のキャラ+αと戦っていく格ゲー方式。固定画面ステージで大量に湧くシュトモン(雑魚敵)を倒しつつ一定時間が経過すると、ボス(敵走り屋)が現れるという流れ。無双タイマンが両方味わえる。

操作としては、必殺技コマンドが専用ボタンと方向キーの組み合わせだったり、超必殺技ボタン一つで出るボム的な扱いだったり、ジャンプが無かったりなど簡略化されており、手軽に格ゲーアクションが楽しめる。

背景やオープニング・エンディングといった演出面以外では、走り屋という設定にゲーム上の意味はほぼ存在しないが、とにかくオレはこれが作りたいんだ、これがカッコいいと思っているんだ、という強い思いはたしかに伝わってくる。ドット絵で描かれた、雪の降る首都高の美しさは、それだけで十分に価値があった(非都民なので首都高描写としての正確性は知らない)

とても本来フリーゲームらしい一品といえる。続編もあるが、独自世界を作ろうとしていた一作目からネット流行りのネタパロディを取り入れた内容になってしまったのは少し残念。

マシンナリシティAD』(Happy Head

ttps://www.freem.ne.jp/win/game/28506

難易度:★★★

Clickteam Fusion 2.5製

ハイスピードスクロールアクションポストアポカリプスっぽい殺伐とした世界主人公たちが戦う。複数いる操作キャラは全て女性

ショットと近接の二種類の通常攻撃があり、それぞれ対応する色の攻撃を打ち消すことができる。こういうのは往々にしてシステムを無理やり活かそうとしてクソ難易度が生まれる元だが、このゲームでは、ザコ敵は身体の色で攻撃の種類も判断可能で、ボスはその都度事前に攻撃の種類を予告してくれるため、理不尽さを感じる場面はほぼない。

たぶん作者としては、上の打消しシステムが最大の売りだと思うのだが、個人的にはショットに関しての仕様特に印象に残った。

通常攻撃はいずれもボタン押しっぱなしで自動連射だが、攻撃しながら移動できるのはショットのみ。そして、ショット発射中は向きが固定されるため、敵との距離を調節しながら休まず攻撃し続けることが可能となっている。また、ジャンプ時に通常攻撃をすると落下速度が遅い半ホバリング状態になり、ショットなら滑空に近い感覚で横移動ができる。

バリバリ弾を撃ちながら立ち止まることなガンガン前に出ることができるこの操作性が、もともとの移動速度の速さとあわせて圧倒的なスピード感を生んでいる。

前作がありそちらも遊んでみたが、自動連射と移動しながら攻撃可能なこと以外は、ショットのこの仕様は今作から採用されたもののようだった。一見地味だが、コロンブスの卵的にプレイ感覚が劇的に変わった工夫だろう。

ステージの多くが、駆け抜けるように突破できる短い道中+ボス戦という構成になっていて、ボスの耐久力もそんなに高くないため、そこもテンポの良さに繋がっている。

全15ステージの全てにボスが配置されており、何体かは再戦があるもののそれでもけっこうなボリューム中ボスも含めれば複数ボスがいるステージもある)。終盤のボスはややグロ系に寄っているが、そこも含めてビジュアル面も力が入っている。

難点は、ストーリーが非常に複雑で難解であること。ボイス付きで展開し演出もかなり気合いが入っていて、とにかく壮大な話が展開していることは分かるので、雰囲気だけ味わう分には問題ないのだが。

面白かった2Dアクションフリゲリスト1

2D アクション フリーゲーム おすすめ」などで検索しても、オールタイムの良作を網羅的にまとめたようなページはあんまりなかったので、自分用のメモがてらここに残しておく。

なぜアクションなのか

自分の手で敵をボコボコにする快感が味わえるから

なぜ2Dなのか

PCが型落ちのノートで、3Dはほぼまともに動かないから。

増田の好み

現在合法的無料ダウンロードプレイできるWindows用のゲーム」という基準で、一定以上おもしろかったものは手当たり次第に並べていく。ほぼクローンみたいなもの以外の二次創作パロディオマージュその他は一律で合法扱いとする(この縛りがなければガンヴァルケンなんかも入れたい)

順番は適当だが、今さら内容紹介するまでもない超有名作品などは後ろにまとめておく。

似た系統の良さそうなフリゲが他にもあれば、トラバブクマで教えてもらいたい。特に海外フリゲ日本語検索だけでは探しにくいので、詳しい人が積極的情報提供してくれると助かる。




無駄に長くなったので、とりあえずリストだけ)

・『ナイトメアスフィア』(暁音)
 ttp://mickmanx.blog71.fc2.com/
 難易度:★★
 ダークファンタジー正統派リョナメトロイドヴァニア

・『ミックマンX2』(暁音)
 ttp://mickmanx.blog71.fc2.com/
 難易度:★★★★★
 ボーカロイド主人公ロックマンXパロディ

・『疾風戦記フォースギア2』(Master.typeX)
 ttps://www.freem.ne.jp/win/game/21774
 難易度:★★★
 Clickteam Fusion製
 美少女ロックマン風。

・『ティルキッス ~Princess Shade~』(MIR
 ttps://www.freem.ne.jp/win/game/16574
 難易度:★★★★
 見下ろし型弾幕アクションRPG

・『ザコリオン』(IN)
 ttps://www.freem.ne.jp/win/game/12878
 難易度:★★
 アクションエディター4製
 スーパーシンプルスーパーインフレアクションRPG

・『thePrincess ひきこもり姫の奮闘記』(IN)
 ttps://www.freem.ne.jp/win/game/22405
 難易度:★★★
 アクションエディター4製
 横スクロール超強化アクション

・『現象使い首都高無敵伝説 Firststage 氷眼の魔女』(こなわさび
 ttps://www.freem.ne.jp/win/game/21429
 難易度:★★★
 Shooting Game Builder製。
 走り屋格闘アクション

・『マシンナリシティAD』(Happy Head
 ttps://www.freem.ne.jp/win/game/28506
 難易度:★★★
 Clickteam Fusion 2.5製
 ハイスピードスクロールアクション

・『MONOCHROBOT』(ラッキー
 ttps://www.freem.ne.jp/win/game/7877
 難易度:★★★
 モノクロ短編メトロイドヴァニア

・『嘆きの楽園』(ナール)
 ttps://www.freem.ne.jp/win/game/9605
 難易度:★★★
 アクションエディター4製。
 横スクロール探索ホラーアクション

・『群青禍刻ノ魔人ブルーアワーインカネーション)』(afefE_TAKUmi)
 ttps://www.freem.ne.jp/win/game/23085
 難易度:★★★★
 GameMakerStudio2製
 持ち上げ&投げつけ横スクロール

・『メイド イン ヘル!』(404)
 ttps://www.freem.ne.jp/win/game/3232
 難易度:★★★★
 東方二次創作スクロール

・『Floral Eurobeat』(リラアイシクル)
 ttps://www.freem.ne.jp/win/game/24712
 難易度:★★★★
 アクションエディター4製
 全方位射撃スクロール

・『Vivid Twinkler -氷と炎の檻-』(ヌバビゾン)
 ttps://www.freem.ne.jp/win/game/16653
 難易度:★★★★★
 アクションエディター4製
 横スクロール

・『VampunishX』(バラルバレル)
 ttps://www.freem.ne.jp/win/game/9092
 難易度:★★★★★
 アクションエディター+製
 ドラキュラアクション

・『VampireBlaze3』(とみする)
 ttps://www.freem.ne.jp/win/game/8487
 難易度:★★★★★
 ZGE製。
 ドラキュラ2+月風魔伝アクションRPG

・『God Of Killer X』(りぅ)
 ttps://www.freem.ne.jp/win/game/10517
 難易度:★★
 横スクロール

・『Iji』(Remar Games)
 ttp://www.remar.se/daniel/iji.php
 難易度:★★★
 海外製サイドビュー探索アクション

・『Hero Core』(Remar Games)
 ttp://www.remar.se/daniel/herocore.php
 難易度:★★★
 シンプルモノクロメトロイドヴァニア

・『Hyper Princess Pitch』(Remar Games)
 ttp://www.remar.se/daniel/pitch.php
 難易度:★★
 全方位無双シューティングアクション

・『Princess Remedy In a World of Hurt』(Remar Games)
 ttp://www.remar.se/daniel/remedy.php
 難易度:★★
 癒し系シンプルRPGアクション

・『Legend of Princess』(Joakim Sandberg (konjak))
 ttp://www.konjak.org/
 難易度:★★★
 海外製横スクロールゼルダパロディ

・『SATAN LOVES CAKE.』(baku
 ttps://baku.itch.io/satan-loves-cake
 難易度:★★★
 海外短編メトロイドヴァニア

・『Momodora II』(rdein)
 ttps://rdein.itch.io/momodora-ii
 難易度:★★★★
 海外短編メトロイドヴァニア

・『ジャンクエデン』(耕)
 ttps://www.freem.ne.jp/win/game/6339
 難易度★★★★
 WOLF RPGエディター
 横スクロール2Dアーマードコア

・『崩壊村』(PEPOSOFT
 ttp://www.peposoft.com/old/index_game.html
 難易度:★★★
 魔界村オマージュ

・『ミクものがたり ~ユメとたいせつなもの~』(PEPOSOFT
 ttp://www.peposoft.com/old/index_game.html
 難易度:★★★
 ボカロスクロール

・『アクションモグラ』(クロボン
 ttps://www.vector.co.jp/soft/winnt/game/se506187.html
 難易度:★★★★
 モグラ主人公スクロール

・『ファラオリバース』(クロボン
 ttps://www.gamemaga.jp/pharaoh/download.html
 難易度:★★★★
 ウサギ考古学メトロイドヴァニア

・『HOLOCURE』(Kay Yu)
 ttps://kay-yu.itch.io/holocure
 難易度:★★★
 ホロライブ二次創作ヴァンサバ系。

・『FLARE NUINUI QUEST』(sulpx)
 ttps://sulpx.itch.io/nuinui-quest
 難易度:★★★
 ホロライブ二次創作ロックマン風。

・『ASTLIBRA ~生きた証~』『ASTLIBRA ミニ外伝 ~幻霧の洞窟~』(KEIZO)
 ttps://freegame-mugen.jp/action/game_9339.html
 ttps://freegame-mugen.jp/action/game_4223.html
 難易度:★★★
 大作ファンタジースクロールアクションRPG外伝

・『洞窟物語』(開発室Pixel
 ttps://www.vector.co.jp/soft/win95/game/se352180.html
 難易度:★★★
 メトロイドヴァニア

2022-08-11

はっきり言っておくが、Visual Studio

まったくビジュアルじゃない!

未だに!

Borland C++ Builderの方が未だにビジュアルに思える!

ビジュアル系!

LUNA SEAとか?

ビジュアル系の人がVisual Studioはイケてない

でも、ビジュアル系の人がvimならどうだろうか?

2021-05-27

anond:20210527102211

xcodeInterface Builderの.nibだっけ?

RADで生成されるものは大きくてもuntouchableだし、

DelphiとかC++ Builderなんかで書く量はかなり少なかった記憶がある

2020-11-24

anond:20201124155603

Xcode自分も駄目だった

なんでだろう

これまで改良はされてきたし、最新のは知らんのだけど、

プロジェクトの設定とかとりあえず必要最低限だけ表示すればいいのにドバーッと全部表示してしまってて、

しかも結局はコマンドラインオプションGUIでチマチマ書くような感じになってしまってて、

これIDE意味あんの?みたいになるわけだけど、Xcodeを使わないと基本的MaciOSアプリを開発できない縛りもあるわけで、

あと、うろ覚えだけど昔たしかInteface Buildernibファイルとかバイナリだったんじゃなかったか

バージョン管理しづらい、差分が分からない、うっかりマウスを滑らせてどこか変更してしまっても分からない、

NeXTはそれでも良かったのかもしれないけど、なんだかなあと思って、できるだけ使いたくなくなる不思議IDE

Borland C++ BuilderとかDelphiは楽しかったのになあ

2020-06-18

自分プレイしたゲーム晒す

この間、増田プレイしたゲーム晒してたのを見て面白かったか自分のも晒してみる。

おすすめがあったら教えてくれ。

以下プレイ時間

Rocket League

記録時間: 790 時間

Sid Meier's Civilization V

記録時間: 672 時間

Cities: Skylines

記録時間: 635 時間

RimWorld

記録時間: 521 時間

Terraria

記録時間: 377 時間

METAL GEAR SOLID V: THE PHANTOM PAIN

記録時間: 350 時間

Factorio

記録時間: 330 時間

Fallout 4

記録時間: 268 時間

Assassin's Creed Odyssey

記録時間: 254 時間

Heat Signature

記録時間: 149 時間

7 Days to Die

記録時間: 132 時間

Assassin's Creed IV Black Flag

記録時間: 127 時間

Sniper Elite 4

記録時間: 114 時間

Assassin's Creed Origins

記録時間: 109 時間

Reassembly

記録時間: 97 時間

HITMAN

記録時間: 91 時間

METAL GEAR SOLID V: GROUND ZEROES

記録時間: 80 時間

The Witcher 3: Wild Hunt

記録時間: 67 時間

Kerbal Space Program

記録時間: 61 時間

Watch_Dogs 2

Stellaris

記録時間: 58 時間

Tom Clancy's Ghost Recon® Wildlands

記録時間: 55 時間

Tom Clancy's Splinter Cell Blacklist

記録時間: 32 時間

Dungeon Warfare

Far Cry 4

記録時間: 31 時間

HITMAN 2

記録時間: 27 時間

Dead Rising 3

記録時間: 25 時間

Graveyard Keeper

記録時間: 20.0 時間

The Elder Scrolls V: Skyrim

記録時間: 18.6 時間

The Escapists 2

記録時間: 17.1 時間

Starbound

記録時間: 15.7 時間

INSIDE

記録時間: 15.3 時間

Stardew Valley

RPG Maker MV

記録時間: 13.8 時間

Dishonored

記録時間: 13.5 時間

Borderlands 2

記録時間: 12.7 時間

Project Zomboid

記録時間: 12.6 時間

Kingdom: Classic

記録時間: 12.5 時間

Papers, Please

記録時間: 12.0 時間

BioShock

記録時間: 10.3 時間

Batman: Arkham City GOTY

記録時間: 8.8 時間

BioShock Infinite

記録時間: 8.7 時間

Universe Sandbox

記録時間: 8.6 時間

Portal 2

No Man's Sky

記録時間: 8.5 時間

Avorion

記録時間: 5.6 時間

Starbound - Unstable

記録時間: 5.5 時間

Superflight

DARK SOULS II

記録時間: 5.2 時間

LIMBO

Saints Row IV

記録時間: 4.9 時間

How to Survive

記録時間: 4.4 時間

Hearts of Iron IV

記録時間: 4.2 時間

Quantum Break

記録時間: 4.1 時間

Undertale

記録時間: 3.5 時間

GRIS

記録時間: 3.4 時間

Age of Empires® III: Complete Collection

Gunpoint

ペルソナ4 ザ・ゴールデン

記録時間: 3.1 時間

FTL: Faster Than Light

記録時間: 2.9 時間

Creeper World 3: Arc Eternal

記録時間: 2.3 時間

片道勇者

Garry's Mod

記録時間: 2.2 時間

The Talos Principle

Mini Metro

記録時間: 2.0 時間

Life is Strange

記録時間: 1.6 時間

Return of the Obra Dinn

記録時間: 1.2 時間

STEINS;GATE

記録時間: 0.9 時間

This War of Mine

Rebel Galaxy

記録時間: 0.8 時間

Game Builder

Valiant Hearts: The Great War / Soldats Inconnus : Mémoires de la Grande Guerre

記録時間: 0.7 時間

DiRT Rally

Invisible, Inc.

記録時間: 0.5 時間

UNDEFEATED

記録時間: 0.4 時間

ISLANDERS

Sins of a Solar Empire: Rebellion

記録時間: 0.3 時間

Wallpaper Engine

記録時間: 0.2 時間

The Witness

Age of Empires II (2013)

記録時間: 0.1 時間

The Flood

VRChat

Grow Home

Metal Gear Solid Legacy

Age of Empires II (2013): The Forgotten

Alan Wake

Assassin's Creed III Remastered

Audio Party Pack (オーディオパーティパック)

BioShock 2

BioShock 2 Remastered

BioShock Remastered

Borderlands 2: Headhunter 1: Bloody Harvest

Borderlands 2: Headhunter 2: Wattle Gobbler

Borderlands 2: Headhunter 3: Mercenary Day

Borderlands 2: Headhunter 4: Wedding Day Massacre

Borderlands 2: Headhunter 5: Son of Crawmerax

Borderlands: The Pre-Sequel

BROKE PROTOCOL: Online City RPG

Cities: Skylines - After Dark

Cities: Skylines - Green Cities

Cities: Skylines - Mass Transit

Cities: Skylines - Snowfall

Civilization V - Scrambled Continents Map Pack

Company of Heroes 2

Crusader Kings II

Crusader Kings II: African Portraits

Crusader Kings II: South Indian Portraits 5 Year Anniversary Gift

Cuisine Royale

Dead Rising 3 DLC1

Dead Rising 3 DLC2

Dead Rising 3 DLC3

Dead Rising 3 DLC4

Door Kickers

Evolvation

For Honor

For Honor - Public Test

Fortified

Hacknet

Half-Life 2

Half-Life 2: Lost Coast

Her Story

Insurgency

Killing Floor

Killing Floor Mod: Defence Alliance 2

Layers of Fear

Left 4 Dead 2

Monaco

Murderous Pursuits

Overlord

PAYDAY 2

Pinball FX3

Prismata

Regions Of Ruin

Satellite Reign

Shadow Warrior

Sid Meier's Civilization III: Complete

Sid Meier's Civilization V: Brave New World

Spec Ops: The Line

Starpoint Gemini 2

Stellaris: Original Game Soundtrack

Streamline

The Escapists 2 - Dungeons and Duct Tape

The Flame in the Flood

The LEGO® NINJAGO® Movie Video Game

The Talos Principle - Bonus Content

The Talos Principle - Prototype

The Talos Principle - Soundtrack

The Talos Principle: Road To Gehenna

The Witcher 2: Assassins of Kings Enhanced Edition

The Witcher: Enhanced Edition

Tomb Raider

Viscera Cleanup Detail: Shadow Warrior

Yume Nikki

ZACH-LIKE

片道勇者プラス

追記

・Kenshiはニコニコ動画で見て面白そうだと思い、プレイしたんだけどとても重くてまともにプレイできなかった思い出。

プレイ時間Steam管理してくれていてアクティティから確認できるんだ。Steamがわからなかったら調べてね。

2020-01-06

今年流行りそうなおすすめYouTubeチャンネル

出版の裏側

現役の編集者出版業界の裏側を暴露するというチャンネル

テンポよく歯に衣着せぬ物言いで内情を詳らかにしていく

チャンネル性質ピー音や伏せ字も沢山あるがそれでも十分面白い

編集者志望や作家志望からアドバイスにも定期的に応じている

漫画家ライトノベル作家志望の人間からも多くの質問が寄せられるが

「まずはネットで腕試ししてから送ってこい」というのが最近定番の返しになっている

ゲストはいつも匿名形式での参加となっているためコメント欄では推理大会が開かれる

・脱マッチョ宣言

ボディビルダー男性女装に挑戦するチャンネル

女装に関してズブの素人だった人間が徐々にレベルアップしていく様子を楽しめる

最初はただ単にユニクロなどで買ってきたものを着るだけだったが

コメント欄女性女装家のアドバイスを参考にしながら

わず一年の間にガチ女性しか見えないレベルにまで到達してしま

元が中性的な顔立ちということを差し引いても凄かった

YouTubeでの収益をすべて寄付しているらしい

BLOCKS HOUSE BUILDER

デンマーク建築家をやっているLEGOガチ勢のチャンネル

建築家スキルを生かしてLEGOで家を組み立てるというチャレンジをしている

ただ単にガワだけを再現するのではなく機能性の高い本格的な住宅建築

LEGOブロックの意外な断熱性能の高さを見るにつけ

自分の家の断熱対策LEGOでやってみようかと思ってしま

”Primitive Technology”を連想するという人がコメント欄にもちらほらいる

・巷のデバッガ

ゲーム会社デバッガーをやっている大学生チャンネル

街なかを歩いているときに見かけた様々なものを紹介するという動画を上げているが

見たものをあたかも”現実バグであるかのように紹介するというユニーク手法をとっている

加えて豊富ゲーム知識と絡めて説明することでよりいっそうのおかしみを漂わせている

コメント欄では「これがゲーム脳か……」というような文言定番化している

海外ファンから映画マトリックスになぞらえてモーフィアスとあだ名されている

ミニヨンズ

改造ミニ四駆に心血を注ぐレッツ&ゴー世代チャンネル

金と暇を持て余したアラサー兄弟がひたすらミニ四駆の限界に挑み続けている

個人的には動力源改造シリーズ結構気に入っている

回を増すごとにヤバさがインフレしているところも懐かしの少年漫画っぽくていい

初心者には「ミニ四駆にウルトラダッシュモーター○個搭載してみた」をオススメする

不定期にやっている「ミニ四駆とビーダマンをかけ合わせようシリーズ」も見て欲しい

2019-06-25

anond:20190624140926

✕
if(肉に火が通っている)火を止める;
else if (3分たった)火を止める;

○
火が通った肉 = 炒める(肉, 3 * 60);

OOPだとbuilderパターンうまいことハマる気がする

2017-03-21

<META name="GENERATOR" content="IBM WebSphere Homepage Builder V6.0.0 for Windows">

これを見るとお腹いっぱいになっちゃ

しか

<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

とかな

2017-02-20

[]補足)はてなブックマークホットエントリ入りしたドメイン2005年2008年

http://anond.hatelabo.jp/20170220005414 の1年間隔のデータ

エントリの5年毎のデータじゃ思い出を振り返るには分解能が足りない気がしたので1年間隔で補足します。興味ない人にはスパムエントリ並にうざいのだろうから申し訳ないけど、その当時を見てたらただの数字の羅列には見えないのですよ。近々はてブシステムに大幅な改修が入るらしいから今やっとかないと来月も同じように見られるとは限らないしね。

はてなブックマークホットエントリ入りしたドメイン 2005年2008年

2005年3月2006年3月2007年3月2008年3月
386ドメイン439ドメイン312ドメイン280ドメイン
www.itmedia.co.jp(165)d.hatena.ne.jp(175)d.hatena.ne.jp(114)d.hatena.ne.jp(191)
japan.cnet.com(66)japan.cnet.com(49)blog.livedoor.jp(63)blog.livedoor.jp(78)
d.hatena.ne.jp(36)www.itmedia.co.jp(38)www.popxpop.com(59)www.itmedia.co.jp(50)
internet.watch.impress.co.jp(34)blog.livedoor.jp(30)www.itmedia.co.jp(50)www.asahi.com(40)
hotwired.goo.ne.jp(32)internet.watch.impress.co.jp(21)gigazine.net(43)gigazine.net(31)
headlines.yahoo.co.jp(28)phpspot.org(20)phpspot.org(29)coliss.com(28)
www.asahi.com(28)plusd.itmedia.co.jp(18)anond.hatelabo.jp(23)anond.hatelabo.jp(26)
itpro.nikkeibp.co.jp(26)japanese.engadget.com(17)www.youtube.com(19)www.ideaxidea.com(23)
pc.watch.impress.co.jp(21)www.asahi.com(17)www.atmarkit.co.jp(16)alfalfa.livedoor.biz(18)
pcweb.mycom.co.jp(21)itpro.nikkeibp.co.jp(15)www.designwalker.com(16)japan.cnet.com(18)
blog.livedoor.jp(20)www.atmarkit.co.jp(15)japan.cnet.com(15)phpspot.org(17)
www.watch.impress.co.jp(17)www.ringolab.com(13)journal.mycom.co.jp(15)e0166.blog89.fc2.com(13)
www.ringolab.com(15)www.mainichi-msn.co.jp(12)portal.nifty.com(15)sankei.jp.msn.com(13)
nikkeibp.jp(14)jkondo.hatenablog.com(10)netafull.net(13)wiredvision.jp(13)
www.atmarkit.co.jp(13)www.excite.co.jp(9)itpro.nikkeibp.co.jp(12)itpro.nikkeibp.co.jp(12)
www.forest.impress.co.jp(13)www.forest.impress.co.jp(9)blog.goo.ne.jp(10)www.atmarkit.co.jp(11)
shinta.tea-nifty.com(12)www.nyasoku.com(9)guideline.livedoor.biz(10)blog.goo.ne.jp(10)
www.geocities.jp(11)q.hatena.ne.jp(8)www.ideaxidea.com(10)www.designwalker.com(10)
www.hatena.ne.jp(10)hotwired.goo.ne.jp(7)labs.unoh.net(8)japanese.engadget.com(9)
slashdot.jp(9)pcweb.mycom.co.jp(7)q.hatena.ne.jp(8)ascii.jp(8)
finalvent.cocolog-nifty.com(8)takagi-hiromitsu.jp(7)www.100shiki.com(8)urasoku.blog106.fc2.com(8)
japan.internet.com(8)www.future-planning.net(7)www.watch.impress.co.jp(8)www.moongift.jp(8)
www.mainichi-msn.co.jp(8)www.hatena.ne.jp(7)zapanet.info(8)www.nicovideo.jp(8)
allabout.co.jp(7)bb.watch.impress.co.jp(6)2log.blog9.fc2.com(7)business.nikkeibp.co.jp(7)
bb.watch.impress.co.jp(7)caramel-tea.com(6)business.nikkeibp.co.jp(7)web-tan.forum.impressrd.jp(7)
blog.bulknews.net(7)fragments.g.hatena.ne.jp(6)www.forest.impress.co.jp(7)www.yomiuri.co.jp(7)
blog.japan.cnet.com(7)gigazine.net(6)www.j-cast.com(7)guideline.livedoor.biz(6)
kiri.jblog.org(7)headlines.yahoo.co.jp(6)ameblo.jp(6)jkondo.hatenablog.com(6)
naoya.dyndns.org(7)kengo.preston-net.com(6)e0166.blog89.fc2.com(6)labaq.com(6)
www.excite.co.jp(7)naoya.g.hatena.ne.jp(6)internet.watch.impress.co.jp(6)www.j-cast.com(6)
www.future-planning.net(7)neta.ywcafe.net(6)web-tan.forum.impressrd.jp(6)www.kajisoku.org(6)
www.nikkansports.com(6)pc.watch.impress.co.jp(6)codezine.jp(5)dain.cocolog-nifty.com(5)
www.yomiuri.co.jp(6)portal.nifty.com(6)www.aoky.net(5)finalvent.cocolog-nifty.com(5)
antipop.zapto.org(5)satoshi.blogs.com(6)www.asahi.com(5)news23vip.blog109.fc2.com(5)
blog.goo.ne.jp(5)shinta.tea-nifty.com(6)www.simplexsimple.com(5)plusd.itmedia.co.jp(5)
blog.tatsuru.com(5)www.geocities.jp(6)blogpal.seesaa.net(4)portal.nifty.com(5)
k-tai.impress.co.jp(5)www.youtube.com(6)css-happylife.com(4)satoshi.blogs.com(5)
www.cnn.co.jp(5)ameblo.jp(5)cyblog.jp(4)takagi-hiromitsu.jp(5)
www.nikkei.co.jp(5)blog.goo.ne.jp(5)dain.cocolog-nifty.com(4)wsoku.blog44.fc2.com(5)
artifact-jp.com(4)jibun.atmarkit.co.jp(5)loconet.web2.jp(4)www.afpbb.com(5)
hail2u.net(4)nikkeibp.jp(5)plusd.itmedia.co.jp(4)bb.watch.impress.co.jp(4)
homepage.mac.com(4)www.geocities.co.jp(5)satoshi.blogs.com(4)blog.creamu.com(4)
kengo.preston-net.com(4)www.yomiuri.co.jp(5)tech.nitoyon.com(4)builder.japan.zdnet.com(4)
takekuma.cocolog-nifty.com(4)beta.g.hatena.ne.jp(4)www.geekpage.jp(4)fujipon.hatenadiary.com(4)
www.100shiki.com(4)blog.japan.cnet.com(4)www.heiwaboke.com(4)headlines.yahoo.co.jp(4)
www.geocities.co.jp(4)column.chbox.jp(4)www.kajisoku.com(4)journal.mycom.co.jp(4)
www.sem-research.jp(4)dogfood.g.hatena.ne.jp(4)www.kitami.tv(4)lifehacking.jp(4)
dain.cocolog-nifty.com(3)ekken.blog1.fc2.com(4)www.sankei.co.jp(4)netanabe.blog78.fc2.com(4)
homepage1.nifty.com(3)hatena.g.hatena.ne.jp(4)www.tatamilab.jp(4)www.4gamer.net(4)
japanese.chosun.com(3)plaza.rakuten.co.jp(4)www.tez.com(4)ameblo.jp(3)
kotonoha.main.jp(3)web.archive.org(4)coliss.com(3)jp.techcrunch.com(3)
my.casty.jp(3)akihitok.typepad.jp(3)hatena.g.hatena.ne.jp(3)koerarenaikabe.livedoor.biz(3)
nais.to(3)arena.nikkeibp.co.jp(3)headlines.yahoo.co.jp(3)ktdisk.hatenablog.com(3)
sagittarius.dip.jp(3)blog.tatsuru.com(3)jp.techcrunch.com(3)labs.unoh.net(3)
sasapanda.com(3)blogpal.seesaa.net(3)la.ma.la(3)mainichi.jp(3)
www.sankei.co.jp(3)bogusnews.seesaa.net(3)medt00lz.s59.xrea.com(3)mereco.hatenadiary.com(3)
www.tokyo-np.co.jp(3)dain.cocolog-nifty.com(3)mellowmoon.blog93.fc2.com(3)netafull.net(3)
www.zakzak.co.jp(3)fujipon.hatenadiary.com(3)tangerine.hateblo.jp(3)pc.watch.impress.co.jp(3)
x51.org(3)nb.nikkeibp.co.jp(3)www.akiyan.com(3)waranote.blog76.fc2.com(3)
 news4vip.livedoor.biz(3)www.future-planning.net(3)workingnews.blog117.fc2.com(3)
 takekuma.cocolog-nifty.com(3)www.gizmodo.jp(3)www.excite.co.jp(3)
 ttchopper.blog.ocn.ne.jp(3)www.virtual-pop.com(3)www.forest.impress.co.jp(3)
 ultrabigban.cocolog-nifty.com(3)www.yomiuri.co.jp(3)www.gizmodo.jp(3)
 www.100shiki.com(3) www.watch.impress.co.jp(3)
 www.fmmc.or.jp(3)  
 www.h-yamaguchi.net(3)  
 www.hyuki.com(3)  
 www.ideaxidea.com(3)  
 www.lucky-bag.com(3)  
 www.sv15.com(3)  
 yukawasa.hatenablog.com(3)  
 zerobase.jp(3)  

(※カッコ内は回数)

毎年3月の全ホットエントリhttp://b.hatena.ne.jp/hotentry/20050215 から取得。タイルレイアウトで取得したので1日49件×31日で月間合計1519件弱のデータを基にしている。重複はuniqで取り除いてある。

2016-07-30

http://anond.hatelabo.jp/20160730155428

悪い、昼間っからビール飲みだしたから、もうよくわからん

それをそのままってのが意味がよくわからんけど、

newしてから渡せば良いと思うよ。

いちいちクラスに分ける理由は、こういう感じで、クラス内の変数アクセスすれば、画面事の表示とかが簡単に出来る的な?

EventHogeクラスクリックした時のイベント定義するクラス

      // Javaの書き方しらん、インターフェース実装することを定義したい

      public class EventHoge : View.OnClickListener {

        

        //画面事の名称

        public string ViewName = "";

        // Javaの書き方しらん、インターフェースメソッド実装することを定義したい

        public void View.OnClickListener.onClick(View v) {

            // 元増田サンプルそのまま ーー>

            AlertDialog.Builder dlg;

            dlg = new AlertDialog.Builder(MainActivity.this);

            dlg.setTitle("画面の名前:" + ViewName); // 画面名称が表示されるイメージ

            dlg.setMessage("Hello, サンプル!");

            dlg.show();

            //<ーー

       }

     }

MainHogeクラス(画面の初期化を行い、どのボタンにどのイベントを仕込むかを決めるクラス

    // Androidなにも知らんけど、元増田ボタンイベントを書く処理が書いてあるクラスのことが言いたい

    public class MainHoge {

        // そのメソッド

        public void Main() {

            //ボタン実装サンプル

            final Button button = new Button(this);

            button.setText("ダイアログの表示");

            View.OnClickListener ocl = new EventHoge();

            ocl.ViewName = "画面その一";

            button.setOnClickListener(ocl);

        }

    }


こんな感じにすれば、画面が二つあって、

その画面の名称を表示するようなボタンを、二つメソッドコピペして作らなくていい的な?

もうぶっちゃけ元増田が何を悩んでるのか、ようわからんわ。

サンプルは、出来るだけとっちらかさないよう、匿名クラスとか使って、サンプルで紹介したいところ「だけ」を書くんだよね。

から、そのサンプルがどういう意味かをちゃんと読み取って、自分ならこう書くとか、こう書けるか? とかを考えてこそ勉強だと思うよ?

今回のレイだと「View.OnClickListener」っていうインターフェイス実装したクラスを、setOnClickListenerすればいいってことさえわかれば、

匿名クラス?(っていうのかな? ちょっと用語はよくしらん、クラス定義を使い回さず、その場だけのクラス定義を書く書き方)とかを使わずに、

どういうふうに応用ができるか? とか頑張れ!

頑張れ!

頑張れ!

はああああああ。

おれはビールを飲む!

http://anond.hatelabo.jp/20160730125112

うーん?

いや、なんか、通じてないな。

もうちょいサンプル詳しく書くからサンプルのどこがわからいか言ってくれ。

EventHogeクラスクリックした時のイベント定義するクラス

      // Javaの書き方しらん、インターフェース実装することを定義したい

      public class EventHoge : View.OnClickListener {

        // Javaの書き方しらん、インターフェースメソッド実装することを定義したい

        public void View.OnClickListener.onClick(View v) {

            // 元増田サンプルそのまま ーー>

            AlertDialog.Builder dlg;

            dlg = new AlertDialog.Builder(MainActivity.this);

            dlg.setTitle("サンプル");

            dlg.setMessage("Hello, サンプル!");

            dlg.show();

            //<ーー

       }

     }

MainHogeクラス(画面の初期化を行い、どのボタンにどのイベントを仕込むかを決めるクラス

    // Androidなにも知らんけど、元増田ボタンイベントを書く処理が書いてあるクラスのことが言いたい

    public class MainHoge {

        // そのメソッド

        public void Main() {

            //ボタン実装サンプル

            final Button button = new Button(this);

            button.setText("ダイアログの表示");

            button.setOnClickListener(new EventHoge());

        }

    }


こうやって、クラス分けて書けば、外とか中とか、全く関係なくなるじゃん。

元増田サンプルだと、メインの中でインターフェース実装したクラス実装を書いてるから、中とか外とかがあるんじゃないのか?

自分クラスとして定義して、そっちで実装すれば、メインは紐づけるだけでよくなって、仮引数?の中で実装しなくてもすむじゃん。

http://anond.hatelabo.jp/20160730090832

よくわからん

中が嫌なら外でかきゃいいじゃん。

javaAndroidもしらんから適当だけど。

      // Javaの書き方しらん、インターフェース実装することを定義したい

      public class Hoge : View.OnClickListener {

        // Javaの書き方しらん、インターフェースメソッド実装することを定義したい

        public void View.OnClickListener.onClick(View v) {

            // 元増田サンプルそのまま ーー>

            AlertDialog.Builder dlg;

            dlg = new AlertDialog.Builder(MainActivity.this);

            dlg.setTitle("サンプル");

            dlg.setMessage("Hello, サンプル!");

            dlg.show();

            //<ーー

       }

     }

// メインスレッド的なところ

//ボタン実装サンプル

final Button button = new Button(this);

    button.setText("ダイアログの表示");

    button.setOnClickListener(new Hoge());

こう書けば、中で書かなくて良い気がするけど、駄目なの?

なんか、インターフェースから引数の中ってのが意味わからん

どう関係してるの?

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)興味を持ってくださって、ホームセンター大人用オシメのコーナーが大賑わいになれば幸いです。。

2011-08-24

http://anond.hatelabo.jp/20110824113709

FlashDevelopを知らない時点でダウト

Flash製作環境が高いじゃん。HTML5の方が投資コストが格段に低い。割安。

知ってるけどSDKで開発するぐらいだったらFlex Builder買ったほうが労力的に安いわ。

矛盾してね?

まりHTML5よりFlash使ったほうが安いということだろ。

http://anond.hatelabo.jp/20110824101045

Flex SDKを知らない時点でダウト

知ってるけどSDKで開発するぐらいだったらFlex Builder買ったほうが労力的に安いわ。

2010-03-27

http://anond.hatelabo.jp/20100327151237

http://www.eonet.ne.jp/~senyou-mondai/

なんか今時このホームページビルダー丸出し感が返って新鮮な雰囲気を感じるなぁと思っていたら

<META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 8.0.2.0 for Windows"&gt;

パネエ……。

2009-04-09

求職者へAdobe Flex Builder Professionalを配布開始

試しに申し込んでみたら1日ほどであっさりライセンスが送られてきた。

さて、これで何をしよう。

というか何から始めていいのやら。

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