Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> public/protected/private is a dumb idea in dynamic languages.

PHP is mostly a static language; it has more in common with Java than with say Ruby.

> prefix it with an underscore

Oh god, really. Next you'll be telling us we don't need namespaces, we can just use an underscore as a separator!

> and say "the results are undefined if you call methods that start with an underscore". Done. Easier to maintain, easier to test, less code to type in.

Or you could just build that all into the language itself so it's self documenting and provides a nice concise error message when used incorrectly!

I'm amazed that people would argue for naming conventions over actual features. Hell, nobody is saying you have have to use it; if you'd rather use underscores the languages will let you.



"PHP is mostly a static language; it has more in common with Java than with say Ruby."

Can you expand on that point a bit? I see PHP as far more similar to Ruby than Java when it comes to dynamic vs static.


A few things about PHP, Java, and Ruby: PHP, Java, and Ruby are all compiled to byte code before executed. Java and Ruby are strongly typed languages. PHP and Ruby are dynamically typed languages (no explicit variable declarations). Ruby and PHP are compiled when run but Java is compiled ahead of time.

But significant to my point: Ruby classes are created at runtime but PHP and Java classes are created at compile time. This is why you can't, with runtime code, alter the structure of a class in PHP or Java.


Your point about class definitions being frozen is apt — but much of the nomenclature you're using to describe languages is meaningless.

Please read the classic What To Know Before Debating Type Systems: http://cdsmith.wordpress.com/2011/01/09/an-old-article-i-wro...


Not meaningless, just debated. And even then, the web has helped to reduce the confusion around the terms.

http://en.wikipedia.org/wiki/Type_system#Static_typing

That article you linked to is useless. If we just called them alpha, beta, gamma, and delta type systems would a rose by any other name smell sweet?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: