タグ

プログラミングとC#に関するDryadのブックマーク (8)

  • C# 7に向けて(1): 変数やフィールドの書き換え

    プログラムを書くときに、「値が書き変わらないことの保証」(不変性)がほしいことは結構あります。 C# だと、現状(6も含めて)では、const 修飾と、フィールドに対する readonly 修飾くらいしかなくて不便に思うことがありました。 もちろん課題があるからこそのこの現状なんですが、C# 7では、「less ambitious」(野心を抑えて。妥協的)でも、もう少し不変性の保証を増やそうという提案がされています。 Proposal: ‘readonly’ for Locals and Parameters #115 Proposal: Immutable Types #159 readonly は「浅い」不変性 「変数や引数にもreadonlyを付けれるようにしてくれ」という要望は昔からあるものの、これまでやらなかった理由は単純で、そこまで有用でもないから。有用は有用だと思うんですけど

    C# 7に向けて(1): 変数やフィールドの書き換え
    Dryad
    Dryad 2015/02/03
    「本当に爪の先までimmutableか」ってのを言語レベルで保証するの辛そうだし、静的解析で検査してレポジトリへのチェックイン撥ね付けるなり違反者を××するって運用の方が幸せになれるのでは。
  • 第1回 神獄のヴァルハラゲートの裏側をCTOが語り尽くす! | gihyo.jp

    C#の非同期構文をフル活用し業界最速の応答速度を実現 現在、多くのソーシャルゲームPHPPythonRubyといった、いわゆるLightweight Languageを使って開発されていますが、(⁠株)グラニではプログラミング言語としてC#を採用し、Windows環境で開発および運用を行っています。実は、現在提供している「神獄のヴァルハラゲート」は、2013年1月のリリース時点ではPHPを利用していました。しかし同年4月にC#への移植を開始し、3ヵ月後の7月16日にはC#への切り替えを完了させています。 このようにC#にこだわっている理由の一つがパフォーマンスです。ソーシャルゲームはユーザがアクションを起こすたびにデータが更新されるというしくみ上、どうしてもViewのキャッシュを効かせられなかったり、1万リクエスト/秒を超えるような高負荷が発生したりしますが、そうした状況においても平

    第1回 神獄のヴァルハラゲートの裏側をCTOが語り尽くす! | gihyo.jp
    Dryad
    Dryad 2014/04/18
    Scalaもそうだけど、こういうとこ(言語レベルの非同期処理サポート、静的型付きとIDEの相性の良さ)って何故かあんま注目されないよね。
  • Java 8を関数型っぽく使うためのおまじないをC#でやってみた - ぐるぐる~

    Java 8を関数型っぽく使うためのおまじない - きしだのはてな Java は大変ですね。 C# さんは、ラムダ式も Func 型(Java の Function 型に大体対応)も Visual Studio 2008 時代(5年前)から使えたので、似たようなことはすでにできます。 上記の記事のパクリなので、上記の記事をまずは読んでから読むことをおすすめします。 Func 型 C# では Func デリゲートというものがあります。名前空間名や型パラメータまで含めると、System.Func<TArg, TResult> です。 こんな感じで使います。 Func<string, string> enclose = s => "[" + s + "]"; これを呼び出そうとすると、こんな感じになります。 // Javaだとenclose.apply("foo")と、applyが必要 Syst

    Java 8を関数型っぽく使うためのおまじないをC#でやってみた - ぐるぐる~
    Dryad
    Dryad 2013/05/01
    やはり二引数以上の関数は甘えなのか…!
  • 江川紹子さんにC#とは何かを解説する人々

    Shoko Egawa @amneris84 PC遠隔操作事件で逮捕された片山容疑者の弁護人によれば、問題のウィルスに使われていたプログラミング言語C#について、同容疑者は取調官に「(自分は)人がC#で作成したプログラムを実行できるかどうかのテストをしたことはあるが, C#を用いてプログラムを書くことはできない」と供述した。 2013-02-18 21:36:06

    江川紹子さんにC#とは何かを解説する人々
  • Javaの未来についてのNeal Gafter氏とのディスカッション

    それに対する回答は、"我々は今それに取り組んでいます。いずれそれをあなたにお伝えします"というものでした。エキスパートグループが"これを公開したくない"と言った訳ではありません。エキスパートグループは公開で議論することを望んでいますし、Oracleも公開したいと思っているがまだできていないだけだ、と言っています。 そして、パブリックレビューの期間が終わりましたが、それらにはまだアクセスできません。Java言語仕様の改訂のため、JSRが検討されており、私はそのレビューに行きました。しかし、取り組んでいるのはエキスパートグループでさえなく、Alex Buckley氏とOracleの言語チームが、仕様を訂正して仕様バグを直していました。 彼ら(Oracle)はこう言いました。"これはこのバージョンの仕様で修正されたと考えているバグのリストで、これが訂正後の仕様です"と。私はリストを見て、バグを確

    Javaの未来についてのNeal Gafter氏とのディスカッション
  • C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?

    ■概要 以前、C#でのデータ処理について解説した。今回は、同様のデータ処理を、C#以外のプログラミング言語ではどうしているのか、(C#も含めて)以下の5つの言語を比較しながら説明していく。 C# Scala Python Ruby F# 結果としてできることは似ているのだが、その内部的な実装方法は言語ごとにさまざまである。 ■データ処理のおさらい 概念的には、「データ処理」というのは、Figure 1に典型例を示すように、条件選択や変換など、小さな処理単位に分けて、それをつないでいく形を取る。

    C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?
  • プログラミング言語の簡単さ/むずかしさ

    Scala をディスると PV が増えると聞いて。Scala、難しいよね(棒読み)。 そういう冗談さておき。プログラミング言語が簡単/難しいって何だろう。 How vs. What C# もよく言われるんですよね、「C# は簡単だ」というのも、「C# は難しい」というのも両方。で、よくよく話を聞いてみると、だいたい以下のような感じ: C# は文法が多い。概念覚えるのが大変だから難しい。 C# はやりたいことをやれるから簡単。 文法の簡単さ 「プログラミング言語マスター = 文法を覚える」だというなら LISP でも使ってなさいってば。あの言語、超簡単ですよ。() の中にトークン並べるっての以外に何も文法持ってないから。 こういう意見って、要するに、How(どう書くか)ベースの簡単さなんですよね。 やりたいことをやる簡単さ プログラミングって手段であっても目的ではないわけで。What(何をし

    プログラミング言語の簡単さ/むずかしさ
    Dryad
    Dryad 2011/06/13
    『文法の簡単さ』ではなく『やりたいことをやる簡単さ』。まさしく。
  • The Trouble with Checked Exceptions - K.Maebashi's はてなブログ

    JavaからC#に移った人は、C#にはなぜ検査例外がないのか? と疑問に思うと思います。それに対するC#作者Anders Hejlsbergのインタビュー記事を訳してみました(いままでにもまして訳に自信がないところが多いんですが)。 原文はこちら。 http://www.artima.com/intv/handcuffs.html 拙著「プログラミング言語を作る」内でも少し言及しています(p.340)。 ところで、JavaとC#の例外処理の違いというと「検査例外の有無」が取り上げられることが多いのですが、「スタックトレースが生成されるタイミング」も異なっており、Javaプログラマはたまにはまることがあります。その点も「プログラミング言語を作る」では言及しておりますのでぜひどうぞ(宣伝)。 関連記事: MSDN内の記事 http://msdn.microsoft.com/en-us/vcsh

    The Trouble with Checked Exceptions - K.Maebashi's はてなブログ
    Dryad
    Dryad 2010/03/29
    検査例外について、C#開発者へのインタビュー
  • 1