On Monday, 25 March 2013 at 13:02:49 UTC, bearophile wrote:
foobar:
"idiomatic" is a relative term, tightly coupled to a specific
language. Idiomatic D code for example is very different from
idiomatic Haskell code.
Idiomatic Python style in D would be very unidiomatic D code
and vise versa. Each language has its own conventions, styles,
set of distinct features, etc, etc and trying to use "language
A" style while coding in "language B" is like trying to fit a
square peg in a round hole.
For instance, I would NOT use smalltalk naming conventions
while writing say Java code. Both have very good and very
consistent styles that are tightly coupled with their
respective syntaxes and are very unsuitable to use in the
other language.
In short, if you want to discuss python features, style or
specific math plotting libraries, please post to the python
mailing list, not D's NG.
Imperative/OOP languages are not totally different from each
other, both Python and D derive strongly from C that comes
partially from Algol, and D copies several things from Python
(string functions, part of the module system, part of the range
design comes from itertools, and so on). So comparing languages
and their features is very useful.
If you have not used named arguments in languages that
idiomatically use them, then it's not easy for you to see how
and why they are sometimes useful and good.
In Python function arguments don't have a type, so named
arguments are more useful than in D. But from my experience in
Python, I believe D could enjoy named arguments.
Bye,
bearophile
C is a HORRIBLE language regarding naming conventions and is a
*very poor choice* to learn from in this regard. Python sets very
high expectations regarding "beautiful code" and IMHO fails
miserably (more so because of the starting higher expectations).
I admit to being spoiled by actually beautifully designed
languages that are far superior in that respect. I suggest to
learn Smalltalk for a language that emphasizes code readability
decades before Python became cool.
I find Ruby which is based on Smalltalk's semantics and spirit to
be more elegant and less pretentious compared to Python.