--- a/relpipe-data/faq.xml Fri Nov 30 17:22:12 2018 +0100
+++ b/relpipe-data/faq.xml Fri Nov 30 17:53:43 2018 +0100
@@ -62,6 +62,26 @@
</p>
-->
+ <p>
+ <strong>Why C++?</strong>
+ <br/>
+ Firstly, <m:name/> are a specification of a data format and as such are not bound to any programming language.
+ This specification is totally language- and plafform- independent.
+ </p>
+ <p>
+ The ideal/perfect language does not exist and our implementations will be written in various languages.
+ We started our prototype and first real implementations in C++ from several reasons:
+ </p>
+ <ul>
+ <li>It is mature and widespread: GCC runs almost everywhere and other compilers/toolchains are also available.</li>
+ <li>Programs written in C++ starts immediately: very important for CLI tools.</li>
+ <li>Can be seamlessly mixed with C and its libraries. Is good for interaction with the operating system.</li>
+ <li>Modern C++ is a quite good language.</li>
+ <li>We are not C++ gurus and C++ is not our first-choice language i.e. the fact that we are able to do implementation in C++ proves that the specification is simple enough to be reasonably implemented by an average software engineer in any other language :-)</li>
+ </ul>
+
+ <p>Implementation in other languages will follow. Java is the next one. Then probably Perl, Python, Rust, Go, PHP etc. (depends on community involvement).</p>
+
<p>
<strong>Have you seen <a href="https://xkcd.com/927/">XKCD 927</a>?</strong>
<br/>
@@ -74,6 +94,7 @@
Go @#$%& yourself. We are pretty old school hackers and we enjoy our green screen terminals!<br/>
Of course, you can use <m:name/> anywhere if it makes sense for you.
<m:name/> are designed to be generic enough – i.e. not specific to any industry (banking, telecommunications, embedded etc.) nor platform.
+ Data in this format are very concise, so can be used even in very small devices.
Its native data structure is a relation (table) but it can also handle tree-structured data (i.e. any data).
It is designed rather for streaming than for storage (but under some circumstances it is also meaningful to use it for storage).
</p>