On 12/3/15 9:59 PM, tcak wrote:
On Thursday, 3 December 2015 at 20:37:04 UTC, Steven Schveighoffer wrote:
On 12/3/15 3:16 PM, Meta wrote:
On Thursday, 3 December 2015 at 19:10:04 UTC, Steven Schveighoffer
wrote:
And the lack of semi-colons has poisoned me from writing syntactically
valid lines in D :)
Surprisingly (or not), lack of semicolons is something that I have
sorely missed in D/++/Java/C#/etc. ever since I first tried Ruby.
There's a lot to be said for the little quality of life features in a
language.
You may misunderstand -- I prefer semicolons. But having to write
swift code for a few weeks, I find now when I write D code I forget
them all the time (where usually my proper semi-colon rate is near 100%).
Since you have experience, what is the level of the language? Is it C or
Javascript level?
It is meant to be a replacement for Objective C. I'd put it more at the
C level, but there are something that are very UNLIKE C. For example,
they do not have any direct instance variables, everything is a
property. There seem to be no low-level types, even 'Int' is a struct.
But I assume the compiler whisks that away.
The type system is static, and everything is done via inference, which
is very nice.
The nullable unwrapping system takes a while to get used to.
Are you able to define C bindings? Can I do socket programming? Are
Posix function accessible? How is the speed?
See here:
http://stackoverflow.com/questions/24004732/how-to-call-c-from-swift
You basically need a bridging header that defines what can be called
from swift. I don't know the details of what happens in the compiler for
this.
Speed wise, I can't be sure. I'm sure others here have a better
understanding. All I've used it for so far is UI code on iOS.
Usability-wise, it's much easier to write swift than Objective C.
One thing I would LOVE to see in D from swift is inference of enum names.
In D-speak, it looks like this:
enum Foo
{
Bar,
Baz
}
Foo foo;
switch(foo)
{
case .Bar: // Foo is implied
case .Baz:
}
void fun(Foo);
fun(.Bar); // Foo is implied
I don't think we could have this exact syntax, though.
-Steve