A couple of weeks ago, I posted a survey to collect information about
the current and required support for Relational Database Management
Systems (aka RDBMS) using Pharo. This post attempts to share the
results of the survey along with my personal comments and
interpretations of the results.
The numbers of responses were very few (55). The causes for that might
be many, but in my opinion only related with the size of our
community, the respondents are approximately a quarter of those regularly communicating in the mailing lists.
Operating System used
With this question I wanted to know from which OS users connect to the
RDBMS server (hereafter “database server”), not in which OS the server
As you can see, most users connect from a Linux host, followed by an
equal distribution between Windows and MacOS users. The “other” group
includes many users of Raspberry Pi, which I didn’t expect, although I
knew Pharo is used in those devices.
In this question I wanted to know to which database server users need
to connect, which doesn’t mean they’re actually using it. E.g. you
might need to connect to a server, but that doesn’t mean you’re
actually connecting to it.
PostgreSQL and SQLite are the most used databases. What we can’t
confirm is if it is a cause or if it is a consequence of the current driver support, because both PostgreSQL and SQLite drivers are the most popular and supported in Pharo.
Something that shouldn’t come as a surprise is that 50% of Windows
users (which are also half of the survey responders) need to connect to Microsoft SQL Server and 35% to Oracle Database, and in the “Other”
category also appeared many responses for IBM DB2. In my experience
this means “corporate environment”, where some vendors dominate
because of the business/licensing practices of enterprise companies.
For those already using Pharo to connect to a database server, PostgresV2 driver dominates and ODBC comes second. But if you filter by Windows users then ODBC comes first and PostgresV2 second, and OpenDBX third, showing that most of the OpenDBX users are in Windows.
The relatively new GarageDB drivers have few users, most of them also of the PostgresV2 version for Garage.
Only one third of the users use Connection Pooling for database
connections, which can be nterpreted as light use of RDBMS
connectivity. If you’re a heavy user you’ll need it.
Object Relational Mapper (aka ORM)
What did surprise me was that half of the respondants don’t use an ORM to work with relational databases. In this group some users might be data-analyst querying the raw data of big databases. In the “Others” group are people who rolled out their own ORM, or misunderstood the question and responded with VoyageDB or other NoSQL options.
Perception of the current RDBMS support
There was one question in which I tried to gather how people feel about some parts of the current database support like documentation, driver availability, driver stability and community support. This question confused some people (my bad), but these are the results nonetheless.
Because the previous chart doesn’t show very clearly what it means, I add the weighted average response data highlighting with an orange box where most of the weight falls into.
Unfortunately most of the weight is sub-average, with particular complaints about broader/better database support and better documentation.
As expected the community support is above the average, which in my opinion is the only reason there still are users of RDBMS in Pharo, because the documentation is scarce and dispersed compared to other Pharo features that are professionally documented.
Impact of the current support
Among the things I wanted to know about the current “technical” implications of the current use of RDBMS with Pharo, I wanted to understand how it impacts the decision making. I talked to people that like Pharo and play with it, but don’t make the jump because the current support doesn’t fit their requirements.
At the top we find that most of the people are waiting for better support to use Pharo, and the second ones are using it with workarounds to the current issues they found (disclaimer: I’m in that group). In the third position a small happy group of people for whom current support fulfills their needs.
The current support doesn’t match users expectations and/or requirements, and there seem to be opportunities in the corporate world supporting commercial database vendors and platforms and I would add mobile/embedded platforms where self-containment is a plus.
Also, I think that NoSQL alternatives like VoyageDB/MongoDB attracted users that needed to store objects without using or caring about having a relational database behind.
My intention was to collect these answers and put the responses on the table for everyone to see and interpret. There were some suggestions that were expressed by my interpretation of the data and others available in the raw responses (linked below).
I hope this helps to improve the support or spur the participation of others.
Because, as it is always said, Pharo is yours.
Survey results available at: https://www.surveymonkey.com/results/SM-8HS8HFVJ/