• dfyx@lemmy.helios42.de
    link
    fedilink
    arrow-up
    1
    ·
    3 months ago

    Many years ago I read the D book and really liked many aspects of the language. What kept me from using it was the ecosystem. They had three compilers and two different standard libraries, none of which were fully compatible with each other which led to a whole bunch of weird problems. These days it’s probably better. Maybe I should give it another chance.

  • BeigeAgenda@lemmy.ca
    link
    fedilink
    arrow-up
    1
    ·
    3 months ago

    D is more than 20 years old (from 2001), so it’s due for a renaissance, Python was also in its 20s before it became fashionable.

    • fruitcantfly@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      3 months ago

      D seems unlikely to get a renaissance. These days languages are facing much stiffer competition, and D has never solved its fundamental problems:

      It is a rudderless language, that struggles with fragmentation due to the hype-driven addition of half-baked and mutually incompatible paradigms, with a leadership that keeps driving away contributors.

      I can’t see how any of this could change while Walter Bright is still in charge, but I also don’t see how the language could survive him stepping down as BDFL

    • ZILtoid1991@lemmy.worldOP
      link
      fedilink
      arrow-up
      1
      ·
      3 months ago

      Multiple in fact. D1 vs D2, Tango vs Phobos, mutable by default vs const by default (was minor, but allegedly lead to the existence of Rust), Adam D Ruppe leaving and forking the compiler (OpenD - might be useful to you depending on things), “let nazis code” (though DLF have not only backtracked on it but also set up some basic safety measures), etc. Can still recommend the language if you want a more C-style language and not OCaml with curly brackets, or if borrow checker is a dealbreaker for you in Rust.

      • nebeker@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 months ago

        We really all need to get along and accept each others’ opinions. Even if some people are completely wrong and think mutable by default it OK. Hehe.

  • OwOarchist@pawb.social
    link
    fedilink
    English
    arrow-up
    0
    arrow-down
    1
    ·
    3 months ago

    It really does mystify me what anyone thinks they’re accomplishing by creating a brand new programming language these days. Other than a purely academic exercise, of course.

    Whatever features you want your language to have, there’s probably already a language out there that’s damn close to it. And if your ideal language is just like some existing language except for a few niggling details … then there’s no need to start from scratch – just make a modified version of that language with a few little changes to make it act the way you want.

    Programming languages are just about a solved problem now, IMO. I can’t imagine any scenario where creating a new language from scratch would be better than tweaking an existing language … or just using an existing language as-is.

    • stingpie@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      3 months ago

      I think there are programming paradigms that haven’t even been discovered yet. Rock music was “discovered” centuries after baroque music, and composers back then would have thought baroque music is the ultimate musical genre, which could not have been improved upon.

      I’ve been working on a programming language recently that sort of programs itself. It’s hard to explain how it works, since I approached it from a mathematical direction, but for a domain and range defined with a set of correct input-output pairs, there are an infinite number of functions which correctly maps one input to its corresponding output. If we define f_1 as all functions which correctly map the first IO pair, f_2 as functions which correctly map the second IO pair… Etc etc until we reach f_N, then the set intersection of all f_1…f_N is the set off all functions which satisfy our requirements. From this set of known correct functions, we can sort them by speed or some other trait.

      But the devil’s in the details there. I won’t go into how I get f_1…f_N, but I’m having fun thinking about it & designing it. It may even be useful some day.

      • bss03@infosec.pub
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 months ago

        Yeah, GRTT wasn’t really invented until 2021. Of course it borrows from many other theories, but it is not easy to fit under existing calculi (tho it can be “lowered” to MLTT).

    • bss03@infosec.pub
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 months ago

      I want a language with an internal/core calculus of GRTT with a specific grading that I believe will provide both optimal evaluation and prompt resource release. You aren’t going to get that by building on top of another language.

      Of course you could do it as a library for another language, but the few values you could lift/lower and the necessary analysis do to bidirectional type inference/checking mean that you are writing a compile phase whether you call it that or not. In theory, you might save on the tokenizer/parser, but those are trivial to write. You might be able to reuse parts of the API/ABI, which could be an advantage if the underlying language has a good, stable one that can reflect your linking/calling/passing restrictions; but that’s not likely.