# HG changeset patch
# User František Kučera
# Date 1543596823 -3600
# Node ID 580c0e19581717be60bf731bbeebb5d5fc5d61e3
# Parent f9185bc14b683a1477c31a79e94f84ab4afa4919
faq: why c++
diff -r f9185bc14b68 -r 580c0e195817 relpipe-data/faq.xml
--- 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 @@
-->
+
+ Why C++?
+
+ Firstly, 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.
+
+
+ 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:
+
+
+ - It is mature and widespread: GCC runs almost everywhere and other compilers/toolchains are also available.
+ - Programs written in C++ starts immediately: very important for CLI tools.
+ - Can be seamlessly mixed with C and its libraries. Is good for interaction with the operating system.
+ - Modern C++ is a quite good language.
+ - 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 :-)
+
+
+ Implementation in other languages will follow. Java is the next one. Then probably Perl, Python, Rust, Go, PHP etc. (depends on community involvement).
+
Have you seen XKCD 927?
@@ -74,6 +94,7 @@
Go @#$%& yourself. We are pretty old school hackers and we enjoy our green screen terminals!
Of course, you can use anywhere if it makes sense for you.
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).