初心者からのプログラミング入門、ソフトウェア開発の学習を支援する 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"となるのか今後も注目していきたい。
http://nhiro.org/learn_language/with_statement.html Java7は名前の通りtryと抱き合わせになっている。C#とPythonは分離されている。なのでJava7でC#やPythonと同じ挙動をしたければ必要なくても空のfinallyを書くことになる。(追記: finallyやexceptを伴わないtryもOKでした。thanks id:nowokay) 本体が正常終了または例外を投げて異常終了した場合のどちらでも呼ばれる「後片付けメソッド」はC#だとDispose、Java7だとclose、 Pythonだと__exit__。しかしPython以外は引数を取らない。本体が正常に終了したのかどうかはどうやって知るんだろうか。知る必要はないという判断なんだろうか。追記: Pythonがどんな引数を取るのか他の言語の人には想像がつきにくいらしいの
C#ではXmlSerializerがJavaのJAXBに相当する 前回は、JavaでXMLをあつかう方法に関連してJAXBを調べてみたので、今回は、それと同等なことをC#で試してみる。 DotNET FrameworkはVer1.1のころからXMLには非常に手厚いサポートがあり、 JavaのJAXBに相当するものはXmlSerializerとして昔から存在している。 Java Architecture for XML Binding(JAXB)は、Javaのクラスを XMLで表現可能にする仕様である。JAXB には主に2つの機能がある。すなわち、Java のオブジェクトを XML にシリアライズすることと、逆に XML から Java オブジェクトにデシリアライズすることである。言い換えれば、JAXB はメモリ上のデータを XML 形式に変換して保存することができ、そのためにプログラム内の
ここでは、コーディング規約を公開しています。当規約をより良いものにするため、ディスカッション用としてメーリングリストをご用意しました。メーリングリストへの 入会方法は、このページの末尾にあります。 コーディング規約に関する情報をご紹介します。 ■株式会社電通国際情報サービス版 Javaコーディング規約2004(04/09/30) ・PDF(約430KB) 本Javaコーディング規約の担当者へのご意見はjava-coding-info at ObjectClub.jpまでお寄せください。本Javaコーディング規約は、(株)電通国際情報サービス様の『Javaコーディング規約2004』をもとにしております。 『Javaコーディング規約2004』の改版として、『Javaルールブック ~読みやすく効率的なコードの原則』が出版されております。 ■オブジェクト倶楽部版 Javaコーディング規約(04/0
「#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 文のようなものです。
いわゆる静的型付けでオブジェクト指向な言語という点からみれば、ScalaもC#もJavaも似ている点があるわけですが、その中でJavaにはなくてしかしC# と Scala である程度共通するものを書きだしてみた。別に「この結果 = Javaがダメ」とかすぐに結論づけたいわけじゃなく、自分の頭の中整理してみたかっただけです。この3つを選んだのも自分がある程度使った経験があるというだけに過ぎません。ちなみにここで言ってるJavaはJava6で、C# は4.0で、Scalaは2.8以降です。あと「似ている機能」があるだけで細かいところ色々違いますが、そこは自分の基準でなんとなく「似ている」と感じたものと書いているだけなのであしからず(´・ω・`) 型推論( C# はローカル変数のみだけど ) http://ufcpp.net/study/csharp/sp3_var.html いわゆるラムダ式っ
Java5以降では総称型(generics)がJava言語に導入されています。総称型自体は、最近の静的な型付けのプログラミング言語で珍しいことではなく、現在の最新版では.NETのC#やVisual Basicにも導入されています。一般的には総称型をサポートするクラスライブラリを自分で正しく定義することは非常にスキルがいるが、事前に定義されたクラスを使うだけであれば、それほど難しくないとされています。しかし、Java言語の総称型は本エントリで説明するように特殊なところがあり、単に利用するだけでも他の言語に比べて遥かに難しいところがあるというのも事実です。特に総称型をパラメータ化する際に指定するワイルドカード型(List<? extends Serializable>など)の意味を正しく理解して使いこなすことは簡単なことではありません。その結果、昔のJDK1.4までのように型パラメーターのない
TIOBE Programming Community index TIOBE Softwareから2011年2月のTIOBE Programming Community Index (PCI)が公開された。TIOBE PCIは複数の検索エンジンの検索結果から対象とするプログラミング言語がどれだけ話題になっているかをインデックス化したもの。2011年2月におけるインデックスは次のとおり。 プログラミング言語 インデックス 年間推移 備考 1 Java 18.482 ↑ 7ヶ月連続1位 2 C 14.986 ↓ 3 C++ 8.187 ↓ 4 Python 7.038 ↑ 5位から4位へ浮上。力強い成長を続け、2ヶ月連続で順位を上げている。 5 PHP 6.973 ↓ 4位から5位へ下落。下落傾向 6 C# 6.809 ↑ 7 (Visual)Basic 4.924 ↓ 8 Objectiv
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人の人間が把握するにはちょっと多過ぎる数です。 本記事では、そうした有り余るプログラミング言語の海の中で「どれを勉強したらいいの?」とか「どれを採用するのが適切?」という悩みをお持ちの方が「よし、この言語に決めた!」と自信を持って決断できるように背中を押すことを目的として書か
プログラムの入門からゲームプログラムまで解説しています。 プログラムが始めての方は、次の講座がお勧めです。 \(^o^)/ 超初心者の C++/CLI 入門 超初心者の C#(Frame Work)入門 2008/09/27 ホームページを更新しました。 Mail To : 前田稔(Maeda Minoru) 超初心者の C++/CLI 入門 超初心者のプログラム入門(C言語 Windows) 超初心者のXNA(C#)入門 超初心者の C#(Frame Work)入門 超初心者の DirectX10 & game program 入門 超初心者の DirectX9 & game program 入門 超初心者の DirectX8 & game program 入門 超初心者の DirectX7 & game program 入門 SONY Play Station の Game Pro
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ページを開く