Uno de mis errores más comunes es que nunca puedo recordar si algo es un método o una propiedad, por lo que estoy constantemente agregando o quitando paréntesis.¿Por qué java/javascript/python fuerza el uso de() después de un nombre de método, incluso si no toma argumentos?
Así que me preguntaba si había una buena lógica detrás de hacer la diferencia entre llamar a las propiedades de un objeto y los métodos explícitos.
Obviamente, le permite tener propiedades y métodos que comparten el mismo nombre, pero no creo que se acerca mucho.
El único gran beneficio que se me ocurre es la legibilidad. A veces es posible que desee saber si algo es un método o una propiedad mientras mira el código, pero tengo problemas para encontrar ejemplos específicos cuando sería realmente útil. Pero soy un n00b, así que probablemente aún no me he encontrado con una situación así. Apreciaría ejemplos de tal situación.
Además, ¿hay otros idiomas donde la diferencia no es explícita?
De todas formas, si se pudiera responder, que me ayudará a ser menos molesto cada vez que hago este error^- ^.
ACTUALIZACIÓN: Gracias a todos por las respuestas impresionantes hasta ahora! Solo tengo una semana de js y 1 día de python, así que no tenía idea de que pudieras hacer referencia a las funciones sin llamarlas. Eso es genial. Tengo un poco más de experiencia con Java, así que de allí vengo en su mayoría ... ¿alguien puede presentar un argumento igualmente convincente para que ese sea el caso en Java, donde no se puede hacer referencia a las funciones? Además de ser un lenguaje muy explícito, con todos los beneficios que conlleva :).
no es tanto que requiera '()', ya que le está diciendo al compilador y a los futuros televidentes de su código, "Esta es una función que no requiere parámetros". Explícito siempre es mejor que implícito. – orokusaki