Jaroslaw said:
Nope. I hate Lisp syntax.
This should not prevent you from learning it - at least, you'd then
avoid making dumb statements...
This is not the same. Ruby can also lock access to attributes.
Please re-read the doc for these methods.
Freezing is
different. It can freeze any object so you will not be able to add or
delete any method. Once freezed object cannot be unfrozen. So you can be
sure that nobody will change you classes if you do not like.
Python?? Where?
RTFM:
http://www.python.org/doc/2.3.5/lib/built-in-funcs.html
What about learning Python instead of repeating arguments from clueless
people ?
No. Data hiding are in Python.
Oh, yes ? Where, exactly ?
Ruby uses security similiar to Java. If the
class has method marked as private it cannot be used in children classes.
Python methods are attributes, so from a Python POV, this is still
data-hiding. But granted, I should have used "language-inforced access
restriction" instead. So let me rephrase:
This is not "security", this is language-inforced access restriction.
Yes and no. Yes, because you cannot read them directly without accessors.
And no, because you can read them if you set proper accessor.
Adding accessors doesn't make the attributes public.
Zope is only a great application.
Zope is a framework and an application server.
Invision Power Board or ezPublish are
also great application, but it does not mean that PHP is great language.
You can't say that Python is dumb when it comes to security and reject
an example of a Python framework that address the problem.
Python has no security at all. I has only convention and mangling.
Please define "security". I fail to see how language-inforced access
restriction (and mandatory declarative static typing etc) relates to
'security'. As far as I'm concerned, security is about protecting a
system from piracy, not about inflicting useless pain to programmers.
Of
course somebode can say, it is enough, and maybe it is. But I think, that
this might be another reason why Java guys prefer Ruby to Python.
Agreed - but this all boil down to Ruby having a more canonical object
model than Python.