1. 48

First of all, I’m sorry. I’m deeply sorry for all of this.

A few months ago, talking with some friends, we had the idea of developing a programming language just for the sake of it. We talked a little about it, design by committee got out of control and, a few days later, we abandoned the project completely without having written a single line of code.

I, though, have wanted to make a programming language my whole life and thus I kept trying to push the project forward by myself. I created a syntax loosely based on that of COBOL, made the worst compiler possible, wrote a somewhat slow “virtual machine” and released LDPL as a joke. Even the name is a pun on older, business oriented languages with BIG-CAPITAL-LETTER-NAMES. Again, like COBOL.

Fast forward a little and the joke got out of control.

I kept working on the language on my free time - pushing the not-very-ortodox but easy to code compiler forward - and the language got pretty usable. I mean, it’s not a language you’d like to work with. It can’t do everything. It’s quite slow. It doesn’t have any scoping nor functions (it does have sub-procedures, though) nor lambdas nor objects nor fancy data structures. Think of it more of an esolang than a serious language.

ldpl logo

But what it lacks in efficiency and features, it makes up by having a cute dinosaur logo (poorly drawn as a joke on other mascots like the GCC gnu), unicode support, a full standard, comprehensive documentation, fancy examples and a half-written tutorial to be finished in the next days. It’s also very portable, with binaries available for Linux amd-64 and ARMv8, Windows 64 bits and even Mac OS X for PowerPC processors!

So, if you are curious, bored or want to try something useless and new, download the LDPL source code or grab a precompiled binary for your operating system and code away.

I’m sure you won’t hate it that much.

  1. 15

    Wait, we can embed images in posts?!

    1. 2

      No, I don’t really think so.

      (/s, you can use markdown in posts!)

      1. 1

        Yeah. That’s not really ok from a privacy standpoint, so I’ve restricted it to moderators.

        I ran Story.where("markeddown_description like '%<img%' and user_id != 1").each { |s| s.description = s.description; s.save(validate: false) } to rerender the markdown of stories with images. (@jcs was the only mod to inline images in a story.) I’ve added an issue to improve this output.

        1. 2

          With the issue closed by this contribution (thanks, Brian!), I’ve rererendered the affected posts, so now their images are at least visible as links. If anyone’s curious, here’s the list of affected stories: gheyhy r73jlz o0iyrp 9fcuzc kiq75p bmctd9 gk0lik wqh83n jjz5em rktfly kaxuwi n43cpl c2tdrk clmxrr a75hjg vsyxke ljmv47 fon09v zqwdzo lepnje

          1. 2


        2. 8

          Thanks for sharing this! I think it’s so crazy it may loop around to being cool somehow. I’m already thinking of how I can write an LDPL compiler in LDPL. ;-)

          What does L.D. stand for?

          1. 8

            Thanks to you! Hahaha bootstrapping LDPL in LDPL is something I would like to do someday, if you do it please show it to me!

            LDPL stands for Lartu’s Definitive Programming Language. I’m Lartu and, apparently, this is my definitive language (?

            1. 6

              Little Dinsaur Programming Language

              Obviously. ;)

            2. 6

              You took this troll all the way to TShirts! Well done. Well done!

              1. 4


                Ahh thank you very much. This whole thing has had me laughing so hard lately.

              2. 6

                IBM says they finally found a modern language to help their customers rewrite AS/400 applications.

                1. 2

                  Ahhahaha 😂

                2. 5

                  That’s great, will you also make a data serialization format based on it, like JSON for ecmascript?

                  1. 2

                    That’s actually not a bad idea! I’ll think about it~

                  2. 4

                    So there are no functions and no arithmetic expressions. User defined procedures do not have parameters or return a result, so you can only get data in and out using global variables. Well done! The only missing feature is a GO TO statement. Since we want the language to have lots of expressive power, it is important to be able to GO TO the middle of a procedure.

                    1. 2

                      HAHAHA oh that is so true, but even though it’s a joke language based on cobol and whatnot I’d really rather not deal with goto-s 😂

                    2. 3

                      A COBOL without a hard limit on 80 characters per line? This is amazing what a future we live in!

                      1. 1

                        We’ve truly come a long way.

                      2. 2

                        I like this… I like this a lot. Going to port some BASIC games to it for the fun of doing so.

                        1. 1

                          Thank you! If you do that, be sure to ping me and show what you’ve done!

                          1. 2

                            I am almost finished, will link to the code tomorrow once its done.

                            1. 1

                              Woah! I can’t wait!

                                1. 2

                                  This is amazing!

                                  1. 2

                                    In that case, you may also like this https://github.com/photogabble/ldpl-spark ;)

                                    1. 2

                                      I loved that!

                        2. 2

                          The LDPL dragon is beautiful. We need pictures of it watching other people stuck in inconvenient business/IT situations. Possibly leaving as things catch fire behind it; with no clarity on whether or not the dragon was the cause or the refused solution.

                          I had a look at your quine example. Dear lord.

                          1. 2

                            Ahahahaha I will make sure the pictures become a reality!

                            Talking about the quine, I didn’t write it. Some guy wrote it and “Dear lord” is the right thing to say. I can’t assure you I understand how it works. It’s very funny because I’m the one that made the language and that script made me realize I’m not the one who knows the most about it.

                            1. 1

                              I thought that was a dinosaur, not dragon, given that’s what lots of young folks call old (anything here), esp COBOL. It looks plain-faced with its suit-case cuz that’s the dress code. Colorful accessories to compensate for lack of it in personality of the place.

                              Only thing confusing is squiggly part on face under eye. Wondering if that should be a tear as it contemplates its next, software project in this language or a wrinkle of a dinosaur that’s becoming a veteran of many such projects. The wrinkles start developing a few months in.


                              1. 3

                                I think the wrinkle is its management twinkle. It’s used in meetings to soften the higher-ups.

                                EDIT: The wrinkle has a non-self-inspection property. Lartusaur has no idea that it’s there and does not understand why big company management are always so nice to him.

                                1. 1

                                  hahahahaha lartusaur 😂

                                  1. 1

                                    Lol. Really clever.

                                  2. 2

                                    Originally it was a dinsaur. When I drew the scales and painted them red it more or less turned into a dragon.

                                    “It looks plain-faced with its suit-case cuz that’s the dress code.”

                                    This is exactly right!

                                    “Only thing confusing is squiggly part on face under eye. Wondering if that should be a tear as it contemplates its next, software project in this language or a wrinkle of a dinosaur that’s becoming a veteran of many such projects. The wrinkles start developing a few months in.”

                                    Those are his cheeks haha!

                                2. 2

                                  This is wonderful. I particularly like the dinosaur.

                                  1. 1

                                    Ahaha thank you!