ブックマーク / www.buildinsider.net (3)

  • C99の仕様

    長い歴史を持ちながら、依然として人気の高いC言語。その最新仕様の情報にキャッチアップするための連載スタート。今回は1999年に策定された「C99」を取り上げる。 連載 INDEX 次回 → C言語(以降、単にC)はDennis Ritchieによって1969~1973年の間にベル研にて開発されたプログラミング言語である。長い歴史を持つと共に非常にポピュラーな言語で、プログラマーでCを知らない人はまずいないと言っていいだろう。プログラミング言語のシェアを調査しているTIOBEでも、ここ最近は常に1、2位を占めている。 Cの言語仕様は今から25年近く前である1989年に初めて規格化され、これは一般に「ANSI-C」と呼ばれている。ANSI-Cは長らくCの言語仕様のスタンダードの位置を占め、世の中の大半のプログラマーは、このANSI-Cに慣れ親しんでいることだろう。しかし、実はCの言語仕様はその

    C99の仕様
    itouhiro
    itouhiro 2018/01/21
    「C99による変更は多岐に渡る。C99の仕様をサポートした処理系も増加。C++コメント。変数の宣言位置。_Bool型はstdbool.hでbool使用可。可変長配列。サイズ0配列。__func__。配列/構造体の指示初期化子。複合リテラル。int32 64」
  • nullが生まれた背景と現在のnullの問題点 ― null参照問題(前編)

    Cの系譜を継ぐC#ではnullが長らく使い続けられてきたが、最近ではその存在が大きな問題だと認識されている。前後編でこの問題を取り上げ、今回(前編)はnullを取り巻く事情について考察する。 ← 前回 連載 INDEX 次回 → 近年、nullの存在は、billion dollar mistake(10億ドル規模の損失をもたらす過ち)と呼ばれるくらい忌避されるものになっている。 nullは、低コストでそこそこ安全に参照を扱えるという意味で悪くない妥協ではあるが、技術が進歩した現在ではもう少し賢い参照の扱い方があるはずである。C#のように、これまでnullを認めてしまっているプログラミング言語で、今からそれを完全になくすというのは現実的ではないが、nullに起因する問題を少しでも避ける手段はこれからでも追加していけるだろう。 今回は、nullが生まれるに至った背景から始め、nullが抱える問

    itouhiro
    itouhiro 2017/01/10
    「近年nullの存在は忌避される。C#でローカル変数の未代入読み出しはエラー。new演算子でインスタンス作ると0初期化。nullの許容/拒否は型で表現すべき。C#にはnull拒否型がない」
  • 各言語に広まったRx(Reactive Extensions、ReactiveX)の現状・これから - Build Insider

    ではなぜネットフリックスがマイクロソフト発祥のテクノロジを利用するようになったのだろうか。実は、RxJavaの初期の開発者であるJafar Husain氏は、もともとマイクロソフトに勤めていて、世界で最初にReactive Extensionsを紹介した人物でもあるのだ。その後にネットフリックスに転職し、RxJavaの誕生に深く関わることになる。 一方でオリジナルのRx.NETの作者であるErik Meijer氏もまた、マイクロソフトを辞めた後に、HackやDartなどの新興言語の支援に関わる他、Principles of Reactive Programmingといった学習コースをScalaの作者であるMartin Odersky氏らと開講するなど、言語の枠を超えて活躍している。 Rxとマイクロソフトのオープンソース 昨今のマイクロソフトのオープンソースへの傾倒を疑うものはもはやいないだ

    itouhiro
    itouhiro 2016/05/12
    「さまざまな開発言語に移植:JavaScript, Unity..」「Rxの本質的な部分は言語の枠を超えられるほど限りなくシンプルなインターフェース、つまりIObservable<T>インターフェースとIObserver<T>インターフェースの発見」
  • 1