タグ

Csharpとcppに関するraimon49のブックマーク (16)

  • オブジェクト指向プログラミング -- 1兆ドル規模の大失敗

    CodeIQのブログより。🤔 なぜ、OOPから移行する時なのか Ilya Suzdalnitski OOPは、多くの人にコンピューターサイエンスの重要資産と考えられています。コード構成(code organization)に対する究極のソリューション。すべての問題の終焉。私たちのプログラムを書くための唯一の当の方法。自分自身をプログラムするという真なる唯一神から私たちに授けられました… それまでは、そうではなく、抽象化の負担、そして無差別に共有されるミュータブルなオブジェクトの複雑なグラフによって、人々は屈し始めています。現実世界の問題を解決するのではなく、「抽象化」と「デザインパターン」について考えるのに貴重な時間と頭脳が費やされています。 非常に著名なソフトウェアエンジニアを含め、多くの人々がオブジェクト指向プログラミングを批判してきました。驚くことに、OOP自身の発明者でさえ、今

    オブジェクト指向プログラミング -- 1兆ドル規模の大失敗
  • 長文日記

    raimon49
    raimon49 2016/07/01
    これくらい主観による好みというか、愛憎入り乱れてる文章の方が、読み物として面白い。
  • C# 7に向けて(2): 性能と信頼性

    C# 7の提案のうちいくつかを見た瞬間、思ったのは「C++ 11みたい」でした。 まあ、背景には、年々C#の適用範囲が広がっていること、そして、オープンソース化に伴って今後はさらに広がるであろうことがあります。 ゲーム開発の標準言語と言えばC# その広がった先の1つはゲーム開発でしょう。「ゲーム開発の標準言語と言えばC#」なんていう煽り(わりかしほんとに「煽り」ではあると思う。「話題にならないよりは炎上する方がマシ」くらいの覚悟の上の)もあります。まあ、割かし昔から、ゲーム開発者にもC#好きな人はいて、ゲーム会社の社内ツールなんかはC#で書かれることが結構あったみたいです。しかし、「ゲーム自体を」となると、これは割かし最近の話。「XNAがあったし(震え声)」と小声で主張もしたいところですが、実際のところ、割かし皮肉なことに、「C#でゲーム開発」が注目を浴びるようになったのはUnityのおか

    C# 7に向けて(2): 性能と信頼性
  • Martin Fowler's Bliki in Japanese - アクセス修飾子

    http://martinfowler.com/bliki/AccessModifier.html オブジェクト指向言語ではプログラムはクラスと呼ばれるモジュール群に分かれます。 それぞれのクラスは機能(features)をもっており、データ(フィールド)とメソッドで構成されます(すべての言語がこの用語を使うわけではありませんが、役割は一緒です)。 言語には、どのクラスがあるクラスの機能にアクセスできるのかについてのルールがあり、たいていクラスに適応されるアクセス修飾子に基づいて決まっています。 C++ の選択 おそらく最も影響力のあるアクセス修飾子はC++の3つから始まりました。 public: どのクラスもアクセスできる protected: どのサブクラスもアクセスできる private: どのクラスもアクセスできない 他のクラスやメソッドに対して _friend_ を使ってアクセス

  • C#や.NET Frameworkがやっていること

    Event : Visual Studio Users Community Japan #1 Date : 2019/09/14 ソフトウェア/サービス開発において最も後回しにされるものの代表が「パフォーマンスの向上」です。C#/.NET の最大の武器は開発生産性ですが、C# 7.0 以降はパフォーマンス向上のための機能追加が多数行われています。いくつかのポイントを押さえることで実装時からより高速なコードを書くことができるようになります。 このドキュメントでは、そんなポイントとなる箇所をふんだんにお届けします。

    C#や.NET Frameworkがやっていること
    raimon49
    raimon49 2014/03/02
    まさしく学校では教えてくれないやつだ。awaitはイテレーター(ジェネレーター)の応用、Awaitableパターン。
  • 値渡しと参照渡し (と参照の値渡し) - ぐるぐる~

    値渡しと参照渡しは、分かってしまえば何も難しいところはないんだけど、分かるまでにちょっとした壁があるというかなんとうか・・・ てことでちょっとまとめておきますねー 値渡し (call-by-value) と参照渡し (call-by-reference) の違い 値渡しと参照渡しの違いは、「呼出し元の値自体を変更できるかどうか」と説明されることが多い。 しかし、例えば Java ではミュータブルなオブジェクト *1 を渡した場合、呼出し元の値自体を変更できるという勘違いをする可能性があるため、この説明はあまり好ましくない。 そのため、参照渡しを「呼出し元の別名を渡している」と覚えるのが分かりやすいと思う。 値渡しは「何かの値をコピーして渡している」と覚える*2。 Java の場合 Java には値渡ししか存在しないが、「参照型」のためにややこしく感じる。 参照型は参照渡しとは無関係で、C

    値渡しと参照渡し (と参照の値渡し) - ぐるぐる~
    raimon49
    raimon49 2013/07/19
    いわゆるByRefとByValな話題。ミュータブルなオブジェクトのポインタが値渡しされている。
  • switch文 - Wikipedia

    switch (制御式) { case 値1: 文 文 ……… break; case 値2: 文 文 ……… break; default: 文 } 上記の「case」ラベルはいくつでも記述することができる。caseラベルの「値」はコンパイル時に決まる整定数式 (integer constant expression) である必要がある。 この文は次のような手順で実行される。 制御式を評価し、整数値を得る。 その整数値がどれかのcaseで指定された値であるなら、そのcaseに引き続く文に飛ぶ。 どのcaseでも指定されていなければ、defaultに引き続く文に飛ぶ。 もしdefaultが記述されていなければ、何も実行せずにswitch文を抜ける。 ここで注意しなければならないのが、caseはラベルに過ぎず、そのcaseより前からの実行から、そこでswitch文を抜けさせる働きはない点であ

    raimon49
    raimon49 2013/04/30
    C系言語におけるbreakさせないフォールスルーの扱い。/* FALLTHROUGH */コメントを必要とするものや、文が存在しない場合のみフォールスルー可能とする実装も。
  • 「遠隔操作ウィルス事件の容疑者がJavaを使っていた事実」が判明(江川紹子さんと高木浩光先生の会話まとめ)

    まとめ (当なら大問題)高木浩光先生による「遠隔操作ウィルス事件の容疑者が、C#での開発経験が無かった可能性」に関する考察 高木浩光先生による遠隔操作ウィルス事件に関する考察のまとめです 当ならば、話がひっくり返るレベルの大問題かもしれません 読売新聞の記事によると、(接見した弁護士の話として)、「容疑者はウィルス作成に使われたC# (.NET Frameworkの開発環境)を使う事ができない」と主張しているそうです そもそも個人的にも、(逮捕の経緯が経緯だっただけに)警察からの続報などで 「自宅からウィルスのソースコードが発見された」などの続報が何故出てこないのか? と不思議だったのですが、もし、今回の話が正しくて、「そもそも容疑者の自宅や会社から、 C#の開発環境そのものが見つからなかった場合」、誤認逮捕の可能性が激増する可能性も強くなり、 仮に万が一「また誤認逮捕」だったという話

    「遠隔操作ウィルス事件の容疑者がJavaを使っていた事実」が判明(江川紹子さんと高木浩光先生の会話まとめ)
  • C#に関するアンダース ヘルスバーグへのインタビュー (2005年)

    2012-07-17 19:45:12 翻訳許可を与えてくださったJohn Osborn氏とO’Reilly社に感謝します。 原文は下のリンクを参照してください。 C#: Yesterday, Today, and Tomorrow: An Interview with Anders Hejlsberg, Part 1 C#: Yesterday, Today, and Tomorrow: An Interview with Anders Hejlsberg, Part 2 C#: 昨日、今日、明日 アンダース・ヘルスバーグは1996年にマイクロソフトに転職し、初期はVisual J++とWindows Foundation Class (WFC) のアーキテクトとして仕事をした。 ヘルスバーグは現在Microsoft Distinguished EngineerかつC#のチーフアーキテク

    C#に関するアンダース ヘルスバーグへのインタビュー (2005年)
    raimon49
    raimon49 2012/10/22
    C# 2.0から3.0当時のインタビュー。LINK、ラムダ式、Nullable
  • WinRT に関する誤解

    まあ、ます先に、ダウンロード リンク一覧を Microsoft Visual Studio 11 Developer Preview (ISO) http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=415c1589-a7b1-4b25-93fa-11bb6f29a5be Microsoft Visual Studio 11 Developer Preview (Web インストーラー) http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=99a58e56-fcb2-4264-bce7-3311cf0d1806 Microsoft Visual Studio Team Foundation Server 11 Developer Preview

    WinRT に関する誤解
  • 開発者にとってのWindows 8

    Windows 8 上の開発環境について、ようやくきれいに整理された情報が。 Windows 8 for software developers: the Longhorn dream reborn? といっても、公式アナウンスではなくて、リークした Windows 8 (もちろんβにも満たない開発途上版)の解析結果から得られた知見。 少々私見も込みで、要約: .NET がもたらしたもの まず少々歴史の振り返りを。 .NET Framework 登場以前、90年代に置いて Windows 開発がどういう状況だったかというと、「C++ と VB のパリティ(あっちを立てればこっちが立たず的な偶奇性)」という深刻な問題がありました。 Windows の機能を最大限使いたければ Win32 API を使う必要があって、それは VB では難しかった。あと、パフォーマンスの問題もあり、大規模で応答性

    開発者にとってのWindows 8
    raimon49
    raimon49 2011/08/27
    >昨今の Web 標準 vs プラットフォーム固有 の対立(HTML5 vs { Java on Android, Objective-C on iOS, Silverlight })の構図、かつての VB vs C++ と同じに見えてしょうがないんですよね。
  • いろいろな言語のコーディング規約,スタイルガイドのリスト — 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というコーディングスタイルガイドがあってよく読まれることは

  • C/C++ から main 関数が消える日 - カタチづくり

    Windows上でデスクトップアプリを開発している身としては、そのうちC/C++でmain関数を書く人って一人もいなくなるんじゃね、と思っている。もちろん簡単なテストコードのためにはmain関数が書けるほうが便利だから全く無くなるわけじゃないんだけど、C/C++でmain関数書いて最終成果物としてリリースされる機会は、もう無くなる日は近い。 C/C++の優位性はパフォーマンスとか低位のAPIを直接叩けるとかしかない。その性能を活かすには要所要所でC/C++ネイティブコードをDLL化して呼び出せば十分で、アプリケーション全体をC/C++で書く必要は全くない。アプリ全体を構築する能力は圧倒的にC#/.NET Framewokのほうが優れている。つまりC/C++でmain関数を書く必要はなく、単にDLLとして関数をエクスポートできれば十分ってことだ。 これは純粋なC/C++の話じゃないけれど、た

    C/C++ から main 関数が消える日 - カタチづくり
  • 緑のバイク ★ 初めての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の比較。
  • Visual Studio Wiki

    NEWS 2010/04/28 Visual Studio 2010 Express日語版 公開 http://www.microsoft.com/japan/msdn/vstudio/express/ 2010/04/21 Visual Studio 2010 サブスクリプション向け日語版 公開 http://blogs.msdn.com/dd_jpn/archive/2010/04/21/9998509.aspx 2007/12/14 マイクロソフト、Visual Studio 2008 日語版 公開 http://www.microsoft.com/japan/presspass/detail.aspx?newsid=3300 当サイトについて 当サイトは、マイクロソフトが提供する開発ツールVisual Studioに関するWikiです。 不定期に更新してますので気長に見守って

    Visual Studio Wiki
    raimon49
    raimon49 2009/07/01
    Visual Studio製品に関するWiki。Visual Studio 6.0って、もう10年以上も前だったのか(1998年)。
  • 1