Announcement

Collapse
No announcement yet.

D Language Support Cleared For Being Added To GCC

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    Originally posted by pkphilip View Post

    There are actually quite a few projects written in object pascal - see below:

    Lazarus gallery - http://wiki.freepascal.org/Lazarus_Application_Gallery
    From Quora - https://www.quora.com/What-are-some-...tten-in-Pascal
    Well this is interesting. From that list:
    Coedit is a small, open-source, cross-platform IDE for the D language.

    Also one application not on that list is UltraStar Deluxe which AFAIK is the best open source (and not only) karaoke engine available.

    Comment


    • #32
      Originally posted by computerquip View Post

      C++ has some of the most atrocious parser rules I know of. C is partially the problem. D was popular at a time when people wanted a C++ that wasn't garbage from a grammar point of view and wasn't constantly having to work rules around it. For instance... Templates are simple from a grammar point of view in D. Templates in C++ are liable to cause some who has to implement that shit to call a suicide hotline.
      If you mean this ( https://stackoverflow.com/a/71706 ), it was fixed long ago. D fixes some ambiguous cases, but overall, for a seasoned programmer, the difference is quite subtle. The !() notation is a rather simple and local fix for a specific problem and they even managed to introduce new problems - for example, symbol references in the string parameters to templates are problematic as they are instantiated in another scope.

      Overall, D shares major parts of the grammar with C/C++. The starting point is rotten. Few examples: the comma operation, declaration syntax (vs that of Pascal/Scala), pointer notation. C/C++ is also full of questionable implicit conversions and operators, providing a source for UB. All these problems make the C derived languages fail simple usability tests and immediately show up in the code review guidelines. Many other modern languages have given up C's primitive syntax as a starting point. For a good reason. A bit longer study of C/C++ would reveal that most of the basic constructs could be replaced with something else.

      Until D forced garbage collection, I thought it was the language of the future.
      You thought C++ was the language of the future until D introduced you to GC? Um, ever heard of Java, JavaScript, C#, Python, Ruby, Groovy, Kotlin, Scala, Lisp, Haskell, ... ? If I remember correctly, I've used JVM languages for 17 years now, and I wasn't even an early adopter. Scripting/JVM/CLR has basically dominated the server market, that is the majority of programming positions. (Nowadays, the same applies to mobile and modern desktop apps).

      Comment


      • #33
        You thought C++ was the language of the future until D introduced you to GC?
        I'm going to give you the benefit of the doubt and assume that was an honest misunderstanding.

        To me, it seems pretty obvious that the proper interpretation was "I thought D was the language of the future until D went in a direction that made using D without GC a non-starter."

        Comment


        • #34
          Originally posted by caligula View Post

          If you mean this ( https://stackoverflow.com/a/71706 ), it was fixed long ago. D fixes some ambiguous cases, but overall, for a seasoned programmer, the difference is quite subtle. The !() notation is a rather simple and local fix for a specific problem and they even managed to introduce new problems - for example, symbol references in the string parameters to templates are problematic as they are instantiated in another scope.
          No, I don't mean that. That's actually a consequence of having bullshit grammar rules that are cryptic as Mayan runes though.

          Originally posted by caligula View Post
          Overall, D shares major parts of the grammar with C/C++. The starting point is rotten. Few examples: the comma operation, declaration syntax (vs that of Pascal/Scala), pointer notation. C/C++ is also full of questionable implicit conversions and operators, providing a source for UB. All these problems make the C derived languages fail simple usability tests and immediately show up in the code review guidelines. Many other modern languages have given up C's primitive syntax as a starting point. For a good reason. A bit longer study of C/C++ would reveal that most of the basic constructs could be replaced with something else.
          The grammar doesn't have that much in common. What they do share are similar lexical tokens which happen to be pretty similar across all strongly typed languages. You can view D's grammer here. You can view major parts of C++'s bullshit grammar here. They also share a similar format of code. For instance variables and functions have attributes, you have blocks of code, you have statements which require semi-colons to denote the end of said statement. However, you'll notice where C++ starts to get really complex (templates or anything in C++11 or further), it's extremely simplified in D. Parts that *look* like they're easy to implement a parser for in C++ tend to be quite a bit more difficult than you might initially think. Even if you *can* get them implemented, correctly identifying mistakes in code is hellish. It's why we end up with 30 errors for accidentally type ":;" instead of "::".

          Originally posted by caligula View Post
          You thought C++ was the language of the future until D introduced you to GC? Um, ever heard of Java, JavaScript, C#, Python, Ruby, Groovy, Kotlin, Scala, Lisp, Haskell, ... ? If I remember correctly, I've used JVM languages for 17 years now, and I wasn't even an early adopter. Scripting/JVM/CLR has basically dominated the server market, that is the majority of programming positions. (Nowadays, the same applies to mobile and modern desktop apps).
          No. For one, I did not say the fact that D had a GC is what made me think differently. I said until D forced garbage collection. D1 didn't require the use of a GC and it was quite a bit easier to build around the GC. In addition, D as a language does not require a GC to be practical. Unfortunately, its standard library became heavily GC dependent to the point you had to simply not use it at all if you wanted to use D without a GC. There are no custom-allocator entry points that allow immediate freeing of memory since objects no longer have a semantic to free memory (the delete keyword was literally removed). RAII is still used but you call `destroy(object)` which is to not free memory. A GC can be nifty and convenient. It can also be a right pain in the butt. If I wanted a decent GC though, I wouldn't use D, I would a language that was built with a generational GC. Java comes to mind.

          For second, every single language you just listed there doesn't fit in the same category as D. D was meant to compete with C++ which is a systems-programming language, compiled down to native code. It took away what I believe to be a very important feature of C and C++ which is that it allows you to explicitly control memory.

          Lastly, I don't really care about an argument that appeals to popularity or an argument that appeals to how long something has been in the industry. I'm not saying those are bad languages even (except Javascript). Many of them run in a VM host and/or are JITed which gives a few advantages that aren't even possible in native code. In addition, they're made to appeal less to a systems-level programming language, and more towards a production-oriented language. D is simply not that and if that is what they're going for, they were going to fail from the beginning. I'm still of the heavy belief that Go shouldn't be garbage collected but it seems to be used more and more in high-level development as of late for reasons I simply can't comprehend (low-production rate, low-level constructs, small standard library, horrible GC... and somehow that appeals to people in sever development).

          Comment

          Working...
          X