RFC: renaming SQL::Routine out of SQL

RFC: renaming SQL::Routine out of SQL

am 07.01.2006 01:10:01 von darren

This RFC is an early probe, and is only being sent to 2 discussion
lists for now, dbi-users and poop-group. If necessary, I may derive
a better version later for wider dissemination, based on your
feedback.

In the course of my rewrite of the Rosetta database access framework
(started on October 1st), the system has evolved so much that it is
now based a lot more on relational algrebra than on SQL, and I am now
doubting that the major component named SQL::Routine should keep that
name.

To put things in context, the main purpose of "SQL::Routine" right
now is to define a language, similarly to the purposes of the Perl 6
Synopsis, but that it also provides objects to store something akin
to a parse tree of it; I say "akin" because the tree is actually the
native form; there is no native string version like Perl 6 is.
Continuing this context, the main purpose of "Rosetta" is to be a
federated implementation of that language, similarly to what
Pugs/Parrot do.

This RFC is concerned with whether SQL::Routine should continue with
its current name or be rebranded into a different name that doesn't
contain 'SQL' in it, and is otherwise more appropriate to its altered
direction.

Part of the issue is that the new system is meant to be centered
around the concept of a "truly relational" database, such as Codd,
Date, Pascal, Darwen, etc promote, rather than the "sort of but not
really relational" model of a database that SQL describes. While it
is popularly thought that SQL = Relational, there are strong
arguments from serious database people that say otherwise.

I want to distance my project from the word 'SQL', using the term
only to indicate something in a similar problem domain to my project,
also taking examples for the purpose of explanation; I do not want to
say that my project *is* a SQL model or implementation.

Now, while a lot of influence is taken from the SQL language, various
database products implementing flavors of it, languages like Tutorial
D, and even the Perl 6 language itself, and other mathematics, the
language of my project is my own new language in the end. It is
sufficiently different than SQL that it shouldn't have 'SQL' in its
name, just to not confuse users if nothing else.

At the same time, still focused on serving the interests of both
portability and practicality, my language still supports all the
significant concepts of SQL that are frowned upon by "truly
relational" people, such as nulls and duplicate rows, but you have to
explicitly indicate that you want to use them, and in the absense of
that, relations can not contain duplicates or nulls. Both types of
behaviour can be mixed; it is the data types that you choose to use
on a per-container or per-value basis that determine whether those
are allowed. The distinct data types in question are implemented
separately, and the ones not allowing nulls or duplicates will happen
to be simpler and perform faster, since there is less logical
complexity to deal with. So both "truly relational" and "SQL" people
can have their cake and eat it too. And porting between the both
types (and other types) of systems can be accomplished with little
trouble.

For some details of the new language, see either of the following
(they are not on CPAN yet):

1.
http://svn.openfoundry.org/pugs/ext/Rosetta-Incubator/lib/SQ L/Routine/Language.pod

2. http://svn.utsl.gen.nz/trunk/Rosetta-Incubator/lib/SQL/Routi ne/Language.pod

That document is in the process of being written right now, but a
substantial portion already exists. By the time you see this RFC,
more may be done. See also the DESCRIPTION pod of lib/SQL/Routine.pm
and lib/Rosetta.pm in either repository.

Now, the documentation currently refers to the language as "the
SQL::Routine language", but that seems very cumbersome. What I
really want to do is come up with some new catchy and/or descriptive
name for the language that I can use by itself as a noun, and people
generally know what I'm referring to. Eg, just as people can say
"Perl 6" or "SQL" or "Tutorial D" and readers just know that those
are language names, I want someone to say "" and it is fairly
unambiguous that this is a language name, and not, say, just a module
name.

The main kind of feedback I need is, what a good *language name*
would be for what I'm making here. The new name of the module can be
determined afterwards, and be derived from the language name.

The name of the language should say "relational" or "relational
database", but not so much just using those words, since they are too
generic and are used as adjectives everywhere. It could just be a
catchy made up name or acronym too. Being short is good. (Note that
I can't use "Rel" as a name since its already in use by Dave Voorhis'
project at http://dbappbuilder.sourceforge.net/ . It shouldn't be
the same name as any other project either.)

