初心者からのプログラミング入門、ソフトウェア開発の学習を支援する WisdomSoft のホームページです。
初心者からのプログラミング入門、ソフトウェア開発の学習を支援する WisdomSoft のホームページです。
このエントリーは「C# Advent Calendar 2013」の17日目のエントリーです。 前日は id:ksasao さんの「GDI+ で描画&保存あれこれ - まちみのな@はてな」でした。 Java 8は2014年3月にリリースされる予定です。 どういう変更が含まれているのかは、Java 8のすべてにまとめられています。 また、きしださん(id:nowokay)のように、Java8に関する記事をたくさん書いている人もちらほらいます。 この記事では、InfoQの記事(および参照元の英語ブログ)を参考に、Java8の新機能をC#と比べてみたいと思います。 インターフェースの改善 インターフェースでstaticメソッドが定義できるようになった もともと、JavaのインターフェースはC#のインターフェースと違って、static finalなフィールドを持つことができました。 static
2012年8月の調査結果では、PHPと(Visual)Basicの順位が変動している以外は目立った動きはない。長期的に下落していたPHPだったが8月は少し持ち直しており、ここ数ヵ月上昇していた(Visual)Basicが8月に入って下落したために入れ替わった格好となった。 ここ最近続いているC#の下落傾向が気になるポイントとなっている。2000年に登場したC#は、主にMicrosoftプラットフォーム上で活用され人気を集めてきたが、2012年に入ってからずるずると下落している。C系の言語ではObjective-Cが急成長を続けており、2番手グループでは頭一つ抜けている感がある。CおよびJavaに続くのが、どの"C"となるのか今後も注目していきたい。
「#1 プリミティブ型と制御構文」 に引き続き、今回は C# の配列についてと文字列について Java との違いをメモしておきます。 参考にしている書籍は 『独習 C#』 です。 C# の配列 1 次元配列 C# の配列に関して、1 次元配列はほとんど Java と大差ないと思ってよいでしょう。 // 1 次元配列の宣言と初期化 int[] vals1 = { 10, 20, 30 }; // 1 次元配列の宣言とメモリ領域確保 int[] vals2 = new int[3]; // Java のようにメモリ領域確保と初期化を同時にすることも可能 val2 = new int[]{ 1, 2, 3 }; #1 の制御構文のところ で述べませんでしたが、配列のようなコレクションの要素を 1 個ずつ扱う際に便利なのが foreach 文です。 Java の拡張 for 文のようなものです。
Java5以降では総称型(generics)がJava言語に導入されています。総称型自体は、最近の静的な型付けのプログラミング言語で珍しいことではなく、現在の最新版では.NETのC#やVisual Basicにも導入されています。一般的には総称型をサポートするクラスライブラリを自分で正しく定義することは非常にスキルがいるが、事前に定義されたクラスを使うだけであれば、それほど難しくないとされています。しかし、Java言語の総称型は本エントリで説明するように特殊なところがあり、単に利用するだけでも他の言語に比べて遥かに難しいところがあるというのも事実です。特に総称型をパラメータ化する際に指定するワイルドカード型(List<? extends Serializable>など)の意味を正しく理解して使いこなすことは簡単なことではありません。その結果、昔のJDK1.4までのように型パラメーターのない
quick sortの開発などで著名なアントニー・ホーア氏が、「null参照の考案は過ちであった」と考えているとの話が本家/.で取り上げられている。 3月11~13日にロンドンで開催されるQCon London 2009における、ホーア氏のプレゼンテーション概要には次のようにある。 1965年に考案したnull参照の概念は、10億ドル単位の過ちと呼ぶべきものであろう。当時自分は初のオブジェクト指向言語(ALGOL W)のリファレンスの包括的システムを設計していた。全てのリファレンスの使用が全く問題のないことを確認するため、コンパイラによってチェックを自動化することが目標であった。null参照をこれに含めるのは、非常に簡単であり、やらずにはいられなかった。 しかしこれこそがその後40年に渡り、数え切れないほどのエラーや脆弱性、システムクラッシュの原因となり、10億ドル単位の損害や苦労を引き起
今回は、nullの扱いは気をつけようねというお話。特にこれからの人に読んでもらいたい。 nullは変数を初期化する時などに、当たり前のように登場します。Javaではnullがないなんて考えられないわけです。(C#でも同様) しかし、nullの考案者のTony Hoareは「10億ドル単位の過ち」と発言しています。 null参照の考案は10億ドル単位の過ち?(スラッシュドット・ジャパン) - エキサイトニュース nullには、それだけの魔性があって使い方を考える必要があります。nullは”値が存在しない”という状態を表現する時に使われることが多いのですが、そのnullに対する注意が十分に払えずにトラブってしまうことが多いのです。Scalaではその"値が存在しない"という状態をOption型のNoneで表現することでnullを回避する手段が提供されています。JavaではScalaのようにはでき
0-1. 前書き この世にはたくさんのプログラミング言語が存在します。Wikiepdiaのプログラミング言語一覧を見ると、実に200個以上というわけの分からない数の言語が並んでいたりします。 【参考URL】プログラミング言語一覧 - Wikipedia http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%... 200の中にはほとんど使われてない言語も混じってるので、実際に仕事でざくざく使われている言語は20とか30とかそういうオーダーなのですが、それでも1人の人間が把握するにはちょっと多過ぎる数です。 本記事では、そうした有り余るプログラミング言語の海の中で「どれを勉強したらいいの?」とか「どれを採用するのが適切?」という悩みをお持ちの方が「よし、この言語に決めた!」と自信を持って決断できるように背中を押すことを目的として書か
WisdomSoft(旧) このサイトはすでに運用を停止しています。 新しいコンテンツはこちらをご覧ください ■Products■ 書籍 ソフトウェア 読本C 読本Java Javaアプリケーション作成講座 Windowsゲームプログラミング ゲームエンジン プログラミング C#ゲームプログラミング Cisqua Developers Network プログラミング システムとAPI C言語入門 C++入門 C#入門 D言語入門 Java言語入門 Objective-C入門 Lisp入門 Perl入門 PHP入門 アセンブリ言語入門 Win32 API入門 標準 Windows API コモンコントロール マルチメディア API Windows ソケット JavaAPI入門 AWT入門 Swing入門 ネットワーク入門 Microsoft .NET入門 DirectX入門 OpenGL入門
JavaよりもC#が優れている点は、Deledateという機能があるおかげでイベント通知のロジックが書きやすい点にある。 Javaでは、Multicastというデザイパターンでカバーする必要がある。 平鍋さんの記事が分かりやすいのでメモ。 【元ネタ】 - デザインパターンによる進化的設計 Jude開発記 - Java プログラマのためのデザインパターン入門 [Effective C#] 項目21 デリゲートを使用してコールバックを実現する | まさくらのブログ デザインパターンにあるObserverパターンは、デスクトップアプリを作る時に非常に重要なパターン。 GUI上のイベントをキャッチして、次のイベントを発火するロジックに使うから。 しかし、- デザインパターンによる進化的設計に書いてあるように、Push型のObserverパターンでもPull型のObserverパターンであっても、情
まじめな話に切り替えて、Java屋さんJava信者さんに質問したいと思います。 質問: Java における、本質的でない冗長な記述は、どのように大規模開発に役立つのでしょうか。 質問の背景を説明すると、以前の晒されエントリで、Java における本質的でない記述の数々について話題にしました。それに対する反応で、『Java は大規模開発向けだから記述が長くてもいいんだ (または長くなくてはいけない)』という意見が多くあります。 たとえば、ブックマークコメントより: エンタプライズ分野であの大伽藍が求められたのだから仕方ないですよ。 エンタープライズ分野のような大規模開発こそ、必要な情報を簡潔にわかりやすく記述する必要があると思ってたんですが、世の中は違うようです。 同じくブックマークコメントより: Java屋の怠慢は高層ビル建築をどうサボるかであって、犬小屋を作る時にどうサボるかという視点とは
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く