On 6/4/14, 3:33 PM, Craig Dillabaugh wrote:
On Wednesday, 4 June 2014 at 17:31:56 UTC, Ary Borenszweig wrote:
On 6/4/14, 1:27 PM, Meta wrote:
On Wednesday, 4 June 2014 at 06:19:05 UTC, Andrei Alexandrescu wrote:
When that person made the statement about expressing his mental model in
a simpler way that is still somewhat fast, and then optimizing/adding
annotations/etc. after he gets it working, I kept expecting you to
mention RDMD and D's ability to be used for scripting, and
purity/nothrow/@safe/@nogc inference. This is an advantage D has over
Rust and C++. With Rust especially, there is no way to avoid dealing
with its pointer semantics, as they permeate the language. With D, you
can write in a C or even Python-like way (while not having to worry
about ownership, memory, etc. as the GC handles it for you), but you can
then optimize and add annotations to your code to get a lot more
performance and safety once your initial implementation is working.
You still have to worry about types, though.
But using function templates and the like you can still get fairly
'Python-like' code in D. I find dealing with types to be one of the
areas that requires the 'least' amount of mental effort in software
development. I don't understand why people see 'untyped' languages as
simpler for the most part.
I was actually talking about having to specify types everywhere, like in
function signatures, the fields of classes and structs, etc.
You can still have a language that feels dynamic but is statically
typed. The compiler catches type-related bugs for you, and you can
prototype something very fast. Then you can add type annotations (if you
want). I wouldn't say this language is 'untyped'.
One such language is Julia.