タグ

Javaとcppに関するraimon49のブックマーク (37)

  • JavaやC#の常識が通用しないRubyのprivateメソッド - give IT a try

    衝撃を受けたできごと 最近Rubyを勉強しています。 JavaやC#でオブジェクト指向プログラミングの基はマスターしてるから、Rubyもそのあたりは楽勝〜!・・・と思っていたら、JavaやC#の常識が全く通用しない振る舞いに遭遇してかなり衝撃を受けました。それは、 privateメソッドはサブクラスからも呼び出せる ・・・ということです!!がーん。 たとえば、JavaやC#だと自分のクラス内でprivateメソッドが使われていない場合、不要なメソッドとして削除できます。(リフレクションを使って呼び出される可能性はここでは無視ね) しかし、Rubyでは誰かがサブクラスを作って呼び出している可能性があるので、privateメソッドを削除する場合は注意が必要です。メソッド名を変更する場合も同様ですね。 また、知らずに親クラスと同名のprivateメソッドを定義すると、予期せず親クラスの実装をオ

    raimon49
    raimon49 2012/03/18
    まつもとさんからのコメントが。Javaが広まってprivateキーワードがOOPで重要視されるようになったけど、実は使える言語ってそんなに無いよね。PHPみたいにどんどんJavaから取り入れてる言語の方が稀だと思ってる。
  • Google のコードも最初は大学レベルだった - 武蔵野日記

    3月は論文の〆切が2-3個あるので、それを避けるように引っ越し日程を詰めているのだが、なかなか難しい。もはや数万円高くなるくらいは諦めている (論文の〆切間際は1日でも時間を大切にしたいので……)。 [twitter:@hillbig] くんが以前紹介していた「IN THE PLEX グーグル ネット覇者の真実」 グーグル ネット覇者の真実 追われる立場から追う立場へ 作者: スティーブン・レヴィ,仲達志,池村千秋出版社/メーカー: CCCメディアハウス発売日: 2011/12/16メディア: 単行購入: 8人 クリック: 447回この商品を含むブログ (55件) を見るを登美ケ丘イオン (NAIST から最寄りのイオン) で先日発見し (ちなみに高の原のイオンの書店にも何冊か入荷している)、少しずつ読んでいたのをようやく読了。ものすごいボリューム……。しかし少なくとも情報系の方は必読。

    Google のコードも最初は大学レベルだった - 武蔵野日記
  • James Gosling Interview about Java - atsuoishimoto's diary

    2011年1月1日に、IEEEの "Computer"マガジンは James Gosling にインタビューを行った。インタビュアーは、Gosling が作った言語(訳注:もちろんJavaのこと)を用いてのオブジェクト指向デザインに関して、この21年間を回顧するインタビューが取れるものと思っていた。しかし、インタビューが進むに連れ、もともと取材しようとしてたものよりも衝撃的な記事を得ることになった。その後、業界への衝撃が強すぎるとして、 編集者はその取材記事をボツにしたが、 こういうものには情報のリークが付き物である。 以下、インタビューの生の記録をお届けする。編集を行っておらず、またぶっつけ番であるため、原稿のあるインタビューのようにはきちんとしていないが、きっと読者は興味を感じてくれるものと思う… 尚、このインタビューの背景を正しく理解するために、同じインタビュアーによる Bjarn

    James Gosling Interview about Java - atsuoishimoto's diary
  • オブジェクト指向について考える - yokkunsの日記

    オブジェクト指向は、人によって理解が違って、それを上手く共有出来ないと凄い認識違いが起きたりするので、ここで自分の考え方をまとめてます。 ここでいうオブジェクト指向は、クラスベースのオブジェクト指向のことです。 制限と拡張 オブジェクト指向は、それまで出来ていたことに対する制限とそれまで出来なかったことという拡張の2つの側面があります。 制限 カプセル化(※1) 言語仕様として、公開範囲を決められる 拡張 ポリモーフィズム 継承やインタフェースを用いる事により、様々なテクニックが使える この2つは、全くの別の概念として説明されることが多いですが、どちらも「相手に必要な情報しか渡さない」と考える事が出来ます。 カプセル化 相手に必要ない「内部構造と実装」を隠蔽する ポリモーフィズム 相手に必要ない「必要としてる型以外の情報」を隠蔽する これを確認するために、オブジェクト指向が出来るまでの流れ

    オブジェクト指向について考える - yokkunsの日記
    raimon49
    raimon49 2011/02/11
    複数の型に属するって見方はしてなかったな。
  • HadoopがJavaではなくC/C++で実装されていたらどう違っていたか? - nokunoの日記

    Quoraでこんな質問を見つけたので適当に翻訳してみました。Would Hadoop be different if it were coded in C/C++ instead of Java? How? - Quora 回答1実際のところ難しいけど、考えてみるのは楽しいね。 実行時間は速くなると思うけど、それが決定的な違いになるかどうかはわからない。 セキュリティやいくつかの機能は実装しやすくなるかもしれない 他のプログラミング言語への対応はしやすくなる。Java/Pipes/Streamingを選ぶ代わりに、コンパイルしてリンクすればいい。 コード量は非常に大きくなる。エラーチェックのためにね。 コードベースが大きくなれば、開発スピードは遅くなる。Hadoopが今のように成長したかどうかわからない。 Pigは登場しただろうか? 私にはそうは思えない。回答2は略 回答3C/C++とJa

  • SQLは最も高級言語 - SQLer 生島勘富 のブログ

    SQLは現在、普及している言語の中で最も高級な言語です。 高級か低級かというのは、どれだけCPU(の命令)と近いかです。CPUに近ければ近いほど低級でCPUから遠い、つまり、人間に近いほど高級言語ということになり、一般的に低級ほど扱うのは難しくなります。 例えば、JavaではJava VMがCPUの違いだけでなく、OSの違いまでを吸収してくれます。しかし、より低級なC言語と全く同じ処理を書いたのと比べれば、Javaでコンパイルされたコードは冗長になるため実行速度が遅くなりますが、高級な言語ほどシンプルなソースで書けるから生産性は高くなります。 生産性とパフォーマンスについて 理論値としては、同じ処理を低級言語と高級言語で書けば、生産性は高級言語ほど高くなります。 では、アセンブリ言語ができる人が同じ処理をJavaで書いたとして生産性が上がるかというと、Javaもできるなら生産性は上がります

    SQLは最も高級言語 - SQLer 生島勘富 のブログ
    raimon49
    raimon49 2010/11/23
    土俵の違い。ごちゃごちゃにしている人は確かに居る。
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    raimon49
    raimon49 2010/11/01
    Scalaで提供されるtraitの紹介。継承とインタフェースの中間、C++のprivate継承に近いもの。Scalaではwith節でtraitの実装を取り込むことができ、trait側から見たthisは取り込まれたクラスに遅延バインディングされるため柔軟な再
  • いろいろな言語のコーディング規約,スタイルガイドのリスト — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー プログラミング言語(C#,VB,PHP,C/C++PythonJavaRubyJavaScript,Objective-C)やHTMLのコーディングスタンダードを集めたリストを発見しました。日語訳があるものはできるかぎり探し出して,括弧のなかに併記して補ってあります。微妙に古いのが混じってるかな。Rubyは日発のコーディング規約がある気がする(まつもとさんの日記を見つけた)。 元記事にPerlのスタイルガイドがなかったんだけど,モダンなPerlスタイルガイドがあったら教えて欲しいです:-)。 PythonにはPEP8というコーディングスタイルガイドがあってよく読まれることは

  • メソッド (計算機科学) - Wikipedia

    メソッド (method) あるいはメンバー関数 (member function)とは、オブジェクト指向プログラミングにおいて、オブジェクトに関連付けられた関数または手続きであり、オブジェクトの状態を操作したり振る舞いを実現したりするために外部から呼び出されるプログラム要素である。 オブジェクト指向プログラミングにおけるメソッドという用語は元々SmalltalkによってSimulaのメンバープロシージャー (member procedure) をメッセージとメソッドに分けるために導入された。C++ ではメンバー関数と呼ばれるが、これはSimulaのメンバープロシージャーをC言語に流用したことに由来している。Javaのような言語やマイクロソフト[1]などの企業がメソッドという用語を使っているのは、元々C++よりもSmalltalkの影響を受けていたためである[要出典]。近年[いつ?]では言

    raimon49
    raimon49 2010/08/05
    C++およびC#ではメソッドにvirtual修飾子で明示することでオーバーライド可能に, Javaはデフォルトで暗黙的にvirtual methodになっている。override修飾子はC#, Javaどちらも必要。
  • 現実のStroustrupインタビュー:C++は単にオブジェクト指向言語でない理由をC++の父は語る | taro-nishinoの日記 | スラド

    10年以上前、Bjarne Stroustrup博士の偽インタビュー記事(又はパロディとも言う)がネット上で出回ったことがありました。C++の人ならよく御存知だと思います。幸いにもこことかここに、その和訳があります。その当時、これを当のインタビューだと信じる(もしくは信じたい?)人が少なからずいて、鬼の首を取ったかのように自身のサイト(まだブログが流布する前なので)上で論評し、勝利宣言(?)か何かのように勝ち誇ったことがありました。どこの国かを言及すると、また私の愛国精神云々する単純細胞な人がいらっしゃいますので、あえて言いません。残念ながら、それらのサイトは当り前ですが削除、改訂されて、もう見ることは出来ません。 私が最初に原文を読んだ時、(今だから言うのではありません)偽だと思いました。日頃から博士の原文(書き言葉であろうが話し言葉であろうが)を読み慣れている人ならば、内容の吟味をす

  • 不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー

    プログラミング言語は人が作ったもの。人は誤るもの。なので完璧なプログラミング言語は存在しない。 「人は誤るもの、しかし誤りに固執するのは馬鹿の所業だ。」(キケロ) プログラミング言語も、間違った設計をして、馬鹿でない人がそれを修正することの繰り返しで発展してきた。 というわけで言語間での設計判断のい違いとか失敗した設計とかを収集中。一部抜粋して講義資料に入れるつもりなので他の事例をご存知でしたらぜひ情報をいただけるとありがたいです。 if(x = 0) C言語では代入が式であるためif(x == 0)のつもりでif(x = 0)と書いてしまい、常に偽になってしまう。 x = 0の値はint、条件式はboolでないといけないので型エラーだよ派: Java x = 0は式ではないので条件式に入れたら構文エラーだよ派: Python 条件式にx = 0をいれたらx == 0と解釈するよ派: H

    不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー
    raimon49
    raimon49 2010/07/25
    Javaって厳格。
  • 「C++ は難しいから」と言う定説 - Cube Lilac

    雑記. C++ は難しいから Java から始めた方が・・・ ここ最近(と言うか以前からずっとですが),上記のようなアドバイスを見かける機会が多かったせいか「C++ の何を指して(Java と比べて)難しいと言っているのだろう?」と言う事を単純に疑問に思うようになりました.Java 自体はほとんど使ったことないのですが*1,感想としては「どちらも大して変わらない」と言うものだったので余計に気になっています. 以下,現状で私が「これが要因かなぁ」と思っている事を列挙してみます. C++ には XXX と言うクラス/関数がない 可能性として一番高いのはこれかなぁと思っています.C++ の標準ライブラリは必要最低限のものしか(必要最低限のものさえも?)用意されていないので,他の言語と比べてライブラリの貧弱さは目立ちます.Boost を含めればかなりマシになりますが,それでもキツいかなと言う印象を

    「C++ は難しいから」と言う定説 - Cube Lilac
  • バベル案内

    Steve Yegge / 青木靖 訳 2004年9月 これは駆け足の言語案内だ — Amazon Developers Journalのために今月書いていたのだが、どうもこれを見苦しくないようにする方法を見つけられなかった・・・。 ひとつには、私はどうも粗野で口汚くなりがちで、オフィシャルな趣のあるAmazonの出版物に載せるのは不適切に思えた。それでかわりに誰も読まない自分のブログに押し込めてしまうことにした。読んでるのはあなたくらいのものだよ。どうも! もうひとつ言うと、これは当に書きかけのものであり、そこかしこの断片を集めたものでしかない。全然磨き上げられていない。これもブログエントリにする理由になっている。ブログなら別に良質である必要も完全である必要もない。単に私が今日考えたことというだけのものだ。ではお楽しみを! この駆け足の案内では、C、C++、Lisp、JavaPerl

    raimon49
    raimon49 2010/05/13
    やばい、めっちゃ面白いw
  • まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro

    第0回 あらためてRuby入門 まつもとゆきひろ氏自身による「Ruby入門」をお届けします。日経Linuxの連載開始前の特別企画(2005年4月号)として,Rubyが他のスクリプト言語やオブジェクト指向言語とどこが違うのか,なぜ便利なのかを中心に解説してもらったものです。 ● 基と他言語との違い ● 実装とRuby誕生の秘密 第1回 プログラミングとオブジェクト指向の関係 プログラマを目指す人々の中にも,「オブジェクト指向は難しい」とか,「なかなか分からない」という印象を持つ方が多いようです。そこで,Rubyを題材にオブジェクト指向という考え方について説明していきます。 ● その1 ● その2 ● その3 第2回 抽象データと継承 オブジェクト指向プログラミングを構成する3原則のうち,前回は「ポリモーフィズム」を学びました。今回はオブジェクト指向の歴史を復習した後,残りの「データ抽象」と

    まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro
    raimon49
    raimon49 2009/11/09
    Rubyと幾つかの言語(C, C++, Lisp, Java)の比較を交えながらプログラミング言語の変遷を解説。
  • 緑のバイク ★ 初めてのC# リファレンス

    // 開発の途中で、実行ファイル名を変更する手順 ケース1.実行ファイル名だけを変更する場合 ソリューションエクスプローラで、プロジェクトの「プロパティページ」を開き、 その中の「アセンブリ名」を変更する。 ケース2.プロジェクト名を含めた全てを「手作業で」変更する場合 (1) プロジェクトフォルダ名を、エクスプローラ等で変更する。 (2) プロジェクトフォルダ直下の 全 *.cs, *.csproj, *.sln ファイルについて、 テキストエディタ等で、文字列「旧実行ファイル名」を「新実行ファイル名」 に書き変える。 (3) 開発環境 IDE を立ち上げ、ビルドを行う。その後で、デザイナの表示と、 コードの表示を行う。なお、ビルドを先に行わないと、デザイナの表示が NG になる場合がある。 // やってはいけないプログラムの例(一部) (1) Form1_Closing() 内で e.

    raimon49
    raimon49 2009/09/11
    Javaと.NET系各言語のキーワード比較。
  • final const readonly - plaplaの日記

    値を書き換えるつもりのない変数を宣言することがある。ローカル変数や関数の引数の場合もあれば、メンバ変数の場合もある。 Javaの場合、このような変数を宣言するときにはfinalと書いておくと、コンパイル時にチェックできる*1。 C++にもconstという似たものがある。詳しくは触れないけれど、Javaのfinalより凝った機能を提供している。 さてC#にもきっとJavaのfinalに相当するものがあるに違いない、そう思ってconstと書いてみたのだが、どうもうまくいかない。 調べてみたところ、C#にはconstのほかにreadonlyがあり、求めていたのはこちらだったようだ。ただし、メンバ変数にしか使えない。 constも値が書き換えられないという点は共通だが、静的に決まる値のみが許されるなど、「定数」としての意味が大きい。 まとめると次のようになる。 final const readon

    final const readonly - plaplaの日記
    raimon49
    raimon49 2009/09/11
    JavaのfinalキーワードとC#のconst, readonlyの比較。
  • ソフィア・クレイドル : BREW / 携帯 Java 技術情報

    BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア / 携帯 Java アプリ圧縮ツール : 株式会社 ソフィア・クレイドル English FAQ BREW 入門 BREW 入門 - 3 分で分かる BREW 技術解説 - BREW 基情報のまとめです。 BREW とは BREW の歴史、背景、特長、課題と解決策、関連リンク集です。 BREW 開発手順 BREW アプリの開発に役立つ情報をまとめました。 BREW プログラミング入門 重要な BREW API をピックアップしたプログラミング方法の基解説です。 応用 BREW C++ 開発の手順 BREW アプリを C++ 言語で開発する手順と注意事項です。 BREW C++ 開発の実際 C++ 言語で BREW アプリ を格的に開発する時に役立つテクニック集です。 ヒープと文字列クラスの実装 実用的