Pharo RDBMS support survey results

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
runs.

What operating system do you run Pharo on?

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.

Database server

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.

What database server do you need to connect to?

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.

Database driver

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.

What database driver for Pharo do you use?

Database features

Connection Pooling

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.

Qualifications counted

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.

How RDBMS support affects your use of Pharo?

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.

Conclusion

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/

Esteban A. Maringolo

Written by

Smalltalk developer, amateur designer, blockchain enthusiast and bogey golfer.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade