はてなキーワード: OOPとは
- OOP もアルゴリズムもできない Python 2 愛用者
- 本はインターンに書かせる。
まぁ、向いていなかった人にとっては転換期になった年齢だよな、とは思う。いわゆる、中年の危機というか。今は日系のハードが駆逐されて、互換機が全盛となって、転職が可能になったおかげでプログラマーのママで老後にいける幸せな時代だと思う。かつては BASIC のような学習コストの低いものでプログラマーをなのれたけど、今となっては OOP や SQL、そして Unix といった類の習得する学習コストが高くて、一度習得したらずっと忘れないような魔法のようなツールが無かったので、体力がある若者たちが勝ってきたけど、というだけだがね。もっと良かったこととしては、プログラマーの需要が低下しなかった、という幸運があっただけかもしれんがね。
おう!外部キー制約を語るとは、RDB を勉強しているのだな?いい心がけだ。増田は外部キー制約があると「どんなメリットがあるか知りたい」のだな?良し、答えてやろう!外部キー制約があると「変なデータが入らない」ということが開発者が『保証』できるのだ。うん、それで?って増田は思うだろう。それで、実例を挙げるけど、sex というカラムを create で作ったときに、そこに insert into で入る値が「男」「女」「その他」というデータに限りたいときが設計者にあったとする。そうすると、「 insert するのは『チンポ』でしょ?」みたいなアホを防げるだろ?もちろん、limit みたいな副クエリで実装しても構わない場合もある。型を指定して、boolean にしたい場合もある。だが、「入るのはこれだけだと思うが、後に追加で変更できる」としたら、嬉しい場合があるのじゃ。まぁ、究極的に OOP や関数型言語、または(古い)命令形言語だと、enum みたいなものなんだよ。いや、だとしたら、enum でよくね?って思うのなら、リプライくれ。答えるから。
Scala や Elm と Lisp やら Haskell と OCaml に SML と関数型のプログラミング言語を勉強したけど、これらが命令型言語に劣る理由を解説しよう。
これは、SQL も同じ問題を持っているが、関数型言語は「こういうふうに動いてね」という解釈をインタープリターやコンパイラが「推測する」必要があるのだ。つまり、書いているときにパフォーマンスをプログラマーが想像できない。
それが、現実的に厳しいのだよ。マジでコンパイラ関連は金にならない領域になってきたので、関数型言語のための独自コンパイラを作る持続可能な組織が無い。確かに、LLVM を使えば x64 や arm といった最新のアーキテクチャに対応できるかもしれないけど、フロントエンドのレベルすら応対が辛い。よって、関数型言語は C言語にてチューリング完全な同等なコードだと「いくら最速に書いても」遅いのである。
例えば if と書いたら、関数型言語は else が必須ですが、命令型言語は else 無しでも動いちゃうのですね。文系の連中が数学的な背景を加味して要件定義できると思うか?違うだろ。毎回、上に else のことについて聞いたら、プログラマーの生産性は下がるだろ。関数型言語は、上が文系だとますますだが、分岐もきっちりとおさえる必要があるから、生産性は命令型言語に劣るよ。
良い言語だと思うが、不満がある。
という愚痴がある。他人の書いたものを読む分には良い言語だと思うよ。
型ヒントはコンパイル時のエラーにならないじゃん。だったら、いらなくね?タプルは複数の値を返すときに使うのね。Go みたいだね。または Ruby の Struct みたいな。
あれ嫌いな人おるのか。俺も好きじゃないが。純粋に Haskell と同じ文法だったら良かったのにね。
アレはキモいね。素直に ?! で良いと思う。というか、Python は英語圏の人も納得はできないだろ、っていう文法が多くないか?
というのは同意する。ただ、書くときにそうは思わない。例えば、with 構文は Ruby の方がブロックを抜けたらクローズするという方針のが良いと思う。
そう思っている。
結論から言えば、SIerで数年働いてウォーターフォールを身に刻みつつWeb技術を趣味で学ぶ。その後アジャイルを標榜しているWebスタートアップに転職すれば良い。
往々にして(少なくとも日本における)Webスタートアップのアジャイルは上手く行かない。なぜならアジャイルとはなんたるかをきちんと学ばず、「なんとなく楽そう」とか「今時でイケてそう」みたいな動機で採用するからだ。
あらゆるプロジェクトが炎上しまくった結果、ウォーターフォールに回帰する瞬間が必ずやってくる。しかしWeb系でウォーターフォールの上流工程ができる人材は割と限られていて、その中にSIer出身でコテコテの上流工程やってたエンジニアが入るとかなり重宝されるのである。
アジャイルは、ウォーターフォールの酸いも甘いも経験してその対比でこそ真の利点が見えてくる。そうしてウォーターフォールもアジャイルも分かってる人材になれば、それだけでそのスタートアップでは唯一無二の存在である。
オーケストレーションだとか自然言語処理だとか純粋関数型だとかCSだとかで技術的に尖ろうとしても、そういう高度なものを求めているスタートアップは実際多くはない、というか既に席が埋まっている場合が多い。
T型人材とよく言われるけど、難しいことは何もなくて、タイトルに掲げた人並のものを2つ持っていればいい。OOPも知らない奴らがネストの深さは何層までだとかタブスペースは2つだとかforeach文使ってるやつはクソだとか表面ばかりに囚われて本質見誤って伸びきったスパゲティを量産しているような現場に、レガシーから飛び出したお前らが新風を巻き起こして欲しい。
そんな私の年収は400万です。