Dynamic Language Meets Dynamic Database

I'm working with Aradyme to help them develop product plans for the next version of their software. The core of Aradyme is a database with a dynamic schema. We decided today that Python will be the supported scripting language in the new version. Previous versions have used a homegrown scripting language. I saw a demo today of the Aradyme extension to Python that allows Aradyme databases to be manipulated directly from within the Python program. Its clean, simple, and performs well.

Making the decision to go with an established language was easy. Someone else is optimizing the interpreter, someone else is writing most of the documentation, and many people already know the language. Most important, there's a big chunk of code that we no longer have to write and maintain.

Python is a little tougher call. The criteria included finding a language that

  • has an established developer community,
  • is interpreted,
  • uses dynamic types, and
  • has a license that allows it to be embedded in a commercial product and freely redistributed

This led to a few choices including JavaScript, PHP, and Perl as well as Python. JavaScript is perceived as Web-only (and perceptions count). PHP is very SQL specific. Perl, much as I love it, wasn't acceptable to other members of the team. Python seemed the best choice. Dedicated developers in other languages would still be able to tie in through the C++ API, but the scripting language we will support is Python.