• 0 Posts
  • 9 Comments
Joined 1Y ago
cake
Cake day: Jul 04, 2023

help-circle
rss

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.


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.


I agree that having some glyphs in color can be bad, for example when you are typesetting a formula in TeX that contains emoji, the color looks just unprofessional. As a solution, let me introduce you to the Noto Emoji font: https://fonts.google.com/noto/specimen/Noto+Emoji


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.


Thanks, i hadn’t heard oft Factor before, it looks interesting. I’m more of a LISP and FP Person but always wanted to properly learn a stack based language, Factor seems like a nice alternative to Forth for that purpose.


I find that S-expressions are the best syntax for programming languages. And in general infix operators are inferior to either prefix or postfix notation.