Lukas,

I'm largely on board, but have a couple of concerns, followed by an addition:


--- it is not possible to assign a new value to a method argument

Doing that strikes me as an accident waiting to happen.  What is limited by the 
restriction?  The workaround that comes to mind is to pass around a value 
holder, which is a nice red flag to anyone reading the code that 
"out-parameters" are likely.  Of course, one can also use instance variables or 
temporaries (local only) to overcome most problems where the restriction has 
bothered me (and IMHO, saved me from doing something unintended).


--- variable names are enforced to be unique in all scopes

To which I say, "thanks for the help!!"  What is the down side of this?  Or are 
you asking for name spaces and disambiguation?  But I would argue that the 
latter is changing the language, not making the compiler less suspicious.


My addition: give me back my underscores :) 



*---"In my opinion the language should be as open as possible."

I really can't agree here.  It is one thing to avoid enforcing aesthetics; it 
is another thing to accept ambiguous input.

Bill





Wilhelm K. Schwab, Ph.D.
University of Florida
Department of Anesthesiology
PO Box 100254
Gainesville, FL 32610-0254

Email: [email protected]
Tel: (352) 273-6785
FAX: (352) 392-7029


>>> [email protected] 12/23/2008 9:41:01 AM >>>
Seaside depends on external packages, that we don't have control over.

For example there the Swazoo package contains a class-instance
variable that is uppercase. Unfortunately Pharo throws a notification
(instance variables should begin with a lower case characters) when
loading that code. This is awkward, because it makes it impossible to
load code automatically and gives us additional work.

In my opinion a programming language should be as open as possible,
and if possible not restrict the user in any way, even if this is
against best practices. Unfortunately many of those restrictions are
built into our language that wouldn't be necessary:

- class names and class-variable names are enforced to be uppercase
- class instance-variable names are enforced to be lowercase
- it is not possible to assign a new value to a method argument
- variable names are enforced to be unique in all scopes

In my opinion the language should be as open as possible. It is the
purpose of Code Critics to point out smells, not the task of the
compiler to reject code that doesn't follow best practices.

I am slightly frustrated trying to work around these restrictions ...

Cheers,
Lukas

-- 
Lukas Renggli
http://www.lukas-renggli.ch 

_______________________________________________
Pharo-project mailing list
[email protected] 
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to