aberrate_junior_beatnik (he/him)

  • 0 Posts
  • 61 Comments
Joined 2 years ago
cake
Cake day: July 2nd, 2023

help-circle




  • The main class of non-turing-complete programming languages that I think of are languages that don’t allow infinite loops. Consider a variation of your favorite programming language where every looping construct had to have a maximum count. With each iteration, the count decrements, and when it reaches 0, the loop terminates[1]. This can be extended to recursion pretty trivially. This language would not be turing complete, because turing machines allow infinite loops. But on the other hand, a whole lot of what you might want to do with a programming language could still be done with this language, and it certainly would not be something you could characterize as a markup or query language.

    As to whether this violates the definition of a programming language, I’m not aware of a widely agreed upon definition of what a programming language is. And languages like Rocq, Agda, Epigram, and Charity which require that programs terminate have long been described as programming languages with no push-back that I am aware of.


    1. What happens when a loop terminates in this manner is irrelevant to this discussion. The program could continue, an exception could be thrown, the program could immediately terminate, or something else so long as there’s no escaping the requirement that the program terminates. ↩︎


  • someone on the internet got dopamine

    Much appreciated!

    In all seriousness, I woke up this morning and felt bad about how mean my comment was. It’s not like it’s a huge mistake and it’s (I think) a pretty common misconception mostly borne from the murky boundaries of the category of programming languages. Thank you for your grace in handling it, I’m sorry I was a jerk, and I’ll try to do better from now on.




  • Follow the guidelines as mentioned in freedesktop

    Which guidelines are you talking about? Searching for “proxy” and “environment variables” didn’t pull up anything I saw that would be relevant in this case. I’ve been using linux for a couple of decades now and I’m not sure what rule is being broken here.

    It sounds like you didn’t have a proxy set in your environment variables, but you did have one set through another means. It’s somewhat standard practice to have fall-through settings, where if settings aren’t set in one place, a program looks in another place, then maybe another, etc. Now admittedly it would be nice to have a way to disable functionality entirely, but usually that kind of thing happens with command line flags.

    I get that it’s frustrating to deal with a problem like this, but ultimately your environment was misconfigured, and that’s going to break some software.


  • I feel like most of tech had already sold out by 2014. Really by the late aughts it seemed to be all gone; that was when apple and its philosophy had taken hold. Not that apple was the only force in that direction, it just felt like the apotheosis of the greedy and controlling mentality. MS had plenty of greed, but they were willing (in some circumstances) to play ball. Google seemed to love interoperability in the early-to-mid aughts, but look at it now.