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
