タグ

ブックマーク / codezine.jp (11)

  • 今どきのプログラミング言語では当たり前! Modern C++で使えるモダンな言語仕様

    はじめに C言語から派生したオブジェクト指向プログラミング言語であるC++は、21世紀に入ってまったく別物とも言えるプログラミング言語に成長していきました。それは、Modern C++と称されています。1990年代にC++を触っていたプログラマが現在の仕様を知れば、隔世感に苛まれるのではないでしょうか。連載では、かつてはC++をたしなんでいたという方、今からC++言語を始めるという方に向けて、Modern C++らしい言語仕様をピックアップし紹介していくことで、今のC++言語の姿を理解していただきます。 対象読者 かつてはC++をたしなんでいたという方 今からC++言語を始めるという方 モダンなプログラミング言語のパラダイムに興味のある方 必要な環境 記事のサンプルコードは、以下の環境で動作を確認しています。 macOS Sonoma/Windows 11 Xcode Command

    今どきのプログラミング言語では当たり前! Modern C++で使えるモダンな言語仕様
    nicht-sein
    nicht-sein 2024/05/24
    C++11を「Modern C++」いうのはO'ReillyなどでC++11の解説本でModern C++という単語を使い始めたのが起因だと思う。なので最新の仕様としてはC++2bとかあるけど定義としては「Modern C++=C++11」なんじゃないかなー
  • 言語別フレームワークの比較 ~Perl/Ruby/PHPユーザーのためのMVCフレームワーク入門~ (1/6):CodeZine(コードジン)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    言語別フレームワークの比較 ~Perl/Ruby/PHPユーザーのためのMVCフレームワーク入門~ (1/6):CodeZine(コードジン)
    nicht-sein
    nicht-sein 2008/12/26
    今話題のMerbがないなぁ。あとSlegeって開発停止してたのね。まぁ、宮川さんがSixApartいっちゃったしなぁ
  • C++0xのマルチスレッド機能

    はじめに C++の新しい標準規格である「C++0x」の大きな新機能の1つが、マルチスレッド処理のサポートです。 従来のC++では、マルチスレッド機能は標準規格の拡張としてコンパイラごとに提供されていたため、細かな部分がコンパイラやプラットフォームによって異なっていました。しかしC++0xでは、すべてのコンパイラが同じメモリモデルに準拠し、同一のマルチスレッド機能を利用できることになります(ただし、従来同様の拡張をコンパイラが独自に提供することも可能です)。 開発者の立場からすると、マルチスレッドのコードを別のコンパイラやプラットフォームへ移植するときの手間を大きく省くことができます。複数のプラットフォーム向けの開発を行う場合でも、種々雑多なAPIや構文をいくつも頭に入れておく必要がありません。 新しいスレッドライブラリの中心を担うのは、実行スレッドを制御するstd::threadクラスです

    C++0xのマルチスレッド機能
    nicht-sein
    nicht-sein 2008/12/03
    なんか自前クラスでやっていたことが全部どんどん標準にとりこまれていく感じがする。この調子だとboost::ASIOも標準に取り込まれる日は近い?
  • 最近のJavaEE事情 ~Java EE 6の向かう先~

    Java EE 5のリリースから2年以上の時間が経ち、次期仕様である「Java EE 6」は仕様策定状態ですが、あまりまとまった情報がありません。稿ではJava EE 6に含まれる予定の技術を解説し、今後のエンタープライズ分野のJavaが進む方向について考察したいと思います。 はじめに エンタープライズアプリケーション向けのJavaの仕様「Java EE」の現行バージョンは「Java EE 5」です。このJava EE 5は、EJB 3.0を中心にDependency InjectionやPOJOを用いたO/Rマッピングなど、Java EE/J2EEの主流に対するオルタナティブとして出てきた技術を取り込んだ、従来のJava EE/J2EEから大きく変化したバージョンでした。 このJava EE 5のリリースから2年以上の時間が経ち、次期仕様である「Java EE 6」は仕様策定状態ですが

    最近のJavaEE事情 ~Java EE 6の向かう先~
  • あなたはC++ の発明者? それとも創造者?〜Bjarne Stroustrup氏との対話〜:CodeZine

    はじめに 「Bjarne Stroustrup氏との対話」連載を担当することになりました、豊田孝と申します。よろしくお願いいたします。 対話の相手であるBjarne Stroustrup氏は、プログラミング言語「C++」を設計し、最初に実装した人です。それだけでなく、同氏はC++を国際標準プログラミング言語の地位に付かせました。大変なエネルギーの持ち主です。 筆者はこの数年、「同氏の生き方から何かを学べるのではないか」と考えてきました。その考えは日毎に熱を帯び、「学べるはずだ!」、そしてついには、「わが国の開発者に、同氏の考え方と生き方ぜひお伝えしたい!」へと変化し今回の連載を始めるに至りました。 稿でのStroustrup氏との対話はメール交換を通して行われます。基的には、筆者が質問文を用意し、Stroustrup氏がその質問に対して高所からコメントを寄せることになります。C++言語

    nicht-sein
    nicht-sein 2008/08/01
    これは読まざるを得ない
  • 【YAPC::Asia 2008】オブジェクト指向を学ぶときこそPerlを学んで欲しい:CodeZine

    Perlカンファレンス「YAPC::Asia 2008」(ヤップシーアジア)が日より東京工業大学大岡山キャンパスにて開催されている。基調セッションではPerl作者のラリー・ウォール氏が登壇し、Perlの次期バージョンであるPerl 6の文法や拡張について解説した。 第2言語としてのPerl 午前中最後のセッションには、小飼弾氏が登壇。初心者に向けたテーマとして「第2言語としてPerlを学ぶメリット」を紹介した。 メインに使っているプログラミング言語が、Perlであれ、違うものであれ「新たに第2の言語を学ぶことはメリットがある」と小飼氏。プログラミング言語はそれぞれ重要視している機能や分野が異なるが、1つのプログラミング言語だけを学んでいると、そのプログラミング言語の特徴を理解しにくくなってしまう。違う言語と比べてみることで、メインで使っているプログラミング言語の優れている点やそうでな

    nicht-sein
    nicht-sein 2008/05/15
    "オブジェクト指向を学ぶときこそPerlを学んで欲しい"いやーPerlのオブジェクト指向って俺の知ってる限りthisをわざわざshiftして引っ張ってこなきゃいけなかったり、だいぶいびつな気がするんだけどどうだろ?(苦笑)
  • Google、MySQLを強化するパッチを無償リリース:CodeZine

    Googleは、同社の製品開発の中から生まれたMySQLを強化するパッチを公開した。GoogleのWebサイトから無償でダウンロードできる。 このパッチはMySQLの扱いやすさと信頼性を向上させる目的で作られており、主にスレーブサーバ(レプリケーションとなるサーバ)の機能を強化させることができる。例として、スレーブサーバが更新通知を受け取らない限りマスタサーバを更新させない機能や、再起動なしでスレーブサーバをマスタサーバに置き換える機能などが備わっている。 他にもアクティブになっているアカウント・テーブルをモニタリングするものや、クライアント/MySQL通信のための高速な圧縮機能なども用意されている。 ちなみに、このパッチはLinux上で動作するInnoDB用に最適化されたものとなっている。その理由としてGoogleは「我々がInnoDBを使っているため」と説明している。また、現在パ

  • CodeZine:Google、C++開発者のための4つのライブラリを公開(オープンソース, グーグル)

    Googleは、C++開発者のための4つのライブラリを公開している。 公開されているのは、C++/Python向けコマンドラインライブラリ「gflags」、高速なマルチスレッドmallocのコレクションで、TCMalloc、heap-checker、heap-profiler、cpu-profilerを含む「perftools」、パフォーマンスの高いハッシュマップを実現している「sparsehash」、基的だが使い勝手のよいテンプレートの「ctemplate」。それぞれ無償でダウンロードすることができる。 詳細は下記Webサイトを参照のこと。 Google Code Four Google open source tools on Google Code google-gflags google-perftools google-sparsehash google-ct

  • CodeZine:HAVING句の力(HAVING(集計), HAVING句, 関係除算, HAVING, SQL)

    はじめに SQLというのは変わった言語です。こういう印象は人によって差があると思いますが、おそらく最初に手続き型言語を学んだ正統派のプログラマやSEほど強くそう感じると思います。 SQLに違和感を感じる理由は、いくつか考えられます。第一に、SQLが「集合指向」という発想に基づいて設計された言語で、この設計方針を持つ言語が少ないことです。そして第二に、それに劣らず大きいのが、最初に学んだ言語のスキーマ(概念の枠組み)が心理的モデルとして固定され、それを通して世界を見るようになるため、異なるスキーマを持つ言語の理解が妨げられることです。 稿では、HAVING句のさまざまな応用方法を紹介していきますが、その際、手続き型言語とSQLの考え方を比較します。それによって、私たちが手続き型言語で身に付けた無意識の心理的モデルを自覚し、集合指向という発想に感じる違和感を軽減したいと考えています。 今回は

  • DirectX Graphicsの隠し設定を利用した開発テクニック:CodeZine

    はじめに Windows OSにはコントロールパネルから変更できない多くの設定が存在し、それらの設定の多くはレジストリやiniファイルに格納されています。これと同じように、DirectX Runtimeにもいくつかのシステムレベルの設定が存在します。これらの設定は、エンドユーザにとってはあまり役立つものではありませんが、開発者が用いればデバッグや問題解決に利用できる有用なパラメータとなります。この記事ではこれらDirectX Graphicsの隠れた設定について、実装上のテクニックを交えながら紹介してゆきます。なお、以下で特に注釈がない場合、「DirectX」はDirectX 9.0cのDirectX Graphicsを指すと考えてください。 今回紹介するテクニックは、DirectX開発者のみに送るものではありません。デバッグで困ったときや既存ライブラリに機能を追加したいときなど、さまざま

  • CodeZine:JavaScriptにおけるオブジェクトの基本的性質

    はじめに JavaScriptはオブジェクト指向言語です。従って、そのプログラミングは、オブジェクトの生成やプロパティの参照、メソッドの実行などを組み合わせる作業と言えます。つまり、オブジェクトを上手く扱うことができなければ、JavaScriptの良いコードは書けません。また、JavaScriptにおけるオブジェクトの考え方は、JavaC++とは根的に違っています。 そこで、この記事では、JavaScriptにおけるオブジェクトの基的な性質について見ていくと共に、JavaC++といった他のオブジェクト指向言語との違い、JavaScriptにおけるオブジェクトの扱い方などを解説していきたいと思います。 なお、この記事はJavaScriptの解説ですが、その内容は、標準仕様のECMAScriptで扱われる範囲に基づいています。従って、同じくECMAScriptを元にしている言語(

    nicht-sein
    nicht-sein 2005/12/01
    JavaScriptについて。旬なので、お勉強用に
  • 1