• d

    Doug Moen

    3 years ago
    until I quit my job and wrote a new compiler from scratch
    Hilarious ... I did the same thing.
    d
    1 replies
    Copy to Clipboard
  • d

    Doug Moen

    3 years ago
    I think C++ has about 20 different ways to bind a language entity to a name? With more arriving in future language revisions. If you know in advance where this evolutionary process is leading, you can plan for it. You can avoid shadow domains, and try to provide universal abstraction mechanisms, which leads to a simpler and more powerful language.
    d
    1 replies
    Copy to Clipboard
  • Stefan

    Stefan

    3 years ago
    A few people here have been posting about category theory. I’ve been learning category theory for the last few weeks trying a few different approaches and found resources that work well for me. If you’re interested here's my current “curriculum”: https://gist.github.com/stefanlesser/7f0749b3a38078b3eebe0cc408345e9f Is anybody here interested in forming a (virtual?) study group? I noticed how much more effective it is to talk to people about it. Would be great to find people who are actually interested in me explaining it to them. 😉 Obviously, I’d also be very interested in having others explain it to me as well. Pretty open about the structure. Could be sort of a book club working through the resources, weekly video calls to discuss and explain to each other, share exercise results, or even do “pair programming” on the exercises. Whatever you feel comfortable with and are interested in. However, you should be genuinely interested in putting some effort into it, which maybe means you can commit to read a few chapters a week and then meet online to discuss them. My goal is to build intuitive understanding for category theory concepts and its applications. I’m less interested in learning all the proofs and more in what it means that for instance natural transformations map to parametric polymorphism and what we can use these kinds of insights for to create better programming languages and environments. I’ve made it far enough to totally believe in but not yet far enough to know how to take advantage of the Eric Weinstein quote:
    “Theoretical mathematicians are sitting on top of a giant stockpile of intellectual gold. They have so many things that have not been manifested anywhere. You have no idea how much great stuff that these priests have in their monastery.”
    which is on the Conexus website that @Daniel Hines linked to above. Reply here or DM me.
    Stefan
    stevekrouse
    +6
    57 replies
    Copy to Clipboard
  • Dan Cook

    Dan Cook

    3 years ago
    Here is a great article about how technology changes, and focusing on what's best for humanity (e.g. what will work?) rather than preserving the old or current way of doing things, and the role of experimenting with new things: http://www.shirky.com/weblog/2009/03/newspapers-and-thinking-the-unthinkable/
    Dan Cook
    1 replies
    Copy to Clipboard
  • Duncan Cragg

    Duncan Cragg

    3 years ago
    I'd like us to create something like a taxonomy of our different approaches here and elsewhere. For example: • Scratch-like • FRP-based • Dataflow, boxes and arrows • if this then that • spreadsheet-like • ... This should inspire discussion of their merits and costs, which doesn't seem to happen much here. And also we could do the same for our common goals with our projects: • end user liberation, empowerment • better IDE UX • discover the pure essence of what programming is • ...
    Duncan Cragg
    curious_reader
    +5
    18 replies
    Copy to Clipboard
  • Mariano Guerra

    Mariano Guerra

    3 years ago
    this looks amazing, nice way to "reveal" complexity in 3 layers, only when needed

    https://www.youtube.com/watch?v=dYQKremTPGc

    Mariano Guerra
    w
    +1
    13 replies
    Copy to Clipboard
  • Felix Kohlgrüber

    Felix Kohlgrüber

    3 years ago
    I feel like a lot of people in this group think that storing programs as text is probably not a good idea. Leaving editing UX aside, what counter-arguments can you come up with or have you heard from others?
    Felix Kohlgrüber
    d
    +7
    32 replies
    Copy to Clipboard
  • i

    Ivan Reese

    3 years ago
    Does anyone have a sense of what's happening with Luna? Their blog, Discuss, and Twitter are all pretty much ghost towns. Are they all just heads-down iterating on the beta? Did they have to go back to focussing on flowbox.io to pay the bills?
    i
    stevekrouse
    2 replies
    Copy to Clipboard
  • d

    Doug Moen

    3 years ago
    Here's another research track: software permanence. Modern software bitrots quickly. You spend years creating a large program, maybe 50,000 lines. It becomes very popular for a niche audience. Then your goals change, you have very little time to maintain it, and all of your dependencies bit-rot. Your programming language bit-rots: features you depend on are deprecated and removed. Library dependencies bit-rot: no longer maintained, the old versions are insecure, aren't compatible with Wayland, won't compile with new compilers, and so on. New library versions are incompatible with your code, missing features you require that were dropped from the (e.g.) Wayland rewrite due to being too niche. If we are software revolutionaries, then how do we re-invent the software stack to support software that still runs and is still usable 100 years from now? It's a big topic.
    d
    Mariano Guerra
    +4
    13 replies
    Copy to Clipboard
  • Brian Hempel

    Brian Hempel

    3 years ago
    Given that HyperCard is often cited as an positive example of a desired end-user programming experience, I found it interesting to discover that Bonnie Nardi was not so fond of it. In her discussions of end-user programming, Nardi believes that domain-specific programming systems succeed when they implement the domain-specific concepts that domain experts already know. To perform non-trivial tasks, HyperCard requires that users learn HyperTalk. But HyperTalk, rather than embodying domain-specific concepts, is instead essentially an ordinary general-purpose programming language but without the speed or flexibility. Bonnie A. Nardi, “A Small Matter of Programming” (1993) p53:
    What about HyperCard? HyperCard with HyperTalk is a compromise between a general programming language and a task­-specific language. HyperTalk doesn’t do everything that a general programming language does, but it does provide a friendlier syntax than, say, C++. Like spread­sheets, it is interactive. But there is very little in the way of serious commercial stackware. To create stackware or applications that are not simple prototypes, users are faced with learning HyperTalk, which is almost as complex as a conventional programming language and requires mastering basic computer science concepts. The problem may be that HyperCard­-like environments are actually a bad compromise: they have the complexity of conventional programming languages but lack their speed and they are not close enough to end users’ needs to provide the right kind of task specificity, nor are they general enough to be as powerful as a conventional language.
    Brian Hempel
    jonathoda
    +4
    15 replies
    Copy to Clipboard