Moreover, I suspect that the renamed module should perhaps be
reclassified on CPAN to a different category than "string language
processing"; perhaps it should go where ever PPI is classified,
though I don't know where that is, or perhaps where PDL is, or
perhaps under "database interfaces" even though it only defines one
and doesn't implement it. (In any event, Rosetta sits under
"database interfaces" and will reference it.)

Thank you in advance for the feedback.

-- Darren Duncan

P.S. The chosen names would be used for and identical in the perl 5
and perl 6 versions of this.

solved the RFC on SQL::Routine; new direction planned

am 07.01.2006 07:35:39 von darren

This message is a follow-up to the one of a few hours ago titled
"RFC: renaming SQL::Routine out of SQL". The context of the old RFC
has changed.

The one on-topic reply I got so far, from David Wheeler (which
suggested renaming "the SQL::Routine language" to "Rosetta"),
inspired me to take a more drastic step than I proposed before.

This would be to essentially turn the Rosetta framework on its head,
where "Rosetta" becomes first and foremost the name of a language
rather than a role-class for the implementation of the language.

But I think that's actually okay, since the language definition is
actually the more important and more central part. And since the
definition is effectively a desugared super-set of existing/possible
database languages, it may actually be more suited to the name
"Rosetta", maybe.

In the process, the functionality of the old "SQL::Routine" and
"Rosetta" would be merged into a single CPAN distribution, rather
than having them be two separate core distributions. Having them be
separate was good on the theory that the functionality of the old
SQL::Routine was independently useful; while that reality hasn't and
won't change, the odds of anyone taking advantage of it would be
slim, so releasing the pair together simplifies my maintenance.
People can still choose to only use part of the distribution if they
want. And the important separation of "engines", "wrappers", etc
into separate distributions from the core is still strongly in effect.

So perhaps then the language can be named "Rosetta".

Regarding the related module namespace, for now the existing
"Rosetta[|::*]" modules can keep their current names and
functionality, which are suitable, and the "SQL::Routine[|::*]"
modules can be renamed like this:

lib/SQL/Routine/Language.pod -> lib/Rosetta/Language.pod
lib/SQL/Routine/Migration.pod -> lib/Rosetta/Migration.pod
lib/SQL/Routine.pm -> lib/Rosetta/Model.pm
lib/SQL/Routine/L/en.pm -> lib/Rosetta/Model/L/en.pm

As before, lib/Rosetta.pm will "use" lib/Rosetta/Model.pm, and the
latter can be used by a third party without their using the former.

Now, while the details of its language have changed significantly,
the overall purpose and intended situations in which the Rosetta
framework would be used are still the same as before.

Similar to the original RFC, I wonder if "Rosetta" is a good name for
the language + framework, or whether something else may be better.
But at least the 'SQL' is gone, and so I'm not in any rush to do
further renaming.

As always, I welcome feedback on Rosetta, but I no longer require
renaming suggestions, though you are still welcome to propose some if
you think they would be better than "Rosetta".

Thank you. -- Darren Duncan

Re: solved the RFC on SQL::Routine; new direction planned

am 07.01.2006 23:41:36 von ron

On Fri, 6 Jan 2006 22:35:39 -0800, Darren Duncan wrote:

Hi Darren

> As always, I welcome feedback on Rosetta, but I no longer require
> renaming suggestions, though you are still welcome to propose some
> if you think they would be better than "Rosetta".

Rosetta is good, but others are possible:

o Progenitor
o Precursor
o Scribe
o Skribal :-)
--
Cheers
Ron Savage, ron@savage.net.au on 8/01/2006
http://savage.net.au/index.html
Let the record show: Microsoft is not an Australian company

Re: solved the RFC on SQL::Routine; new direction planned

am 10.01.2006 00:10:39 von darren

Thanks for the further responses from Ron Savage and Jenda Krynicky.

As a follow-up, yesterday I decided to name the language "IRL"
(Intermediate Relational Language), at least for now.

Its nice and short, and its very descriptive. An intermediate
language for expressing relational structures and operations.

The naming convention is similar to the PIL (Pugs Intermediate
Language) used in the Perl 6 camp, and they serve the same sort of
purpose.

The name IRL could also double as a short form of Intermediate
Rosetta Language, but I won't be touting this as I may possibly
rename Rosetta to something else in the future, though there's no
real impetus to do so now.

-- Darren Duncan