Normally, Smalltalk does have some limitations, especially in the areas of concurrency and distributed processing. These limitations are not inherent in the language’s design. Rather, it’s a question of implementation. GemStone/S is a fantastic implementation which addresses these weaknesses. I just wanted to bring this to your attention.

What is GemStone?

  1. Object space limited to one VM.
  2. Object space limited to one host.
  3. Object space limited to available RAM.
  4. Object changes (since last image save) lost when VM exits.

Namely,

— Object space visible to thousands of VMs on thousands of machines.

— Object space limited by disk, not RAM.

— Object changes managed by ACID transactions:

  • Atomic
  • Consistent
  • Isolated
  • Durable

— Object changes guaranteed persistent once committed.

Key Features of GemStone

— Billions of objects.

— Thousands of users.

— Thousands of machines.

— Thousands of transactions per second.

— Terabytes of data.

Concurrency

— Multiple user sessions.

— Built-in database transactions:

  • Commit
  • Abort
  • Continue

— Optimistic Concurrency (Reduced Conflict Collections).

— Pessimistic Concurrency (object-level read/write locks).

— Namespaces (shared and private).

Security

— Object-level security (user, group, world permissions).

— Login Security

  • Traditional User-id / Password
  • Single-Sign-On (GSSAPI/Kerberos)
  • LDAP
  • PAM
  • X509 Certificates (new in 3.5)

— Privileged Operations

  • #GarbageCollection
  • #OtherPassword
  • #SystemControl

Very Large Collection Support

— Collections of millions of objects.

— Optimized searches using b-tree indexes:

  • Equality Indices (a = b)
  • Identity Indices (a == b)
  • Reduced Conflict Indices

Interfaces to Other Smalltalks

— VisualWorks®: GemBuilder for VisualWorks®.

— VA Smalltalk®: GemBuilder for VA Smalltalk®.

— Pharo: tODE, gt4Gemstone — native Pharo support coming soon.

— Jade / Jadeite (Dolphin).

Interfaces to Other Languages

— C/C++: GemBuilder for C.

— Java: GemBuilder for Java.

Interfaces to Relational Databases

— Oracle: GemConnect for Oracle.

— Sybase: GemConnect for Sybase (open source).

Licensing

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store