アンテナ RSS OPML

すべて | グループ指定なし | Seasar

おとなりアンテナ | おすすめページ

  1. 2023/11/26 13:15:27 きしだのはてな含むアンテナおとなりページ

    2023-11-25
    Javaを中心に偏見ベースでプログラミング言語の関係をまとめた
    オブジェクト指向言語の話をするときに便利なように、Javaを中心にプログラミング言語をまとめてみました。
    Javaに影響与えるか、Javaから影響を受けるか、という感じですね。
    Simula
    オブジェクト指向はここから始まったと言われています。
    クラス、オブジェクト、継承、仮想関数(多態)といった、オブジェクト指向の基本要素が備わっていました。
    ただし、「オブジェクト指向」という言葉は生まれていません。
    Smalltalk
    Simulaから発想を得て「オブジェクト指向」という言葉を生んだのはアラン・ケイでした。
    しかし、モデルとしてはSimulaとは異なりメッセージングを主体としたものでした。また、アラン・ケイの「オブジェクト指向」はプログラミングのパラダイムだけではなく、人がコンピュータをどのように扱うかというメタファであり、ダイナブックというハードウェアやそのユーザーインタフェースを含むものでした。
    Smalltalkは、そのような思想でコンピュータを扱うための環境として開発されました。
    ここでSmalltalkに関しては3つのバージョンを分けていますが、これは「オブジェクト指向」の源流としてのSmalltalkを扱うときに、バージョン間の変遷が重要になるからです。
    メッセージングのオブジェクト指向によるコンピューティングを実現するために開発された最初のバージョンはSmalltalk 72ですが、Smalltalk-76ではSimulaのオブジェクト指向のようなクラスや継承を取り入れています。
    そして、Smalltalk-80として商用化され現場のプログラマが使うようになったのですが、このバージョンに関してアラン・ケイは「Smalltalk-80は私の手を離れ、Lisp好きの影響を強く受けてた」のようなことを言ったようです。
    https://matz.rubyist.net/20060608.html
    また、エンドユーザーではなく開発現場のプログラマが使うようになったことを「Smalltalkの死」とも表現しているようです。
    https://sumim.hatenablog.com/entry/20060612/p1
    つまり、商用化され広く開発で使われるようになったSmalltalkを「アラン・ケイのオブジェクト指向を実現する言語」というのはあまり適切ではないということです。
    C++のオブジェクト指向とSmalltalkのオブジェクト指向は違うといわれることがありますが、GoFの「デザインパターン」がSmalltalkで整理され出版されるときにC++に書き直されたことからわかるよう、両者とも同じ問題が発生し同じく継承を使った解決方法をとることになるくらい似ていたということになります。
    C++
    C++はCにSimulaのクラスを導入したものです。
    詳しくはこちらの本に。
    C++の設計と進化
    作者:Bjarne Stroustrup,ビョーン ストラウストラップ
    ソフトバンククリエイティブ
    Amazon
    Java
    JavaはC++をベースにしたように言われますが、実際にはObjective-Cの後継です。Objective-CにC++の構文を載せた、というのが適切だと思います。
    インタフェースはObjective-Cのプロトコルであり、クラスが大文字はじめ、メソッドやフィールドは小文字という命名規約もObjective-Cと同様です。
    Objective-CはCにSmalltalkのオブジェクト指向を持ってきたものなので、Javaのオブジェクト指向もSmalltalk由来と言えます。
    JavaがC++ではなくObjective-Cの流れであるという話は、Javaの開発者のひとりであるPatrick Naughtonのメールのアーカイブに。
    https://web.archive.org/web/20110713014816/http://cs.gmu.edu/~sean/stuff/java-objc.html
    JavaScript
    クラス、インスタンス、オブジェクトという用語の区別に悩んだことはないでしょうか?「クラスのオブジェクト」と言ったとき、クラスを表すオブジェクトなのかクラスがインスタンス化されたオブジェクトなのか、そもそもこの説明なにいってるかようわからん、になったりしてないでしょうか。
    そこで、「全部オブジェクトでええやん、新しいオブジェクトを作るときには、プロトタイプになるオブジェクトをコピーすればええやん」という考えのもとSelfという言語ができました。
    そして、インターネットが流行ったときにブラウザの中でプログラムを動かしたいなーとBreandan Eichを呼んできてSchemeを動かさせようとしたところ、当時話題になっていたJavaに似せる必要があるということでSelfのプロトタイプベースのオブジェクト指向を取り込みつつJavaの見た目とライブラリをかぶせてJavaScriptができあがりました。
    ライブラリをそのまま移植したため、java.util.Dateの2000年バグまでもってきてしまったと後悔していますね。あとプリミティブも。
    JavaScript誕生の話はこちら
    https://brendaneich.com/2008/04/popularity/
    C♯
    C#へと至る道も長いですね。
    まずWindows用にDelphiという開発環境がありました。これはPascalという言語にオブジェクト指向をのせたObject Pascalという言語を使っていました。VBのような開発環境ですが、VBよりかなりいいという評判に。
    そして、Delphiと同じことをC++でやれるようにと、C++Builderが開発されました。このとき、ボタンのイベントハンドラを登録するときに関数ポインタにイベントの受け取りオブジェクトも結び付ける必要があったため、__closureという拡張が行われています。
    さて、そんなところにJavaが流行ってきました。MicrosoftとしてはJavaでWindowsアプリを作れるようにしたい、そこにDelphi/C++Bulderの開発者であるAnders Hejlsbergが、Borlandの開発環境部門廃止で会社を追い出されたので、Javaを拡張してJ++を作ってもらったのでした。この拡張は、C++Builderの__closureをJavaに持ってきたもので、delegateと呼ばれました。
    しかし、Write Once Run Anywareを掲げてJavaを作っていたSun Microsystemsはそんな独自拡張を許すわけもなく。
    ということでMicrosoftはJavaを離れ、C#という独自言語を作ったのでした。
    PHP
    PHPはPHP/FIをもうちょっとちゃんとしてPHP3になったときに流行りました。
    そして用途が広まるときにZend社が入ってある程度しっかりしたものにしつつ、オブジェクト指向を取り入れたのがPHP4です。このとき、Javaが超流行ってたため、PHPのオブジェクト指向はJavaの機能を再現した感じになっています。
    Scala, Kotlin, Swift
    ScalaはJavaの資産を利用しつつ関数型をとりこんで実用的に仕上げた言語です。
    Kotlinは歴史の積もったJavaをリセットして現代的につくりなおした言語といえます。
    SwiftはObjective-Cの代替として現代的につくりなおされた言語ですね。
    と、そんな感じでまとめてみました。
    ※補足 RubyやPython、RustやGoについては、この図にいれてもどこからも線が引かれないか、「オブジェクト指向の機能あるんだからSimulaかSmalltalkの影響は受けとるやろ」程度のつながりになってそんな面白くないなーとなって載せてないです。GoはCに、RustはC++につなげて「代替したい」くらいの関係に・・・(あとJavaとつなげて「反面教師」ってやるか)
    あと、いろいろ掘り出せば際限ないので、Tiobe index20位、せめて50位に入る程度にメジャーなものってやるとGroovyやClosureは外れて・・・。オブジェクト指向の話としてそんなに発展もないし。
    プログラミング言語図鑑
    作者:増井 敏克
    ソシム
    Amazon
    nowokay 2023-11-25 18:03
    もっと読む
    コメントを書く
    Javaを中心に偏見ベースでプログラミング言語の関係をまとめた

  2. 2023/02/16 19:18:22 taediumの日記含むアンテナおとなりページ

    ▼ ▶
    2014
    2014 / 2
    ▼ ▶
    2013
    2013 / 9
    2013 / 8
    2013 / 7
    2013 / 5
    2013 / 3
    2013 / 2
    2013 / 1
    ▼ ▶
    2012
    2012 / 12
    2012 / 11
    2012 / 10
    2012 / 9
    2012 / 8
    2012 / 7
    2012 / 6
    2012 / 5
    2012 / 4
    2012 / 3
    2012 / 2
    2012 / 1
    ▼ ▶
    2011
    2011 / 12
    2011 / 11
    2011 / 10
    2011 / 9
    2011 / 8
    2011 / 7
    2011 / 6
    2011 / 5
    2011 / 4
    2011 / 3
    2011 / 2
    2011 / 1
    ▼ ▶
    2010
    2010 / 12
    2010 / 11
    2010 / 10
    2010 / 9
    2010 / 8
    2010 / 7
    2010 / 6
    2010 / 5
    2010 / 4
    2010 / 3
    2010 / 2
    2010 / 1
    ▼ ▶
    2009
    2009 / 12
    2009 / 11
    2009 / 10
    2009 / 9
    2009 / 8
    2009 / 7
    2009 / 6
    2009 / 5
    2009 / 4
    2009 / 3
    2009 / 2
    2009 / 1
    ▼ ▶
    2008
    2008 / 12
    2008 / 11
    2008 / 10
    2008 / 9
    2008 / 8
    2008 / 7
    2008 / 6
    2008 / 5
    2008 / 4
    2008 / 3
    2008 / 2
    2008 / 1
    ▼ ▶
    2007
    2007 / 12
    2007 / 11
    2007 / 10
    2007 / 9
    2007 / 8
    2007 / 7
    2007 / 6
    2007 / 5
    2007 / 4
    2007 / 3
    2007 / 2
    2007 / 1
    ▼ ▶
    2006
    2006 / 12
    2006 / 11
    2006 / 10
    2006 / 9
    2006 / 8
    2006 / 7
    2006 / 6
    2006 / 5
    2006 / 4
    2006 / 3
    2006 / 2
    2006 / 1
    ▼ ▶
    2005
    2005 / 12
    2005 / 11
    2005 / 10
    2005 / 9
    2005 / 8
    2005 / 7
    2005 / 6
    2005 / 5
    2005 / 4
    2005 / 3
    2005 / 2
    2005 / 1
    ▼ ▶
    2004
    2004 / 12
    2004 / 11
    2004 / 10
    2004 / 9
    2004 / 8
    2004 / 7
    2004 / 6
    2004 / 5
    2004 / 4
    2004 / 3
    2004 / 2

  3. 2023/02/16 15:50:32 たかのり日記 |S2とかAxis2とか|含むアンテナおとなりページ

    ▼ ▶
    2013
    2013 / 5
    2013 / 1
    ▼ ▶
    2012
    2012 / 4
    2012 / 3
    2012 / 1
    ▼ ▶
    2011
    2011 / 12
    2011 / 11
    2011 / 6
    2011 / 5
    2011 / 4
    2011 / 3
    2011 / 2
    ▼ ▶
    2010
    2010 / 11
    2010 / 10
    2010 / 9
    2010 / 7
    2010 / 6
    2010 / 5
    2010 / 4
    2010 / 3
    2010 / 2
    2010 / 1
    ▼ ▶
    2009
    2009 / 8
    2009 / 6
    2009 / 5
    2009 / 4
    2009 / 3
    2009 / 2
    2009 / 1
    ▼ ▶
    2008
    2008 / 12
    2008 / 11
    2008 / 10
    2008 / 9
    2008 / 8
    2008 / 7
    2008 / 6
    2008 / 5
    2008 / 4
    2008 / 3
    2008 / 2
    2008 / 1
    ▼ ▶
    2007
    2007 / 12
    2007 / 11
    2007 / 10
    2007 / 9
    2007 / 8
    2007 / 7
    2007 / 6
    2007 / 5
    2007 / 4
    2007 / 3
    2007 / 2
    2007 / 1
    ▼ ▶
    2006
    2006 / 12
    2006 / 11
    2006 / 10
    2006 / 9
    2006 / 8
    2006 / 7
    2006 / 6
    2006 / 5
    2006 / 4
    2006 / 3
    2006 / 2
    2006 / 1

  4. 2023/02/15 22:51:45 t-wadaの日記含むアンテナおとなりページ

    ▼ ▶
    2013
    2013 / 12
    ▼ ▶
    2012
    2012 / 12
    ▼ ▶
    2011
    2011 / 12
    2011 / 8
    2011 / 7
    2011 / 6
    2011 / 3
    2011 / 1
    ▼ ▶
    2010
    2010 / 8
    2010 / 7
    2010 / 6
    2010 / 5
    2010 / 3
    2010 / 2
    ▼ ▶
    2009
    2009 / 12
    2009 / 9
    2009 / 7
    2009 / 6
    2009 / 4
    2009 / 3
    2009 / 2
    ▼ ▶
    2008
    2008 / 12
    2008 / 10
    2008 / 8
    2008 / 4
    2008 / 3
    2008 / 2
    2008 / 1
    ▼ ▶
    2007
    2007 / 12
    2007 / 11
    2007 / 10
    2007 / 7
    2007 / 6
    2007 / 5
    2007 / 4
    2007 / 3
    2007 / 2
    2007 / 1
    ▼ ▶
    2006
    2006 / 12
    2006 / 11
    2006 / 10
    2006 / 9
    2006 / 8
    2006 / 7
    2006 / 6
    2006 / 5
    2006 / 4
    2006 / 3
    2006 / 2
    2006 / 1
    ▼ ▶
    2005
    2005 / 12
    2005 / 11
    2005 / 10
    2005 / 9
    2005 / 8
    2005 / 7
    2005 / 6
    2005 / 5
    2005 / 4
    2005 / 3
    2005 / 2
    2005 / 1
    ▼ ▶
    2004
    2004 / 12
    2004 / 11
    2004 / 10
    2004 / 9
    2004 / 8
    2004 / 7

  5. 2023/02/14 23:52:01 初夏のはぶにっき含むアンテナおとなりページ

    記事はありません

  6. 2023/02/14 05:33:00 .Interface含むアンテナおとなりページ

    ▼ ▶
    2022
    2022 / 12
    2022 / 5
    ▼ ▶
    2021
    2021 / 12
    2021 / 3
    ▼ ▶
    2020
    2020 / 9
    2020 / 6
    2020 / 3
    ▼ ▶
    2019
    2019 / 6
    2019 / 5
    2019 / 4
    2019 / 3
    ▼ ▶
    2018
    2018 / 12
    2018 / 10
    2018 / 8
    2018 / 7
    2018 / 6
    ▼ ▶
    2016
    2016 / 9
    2016 / 3
    ▼ ▶
    2015
    2015 / 4
    ▼ ▶
    2014
    2014 / 1
    ▼ ▶
    2013
    2013 / 12
    2013 / 6
    2013 / 5
    2013 / 3
    2013 / 1
    ▼ ▶
    2012
    2012 / 12
    2012 / 6
    2012 / 4
    2012 / 3
    2012 / 2
    ▼ ▶
    2011
    2011 / 12
    2011 / 10
    2011 / 8
    2011 / 7
    2011 / 6
    2011 / 4
    2011 / 3
    2011 / 2
    2011 / 1
    ▼ ▶
    2010
    2010 / 12
    2010 / 11
    2010 / 10
    2010 / 9
    2010 / 8
    2010 / 7
    2010 / 5
    2010 / 1
    ▼ ▶
    2009
    2009 / 12
    2009 / 11
    2009 / 10
    2009 / 9
    2009 / 8
    2009 / 7
    2009 / 6
    2009 / 4
    2009 / 3
    2009 / 2
    2009 / 1
    ▼ ▶
    2008
    2008 / 12
    2008 / 11
    2008 / 10
    2008 / 9
    2008 / 8
    2008 / 7
    2008 / 6
    2008 / 5
    2008 / 4
    2008 / 3
    2008 / 2
    ▼ ▶
    2007
    2007 / 11
    2007 / 10
    2007 / 9
    2007 / 8
    2007 / 7
    2007 / 6
    2007 / 5
    2007 / 4
    2007 / 3
    2007 / 2

  7. 2021/10/21 14:07:57 James Gosling: on the Java Road含むアンテナおとなりページ

    Error 404--Not Found
    From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
    10.4.5 404 Not Found
    The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent.
    If the server does not wish to make this information available to the client, the status code 403 (Forbidden) can be used instead. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address.

  8. 2021/10/21 11:30:34 日々是新 Akihito Fujii’s Weblog含むアンテナおとなりページ

    Error 404--Not Found
    From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
    10.4.5 404 Not Found
    The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent.
    If the server does not wish to make this information available to the client, the status code 403 (Forbidden) can be used instead. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address.

  9. 2021/08/16 16:30:57 設計と実装の狭間で。含むアンテナおとなりページ

    このブログについて

  10. 2021/07/13 15:35:25 まさたか日記含むアンテナおとなりページ

    月の生活 | よなよなエール公式ウェブサイト「よなよなの里」

  11. 2021/07/13 14:57:04 おおたに6号機の日々含むアンテナおとなりページ

    読者になる

  12. 2021/02/02 03:51:19 IT-Walker on hatena含むアンテナおとなりページ

    FAQ / お問い合わせ窓口

  13. 2020/06/03 12:02:28 よねのはてな含むアンテナおとなりページ

    海外POSシステム開発エンジニア募集 by 株式会社Abby
    現在、大規模チェーンレストラン向けのレストラン店舗運営システムを開発しています。展開先はアメリカ、オーストラリア、台湾、マレーシア、...
    www.wantedly.com
    Unityでスマホ、Switchのゲーム開発をしたいエンジニアを募集! by 株式会社Abby
    今回は、・Unityを使用したNintendo Switch向けのゲーム開発・Unityを使用したスマートフォン向けのゲーム開発...
    www.wantedly.com

  14. 2016/09/20 11:33:26 ひがやすを blog含むアンテナおとなりページ

    2016-09-20
    Seasar Conference Final
    今週の土曜、9/24にSeasar Conference Finalを行います。
    10年前に始まったSeasar Conferenceもいよいよ今度でFinalです。
    お申し込みはこちら。
    http://seasar.connpass.com/event/38679/
    Seasar Projectの面白かったところって、開発方法論が盛り上がったところだと思うんですよ。
    マーチンファウラーをはじめとして、著名な人たちのほとんどが「ドメインモデル推し」の中、僕は、「ステートレスなサービス + DTO推し」だったからね。S2Daoは、このために作ったようなものです。
    あの開発方法論の議論に、かなりの人が参加したり、自分で考えたりしたでしょう。それが、面白かったところです。みんなが自分の事として考えたから。そんな難しい話ではないし、自分のプロジェクトに即いかせる話だしね。
    オブジェクト指向ナンチャラとかDDDとか、素晴らしいものなんだけど、自分のプロジェクトで生かそうとするとそう簡単にはいかないからね。
    Seasar2の開発が終了した事で、Seasar Projectに関わった多くの人たちの多くの時間が無駄にされたと、思っている人もいるようだけど、僕はそうは思わない。Seasar Projectに関わった事で、プログラマとしての能力や知名度をあげた人とって多い訳だから、それを否定する必要はないと思っています。
    今度のSeasar Conferenceでは、「Seasar Projectのふりかえり」と「SXSW攻略法」の二つの話をします。
    「Seasar Projectのふりかえり」では、昔話をしてもしょうがないので、いくつかのプロジェクトを「なぜ始めたのか」「うまくいったところとでその理由」「失敗したところとその理由」を話す事で、これから、新しくプロジェクトを立ち上げる人向けに、少しでも役に立つ話が出来ればと思います。
    「SXSW攻略法」では、2016年のSXSWで、RealeaseItというアワードでファイナリストに残る事が出来たので、ファイナリストに残るためのこつ、そしてアワードをとれなかった理由。また、SXSWでは、ブースも出したので、ブースを出すときのポイントを話したいと思います。
    Seasar Conference Finalお申し込みはこちらです。
    http://seasar.connpass.com/event/38679/

  15. 2015/02/25 23:26:35 Java News (Javaに関する最新ニュース)含むアンテナおとなりページ

    ■015.004.008
    [ EVENT ] 4月8日 Java Day Tokyo 2015 開催!
    http://www.oracle.co.jp/jdt2015/
    [ BROWSER ] Firefoxのページめくりを加速さ-http://journal.mycom.co.jp/news/2010/02/02/007/index.html

  16. 2011/01/14 01:46:19 ユメのチカラ含むアンテナおとなりページ

    アーカイブ
    2009年3月
    2008年12月
    2008年11月
    2008年10月
    2008年9月
    連載を終了したブログ
    コアテクの路地
    路地裏 ソース解読研究所
    みたのブログ
    拓かれた世界に向かって
    ペンギン飼育係が見た
    ユメのチカラ
    独立行政法人情報処理推進機構へ出向になりました。
    3月1日付けで独立行政法人情報処理推進機構(IPA)へ出向になりました。オープンソフトウェア・センター研究員を拝命し、本日より同機構へ出勤しています。ミラクル・リナックス時代は大変お世話になり厚く御礼を申し上げます。IPAでも変らづご厚情お願いいたします。略儀ながらおしらせまで。
    さて、ミラクル・リナックスからの出向ではありますが、オープンソースソフトウェアや勉強会あるいは若手人材育成(セキュリティ&プログラミングキャンプ、U-20プログラミングコンテスト)などなどにつきましては、今迄どおり、ゆるゆると推進していきたいと思います。皆様のご協力をよろしくお願いいたします。
    そして、カーネル読書会も従前どおりやりますので、そちらの方もよろしくお願いいたします。
    本日は久々にスーツ&ネクタイ、コスプレでした。(がはは)

  17. 2010/01/29 06:49:16 新・たけぞう瀕死の日記含むアンテナおとなりページ

    Forbidden
    You don’t have permission to access /~asaki/p_diary/diary.cgi on this server.

  18. 2009/11/21 02:27:08 オレンジニュース含むアンテナおとなりページ

    ■ Google、「Chromium OS」を公開
    http://www.publickey.jp/blog/09/chrome_os.html
    ■ シャットダウンも日本語入力もできない?
    http://blog.livedoor.jp/dankogai/archives/51325262.html
    ■ Chronium OSのコンパイル手順
    http://d.hatena.ne.jp/showyou/20091120/1258687525
    ■ IBM developerWorks:Scitter(ScalaのTwitterクライアントライブラリ)を使ってTwitterを更新する
    http://www.ibm.com/developerworks/jp/java/library/j-scala10209.html
    ■ IBM developerWorks:Web アプリケーションのセキュリティー: 脆弱性をテストする(WebScarab、Paros Proxyの紹介)
    http://www.ibm.com/developerworks/jp/web/library/wa-appsecurity/
    ■ IE用のJavaScriptパフォーマンス分析ツール「dynaTrace AJAX Edition」
    http://journal.mycom.co.jp/news/2009/11/20/017/index.html
    ■ YouTube:Lisp for High-Performance Transaction Processing
    http://www.youtube.com/watch?v=xquJvmHF3S8-■ ブラウザ上で世界中のAM・FMラジオ、ネットラジオが無料で聴けるサイト「Streema」