[Glass] Development Environment tode or jade

Johan Brichau via Glass glass at lists.gemtalksystems.com
Wed Apr 15 11:54:13 PDT 2015


Hi Bruno,

I have only been able to play a little with Tode, which afaik is the replacement for GemTools, and I never used Jade. 
So, I cannot comment on this part of your question, but I will react to a couple of your other questions.

> I have a couple of basic question:
> * Do you use Pharo as development environment ? (like some kind of
> gembuilder (without replicates))
>   (you develop on Pharo and after you finish load packages into Gemstone)

We develop 95% of the time in Pharo. The remaining 5% we develop in Gemstone (currently using Gemtools, later on with tode) for code that is specific to Gemstone (transactions, rc classes, indexing structures, etc..).
The way we work is that we build abstractions around those parts that need differing implementations in Pharo and GemStone. We do that by building extensions to Grease and applications of the Factory design pattern in general.

This is, however, nothing like building with Gembuilder. This way of development is actually ‘just' developing an application that should run both on Pharo and Gemstone. You develop in Pharo, publish your packages in monticello or github and load them in Gemstone. Metacello also play a crucial role here to smooth loading on both platforms, while keeping your entire project spec (with Common, Pharo-specific and Gemstone-specific packages) in a single place.

> * After you finish the development phase do you test in Pharo or in GemStone
> ? (may be both ?)

We test using both, and we test continuously with automated tests on build servers.

> * When you find a bug in Production (GemStone) you made the change there and
> then put the change on Pharo ? How do you proceed ?

That would be a hot fix. Obviously, you need to integrate that change in your code base as well. So, we will just ‘copy/paste’ that back into the main codebase.
If a fix would be a lot more complex than just fixing a couple of lines, we would develop the fix in Pharo, publish the packages and load them in Gemstone.

> * How do you handle:
>   - System performOnServer: (GS methdod)
>   - Rc (reduce conflict) classes ?
> This last point is important i use "System performOnServer:" plus a MySQL
> client to query a Database, i know Pharo has some DB package but is not
> available in GemStone, how do you handle these kind of cases ?


Gemstone is a pretty good database, you know ;)
You can perform external commands in Pharo as well, and these dialect differences (or differences in libraries) is where you would typically build a less optimal solution in Pharo (because it’s just for development) and have a Gemstone-only codebase.



More information about the Glass mailing list