Rosetta Code:Village Pump/Language iota

From Rosetta Code
Revision as of 13:14, 19 August 2010 by rosettacode>Mwn3d (This was the right place. We don't talk on the main page unless there's a problem with the main page.)

Just how different does a language need to be before a new entry is created in the list of languages? With all of the nice stuff being added with Semantic Media Wiki, I'd like to modify the capability statements for MUMPS. ANSI MUMPS doesn't allow for you to run system level commands, but Cache ObjectScript does. There aren't classes, but wait, Cache has those. MUMPS doesn't have a way of calling other languages directly - but the documentation for Cache has instructions for how to call C programs and you can extend the examples. MUMPS uses the letter Z as the first alphabetic character for functions, special variables, etc, to show that it's a local or vendor implementation, and Cache uses that. Cache does deprecate some things such as the argument-less FOR.

In effect, Intersystems has created a superset of MUMPS called ObjectScript that runs under the Cache product name. Intersystem's Ensemble apparently uses the same ObjectScript language, but I know little about it.

So, it makes sense to create a new language for ObjectScript. But then, what about SQL?

Transact-SQL isn't ANSI SQL, and there are differences between those two and Oracle, DB2 and mySQL (and SAS?). Are they one language, or many? If I write examples, I don't have copies of all the different versions to test the examples against. Right now I can note the versions I tested against, but in the future people might assume that the code doesn't work against versions not listed when in reality those versions just weren't tested.

Instead of a binary using the "works with" template, would it be better to have a trinary of "(null)","tested with", and "untested with"? I think that this would mean that the language's categories would have to contain a list of the different major variants.

Which brings me back to MUMPS again. Is the ANSI language a variant of ObjectScript? C, C++, and C# have similar issues probably. Caml and OCaml remind me more of the ObjectScript/MUMPS issues.

I'm not sure what I'd suggest to resolve this or if it even needs resolution. Stormneedle 04:22, 19 August 2010 (UTC)

There are two possibilities:
  • Either ObjectScript is a different language based on MUMPS (just like C++ is a different language based on C, and C++/CLI is a different language based on C++). In that case the obvious resolution would be to treat it as such (examples working on both can be marked with =={{header|MUMPS}}/{{header|ObjectScript}}==, similar e.g. to here with C and C++. The fact that even the name is different suggests this.
  • Or if you don't want to make them separate languages, you can use subsections, like e.g. here for Pascal.
About the "works with", I think it's basically your "tested with". It doesn't IMHO make sense to distinguish between explicit "untested with" and implicit "nothing". If at all, there could be a template "doesn't work with" for implementations where it is known not to work. --Ce 06:43, 19 August 2010 (UTC)