On Monday, 28 April 2014 at 18:18:25 UTC, Ola Fosheim Grøstad wrote:
On Monday, 28 April 2014 at 18:07:45 UTC, John Colvin wrote:
What features does python, as a language (syntactical preferences aside), actually have to recommend it over D (assuming drepl* or similar became full-featured)?

Libraries.
For closures for arrays and dicts.
Tuples.
Heavy duty reflection and runtime dynamics.
(Runtime extensible classes.)
(Runtime integration of python and templates.)
System support (app engine, etc).
Lots of how-to-stuff on the web.

D can actually do a rather good job of runtime reflection. I made a runtime reflection module (https://shardsoft.com/stash/projects/SHARD/repos/shardtools/browse/source/ShardTools/Reflection.d / https://shardsoft.com/docs/ShardTools/Reflection.html) for my own personal code and it's served the uses I've needed it for quite nicely. Python I'd imagine has runtime reflection by default, but you could do this in D too by using RTInfo to automatically generate reflection data for every class. And while I'm sure Python has much more advanced reflection capabilities, I don't think the vast majority of users really require much more than the basics like looking up fields / invoking methods from user input, which D can easily handle. In the situations where you do need a completely dynamic type, people have already made such types in D by using opDispatch (http://forum.dlang.org/post/[email protected]).

(I wouldn't recommend others to use my reflection module directly as it'll get breaking changes and probably has bugs, but it's Boost licensed so if anyone wanted to they could add relevant parts into their project. I think it's also responsible for very large executables on OSX/Linux, but not on Windows.)

Reply via email to