1.  

    Depends on the implementation. Let me clarify: a modern, systems language whose primitives are close to the machine. C, Ada, Rust, and Nim w/out GC are examples of what I’m talking about. Far as LISP’s, PreScheme was an early attempt at a low-level LISP. It was also mathematically verified for correctness in VLISP project.

    1.  

      Taken from the perspective that perfect is unattainable, Worse is Better really is the only viable way. TempleOS lives on but in how many heads will it do so?

      1.  

        At this point, I’ve hopefully convinced you that we designed a thoughtful, careful experiment.

        ❤️

        1.  

          Interesting, this is something I’ve thought about as my Selenium automation against an every-changing codebase mixed with regular browser updates requires constant upkeep. I enjoyed the examples of software rot and the classification system.

          This appears to be at a much lower level than my Selenium / browser / webapp example and a pitch for their apparently proprietary Rosetta Stone style polyglot language or system called ProgBase. Their discussion of technical challenges looks like a list of functional programming language features and an argument for a simple language. I couldn’t find language examples, only output examples, but I only took a cursory look.

          Have there been other evaluations or systematic classifications of software rot along these lines? Other attempts at evergreen code? I can think of some generalizations, from successful open source’s continually evolving code-bases (Linux kernel maintaining drivers in-tree instead of a stable kernel API) to Microsoft’s heroic efforts to support certain versions of software as Windows is updated. At the language level you have Go’s emphasis on compatibility, C’s relative stability as a language, languages like Nim that cross-compile to various languages, JVM, ParrotVM, GraalVM, and the like. History gives us financial and government institutions maintaining long-lived COBOL and other codebases, we also have the libraries in FORTRAN like BLAS and LAPACK that are available as libraries.

          1.  

            emqtt is another one I have run across a few times (haven’t tried it out yet).

            1.  

              But the types for these function calls are just as strongly specified as any other function call: ‘a slice of @t’ isn’t fundamentally different from ‘a slice of int’, beyond code generation concerns.

                1.  

                  Yeah, I forgot about all that extra stuff. It’s there (and thus can be exploited), even if it’s not strictly needed for DoH (I really like that acronym for this, BTW :P)

                  1.  

                    And don’t forget that HTTP/2 is basically a binary version of HTTP

                    If only it was that simple. There’s server push, multi-streaming, flow control, and a huge amount of other stuff on top of HTTP/2, which gives it a relatively huge attack surface compared to just using (potentially encrypted) UDP packets.

                    1.  

                      I can’t say much for VerneMQ, but most of the solutions out there were built for very large scale.

                      The broker I use (RabbitMQ) supports MQTT and supposedly handles one million requests per second although I’ve never dealt with that much traffic first hand. I’ve heard similar stories for the MQTT product that IBM sells.

                      1.  

                        I wrote a similar project, using sox’s synth subcommand instead of midi.

                        1. 7

                          I love this kind of stuff because it seems young developers confuse the web for the internet. There is more than HTTP out there folks! For god sakes make your own protocols! It’s fun!

                          1.  

                            I might be a bit more generous if the article would call out the actual differences, rather than just point at misleading graphs – seriously, with an honest y axis it’d be hard to even notice it.

                            Regardless, while a 5% improvement is not trivial, it is trivial in the context of the article, which is people complaining about slow VMs. That’s in the noise as far as general programming language performance goes.

                            1.  

                              I saw you addressed the difference with RabbitMQ. Do you know about Malamute (ZeroMQ broker)? How would it compare against? I really like the philosophy behind ZeroMQ, and use Malamute internally, but its a bit of a pain to install outside of Linux and I’ve hit bugs that left me with a feeling of “I’m the first user of this”.

                              1.  

                                How does MQTT fair against HTTP with billions of users? HTTP has the advantage here for not needing to be stateful.

                                As the article says too: sometimes HTTP makes sense. IMO the title should have something like “You should use a real pub/sub broker, not HTTP - VerneMQ is one”.

                                1. 15

                                  Pandoc has served me well for the basic variants of this problem.

                                  1.  

                                    Funny!

                                    Do you mean they are above the Law?
                                    Or maybe that browser developers are?

                                    I don’t think so.

                                    The real issue, when competent people do not solve the problems they create, is that other less competent might have to.

                                    For example: if routers’ manufacturers won’t fix their products by themselves, they will be obliged to in the very moment governments will realize this attack can be used to enter their private networks. Or the private networks of their banks… or their hospitals… and so on.

                                    1.  

                                      It is when you have a decent library to encode/decode DNS packets and UDP is nearly trivial to deal with compared to TCP (much less TLS).

                                      1.  

                                        I don’t think this is entirely fair - yes, the differences are not dramatic, but as the article says “We fairly frequently see performance get 5% or more worse over time in a single process execution. 5% might not sound like much, but it’s a huge figure when you consider that many VM optimisations aim to speed things up by 1% at most. It means that many optimisations that VM developers have slaved away on may have been incorrectly judged to speed things up or slow things down, because the optimisation is well within the variance that VMs exhibit.”

                                        1.  

                                          burnout. It’s a thing that eventually happens to a majority of OSS contributors that use their free time.

                                          Do you have anything beyond anecdotal evidence to support this claim? Or that corporate sponsorship prevents burnout?

                                          But it is highly discouraging and dare I say, is in line with the self-entitlement.

                                          It’s discouraging and self entitled that I prefer to use software that isn’t funded by for profit organizations? I’m sorry if that’s how you feel but I don’t think it’s a very good argument for corporate sponsorship of OSS.

                                          If I was a developer that only worked on proprietary software, would I be justified in calling out people who prefer to use open source software as being “highly discouraging and self entitled”?

                                          Notice how you’re suggesting that people should just sacrifice their free time, instead of selling out, what’s the problem?

                                          I think that’s a poor representation of my position here. At no point have I said anyone is obligated to work for free, I haven’t shamed anyone for “selling out” as you put it. I’ve simply said that I would prefer to use software that doesn’t require sponsorship from a for profit organization to exist.

                                          Again, I think the OSS/proprietary analogy works well. I don’t think people who work on closed source commercial software have “sold out”, I don’t think they’re doing something wrong. But I prefer to use open source software because I think there are advantages on both philosophical and practical grounds. Same thing here.

                                          The point was, if you haven’t maintained a popular project … then your oppinion is actively harmful

                                          I’m sorry but this reads a lot like “you don’t have the same experiences as me so you’re wrong”. I haven’t couched my argument in my experience, so trying to say I don’t have X, Y and Z qualification to speak on the matter doesn’t really do anything for your case here.