Yes, MUMPS is somehow "hidden" from mainstream for more over
40 years (it was operating system for DEC PDP minicomputers,
similarly like early UNIX versions).
Maybe it was also the reason why one of its commercial
implementations is called Caché (= hidden in French) :-)
To answer your questions:
(1) to be honest, I don't like benchmarks so much. We don't
know RIAK well enough to compare to. I also think that RIAK
is much more high-level DB than GT.M/EGTM.
If you're asking for speed, I can tell you only stories
about M compared to relational databases (MySQL, PostgreSQL,
Oracle, MS-SQL). In short, even if we wanted to be fair
and artificially slowed down the M task by significant
anti-optimalizations, the SQL did the job for hours where
it took a few minutes in MUMPS.
I will not share these "benchmarks" publicly as they're
good only for marketing, not for any fair, serious and
meaningful technology competition.
The number of factors and input variables is not small
and especially when it comes to NoSQL and distributed
environment, I'd say it's not comparable at all.
But because I am interested too, let's open a competition
like this:
- try to define a sensible test scenario (what's the goal,
what we're going to measure);
- implement it with RIAK;
- I will implement the same scenario with GT.M in meantime
(in both variants: native M code and EGTM-powered Erlang)
- we can compare then...
(2) according to IODB, it is something we're using in production,
but it's not ready to be released to public yet.
Actually, we're working on a brand new model compiler (what
unlocks a lot of new features as well as much better performance)
and we will probably change some general API functions to make
it more comfortable to use.
So the only I can say at the moment is: stay tuned! :-)
Since we use some IODB objects from JavaScript, we have also
a simple IODB REST API implemented as a ChicagoBoss controller
what is a part of IDEA CloudOS where we also plan some web GUI
management (EGTM Global browser, IODB model manager, etc.),
but this is definitely on our wishlist...
(3) what actually came into my mind (but I am not sure about
its value in practical life):
- EGTM seems to be a good adept to act as a Mnesia backend
(it can break all the DETS limits I am aware of)
- what about employing EGTM as a RIAK storage backend? :-)
(For example, I have experimented with GT.M as a backend
for OpenLDAP around three years ago.)
Regards,
Tom.
At first, just a refreshment:
EGTM's goal was to put the best from Erlang and MUMPS together :-)
So well, it's true that many people hate the M _language_ because
for historical reasons, it has some features resulting in situations
where a M begineer is not able to understand the code [*].
The EGTM is quite different because you don't need to touch such
a MUMPS code!
Just write a regular Erlang code and use MUMPS only for its good
database properties, don't care about the rest.
If you need to do some performance tuning, you can write
M code in style of your own preference, but you don't have to.
If you want to do Oracle tuning, you don't need to learn
a new, maybe crazy, language, but you need to become an Oracle
internals wizard.
And from my point of view, I'd go for learning a new language :)
-----
[*] back to these "language features":
Sure, it is possible to write inline code with a commands of single
character, but it is only _possible_ shortcut. Many modern M developers
use VeryLongCamelNaming.Possibly.With.Some.NameSpaces :-)
For example, Caché Studio (their IDE) has a button that will
expand/collapse all the code in your buffer to short/long
form.
So you open a routine with code like this:
S X="" F S X=$O(^Foo(X)) Q:X="" W X,!
and if you click to expand button, it makes:
Set X="" For Set X=$Order(^Foo(X)) Quit:X="" Write X,!
and vice versa.
The original short code was good when transfering source
code over serial lines in past.
Imagine, that for example OpenVista healthcare project
has around 25.000 routines, what is 331 MB of raw source
code with over than 2.000.000 LoC.
(Not counting their GUI client application.)
I guess the expanded source can grow up to 1G what's
not much today, but for example on VAX computer with
32M RAM, 25MHz CPU and 1G disk, serving to a big hospital
with hundreds of users...
(And since we do migrations of legacy hardware, I can confirm
there're lots of mission critical servers with similar
or lower configration still in production!)
> Sorry, couldn't resist, and I fully admit that I know very little
> about mumps
> and that there's certainly good reasons why people are using it.
Yep, this is a realistic point of view. Many people judge
what they never saw and that's an infinite source of many
rumours.
Hi Tomas,Great news indeed.Before I dive into it, could you please tell me:
- What is a main advantages compare to traditional RDBMS?
- For what kind of data it is good? Is it good for keeping log entries or I better use traditional RDBMS (say PostgreSQL)?
I am trying to understand how I can use IDEA EGTM in my projects. So far we live with PostgreSQL. It is very good (as we all know), but there are some natural limitations when I use it for Erlang - just because it is general purpose DB.Tomas, could you just gime me some ideas where and how IDEA EGTM will kick the a**?I think IDEA EGTM will perfectly match my needs, because at the very bottom my app. business logic is very similar to what banks do.p.s. I have found all docs and they looks superior. So, I see that IDEA EGTM is pretty well kept software.
Best regards,Max
On Mon, Sep 3, 2012 at 11:12 PM, Greg Burd <gr...@basho.com> wrote: