• 5 Posts
  • 19 Comments
Joined 1 year ago
cake
Cake day: June 16th, 2023

help-circle
  • mrh@mander.xyztoProgramming@programming.dev...
    link
    fedilink
    English
    arrow-up
    2
    ·
    5 months ago

    Common Lisp “solves” most language-level problems by providing metaprogramming capabilities via lisp-style macros. (Almost) any language feature you would want can be implemented with lisp macros, and many such features already have been. So you don’t have to worry whether or not lisp has “for i in…” loops, or pattern matching, or generics, or virtually anything else, because if it doesn’t, you can write it! Plus if it’s really a good feature somebody has probably already made a library for it (if it’s not already part of the standard).

    One of the most extensive examples of this is Coalton, which is an ML-style statically typed EDSL for Common Lisp.

    There are metaprogramming features in a few other languages: template haskell, C pre-processors, even macros in Rust or Julia. But these all fall very short of lisp-style macros because those languages are not (truly) homoiconic, which makes the macros awkward to write and integrate into the language. This kind of metaprogramming is rarely employed, and when it is only for heavy duty tasks, and even then is generally discouraged as a last resort/special circumstance. But lisp macros are very easy to write because it’s the same as writing any other piece of lisp code. This results in macros being used often for smaller lightweight abstractions in the same way you write a small function.

    The other big pro of lisp is image based development. But that’s not so much solving a problem in other languages as it is simply a feature that they don’t (and pretty much can’t) have.

    And all of this is done in a language with less syntactic and semantic primitives than almost any other language, including the other “simple” ones like Python, Ruby, Elixir, etc.



  • mrh@mander.xyztoProgramming@programming.dev...
    link
    fedilink
    English
    arrow-up
    7
    ·
    6 months ago

    Yeah Clojure is like the monkey’s paw of Lisp weenies. It adds many modern day niceties that are lacking in standard Scheme or Common Lisp, but also changes enough things to make it feel very un-lispy. I go back and forth as to whether or not I even consider it Lisp (Richard Stallman doesn’t).

    But I do know that I’d rather write Clojure than any other non-lisp language.

    I’d also recommend people try ABCL, which is Common Lisp on the JVM , or Parenscript which is Common Lisp that compiles to Javascript.









  • mrh@mander.xyzOPtoVexillology@lemmy.worldIt ain't fancy, I just want a new US flag
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    edit-2
    10 months ago

    I’m not trying to push an agenda. I don’t know what you mean by “picking and choosing writings”. I’m still not sure exactly what you’re saying.

    If you’re saying there are no such thing as “founding fathers”, I think that’s just wrong in the sense that the myth of the founding fathers is a part of American culture and is taught in American schools. There is no “founding father” gene or element, but that doesn’t mean they don’t exist.

    If you’re saying all the people who were delegates at those conventions are equally “founding fathers” because they helped forge the documents, then sure, I can respect that opinion. But some of those delegates undoubtedly played a significantly larger role in early American history than others (including the creation of those documents!). Hence why we learn about a select few of them, and not all ~100 (although I guess that would also be impractical in a school setting). The specific number 7 is a bit arbitrary, but ~10 were a lot more important than the rest.


  • mrh@mander.xyzOPtoVexillology@lemmy.worldIt ain't fancy, I just want a new US flag
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    edit-2
    10 months ago

    Sure there’s some degree of arbitriness to 7, but I don’t think you could reasonably claim it’s any less than 7, and 7 is even a number wikipedia throws around. Not that there are only 7, just that there are 7 particularly important ones.

    I really just think the 13 the current US flag has looks too busy, but this is the only “American” number I could think of which was less than 13. If you have others I’d love to hear!

    Can you say more about the stars? Are you against them being in a circle?

    There’s not really any way to have them “fill up” the blue while still being in a circle (even if you change their sizes), unless you change the ratio of the blue, which would cause it to deviate from that of the flag itself. Maybe I can cook up a 2:3 version for ya.

    As for the size of the stars, again they are in the maximum radius circle which fits in the blue, so can’t change their position, and making them any bigger would cause them to touch each other or at least feel cramped.

    The stars in a circle in the blue is a classic American design which has been done on the flag before (besty ross, cowpens, etc.).








  • I don’t care about XMPP as a protocol versus some other messaging protocol much, but I care a fair bit about the wdespread adoption of federated XMPP

    I don’t quite understand what this means, could you elaborate?

    if this service using this protocol becomes very popular, will the service seek to eliminate the open role of the protocol

    That is a valid concern, though the point of the article is to try and convince people why it won’t happen like it did with Google or might with Meta for structural reasons (rather than “oh but we’re different” reasons).

    The main difference I see with Snikket vs Google Talk is that Snikket is not only libre client software, but libre server software as well. The point of Snikket is that individual people host it themselves, not that the Snikket devs run a bunch of Snikket servers which require their Snikket client for connection and just so happen to use xmpp to power it. Really all Snikket is (right now) is a prosody server with some pre-configurations and easy install, as well as an android/ios app which are general xmpp clients that are designed to work well when connected with Snikket servers.

    Now it could still go south in a similar way to Google Talk, in that maybe a bunch of people start running Snikket servers and using Snikket clients, and then the Snikket devs start wall gardening the implementation. That would be bad, but the users (both server runners and client users) would be in a much stronger position to pivot away from those decisions.

    I think it’s at least an interesting idea (hence why I posted it) for the reasons the author mentions: striking a balance between trustless freedom and interface stability/agility.


  • That sounds roughly correct, though I don’t see the connection with the article? Unless you’re saying that “products” (like Signal) will always exist, which is probably true but is orthogonal to whether or not other models will succeed.

    As for email, I think posteo does a pretty good job, but you’re right options are few and far between. But self hosting email is just as viable as ever? Perhaps less so since e.g. gmail will instantly flag your incoming mail as spam if you’re sending it from randomsite.tld, but honestly that issue hasn’t gotten that bad (yet). Yes, whenever there’s a protocol like email or xmpp, companies will create gmails and signals and turn them into walled gardens, but that doesn’t spoil the protocol for everyone else. It just causes frustration that companies build closed products on top of open technologies, but not much to be done about that.