[Glass] Silly question: what is "GLASS"?

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Wed Feb 4 15:22:21 PST 2015


Sorry Pieter, your message ended up in my spam folder (thank you google) 
and I didn't know there was a pending message until Richard and James 
replied...

On 2/3/15 11:40 PM, Pieter Nagel via Glass wrote:
> There seems to be some ambiguity as to what the term GLASS refers to.
>
> On http://seaside.gemtalksystems.com/ it refers to GemStone, Linux,
> Apache, Seaside, and Smalltalk. In other words it just seems to be a
> catchy overarching name for the practice of providing web systems by
> running Seaside on GemStone (as opposed to, say, using Ruby on Rails). In
> that sense of the word, it seems to me when you've successfully loaded
> Seaside on some version of GemStone, you've got GLASS.
...and that was the genesis of the original name. Over time GLASS has 
migrated from an acronym to just a name and not a very good one at that:)
>
> But then there's GLASS1, the Metacello project, published at
> github://glassdb/glass:master/repository, which is apparently something
> newer than GLASS,which is published elsewhere, even though GLASS1's
> repository is not called github://glassdb/glass1, somewhat confusingly.
GLASS1 was created because of a technicality in using Metacello. I 
wanted to move the entire GLASS repository to github, but if I moved it 
to github and retained the project name GLASS i would have to use the 
same configuration: ConfigurationOfGLASS, but because a configuration 
class has to be loaded before you can load the code from the 
configuration and referencing a github repository from a configuration 
requires that a new version of Metacello be loaded and because I insist 
of supporting older versions of GemStone (like GemStone 2.4.4.1) with 
the latest versions of GLASS, it was just easier to rename the project 
ot GLASS1 and manage it with ConfigurationOfGLASS1 ...

I am in the process of re-branding GLASS/GLASS1 to GsDevKit and 
eventually the BaselineOfGsDevKit will be used to load GsDevKit and I 
will create a version of GsUpgrader that exunges the GLASS/GLASS1 
configurations and baselines.
>
> I've always asssumed that GLASS/GLASS1 is just a collection of low-level
> dependencies needed to load Seaside on GemStone. But isn't that also what
> Grease is, in a way?
GLASS has actually turned into a compatibility layer between the base 
GemStone class library and Pharo/Squeak. Grease is a compatibility layer 
for Seaside, but GLASS goes farther than that. GLASS provides support 
for Monticello and fairly big chunks of the Pharo/Squeak class library 
above and beyond those required for Seaside.
>
> The GLASS readme says how to load it, but not what it *is*, or when you
> may want to load it.
I am a software developer, not a marketeer:)
>
> On the other hand, the Seaside 3.1 installation instructions say to use
> GsUpgrader to upgradeGrease, and no mention of using it to upgradeGLASS1.
>
> So if GLASS1 isn't needed for Seaside, what is it for?
The Seaside configurations now have a dependency upon GLASS1. So there 
is no need to explicitly load GLASS1 before Seaside ... But Seaside 
definitely depends upon GLASS1. All of the projects that have been 
ported to GemStone should be using the latest version of GLASS1.

#upgradeGrease is needed because there were some issues with getting 
Seaside to load the proper version of Grease ... at the end of the day, 
the best{?} solution was to explicitly load the proper version of Grease 
and then use 'lock' to ensure that the proper version continued to be used.

#upgradeGrease also loads the latest version of Metacello which is critical.

As I said earlier, I support GemStone 2.4.4.1 which dates back to 
sometime in 2009, when Metacello was first invented and it is 
particularly hard to use Metacello to upgrade Metacello especially when 
the bug that you are trying to fix prevents Metacello from properly 
loading ... so the whole GsUpgrader class is designed to allow me to 
make sure that things are loaded in the proper sequence without exposing 
the relatively complicated sequence to you guys ... The existence of 
GsUpgrader has made it much simpler to write the load instructions:)

>
> Sorry for such a silly question by a member of a mailing list that is,
> after all, called "GLASS" ;-)
No problem ... over the years the marketing and technical material for 
GLASS has migrated from my blog to google code and a website or two ...

The GsDevKit initiative is an attempt by me to pull all of the material 
into one place[1], but as Richard pointed out, it is a work in progress:)

Dale

[1] 
https://github.com/GsDevKit/gsDevKitHome#open-source-development-kit-for-gemstones-64-bit-


More information about the Glass mailing list