Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Re: Class variables in O'Caml
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 1996-05-14 (08:06)
From: Chet Murthy <chet@w...>
Subject: Re: Class variables in O'Caml

Jerome Vouillon writes
::On Fri, 10 May 1996, Thorsten Ohl wrote:
::> >>>>> "Christian" == Christian Boos <> writes:
::> Christian> IMO, the use of references is not so unnatural. Together
::> Christian> with structs, it provides a clean way to encapsulate global
::> Christian> state and actions for classes.
::> Sure, it us possible to do it.  But, IMHO, class variables should be
::> declared in the class and be opaque.  If you put several classes in a
::> module, the use of module wide references makes much less sense.
::> Another hack is to define a sub-module for each class, but that's not
::> nice either ...
::> I'm just curious if (and why) this syntactic sugar has been left out
::> intentionally.
::It has not been left out intentionally. Many object-oriented languages 
::(C++, Objective C and Modula 3, for instance) do not have class variables, 
::so I did not even thought of adding them.
::But I do not plan to implement class variables. I don't want to add too 
::many features, and I don't think they are an important one: in my 
::opinion, they are not commonly used, and they can be easily simulated 
::using references as you noticed.
::  Jerome Vouillon

Actually, C++ statics are class variables.  I would not be surprised
if Objective-C had them, too, given that Java has them too. (I haven't
looked at ObjC doce in a long time)

Class variables are valuable syntactic sugar, because they group the
mutable, but shared, state of a class together, in a way which is
difficult for a naive programmer to ignore.

In the commercial world, it seems that such function, while admittedly
syntactic sugar, is important.

I guess what I'm saying is, it would be a really nice thing if O'Caml
has them -- it would make it much easier to sell to the commercial