7 ms·
For an excellent discussion between the philosophies that went into the design of D and how they compare to Go, visit https://groups.google.com/forum/#!topic
by vvnraman 13y ago
For an excellent discussion between the philosophies that went into the design of D and how they compare to Go, visit
https://groups.google.com/forum/#!topic/golang-nuts/8k59RgkeJ6s
The discussion between Andrei Alexandrescu (Facebook) and Ian Lance Taylor (Google) is highly intellectual, especially the part about how each language addresses concurrency.
EDIT: Removed dot at the end of the URL
- swah 13y ago(extra dot in the end of the URL)
- mcav 13y agoPSA: The best way to delimit URLs is to enclose them with angle brackets (< and >) as per < http://www.ietf.org/rfc/rfc2396.txt http://www.ietf.org/rfc/rfc2396.txt >. However, like many flaws with HN's underdeveloped software, you can't actually do that on HN because the parser includes the trailing > in the URL. So your best bet here is with whitespace.
- leoedin 13y agoI'd argue that the world has moved on since 1998. We live in a world full of URL parsers of various abilities, and doggedly enclosing URLs in angle brackets because of a memo written so long ago it also references gopher seems stubborn to no obvious gain. Given the state of the modern internet, I definitely wouldn't consider angle brackets to be the best way to delimit URLs.
- smrtinsert 13y agoAnd yet hashtags exist and lisp is cycling back yet again. I don't know if there's a convention, might as well re-explore it.
- dangayle 13y agoI think most of us are more used to delimiting urls using [markdown syntax](http://daringfireball.net/projects/markdown/syntax http://daringfireball.net/projects/markdown/syntax)
- dchest 13y agoWhich is <http://www.example.com> http://daringfireball.net/projects/markdown/syntax#autolink http://daringfireball.net/projects/markdown/syntax#autolink
- dangayle 13y agoHuh. I never noticed that. Thanks
- logn 13y agoI just make sure there's whitespace before and after links (like this, http://example.com http://example.com )
- acqq 13y agoThe most important Andrei's quote: "D has resolutely exited C++'s shade because it is good at things C++ is not good at, in addition to being good at things C++ is good at. Also, Go would be tenuous to frame as a better C because it cannot do everything C does - e.g. unsafe memory access and manual memory management, which are needed in certain systems - and it interoperates poorly with C." In short, he states that D can do unsafe memory access and manual memory management. Go can't.
- javajosh 13y agoYes, if I was to learn a systems programming language, I would only pick from those that allow manual memory manipulation. Either that or the ability to trivially integrate with C functions that can do manual memory manipulation.
- sambeau 13y agoI fear you are confusing systems programming language and operating systems programming language (or conflating). Go is a great systems programming language especially for modern concurrent systems — http servers etc. It talks to C easily so you can integrate all kinds of system level code into your apps. Having a Garbage collector makes it trivial to write long-running daemons. Modern operating systems have traditionally been written in C (and C++) plus some assembly language code. D can do everything C & C++ can do but it would still no doubt need the assembly language code. Go lacks manual memory management. Some say that this would be a barrier for writing an operating system while others don't. The fact that you would have to use some assembly language code to talk to the hardware and you might need to add some manual memory management via assembly language code. After that I'm sure the garbage collector would make the OS more reliable and potentially a little quicker in places. Either way I don't see why Go gets criticised for needing a bootstrap layer when operating systems written in C and C++ also need this.
- fauigerzigerk 13y ago>I fear you are confusing systems programming language and operating systems programming language (or conflating). Systems programming doesn't seem to be a very well defined term. My understanding is that it is certainly not application programming and it requires pretty tight management of hardware resources. That includes things like operating systems, database systems, embedded systems, networking software like firewalls, etc.
- AsymetricCom 13y ago> What is certain is that D's type system is expressive enough to allow libraries to reject during compilation embarrassments such as transporting pointers over the network. How does the language do this? Doesn't that have more to do with the design of the program itself? It certainly is a interesting security idea, much more strict than sending remote procedure calls or serializing objects and sending them across the network.