• Wouter

    Wouter

    3 years ago
    @Edward de Jong / Beads Project "Nowadays with gigantic memory stores, worrying about how big a box to store is of minor importance for 99% of programs" I've heard some variant of this statement for 25+ years now ("computers are / will be faster so maximum efficiency is less important"), and it always turns out to be wrong. For one, as computers grow in ability, we simply want to do more complex things with them. Give programmers space, and they will fill it up until things get slow. A more efficient language gives more room to grow. More deeply, a faster language can be said to be more "high level" than a slower language since the programmer doesn't need to worry about performance consequences so much. My simple, brute force C++ algorithm may be smaller, simpler and faster than your complex Python algorithm 🙂
    Wouter
    gman
    +1
    12 replies
    Copy to Clipboard
  • Wouter

    Wouter

    3 years ago
    @Alan Johnson that intuitively makes sense but in practice this doesn't seem to happen. While managed languages don't have to worry about issues like aliasing in C++, so in theory they could be faster, in practice they never go that far. The levels to which a compiler like LLVM can collapse both code and data in C++ to almost nothing is crazy, nothing in the managed world compares. Languages like Java have their own optimisation challenges, e.g. as soon as escape analysis fails it gets very inefficient.
    Wouter
    i
    +5
    33 replies
    Copy to Clipboard
  • i

    Ivan Reese

    3 years ago
    @Edward de Jong / Beads Project
    Most of the time spent programming is fixing errors, and anything that helps reduce programmer error should be encouraged. What does it mean to multiply PI by "hello"?
    That doesn't fit my experience in the slightest. Most of my time spent programming is figuring out the design of my system. The most time-costly class of "error" would be uncertainty about what exactly I want to build, which manifests as building something experimentally, playing with it, realizing it's not quite what I want, repeat. For instance, types can't help me decide if I want to implement my graphics library using SVG or WebGL. Sure I make errors — we all do — but I discover almost all of them almost immediately, and they're trivial to fix. Something like PI multiplied by "hello" isn't nearly as nefarious as "I misunderstood the linear algebra and now I'm getting weird looking results when I convert a rotation into a skew+scale", which I don't believe a typical type system can help with.
    i
    j
    +4
    11 replies
    Copy to Clipboard
  • Kartik Agaram

    Kartik Agaram

    3 years ago
    One morass I repeatedly see conversations fall into is trying to make generalizations about "programming". The discussion about "most time spent programming" is like this. And also the discussion of static vs dynamic types above. Programming is a huge field! Indeed, as it eats everything it's better seen as an aspect of all fields of endeavor. Like reading. Or history. Try to make a valid statement about "most time spent performing arithmetic", and hopefully it's clear how silly such statements are about programming. What we should be focusing on is domains. Games require very different languages and libraries and processors from scientific simulations, compilers have their own requirements. Even the category of "web app" is huge, because web apps can do many things. I work on deployment tools in my day job, and the domain has certain properties whether you create commandline tools or GUIs or web apps. (We've done them all.) The challenge of end-user programming isn't to figure out the smallest set of things people need. I promise you programming will overflow any box you put it into. No, we have to meet people half-way in each domain separately.
    Kartik Agaram
    i
    +1
    3 replies
    Copy to Clipboard
  • s

    srini

    3 years ago
    are there any good definitions of end-user programming out there?
    s
    i
    +1
    7 replies
    Copy to Clipboard
  • b

    Benjamin San Souci

    3 years ago
    Hey everyone, I’m new here and was hoping to meet you all today but is the meetup still happening? I don’t see the event page anymore
    b
    stevekrouse
    +1
    6 replies
    Copy to Clipboard
  • d

    Deklan Webster

    3 years ago
    This might be a little off-topic. What do you all use for personal-knowledge-management, note-taking, etc? I'm not happy with my lazy Evernote setup. Just searching around, people mention: Notion, Dynalist, Spacemacs + Org-mode, Vimwiki, Zimwiki, TiddlyWiki, Standard Notes, etc, etc. Anyone wanna share their setup for these or others?
    d
    a
    +16
    54 replies
    Copy to Clipboard
  • d

    Daniel Hines

    3 years ago
    Suggestions for learning group theory? I want to better understand how semirings can be applied to database provenance… but I have no clue what a semiring is (or a ring, or a group, etc.). Video/audio course is preferable!
    d
    d
    2 replies
    Copy to Clipboard
  • d

    Daniel Hines

    3 years ago
    Also, is there a good “Why Logic Programming” talk/article? Something aimed at general audience developer’s? Preferably something that doesn’t point to Prolog as the end-all-be-all of LP.
    d
    g
    +1
    4 replies
    Copy to Clipboard
  • Edward de Jong / Beads Project

    Edward de Jong / Beads Project

    3 years ago
    Category theory is a dry hole IMHO. If you look at the main theorems of Category theory, you will find a niche of abstract algebra, that seems to have very little relevance to programming. see https://mathoverflow.net/questions/83437/the-main-theorems-of-category-theory-and-their-applications for a list of the main theorems. I defy you to make a better interactive graphics program using any of those theorems. Frankly speaking the Turing/Von Neumann computer that we have used for the last 50 years is so simple that mathematicians have almost zero interest in studying the incredibly deep problems that beset the authors of large programs. Excel has had a closed arithmetic for over 25 years, yet i can't think of a general purpose language with this feature. Sadly mathematicians today content themselves with mostly inventing their own problems, and thus all the big products in the industry continue to have hundreds of thousands of unrepeatable bugs, and estimates are still way off, and bug fixes continue to break working code with ease.
    Edward de Jong / Beads Project
    a
    +5
    18 replies
    Copy to Clipboard