• 0 Posts
  • 9 Comments
Joined 1 year ago
cake
Cake day: July 4th, 2023

help-circle

  • I recently spent some time optimizing a small Julia program I wrote that generates a lookup table of brainfuck constants. Because it only needs to run once, I originally didn’t care about performance when I originally wrote it (and the optimization was mostly for fun).

    I achieved an ~100x improvement by adding types, using static arrays and memoization. In the end, the performance was mostly limited by primitive math operations, I tried using multiple threads, but any synchronization destroyed the performance.

    However, the most impressive thing was the ability of Julia to scale from dynamically typed scripting language to almost a compiled language with minimal changes to the code.


  • eeleech@lemm.eetoProgrammer Humor@lemmy.mlVery clever...
    link
    fedilink
    arrow-up
    14
    arrow-down
    2
    ·
    1 year ago

    Having the commands listed at the bottom by default is one thing i personally dislike about nano, because they take up space while being useless to someone knowing the commands (or at least knowing how to open the help in, which is what you can do in vim to achieve the cheat sheet). The alternative that vim uses, is to show the commands when starting the editor without opening a file.



  • eeleech@lemm.eetoProgramming@programming.dev*Permanently Deleted*
    link
    fedilink
    arrow-up
    6
    arrow-down
    1
    ·
    edit-2
    1 year ago

    I don’t really have a single favorite a language, if I am able to choose freely it depends on the task.

    • C++ for natively compiled programs and C interoperability, I like the types from the STL and templates.
    • Clojure is IMO great for data-oriented programs, I really like the immutability and it being a lisp. The java interop and the ability to compile to JavaScript with clojurescript can also be useful.
    • Julia for smaller (mostly numerical) programs that should be fast at runtime. The type system is great in being optional, but strong and significantly improving performance when types annotations are used.
    • Fennel (or Lua) is definitely my favorite Language for embedding into larger programs and scripting. Fennel has the advantage of being a lisp and cleanly compiling to lua.
    • brainf*ck is great as a simple language to have fun and enjoy programming


  • I genuinely don’t know if scratch is the right choice or a simple text based language would be better, especially for the older kids. Just from my personal experience, I started programming in BASIC at 12 and don’t think I would have had as much fun and continued programming if i had used scratch instead.