Page 1 of 8 123 ... LastLast
Results 1 to 10 of 79

Thread: D Language Still Showing Promise, Advancements

  1. #1
    Join Date
    Jan 2007
    Posts
    15,108

    Default D Language Still Showing Promise, Advancements

    Phoronix: D Language Still Showing Promise, Advancements

    The D programming language continues to advance and show signs of promise as a high-quality computer programming language that may eventually prove competition for C. Last month there was the 2013 D programming language conference where a lot was discussed...

    http://www.phoronix.com/vr.php?view=MTM5MTg

  2. #2
    Join Date
    Feb 2013
    Posts
    353

    Default

    Will never replace C/C++ until they drop the GC, there's no real argument for GC in a systems language, using C++11 smart pointers feels really good.

  3. #3
    Join Date
    Sep 2008
    Location
    Vilnius, Lithuania
    Posts
    2,600

    Default

    Just as a heads-up, all the conference videos can also be found on YouTube here:
    http://www.youtube.com/channel/UCzYz...oQaQYXw/videos

    Quote Originally Posted by peppercats View Post
    Will never replace C/C++ until they drop the GC, there's no real argument for GC in a systems language, using C++11 smart pointers feels really good.
    Nope. GC can actually be more efficient than manual memory management. And those who absolutely must go around it, it's easy to either turn it off or simply avoid using functions that invoke it. See this presentation for more information on the subject:
    http://www.youtube.com/watch?v=1MF5bcmvJ0o

  4. #4
    Join Date
    Feb 2013
    Posts
    353

    Default

    Quote Originally Posted by GreatEmerald View Post
    Nope. GC can actually be more efficient than manual memory management.
    no
    And those who absolutely must go around it, it's easy to either turn it off
    Enjoy not being able to use the standard library.

  5. #5
    Join Date
    Sep 2008
    Location
    Vilnius, Lithuania
    Posts
    2,600

    Default

    Quote Originally Posted by peppercats View Post
    no
    Yes. Have you looked at the presentation?

    Quote Originally Posted by peppercats View Post
    Enjoy not being able to use the standard library.
    Not all standard library functions invoke it; and whenever you need to use something that does invoke it, and you do that sparingly, the GC won't slow you down. Again, refer to the presentations. Here they are using D in a game engine by avoiding GC. Here they are using D in a performance-critical environment and still have the GC enabled.

  6. #6
    Join Date
    Jan 2011
    Posts
    396

    Default

    Well, GC can be more efficient than manual memory management, if the manual management is badly implemented .

    D is more an alternative to C++ than to C, due to its high complexity and similar features. On the other hand, Go can be viewed as a better C (possibly slower and not as versatile, but with great improvements and simplicity.)

  7. #7
    Join Date
    Dec 2012
    Posts
    551

    Default

    There is also Rust, which is exactly like D (C ABI compatible, focus on productivity and clarity, neat syntax) except it uses manual memory management if you really want it.

    I always see D as the performance nuts Java or C# - you get native performance and garbage collection, better features (function pointers / references, lambdas, and contracts are wonderful, global scope, and C# delegates don't compare) and I see Rust as the functional programmers C++ (syntax brevity, less boilerplate, only downsides are that it carries over some syntax pitfalls).

  8. #8
    Join Date
    Apr 2009
    Posts
    563

    Default

    Quote Originally Posted by stqn View Post
    Well, GC can be more efficient than manual memory management, if the manual management is badly implemented .

    D is more an alternative to C++ than to C, due to its high complexity and similar features. On the other hand, Go can be viewed as a better C (possibly slower and not as versatile, but with great improvements and simplicity.)
    The problem with GC is not speed, but lack of control, IMHO. I want to know when things get collected, for low level programming. So, the smart pointer idea works better than GC for that type of work, I think

    I agree that D compares with C++, not C. I was surprised when I saw Michael's article.

    Go, sure, it is interesting. I don't think it is a C replacement, but it might become a low level language of interest for many applications. What I have in mind is that easy multithreading will become more and more relevant. Where I work, we are using 24 virtual processors in our workstations. I can see 100 arm cores running desktops in a few years. Giving people a language that is 20% slower _per_ core, but allows them to easily distribute the code to a 100 threads, hell, isn't that sweet!

  9. #9
    Join Date
    Sep 2010
    Posts
    474

    Default

    Another solution for the pointer, garbage collection problem is Automated Reference Counting:
    http://en.wikipedia.org/wiki/Automat...rence_Counting
    http://stackoverflow.com/questions/8...-pros-and-cons
    Seems very promising, next big thing in programming languages.

    Love the concept of ranges and slices in D.
    Although using a syntax with open interval for the upper limit comes over a little non-intuitive and strange to me.

    http://dlang.org/d-array-article.html

    (Even saw an example that needed to do extra calculations because it was one less than the actual end.
    The choice of how ranges work could have been better.)
    Last edited by plonoma; 06-19-2013 at 01:41 PM.

  10. #10
    Join Date
    Aug 2012
    Location
    Pennsylvania, United States
    Posts
    1,911

    Default

    Quote Originally Posted by plonoma View Post
    Another solution for the pointer, garbage collection problem is Automated Reference Counting:
    http://en.wikipedia.org/wiki/Automat...rence_Counting
    http://stackoverflow.com/questions/8...-pros-and-cons
    Seems very promising.

    Love the concept of ranges in D.
    Although using a syntax that tells not to include the number that says where to stop comes over a little non-intuitive and strange to me.
    (Even saw an example that needed to do extra calculations because it was one less than the actual end. The choice of how ranges work could have been better.)
    You mean the ARC that got added in C++11 in the form of Smart Pointers, Shared Pointers and Widgets? :P

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •