From: Alexandre Morgaut on
Hi,

I made a Post called "NoSQL but so much more" on our blog describing
how our NoSQL data store change the way data are accessible and
usable, and how Wakanda intends to do it. It use SFX (the Safari
webkit JavaScript core) as interface.

The post has been intentionally written with the less technical
details as possible, trying to describe common goals of NoSQL
solutions.

Hope you'll be interested

http://tr.im/nosql
From: Stefan Weiss on
On 10/02/10 20:21, Alexandre Morgaut wrote:
> I made a Post called "NoSQL but so much more" on our blog describing
> how our NoSQL data store change the way data are accessible and
> usable, and how Wakanda intends to do it.

NoSQL is an interesting (idea/strategy/direction/movement?), and I've
been following it for a while. I've been designing and working with
relational DBs for a long time, and I'm pretty comfortable with them.
When I'm presented with a new problem, or a new application-to-be, I
immediately start thinking in sets, so I guess you NoSQLers will
probably call me old-school. Nevertheless, I can see the appeal of
irregular data stores, and I realize that our classical tables and joins
aren't the best fit for every application.

I read your article, but I found it a little lacking in details or
examples. You did mention that it was targeted at a less technical
audience, and that's fine, but when a technical minded person (i.e. me)
reads it, it sounds a little like advertising. There's a huge graphic
reading "Core data store engine - 64-bit - Unicode - multi-threaded -
multi-process - replication - synchronization". I wonder what that
means, because none of these terms are specific to NoSQL. The list of
key objectives above the graphic also sounds quite obvious, and could
probably be used to promote any random technology (for example, "As
companies grow, the requirements of applications may change").

> It use SFX (the Safari webkit JavaScript core) as interface.

Is there a plan to make your database available on other platforms?
Webkit is growing, but as of now only a small percentage of clients can
use it.

I'd be interested to hear more about what you're proposing, and I'd be
even more interested in some technical details, example code, thoughts
about portability, etc.

To start with a small example (the one given in your article):

var jobOffersWithMary =
ds.employees('MyName').manager.daughter.company.jobOffers.count();

That looks very nice and easy on the surface, but what if my manager
doesn't have a daughter? What if she's unemployed? What if I'm
interested in my manager's dog instead? (not romantically!) What
properties does a manager have? Does he have a son, a lawyer, a couch, a
garden, ...? As soon as you venture into the everything-can-be-connected
terrain, you'll be using lots of if-else branches (or try-catch), and
then the code won't look so pretty anymore.


--
stefan
From: Alexandre Morgaut on
Hi Stephan

> There's a huge graphic
> reading "Core data store engine - 64-bit - Unicode - multi-threaded -
> multi-process - replication - synchronization". I wonder what that
> means, because none of these terms are specific to NoSQL.

Well i admit this is not the nicer we could have made.


We made this big picture because we realized that each time we were
talking about our project, people were immediately thinking that it
had to provide SQL code, they had difficulties to understand these
points :
- a database can use internally an other language than SQL
- No this solution can not be used over your MySQL, or Oracle database
In fact it could it but with complex SQL requests generation and it
would loose most of its performance instead of gaining power ;-)


> The list of
> key objectives above the graphic also sounds quite obvious, and could
> probably be used to promote any random technology (for example, "As
> companies grow, the requirements of applications may change").

This list sounds obvious even more today and NoSQL solutions are a
collection of different technologies to address these objectives each
with their own priorities

This post could not have listed all existing tools (NoSQL and
others),
its purpose was to expose the targeted objectives and how this one
solution (Wakanda) intends to address them

As you noticed we tryed to make an article understable by any one with
a minimum of development skills


> Is there a plan to make your database available on other platforms?
> Webkit is growing, but as of now only a small percentage of clients can
> use it.

We looked at all major JavaScript engines and it was the most adapted
technically and its community is very active. We are confident to
have
a full implementation of ECMAScript 5 quite quickly. We first looked
at
Server-side requirements

The level of client-side compatibility is a bonus, as we can't afford
to ignore other browsers

Note that even if it's not the most widely use on desktops, It is the
first one on mobile platforms including of course iPhone and Nokia
mobiles



> I'd be interested to hear more about what you're proposing, and I'd be
> even more interested in some technical details, example code, thoughts
> about portability, etc.



All of this is coming. We're actually working on a new website with
technical details, demos, API documentation...

I can say that we always look to existing APIs before building ours
trying to perform the most effective code portability as possible

We support the CommonJs Module API and also some W3C / HTML5 APIs




> To start with a small example (the one given in your article):
>
>   var jobOffersWithMary =
>   ds.employees(‘MyName’).manager.daughter.company.jobOffers.count();
>
> That looks very nice and easy on the surface, but what if my manager
> doesn't have a daughter? What if she's unemployed? What if I'm
> interested in my manager's dog instead? (not romantically!) What
> properties does a manager have? Does he have a son, a lawyer, a couch, a
> garden, ...? As soon as you venture into the everything-can-be-connected
> terrain, you'll be using lots of if-else branches (or try-catch), and
> then the code won't look so pretty anymore.



You can imagine that this is just a funny example of code ;-)

Each of these chained objects inherits from native methods and
properties
like "getModel" or "getName" enabling more generic code when required

When you go through this "terrain", you do it because you know the
context,
for example from filters you applied on the collection of objects
you're
working on

I'll be happy to show more use cases using collections, sub
collections, and
specific filter types

And don't forget that ES5 provides getters and setters which gives
huge
possibilities ;-)


--
Alexandre.

From: RobG on
On Feb 11, 5:21 am, Alexandre Morgaut <Alexandre.Morg...(a)4d.fr> wrote:
> Hi,

If this is an announcement regarding of the 4D product called
"Wakanda", the subject should contain a hint about that, e.g.:

ANN: Presentation of new ...


> I made a Post called "NoSQL but so much more" on our blog describing
> how our NoSQL data store change the way data are accessible and
> usable, and how Wakanda intends to do it. It use SFX (the Safari
> webkit JavaScript core) as interface.

Does it actually use javascript features (e.g. some kind of DOM), or
is it implemented purely ECMAscript?


> The post has been intentionally written with the less technical
> details as possible, trying to describe common goals of NoSQL
> solutions.

Perhaps it should also point out that:

1. There is no beta or preview version available, and there
is no schedule for when there might be. The only hint
is "...we want to have a Developer Preview in your hands
by early next year." But which year?

2. No licencing model has been announced

3. No pricing has been suggested


--
Rob
From: Alexandre Morgaut on
Hi Rob,

The subject on the forum is quite clear and why should the subject
on the Wakanda blog need to say it's talking about Wakanda ;-)

Wakanda is actually more a project in development than a product
tell sell, so yes there is no price nor license at this time.
But as other projects we think this one is interesting so all
feedbacks and impressions like the one of Stephan are welcome so it
could help us to make it better.

About schedule, the previous post "Souvenir from JSConf.eu" gives
more information talking about a developer preview in Q1 2010
(so mostly meaning march).
As said before, we are working on a new version of the website,
so sorry if part of the actual one are not up to date, I'll try to
check it

It uses the JavaScriptCore engine from Webkit, also called :
- SquirrelFish
- SquirrelFish Extreme
- SFX
- Nitro
Not easy to communicate about that as some people only know
one of these 6 terms ! lol

We didn't want to embed the DOM interface in each server process,
but we added support to well known API like XMLHttpRequest or the
Firebug console API

It should be detailed in the API doc and the technical specificities
page of our new website