はてなキーワード: オブジェクト指向とは
一線級のプロになれるとは思わない方がいい
そんで巷に溢れてるドヤ顔するプログラマーも9割が草野球レベルなんよ
コードレビューしてみたらびっくりするレベルのコード書いてるのに
本人はやたら自信満々でコメントに対しても
「これでは何故ダメですか?」
とか言ってくるの勘弁してくれ
必ずしもオブジェクト指向で書く必要はないけれどオブジェクト指向が何を目指しているかは理解してくれ
パッと見た感じはちゃんとしてるように見えるけれどプロでは全然通用しないレベルなんよ
草野球でめっちゃ上手い人って素人が見るとプロでも通用しそうだけど
実際にはそんな訳ないし、プロはもっとレベルが高いところで競ってるんよ
20年ぐらいプログラミングやってるっていう40代の人とペアプロしてるんだけど
変数はほとんどがグローバル的な扱いで独自の命名規則で宣言しるし
その命名規則も全然守られてないしスペルミスも多くて読んでてイライラしてくる
根本的な作り方が無茶苦茶でちゃんと動いてるのかバグがあるのかも分からん状態
PR出てくる度に打ち合わせして、そもそものデータ構造とか機能分割について指摘してるんだけど
この前ふと
「そういやJavaで書いたことありますか?Javaだとこんな感じですよね」
って話したらJava知らんと言われた
で、聞いてみたらオブジェクト指向言語で書いたことないし勉強したことも無いとのこと
JavaなりC++なりオブジェクト指向言語で書ける必要は無いけれど
オブジェクト指向まるっきりわかってなさそうで草
ソフトウエア・ウェア開発者で、こんなことを言うとアンタッチャブルにされるような発言を教えてください。個人的には、以下の感じかな?
こんな感じかな。
結晶の構造みたいなもの。リスト構造とか種類があるが、元素のように新規に人類が新規に発見するのは困難になりつつある。
【アルゴリズム】
たとえば黒鉛は炭素の同位体であるダイヤモンドに変換できる可能性があるが、その変更プロセスは多種多様である。コストやエネルギー効率のためにベストな方法をチョイスされるように、計算量という律速段階のようなもので比較される。
1mol が 6.0e23 個の原子と同じように、1バイトは8ビットである。バイトにするメリットは、英語圏だと 1バイトも有れば日常で使う文字はコンプリートできるのだ。
計算機で使われる浮動小数点数は実は実数ではない。たとえば、0.4f - 0.3f は 0.1f でない。ただし、0.5f - 0.25f は 0.25f である。
【オブジェクト指向】
フッ素分子(F2)を作ろうとした努力をプログラミングでもやろうとしたもの。
【アスペクト指向】
ポインターをインターセプトするための道具。電気泳動するためのツール。
【オライリー】
【インフルエンサー】
錬金術師(対価はカモの財布)
【JAVA】
【Ruby】
Al2O3。
【Perl】
Pearl でない。
でもさ、未だに Python2 しか書けない残念なアラフィフもいるのさ。EOL 来ていても中途半端に需要もあるせいか、引退時期を間違えるやつも多いのがこの業界の悪いところなんだよ。そいつさ、未だに Private な関数の書き方がわかんないみたいだし、is とか使うのだぜ?オブジェクト指向とかいうレベルでないし、引数の型を指定する意味とかも「めんどくさいよね」とか言って勉強しないんだよ。はっきり言って、消えてほしい。だから、ほんとうは勉強しないと消えざるを得ない世界のがまともなんだよ。おそらく彼は3年以内には仕事がなくなるだろうけど、年金をもらえるまで20年ぐらい無職かもしれない。リカレント教育とかも、年齢制限あるからな。コンバートは早めにだな。
1. C++はプログラミング言語として有名であり、ブラのカップ数をC++と表記することで、テクノロジーに精通していることをアピールできる。
2. C++はCよりも高度な機能を持っており、ブラのカップ数をC++と表記することで、自分のバストの質や機能性を高めることができる。
3. C++はオブジェクト指向プログラミングをサポートしており、ブラのカップ数をC++と表記することで、自分のバストをオブジェクトとして扱うことができる。オブジェクト指向プログラミングでは、オブジェクトに属性やメソッドを持たせることができるので、自分のバストにも色や形や大きさなどの属性や、揺れるや揉むや吸うなどのメソッドを持たせることができる。
4. C++は多重継承をサポートしており、ブラのカップ数をC++と表記することで、自分のバストを複数のクラスから継承することができる。多重継承では、複数のクラスの特徴や機能を組み合わせることができるので、自分のバストにも様々な特徴や機能を組み合わせることができる。例えば、自分のバストを芸能人やアニメキャラクターなどのクラスから継承することで、その人物やキャラクターのバストに似せることができる。
5. C++はテンプレートをサポートしており、ブラのカップ数をC++と表記することで、自分のバストをテンプレート化することができる。テンプレートでは、型や値などのパラメータを指定することで、汎用的なコードを生成することができるので、自分のバストにも型や値などのパラメータを指定することで、汎用的なバストを生成することができる。例えば、自分のバストをint型やdouble型などの型に指定することで、整数や小数などの値に変換することができる。
6. C++は例外処理をサポートしており、ブラのカップ数をC++と表記することで、自分のバストに発生する可能性のある例外に対処することができる。例外処理では、エラーや異常などの例外が発生した場合に、適切な処理を行うことができるので、自分のバストにもエラーや異常などの例外が発生した場合に、適切な処理を行うことができる。例えば、自分のバストが垂れたり痛んだりした場合に、修正したり治療したりする処理を行うことができる。
実はオブジェクト指向ってしっくりこないんです!
ー 今までも数多くそれがあり、それを見るたびに「これにより世界は変わるな」「この製品/技術を勉強しておけば何かの方法で儲けられそう」 と思った
ー 実際に世界を大きく変えたものと、変えなかったものはあるが、自分の感覚はそれほど間違っていないかな と感じた。
ー ただ、実際に 行動にうつすことはなかったので、一般消費者としてしかの恩恵にしか預かれていなかった。
ー 昨今の「画像生成AI」「chatGPT」 は、今までに感じたものの中でも、最上位に「これにより世界が変わるな」と感じている
ー よって今回は、行動にうつしたいと考え、その意思をこの日記に残す。
・今まで「これにより世界は変わるな」「あまり世界は変わらなさそう」と感じてきたもの
(独断と偏見: 一般消費者にとって当たり前になり、世界を大きく変えたもの ★ そうでないもの ☆)
★ パソコン
中身のソフトによって、その使用目的を変えることができるなんて、他にはない家電だし凄すぎる。
これは便利すぎるので絶対に一般的になる。一生遊べるし、一生仕事に困らなさそう
<行動>
<当時考えていたこと>
これと「パソコン」の組み合わせが将来の世界にとって誰にとっても「なくてはならない」ものになることは間違いなさそう。
ただ、世の中がその状態になるのにどれだけ時間がかかるだろう?結構時間がかかるのではないか。
パソコンのような複雑に見える機械が嫌いな人は世の中に多いから。
<行動>
上記と同様。
<発表当時考えていたこと>
<行動>
色々なmp3プレーヤーを買って試した。音楽に元々興味がないので飽きた。
☆Java
<当時考えていたこと>
これが今後主流の言語になるのだろうな。オブジェクト指向って良いな。
<行動>
<当時考えていたこと>
これは、ニュースになるレベルでは流行らなさそうだな。どう考えたって徒歩と自転車の方がコスパ良くて便利
<行動>
無し
<当時考えていたこと>
iPhoneが出る前から「iモードだけでなく、通常のインターネットにアクセスできる携帯電話が出たら絶対に便利。
パソコン+インターネット が世界を変えると思っていたが、それが出たら その携帯電話とインターネット
が世界を変えることになる。それができる携帯がやっと発売された。これは便利すぎるので絶対にはやって一般的になる
<当時考えていたこと>
車のカーナビって将来なくなるかも。
<当時考えていたこと>
Googleって凄いな・・・iPhoneのOSを勉強するより、オープンなこちらを勉強した方が世の中主流になりそう。
絶対勉強しておいて損は無い。というか世の中が大きく変わることを強く信じされる。
<行動>
無し
<当時考えていたこと>
こういったサービスでインターネットの使用がより一般的になるのが良いな
<行動>
アカウントとって少し試すだけ。
<当時考えていたこと>
一般人がテレビ局以外の人が、テレビ局に匹敵するようなコンテンツを作る時代が
<行動>
無し
☆GoogleWave
<当時考えていたこと>
便利そうだけれど、メールプロトコルが汎用的過ぎるから、それにとって変わることはあるのだろうか?
<行動>
無し
☆GoogleGlass
<当時考えたいたこと>
利便性や操作性を考えたときに、スマホにとってかわることは難しそう。
<行動>
無し
<当時考えていたこと>
あくまでも便利ツールであって、スマホにとって代わることはなさそう。フィットネスがメインかな。
<行動>
買って普段使いするのみ
<当時考えたいたこと>
楽しいし面白いけれど、ゲームではなく、一般社会における実用性を考えたときに、あまり流行らなさそう。
ゲームとしては流行るかもしれないが、一般社会での利用シーンがそれほど思い浮かばない
<行動>
買って試すレベル
<当時考えていたこと>
言いたいことは分かるけど、このデータを使って学習させて、それを使ってビジネスに活かす ということが
簡単にできるツールが無いと流行らなさそう。ツール使う人に依存しそう
<当時考えていたこと>
この技術をベースにしたサービスがこの世のサービスの主流になるのだろうな・・・
これは「インターネット」「iPhone」と同じぐらいインパクトある。だから絶対勉強しておいた方がよいということは理解できる
ただ敷居高い
<行動>
<当時(今)考えていること>
・特に ChatGPT や それに派生するサービスは 世の中を間違いなく変える。
・世の中に浸透し、それがあるのが当たり前になったものとして「インターネット」「スマートフォン(iPhone/Android)」 がある。
・共通点として「基礎技術」「基盤」「それを使っていることを意識させない」「様々な用途に使える」「その用途は無限にある」
「使ったら便利」「一般消費者は直接的に利用料を支払わない 又は 安価」「それに代わるものが無い」である。
・「インターネット」「スマートフォン」を土台にして、「Youtube」「SNS」などのWebサービスは世界を変続けているが、
「ChatGPTやそれに派生するサービス・類似サービス」 は それらのWebサービスの 更に下位のレベルの層として
「使っているのが当たり前だけれど、それを使っているのかユーザーは分からない」 ものとなるだろう。
・そういう意味では「スマートフォン」より「インターネット(回線や技術)」に近い扱いになるだろう。
・すぐに思いつく用途として、社内ドキュメントを全て読み込ませ、その会社専用のChatBotが作れれるだろう
(今までのChatBotとは使い勝手が全く違う、自然言語の応対ができる ChatBot)
・学習させるデータの種類/範囲/の違いにより、様々な組織、コミュニティ、において
真の意味での「AIアシスタント」 が存在することになり、それと会話することが当たり前の世界になるだろう。
・つまり、よくSF映画である AIに話しかけたら、「人間と同じように」回答したり、提案してくれる 存在が一般家庭にも会社にもいて
それがいることに誰も疑問を抱かない(便利だから利用するのが当たり前)という世界になるだろう。
・確率的に正しいと思われる 回答しかしないので、誤答があるが、その部分はどうするかは分からない。
・ただ、おそらく、そういった特徴があることを知った上で、それより便利さがはるかに上回るので一般的になると思われる。
・これが一般的になるスピードはおそらく想像より速く、スマートフォンが一般的になるスピードより速いのではないか?
(なぜなら「利用が簡単」「便利(便利の種類が多岐に渡る)」「それに代わるものが無い」 ため)
・何が言いたいかというと、「ChatGPT」 は 「セグウェイ」「GoogleWave」「Googleグラス」「VR」「スマートウォッチ」 とは違い
ー遠い将来ではなく、近い将来(近い現実)
ー「ChatGPT」を直接的に使う場合でも、他のサービスを介して間接的に使う場合でも
ー間違いなく 一般社会での利用が 当たり前になる世界がくる。(目の前に迫っている)
ー迫ってきているものは、人間にとって代わる敵ではなく、"便利さ" である。
・今回のこれに対しても、今までと同じ「一般ユーザーとして」利用するなら何もしなくて良い。
・ただし、もっと深く楽しみたい/金銭的な恩恵にも預かりたい と考えるのであれば、行動にうつすタイミングは今(今日)である。
以上
ここ最近、ChatGPTのプロンプトをひたすら書きまくってるのだが分かってきたことがある
恐らく近い将来ChatGPTによって大半のプログラマーは職を失うことになるだろうし
残されたプログラマーもソースコードを書くのでは無くてプロンプトを書くことの方が増えるだろう
アセンブリ言語を書いてる人はほぼ死滅しているしCやC++ですら書いてる人は少ない
同様にプロンプトを書く人(プロンプター)が重宝されるようになるのだろう(もちろん例外的分野は存在する)
ただ、残念ながらプログラマーや非プログラマーがプロンプターになれるかというとそうではない
プロンプトを書く時に必要なのは、純粋にプログラマーが必要とされている能力の部分だからだ
その言語を知ってるだとかライブラリを知っているといった知識的な能力ではなくて
要件定義の能力や論理演算や集合論みたいな知識だったりオブジェクト指向や関数的な考え方だけが純粋に必要になる
例えば割とダメダメプログラマーは条件が100個あった時に普通にIF文を100個書く
こういうプログラマーはプロンプトを作ることができないし、仮に書いたとしてもまともに動かない
ちゃんとしたプログラマーは条件100個を整理してまず2つの場合に分けてそれぞれで3つに分け・・・みたいなことをする
場合によっては要件定義を鑑みて必要無い条件を削除する(もちろん確認の上で)
そういった整理整頓が出来る人じゃないとプロンプトを書くことは不可能なので
例えばPythonの書き方を知っているだけのプログラマーとかコピペで生きてきたプログラマーは死滅すると思う
彼らはプロンプトを書けないし、書くために学習しようとしてもベースとなっているものが無いのでそこから覚え直すしかない
なのでプログラマーの上位層はプロンプターとして生き残るが下位層は死滅するし、残念ながらプロンプター教室というのもちょっと想像が付かないしたぶん不可能だと思う