On 03/08/2011 02:43 PM, Jim wrote:
spir Wrote:

On 03/08/2011 09:29 AM, bearophile wrote:
I don't know much about Scala language, so I've found this small funny thing in 
the Lambda the Ultimate blog. In Scala parameter names can be deprecated:

def somefunction(@deprecatedName('x) y: Int) = ...

This gives deprecation warning to callers using the parameter name x.


More info. In Scala annotations are user-defined, I presume, have methods, etc.:

http://www.scala-lang.org/archives/downloads/distrib/files/nightly/docs/library/scala/deprecatedName.html

This helps against one of the problems Don has with named arguments.

I read 2-3 times Walter thinks warnings are bad. Things are either correct, or
not. Right, I can understand; if the language is correctly designed, then there
is no true "grey zone" (think C's numerous unsafe/border uses).
But language changes are not about correct/incorrect language use by
programmers; instead, their use is initially correct. When the language itself
evolves, precisely, warnings are a great tool to help evolving a code base
synchronely (this is also attested by other languages).
Since D evolves fast, there could easily be hordes of warnings, which could
turn very annoying. There should be a compilation setting (config file and/or
command-line) turning off given warnings.


Yes, you could very well argue that the user's code is correct for the version 
of the API it was written to use. A later, modified, version of the API does 
not make the old programs incorrect so there should be no warnings OR ERRORS!

A correctly designed language supports means of defining and selecting versions 
of interfaces and implementations. With this old and new code can interconnect 
as long as they do not break the contract. For example, new versions of the 
implementation should be just fine to use as long as the pre- and 
post-conditions, invariants, and unit tests approve/pass. How do you solve that 
in practice?

I did not mean anything like that at all, I guess. (Or do /I/ misunderstand you.) I meant warnings are a very practicle tool for devs to evolve their code base along with the language ('s reference version). Or, at the very minimum, know what in their code is sticked in the past!

Denis
--
_________________
vita es estrany
spir.wikidot.com

Reply via email to