Hi Laurent.

I agree with you. From my point of view, there are a lot of persistence
strategies and possibilities. But the problem I faced most of the time is
that you are not able to choose. It is not common you can choose the
database and even more the database. At least in real business or company
applications. Thee are a LOT of reason, logical and not logical. If you want
I can share with you the reasons I found so far.

If you can choose, I would probably use a OO database. Magma or GLASS are
the better solutions for me. There is also GOODS but I heard bad comments
from a friends that are using it at their work.

Then you have all those "non traditional" databases like Toyko, CouchDB,
MongoDB, etc. You can give them a try.

You have also serializers like SIXX, ImageSegments, SmartRefStream, save in
the image, etc. This can be a solution for very limited for my opinion
(small apps). However, they are very useful when starting a project or even
for prototyping.

Finally, you may HAVE or you want to use relational database. First, which
database?  most of the time, you cannot choose. For Pharo, there seems to be
native drivers for PostgreSQL and MySQL. The first one is working on Pharo.
The second one I don't know. SQLite driver I think it is not native (maybe I
am wrong...). We did SqueakDBX where you can talk with Oracle, MSSQL, MySQL,
PostgreSQL, Sqlite3, Firebird (only windows) and ODBC in all OS (Linux, Mac
Os and Windows).

After the "driver layer" then you have Glorp and SqueakSave mostly. Glorp is
much powerful and complete. But, the Pharo/Squeak version is quite old as
Glorp is developed in VW. The "problem" with Glorp is that you have to write
all the queries by hand. If you want to use other that PostgreSQL with Glorp
in Pharo then you need to install GlorpDBX. You can SandstoneDB if you want
and then you also have Glorp-ActiveRecord, but only VW (as it is new, it is
not ported to squeak or pharo). In those approaches, the time of developing
is less as you don't have to write all the mappings.
Finally, with SqueakSave you can automatically persist. It takes care of
writing everything. You don't need to write the mappings. Of course, you
need to follow certain conventions in the names. SqueakSave supports MySQL
and PostgreSQL only althought they wanted to interface with SqueakDBX to
support all databases.  I don't know neither if it works on Pharo. Of
course, it seems to be a less slower than Glorp as the queries are not the
faster.

If I were you, for the screencast, I would really like to see the following
scenario:  you have a domain model and then you persists:

1) Image based / serializers  (sixx, ImageSegments, SmartRefStream, etc)
2) OO database -> magma or GLASS
3) Relational database -> Glorp, SqueakSave, etc

Each item can be a different post and for each item you show the advantages
or disadvantages and of course, in each item, the domain model is the same.
Of course this may require a lot of time and effort :)

Uffff now I realized this is almost the same Torsted said. Sorry.

Cheers

Mariano



2010/2/17 laurent laffont <laurent.laff...@gmail.com>

> Hi,
>
> I would like to learn on Pharo + databases. I've seen there's several
> solutions in both object and relational databases.
> - Which (open source) object database should I start with (most used) ?
> - Which object database can be accessed from Smalltalk AND  Ruby or Python
> ? How ?
> - I want to try MySQL too.
> Is there up to date small applications on squeaksource which show this
> stuff quite well ?
>
> Thanks for help !
>
> Laurent Laffont
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project@lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to