Why "Concurrency" matters? (なぜ「Concurrency」は重要か?)

「Why "Concurrency" matters?」と題して、ソフトウェアにおける並行性・並行概念(以下、並行性)の大切さについて考えてみたい。

まず、なぜ並行性が重要かを、ずばり一言で述べる。それは『「並行性」はシステムの複雑性を「簡素化」することができ、すなわちソフトウェア開発を容易にする』からである。

「ソフトウェア開発」とは「記述をすること」である*1。つまり、システムを記述するのであるが、この世の中には、並行性の現象はどこにでもある概念である。これは、違う視点を持てば、人は世の中の現象を並行モデルで捉えることが自然であることが非常に多いということを意味している。並行性はこれらのシステムを直接的に扱うことを可能にする。直接的に扱うというのは、簡潔に記述できるということである。「簡潔さは力である*2」のだから、並行性は重要なのである。


参考文献:「Java Concurrency in Practice by Brian Goez」

*1:Software Requirements & Specifications: A Lexicon of Practice, Principles and Prejudices, by Michael JacksonAmazon.co.jp: Software Requirements & Specifications: A Lexicon of Practice, Principles and Prejudices (Acm Press Books): Michael J. Jackson: 洋書

*2:http://www.google.co.jp/search?q=%E7%B0%A1%E6%BD%94%E3%81%95%E3%81%AF%E5%8A%9B%E3%81%AA%E3%82%8A&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_jaJP293JP293