Polyglot

Build Valuable Systems, Better and Faster

Why Dynamic Typing?

This is a discussion of the benefits and drawbacks of dynamic typing based on specific questions by Anatol Fomenko.

The following is a reference to the main thread-point that this short paper is on:

Original Posting: Re: Why dynamic typing (was: Compiler as mediator)

Anatol Fomenko wrote:
> ...Why Smalltalk is dynamically typed, and why it
> does not affect negatively the stability of the large Smalltalk
> applications?

Rephrasing slightly gives the two following questions:

  1. Why is Smalltalk dynamically typed?
  2. Why does dynamic typing (as done with Smalltalk) not negatively affect the stability of large applications?

The first question would be better answered by Alan Kay and the Smalltalk team more than anyone else relaying their reasons. Alan Kay has described some of his reasoning in the book “History of Programming Languages II”, various OOPSLA & Smalltalk talks, and other sources.

Foundations of Object-Relational Mapping

This document describes general concepts needed for object-relational mapping.  It serves as an introduction to the issues involved in doing general object-relational mapping and provides a foundation for understanding frameworks that supports that mapping.

The document begins by describing object modeling and relational modeling.  It then covers how to integrate objects into the relational model.  This is followed by how to implement that integration with current database systems.  Next, the issues for client-server objects are covered independently from the whole mapping problem.  This leads to the conclusion, which finishes the preparation for analyzing specific object-relational approaches by reviewing the topics and describing object-relational approaches.

Object-relational mapping is the process of transforming between object and relational modeling approaches and between the systems that support these approaches.  Doing a good job at object-relational mapping requires a solid understanding of object modeling and relational modeling, how they are similar, and how they are different.  Ideally we should have a single integrated model that described both approaches.  This would ensure we understand and explicitly document both concepts and their relationships.  This document will present what we believe to be the only correct integration of the two worlds that is suitable for implementation on a relational database.

Tuple-Marks: NULLs Everyone Can Live With

There is also a PDF version here which might be easier to read because it has a bit more formatting.

There has been a great deal of discussion about NULL values in relational algebra.  There is the argument that NULLs help us with real database problems of handling lack of information. There is a counter-argument that NULLs and three-valued logic (3VL) cause major problems with relational algebra and are unnecessary.  These arguments have been very informative and there is no reason to repeat them.  Instead I will change the playing field.

SmallJava: Smalltalk to Java… Using Language Transformation to Show Language Differences

There is also a PDF version here which might be easier to read because it has a bit more formatting.

In this document I will compare and contrast Smalltalk and Java using a somewhat unusual approach: I will transform one language (Smalltalk) into the other (Java) by a series of small steps in an intermediary language (SmallJava).  With each step I will discuss how the new properties of the intermediate language compare and contrast to the properties of the previous version of the language.