タグ

オブジェクト指向に関するmieki256のブックマーク (36)

  • [PDF]オブジェクト指向言語物語 小野寺民也

  • オブジェクト指向プログラミングの概要 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    オブジェクト指向プログラミングの概要 - Qiita
  • 2000年代オブジェクト指向は絶対の正義だった。つまり僕は洗脳を経験している - レベルエンター山本大のブログ

    私がIT業界の片隅に所属をし始めた2000年ごろ、Javaエンジニアはスーパースターだった。Javaエンジニアを名乗るということは、秘奥義オブジェクト指向を習得していることに他ならないからだ。 「オブジェクト指向こそ正義」だった。 Javaとオブジェクト指向を身につければ、20年はっていけると言われたものだった。 あれから20年。たしかにJavaとオブジェクト指向で20年はえた。が、もはやオブジェクト指向は絶対でも正義でもない。 僕は、IT講師として新入社員にJavaを教える仕事もしているが「オブジェクト指向こそ正義」と無垢な生徒達に教えなければならない時に、苦痛を覚えるようにすらなってしまった。 2000年代から、新人教育のテキストは変わっていない。継承は積極的に使っていくべきで、オブジェクトは現実世界を模した仮想現実世界をコンピューター内に生み出す技術とされている。Strutsだけ

    2000年代オブジェクト指向は絶対の正義だった。つまり僕は洗脳を経験している - レベルエンター山本大のブログ
  • 2000年代のオブジェクト指向はやはり洗脳だったのか - naoya2kの日記

    2000年から2010年にかけて僕はとある大きな会社でJava技術に関しての重鎮の一人だった。組み込み系なので「Javaの重鎮=Javaの処理系を作れたり速くて省メモリなプログラムを作れたりする」であり、オブジェクト指向べったりということにはならず、僕らは結局洗脳されていなかった。そもそもJavaの処理系は全てが全てオブジェクト指向で書かれているわけではなかった(でもクラスライブラリの実装はJavaの各クラスが何なのかを正しく理解するのにとても役立った)。 C++と比べて比較的遅いJavaで、当時の組込みプロセッサで十分な速度を出そうとすると、オブジェクト指向をピュアに推進するわけにはいかなかったというのも理由のひとつだった。 daiyamamoto.hatenablog.com そんなわけで僕がいた世界ではJavaエンジニアはスーパースターではなかった。世界のJavaの潮流からは微妙にズ

    2000年代のオブジェクト指向はやはり洗脳だったのか - naoya2kの日記
  • インスタンスとオブジェクトの違い - きしだのHatena

    インスタンスとオブジェクトは混同しがちで区別がようわからんになりがちです。 とりあえず某所で説明したものを再構成します。 ※2022/12/10追記: クラスに対するのはインスタンスになるべき(たとえばクラス変数とインスタンス変数)なので、ちょっと修正するべきですが、このエントリはそのまま残してます。 クラス・インスタンス・オブジェクト クラスをインスタンス化(実体化)したものがオブジェクト(物)です。 実際に在るものはクラスとオブジェクトで、インスタンスはそれらの関係です。colorsやsportsが並んでるツリーが「オブジェクト」で、右のパレットに並んでるTreeが「クラス」、Treeからみたときのツリーが「インスタンス」ということになります。 ここでツリーはオブジェクトでもインスタンスでもあります。 このように、同じものをオブジェクトともインスタンスともいうことができるので混同してし

    インスタンスとオブジェクトの違い - きしだのHatena
  • 脱オブジェクト指向講座(5分LT資料)

    2022/5/14に開催されたTechFeed Conference 2022の5分LTでの登壇資料です

    脱オブジェクト指向講座(5分LT資料)
  • オブジェクト指向プログラミング入門

    きしだൠ(K1S) @kis オブジェクト指向について、技術的には「オブジェクト指向は差分プログラミングとデータ分類をまぜて考えてややこしくなる。分離せよ。そして差分プログラミングにはラムダを使え。データ分類のときはオブジェクト指向じゃなく型を考えろ」っていう主張になった。 2022-02-28 12:22:33 きしだൠ(K1S) @kis 「オブジェクト指向は差分プログラミングとデータ分類を同時に行う手法」という見方。 もっといえば、継承の用途を差分プログラミングとデータ分類の2種類にわけた。その上でそれぞれについてのオブジェクト指向離れを考えた。 2022-02-28 12:25:12 きしだൠ(K1S) @kis ここから考えると、オブジェクト指向の技術的欠点は差分プログラミングとデータ分類を不可分に考えてしまったところか。 継承を使うと差分プログラミングとデータ分類が同時にできて

    オブジェクト指向プログラミング入門
  • オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだのHatena

    某所でオブジェクト指向についていろいろ書いたのでまとめておく。 問題意識としては初学者がなにかというと「オブジェクト指向できるようになりたい」のようなことを言うけどそこまでの優先順位でがんばるものではないんでは、というところです。 まず前提として、オブジェクト指向は1980-2000年くらいに流行って発達したものの、それ以降は時代にあわせた進歩はしていない20年以上前の技術ってのがあります。 そのころは今だとCPUのキャッシュにも満たないようなメモリをやりくりしてプログラムを書く必要があったので、オブジェクト指向はメモリ上のデータをコピーすることなくうまく使いまわせるようなプログラム技術になっています。 そしてオブジェクト指向にはそこから目だった更新はなく、タイトルに書いたように、カメラがやっとついたくらいのガラケーのような古い技術という感じがします。 オブジェクト指向について、アプリケー

    オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだのHatena
  • Pythonのオブジェクト指向プログラミングを完全理解 - Qiita

    オブジェクト指向 1. オブジェクト指向の起源 2003年チューリング賞の受賞者アラン・ケイさんはよくオブジェクト指向プログラミングの父と称されます。ご人も憚ることなく、幾度、公の場で発明権を宣言しています。しかし、ケイさんは「C++」や「Java」などの現代のオブジェクト指向言語を蔑ろにしています。これらの言語は「Simula 67」という言語を受け継いだもので、私が作った「Smalltalk」と関係ないのだとケイさんは考えています。 オブジェクト指向という名称は確かにアラン・ケイさんに由来するものです。しかし、C++Javaで使われている現代のオブジェクト指向は当初のと結構違います。ケイさん自身もこれらの言語を後継者として認めないです。では、ケイさん曰くC++Javaの親であるSimula 67という言語はどんな言語でしょうか。ここで、簡単なサンプルコードを見てみましょう。 Cl

    Pythonのオブジェクト指向プログラミングを完全理解 - Qiita
  • 継承は禁止するべき

    キチガイに刃物、ゴミプログラマに継承。危険なものは取り上げるべきだ。 オブジェクト指向プログラミングにおける継承は強力な手法であるが、これを正しく使えるプログラマは残念なことに極めて少ない。たいていの場合、継承を使うことで却ってプログラムの保守を困難にしてしまう。継承のアンチパターンの最たるものは、単なるメソッドやメンバ変数の共有のために継承を使うパターンだ。これを行うとデータが密結合になってバグの原因になり、プログラムを把握することも極めて困難になる。 そもそも、熟達したプログラマの感覚では、業務で書くアプリケーションの実装に継承を使うべき局面などほとんど無い。ライブラリ等のより低レベルな処理で仕様が確定しているものについては、継承が効果的となる場合もあるが、複雑なアプリケーションのロジックに継承を使うのはほとんどの場合、時期尚早な抽象化となる。 また、凡庸なプログラマが継承で実現したい

    継承は禁止するべき
  • オブジェクト指向にとって継承とは何か?〜ストラウストラップ「「オブジェクト指向プログラミング」とは何か」〜 - Qiita

    オブジェクト指向にとって継承とは何か?〜ストラウストラップ「「オブジェクト指向プログラミング」とは何か」〜C++Haskellオブジェクト指向 オブジェクト指向とは何か?ということを真面目に調べていくと、オブジェクト指向には二種類ある、という話に突き当たる。sumim氏のQuora回答などを参照。 Smalltalkの設計者アラン・ケイによる、メッセージング重視のオブジェクト指向 C++の設計者ストラウストラップによる、クラス重視のオブジェクト指向 今回はこの後者のオブジェクト指向について、ストラウストラップの論文「「オブジェクト指向プログラミング」とは何か?」What is "Object-Oriented Programming"?(1991)の内容を(適宜行間を補いつつ)まとめてみる。 当然サンプルコードはC++(ほぼ原論文のコードのコピペです)。 ストラウストラップのオブジェクト指

    オブジェクト指向にとって継承とは何か?〜ストラウストラップ「「オブジェクト指向プログラミング」とは何か」〜 - Qiita
  • 「アラン・ケイの」オブジェクト指向とは何だったか?元哲学者のエンジニアがまとめてみた - Qiita

    2020/5/13追記 オブジェクト指向と哲学の関係について書いた記事ではないです。せっかくだしQiitaっぽいタイトルつけようと思ったら結果的に釣りっぽくなってしまった 概要 オブジェクト指向とは何か?ということを真面目に調べていくと、オブジェクト指向には二種類ある、という話に突き当たる。sumim氏のQuora回答などを参照。 Smalltalkの設計者アラン・ケイによる、メッセージング重視のオブジェクト指向 C++の設計者ストラウストラップによる、クラス重視のオブジェクト指向 今回はこの前者のオブジェクト指向について、アラン・ケイの書きものを読んで調べた結果をまとめ、コメントを付す。 参考文献は最後にまとめて出す。参照元は「(AOO)」のように略記で示す。 アラン・ケイのオブジェクト指向 OOPは私にとって、メッセージング、状態処理の局所的な保持・保護と隠蔽、そしてあらゆる事象の徹底

    「アラン・ケイの」オブジェクト指向とは何だったか?元哲学者のエンジニアがまとめてみた - Qiita
  • オブジェクト指向は 人 である ~オブジェクト指向を簡単に理解しよう~ - Qiita

    意味がわからないようなタイトルで始まりましたが、 オブジェクト指向って一体何? って言われた時に自分が説明しているものをまとめてみます。 正直オブジェクト指向という言葉の定義なんて人それぞれなところがあるので、 こういう風に考えている人もいるんだなーぐらいに捉えてもらえると助かります。 オブジェクト = 人である オブジェクトっていうから例えがわかりにくいものになるのかなって思っています。 よくある例え 車 ↓ ハンドル, タイヤ, ボディ, エンジン よくありますよね、こういう例え。 変数は?メソッドは?どういうことになるの? これだとなかなか伝わりにくい気がしています。 オブジェクト = 人 として扱う 車にはもはや例えません。 自分に頼れる知り合いがいたとして、その人に対して、「○○しといてねーお願いします。」 って言うと後はいい塩梅にやってくれます。 そういうことってありますよね。

    オブジェクト指向は 人 である ~オブジェクト指向を簡単に理解しよう~ - Qiita
  • オブジェクト指向とは何ですか?

    回答 (7件中の1件目) 英語では「object-oriented」で「OO」と略され、1960~1980年代のプログラミング手法(OOP)から始まり、その応用としてソフトウエアの設計・分析の手法(OOD/OOA)、近年はユーザーインターフェース・エクスペリエンスのデザイン(OOUI/OOUX)、オブジェクト指向存在論(OOO)なる哲学分野にまで、広く使われる用語です。ここではOOPについて説明を試みます。 オブジェクト指向の「オブジェクト」は、1967年に発表されたSimula 67 [1] というプログラミング言語に組み込まれた当時としては新しい同名の言語機能(あるいはそれに準ずる...

    オブジェクト指向とは何ですか?
  • 「オブジェクト指向とは、現実世界を正しく捉えること」という理解はデメリットのほうが大きい

    これは「オブジェクト指向」がよくわかってない人の書いたポエムである。 そういうのが嫌いな人はお帰りください。 はじめに リンクは貼らないが「オブジェクト指向の質とは現実を正しく捉えること」と書かれている記事(以下、元記事)がバズった。 私は正直「オブジェクト指向」の何たるかを理解しているとは言い難い。 しかし、そんな私でも元記事がいくつかの点でおかしい、もっと厳しくいうと開発現場に混乱をもたらす可能性を持っていることは理解できる。そこでこの記事では「オブジェクト指向とは〇〇である」という言及は行わずに、元記事の問題点を指摘するに留める。 長方形と正方形の例 オブジェクト指向プログラミングと現実世界の話というとBobおじさんが『アジャイルソフトウェア開発の奥義』に書いた正方形と長方形の話が有名だ。 話は簡単だ。「正方形クラスは長方形クラスを継承するべきか?」というものだ。 少しだけ詳しく見

    「オブジェクト指向とは、現実世界を正しく捉えること」という理解はデメリットのほうが大きい
  • オブジェクト指向が0.05%も理解できない記事

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 尽く書を信ずれば即ち書無きに如かず 《孟子『尽心下』より》 イントロダクション 「最も理想的なオブジェクト指向を実現しているプログラミング言語は何か?」と問われたとき、君は何と答えるだろうか? C++Java、C#。君がそうだと思っているのは表面だけで、たぶん何もわかっていないのだろう。無知であることを知っているのであれば、無知のまま過ごした方が幸せなときもある。 Simula、Smalltalk、Ruby。君は質をいくらか知っているようだから、引き返すなら今のうちだろう。深淵を覗けば、君もまた怪物にならざるを得ない。 JavaSc

    オブジェクト指向が0.05%も理解できない記事
  • Life is beautiful: 日本語とオブジェクト指向

    先日、日経BPの出版局の方と話をする機会があったのだが、私がマイクロソフトでウィンドウズ95の開発に関わったことに触れた際、「ユーザーインターフェイスの設計において、日人であることで何か役に立ったことはありますか?」と聞かれた。日人であることがプラスになったとは思わないが、ふと思い出したことがある。当時、「日語はオブジェクト指向な言語だな」と思ったことである。 その当時(90年代初頭)、アップルの方が使い勝手に関しては一歩も二歩もマイクロソフトより進んでおり、そのためには、もともとゼロックスが提案しアップルが商品化した、「オブジェクト指向ユーザーインターフェイス」の考え方を、より推し進めるしかないという戦略で、ウィンドウズ95のユーザーインターフェイス(当時は Object-Oriented Shell と呼ばれていた)の開発をしていた。 「オブジェクト指向ユーザーインターフェイス」

    Life is beautiful: 日本語とオブジェクト指向
  • オブジェクト指向プログラミングとは結局なんなのか | 黒曜の吹き溜まり

    この記事は第2のドワンゴ Advent Calendar 2015の5日目です。 ちなみに前日は@deflisさんでした。 先日の記事で分かる通りドワンゴ社員()なのですが、まぁ@mesoさんが「厳格な管理とかめんどくさいので、元社員も参加すればいいんじゃないかな。」とか言ってるしお目こぼし頂きたく… 去年のアドベントカレンダー記事は「関数型プログラミングとは結局なんなのか」というタイトルで、関数型プログラミングという語が何を指していて何を指していないのか、みたいなことをなるべく平易にまとめました。 なので今年は「オブジェクト指向プログラミング(以下OOP)とは結局なんなのか」という記事にしてみた…のですが、なにぶん語の指す範囲が広く、また自分も理解しきっているわけではないので、多少不正確な点があるかもしれません。 「関数型は流行りだけど、今更OOPかよ」とか思われるかもしれませんが、お付

  • “オブジェクト指向”の本質 - Smalltalkのtは小文字です

    「OO(OOP)とは何か?」については、ネタが割れてしまえばそんなに複雑なものではない…と個人的には最近、考えるようになってきています。 リスコフのユーザー定義型(aka、抽象データ型。データと手続きのセット)そのもの、あるいはその「ユーザー定義型」をクラスやそれに準ずる機能で実現しようとするOO(ストラウストラップ。aka、クラス指向。継承を使ったプログラミング)。もしくはそれらを一般化したOO(クック。aka、手続きによる抽象化)。 メッセージングにより動的性を実現しようとするOO(ケイ。aka メッセージ指向) 今回登場した、後者のメッセージングのOOのミニマリズムをおしすすめることによって派生的に生じたOO(アンガーとスミスからの 派生 変形。aka、プロトタイプベースOO。フレームとスロット、あとは委譲機構があれば十分…というミニマル化の結果、アンガーとスミスの頃には重要だった“

    “オブジェクト指向”の本質 - Smalltalkのtは小文字です
  • オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です

    忙しい人のためのまとめ 一般に「オブジェクト指向プログラミング」と呼ばれる考え方には発案者が異なる二系統がある。(ただし簡単のため、次のうち前者から批判的に派生して生じたプロトタイプベースのオブジェクト指向はここには含めていない) アラン・ケイによる、変化に強い長期運用可能な遅延結合システムを SIMULA67 にあった「オブジェクト」をメッセージの受け手とすることで実現(オブジェクトにメッセージ送信)するアイデアに基づく「メッセージングのオブジェクト指向」と、 ビアルネ・ストラウストラップ(前後して抽象データ型を発案したリスコフ人、オブジェクトクラスを考えたニガードらSIMULA陣営、Eiffelのメイヤーらも同様の着想を得ている)による、ユーザー定義型(抽象データ型)を SIMULA67 にあった「クラス」という言語機能を使って実現(カプセル化、継承、多態性)するアイデアに基づく「抽

    オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です