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