FW Editor: Hey, Sfairadora looks really nice. How long have you worked on it until now? Are you planning on still updating it?
Jaromir Adamec: We have been working on Sfairadora for several years, in fact much longer than we supposed to at the beginning. But this is perhaps the fate of many innovative software projects.
We plan further development of Sfairadora in two major directions. First, we want to make Sfairadora even more handy and user friendly for ordinary users. To achieve this, we want to provide some more data analysis and visualization tools. It would also be handy to make Sfairadora distributed, so that several users could edit a single document over the internet or local network.
Second, we are planning to make Sfairadora a tool for developers – even now, it is powerful enough to create a simple applications. With no substantial effort, Sfairadora could be improved to produce standalone applications.
Finally yet importantly, although Sfairadora is pretty quick now, there is a huge potential to make it even faster.
FW Editor: What makes Sfairadora special amongst the other programs of its kind? How is it better / different?
Jaromir Adamec: We have created Sfairadora, because we thought there is no suitable and easy to use tool to manage a small database, which all of us occasionally need to store some data like list of books, CDs or things like this. In our opinion, the technologies currently in use like spreadsheet or SQL databases were tailored to rather limited capabilities of computers of mid 70’s. These technologies, because of their inherent design patterns, cannot satisfy needs of today's users just by patching more and more “technologies”. We don’t believe that any useful application can be created just by piling up some “technologies”, and neither we believe that you can be successful just by following whatever is thought to be a “trend”. We believe in careful analysis of the problem and thoughtful yet sometimes tedious work. Only this is the way to neat and easy-to-use applications.
FW Editor: The grouping and ungrouping of tables is very interesting. Can you tell us more about this feature?
Jaromir Adamec: In fact, it is a very natural idea to have a table stored within a cell of another table. In many common situations, you need this – like e.g. in a table that lists your products, you want to have a list of customers for every particular item. Currently, no spreadsheet or SQL database can handle this natural requirement in a straightforward way. Let us leave aside spreadsheets, which have some principal limitations. Even with a standard database, you need to solve this very natural situation with two linked tables, which is somewhat clumsy for common use. On the other hand, this solution has its good reasons, as in such a situation, you can also view the data from the opposite perspective – as a list of customers with a list of ordered products for every customer. The solution with two linked tables has the advantage that it is an arrangement neutral with respect to the both perspectives. Then, if we want, for practical reasons, enable a table to contain a sub-table, we also need a mechanism to switch between these two perspectives. Now, ungrouping a sub-table followed by grouping the table by another column is the desired mechanism. Finally, it turns out that this concept of grouping/ungrouping tables is equivalent to the concept of Cartesian product employed by SQL and can replace it. The advantage of this replacement is that working with sub-tables is often more intuitive.
FW Editor: Several predefined documents are delivered with Sfairadora. What can you tell us about those documents?
Jaromir Adamec: The basic principles Sfairadora is built upon prove themselves being useful and general enough by the fact that many advanced parts of Sfairadora are built using the same elements that are also accessible to the user. This is particularly true for the built-in documents and tools bundled with Sfairadora, which are just regular documents and tools that any user could have created. Their purpose is twofold. First, they do some useful task for the user (like printing labels, managing home accounting, doing conversions from/to other data sources etc). Second, they serve as an example, what you can do with Sfairadora. There is nothing magical about the predefined documents. You can inspect their internal structure, modify and improve them, or create other similar.
FW Editor: A particular thing about this program is the usage of Enki Language. Can you elaborate on that subject?
Jaromir Adamec: When you are to manage some data, you also need to write mathematical expressions to compute sums, averages and other things with it. For this, you need, formally speaking, a language to write such expressions. Beside that, another language is often provided – a scripting language – that allows you to write scripts (or macros) to automate repeated tasks. It is often believed that these need to be two different languages. In addition, scripting is not considered a “real” programming, therefore, it is concluded, that the scripting language should be a “simple” language, which is in turn often interpreted as “sloppy in design”.
None of these premises do we take for granted. Thus, we have designed Enki language to write the simple mathematic expression in a natural way without any artificial syntax hassles. At the same time, the expression can naturally grow bigger so that they become rather scripts or programs. Furthermore, we are not persuaded that a scripting language should be simplistic in its design. For scripting, you need, among other things, an elaborate error handling – so that, when you don’t care much about errors, the scripting language should report them in an appropriate manner, while enabling you to handle them by the script when needed. A scripting language also needs to be compact in expression, yet to produce well-arranged scripts. Enki achieves this with allowing all its construct yield a value, using unions of types, a thorough analysis of the “for-cycle” programming construct, which, in Enki, directly enables for searches and aggregation, and other enhancements.
FW Editor: Also, what can you tell us about the Enkidu Output Templates?
Jaromir Adamec: The idea of output templates, now called “Enkidu”, originates from our older project of software for the economy experts in real-estate price assessment. The aim was to assemble programmatically documents with largely variable structure while they had to look like human-edited documents. To cope effectively with this problem we came up with a relatively simple idea to write templates of the desired documents in a common word processor, where the constructs of the template, like insertion of computed values, conditions, loops, etc, are embedded within fragments of formatted text. This enables you not only to format static text easily, but also set format of the computed parts in the same easy manner.
It is also notable that Sfairadora is capable of creating automatically the templates for tables as needed, so that in most cases, if you want to create text output for some data, you need no more than dragging these data to the section “Outputs” and Sfairadora handles the rest. Of course, you can also edit these automatically created templates to fit your specific needs. Similar process takes place even if you, for instance, copy several rows of a table into a word processor (even external one) – behind the scene, Sfairadora creates an output template to create an appropriate text representation for the table that is then inserted into the word processor.
About this interview
|