Voxel Artist, Programmer and graphics Enthusiast. Most used languages are Common Lisp and D Currently learning Zig Haskell and Lobster I program games for fun, and generate/Modify voxel art for work. Current side project: Rendering Engine Main Project: general Voxel art utilities.

  • 0 Posts
  • 3 Comments
Joined 1 year ago
cake
Cake day: June 17th, 2023

help-circle
  • I thought I was going to disagree at first, because I am forced to use multiple DSLs for several projects I work on, however after I thought about it I hate the those DSL’s because they are not actual programming languages they are overly restrictive. more limiting than assembly, thus why I am using an actual language to create my own DSL that mainly uses the language as its host, so its not really a full DSL just a few extra functions on top of an actual language. so surprisingly I pretty much agree.

    I would say Elixir, Ocaml, Rust, Haskell, Scheme, Clojure, Common Lisp all have great examples of large and small DSL’s that are very convenient, I would also include libraries as DSLs a C example would be something like Raylib, or SDL, and I would consider the code below an example of a micro DSL in Common Lisp.

        (loop for i from 0 to 100 by 2
                  for x from 10 by 10
                  do (print (list i x)))
    

    so I think I mostly agree.


  • I would say the same as most it really depends on what you are doing, I program in Lisp a lot so Emacs is a natural fit. Vi/Vim/Neovim are in my opinion Technically better they are smaller and simpler however Emacs is a much bigger and more versatile. I ended up choosing Emacs specifically because it was bigger and more versatile. I do plan on giving Vim a try again sometime to see if it fits my needs better, once learning Vim Keybinds/Motions I find it relatively easy to switch between them, except when it comes to the editor specific apps like Org Mode.


  • Like some others have mentioned the biggest part of emacs and vim is the Vim Keybinds/Motions this is something you can take to almost every editor since most editors have the majority of keybinds/Motions.

    (you mentioned you use Nano so you may already find this to be true with Nano as well)

    The Second biggest thing you learn from Emacs/Vim is how to use the terminal better, when I started out using intellij I didnt realize the command prompt was a command prompt, when I switched to notepad++ and used the terminal I began understanding how the terminal actually worked and it has helped me a lot, I find myself using the fd utility to find documents and ripgrep to search through config files even when I am not programming and it makes me way faster than my coworkers (I work as an artist) when we are searching through some of are more intense config files I find stuff first. I switched to Emacs/Vim to unify my workflow because I was using Notepad++ and the Terminal, now I understand Intellij better because I actually started looking things up, Emacs/Vim for better or worse force you to learn. now if I ever want to try out a language it does not matter if it has a language server I can use a small set of universal tools to get done what needs to be done.

    I would say a full IDE is probably faster however Vim Motions can save a lot of time, because with Vim Motions worse case scenario you use the mouse which is what you would have done anyway if you didnt know them, so it can only save you time.

    I will say the biggest danger is tinkering too much and wasting time on your Emacs/Vim config files, for me I havent really touched my config files in over a year, only thing I have done is add some languages too it and changed the theme.

    I sometimes do some Java development but its very rare so I dont know the language well enough to use Emacs or Vim to program Java I normally just use IntelliJ with Vim Motions. but for my main dev projects I use Emacs.

    Third benefit is a Very customizable Editor; for work and for side projects I use languages that are not very common so they dont have great support in IDE’s so if I ever want a feature I can make it myself. a common feature is structural editing.