mirror of
https://github.com/gmemstr/blog.gabrielsimmer.com.git
synced 2024-09-19 11:41:10 +01:00
Emacs blog post.
This commit is contained in:
parent
6677c59eea
commit
42d8195361
58
content/posts/emacs-induction.org
Normal file
58
content/posts/emacs-induction.org
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
#+title: Emacs Induction
|
||||||
|
#+date: 2021-09-01
|
||||||
|
|
||||||
|
*** Recently, I decided to pick up Emacs.
|
||||||
|
|
||||||
|
/sidenote: this is my first post using orgmode. so apologies for any weirdness./
|
||||||
|
|
||||||
|
I've always been fascinated with the culture around text editors. Each one is formed
|
||||||
|
of its own clique of dedicated users, with either a flourishing ecosystem or floundering
|
||||||
|
community (see: Atom). You have the vim users, swearing by the keyboard shortcuts,
|
||||||
|
the VSCode users, pledging allegiance +to the flag+ Microsoft and Node, the Sublime
|
||||||
|
fanatics, with their focused and fast editor, and the emacs nerds, living and breathing
|
||||||
|
(lisp). And all the other editors and their hardcore users (seriously, we could spend
|
||||||
|
all day listing them). And the fantastic thing is, all of them (except Notepad) are
|
||||||
|
perfectly valid options for development. Thanks to the advent of the Language Server
|
||||||
|
Protocol, most text extensible editors can be turned into competent code editors (not
|
||||||
|
neccesarily IDE replacements, but good enough for small or day to day use).
|
||||||
|
|
||||||
|
Up until recently, I've been using Sublime. It's a focused experience with a very small
|
||||||
|
development team and a newly revived ecosystem, and native applications for any platform
|
||||||
|
I care to use. I've used VSCode, Atom, and Notepad++ previously, but never really delved
|
||||||
|
much into the world of "text based" (for lack of better term?) editors, including vim
|
||||||
|
and emacs. The most exposure was using nano for quick configuration edits on servers or
|
||||||
|
vim for git commit messages. Emacs evaded me, and I had little interest in switching
|
||||||
|
away from the editors I already understood. But as I grew as a developer and explored
|
||||||
|
new topics, including Clojure and Lisps in general, I quickly realized that to go further
|
||||||
|
I would need to dig deeper into more foreign concepts and stray from the C-like languages
|
||||||
|
I was so comfortable with. The first few days at CircleCI, I was introduced to [[https://clojure.org/][Clojure]],
|
||||||
|
and I quickly grew more comfortable with the language and concepts (although I am
|
||||||
|
nowhere near experienced enough to write a more complete application), and I have that
|
||||||
|
to thank for my real interest in lisps.
|
||||||
|
|
||||||
|
Several failed attempts later, I managed to get a handle on how Guix works on a surface
|
||||||
|
level. My motivation for this was trying to package Sublime Text, which, while I make
|
||||||
|
significant progress, I hit some hard blockers that proved tough to defeat. This
|
||||||
|
sparked me to invest time into emacs, the operating system with an okay text editor.
|
||||||
|
For a while, leading up to this, I've subscribed and consumed [[https://www.youtube.com/c/systemcrafters][System Crafters]], an
|
||||||
|
excellent resource for getting started with emacs configuration (among other related
|
||||||
|
topics). It was part of my inspiration to pick up emacs and play around with it - I don't
|
||||||
|
typically enjoy watching video based tutorials, especially for programming, but thanks
|
||||||
|
to the livestreamed format presented it was much easier to consume.
|
||||||
|
|
||||||
|
So far, I'm enjoying it. Now that I have more of a handle on how lisps work, it's a much
|
||||||
|
smoother experience, and I do encourage developers to exit their comfort zone of C-like
|
||||||
|
languages and poke around a lisp. There's a learning curve, for sure, but the concepts
|
||||||
|
can be applied to non lisp languages as well. The configuration for my emacs setup is
|
||||||
|
(so far) relatively straightforward, and I haven't spent much time setting it up with
|
||||||
|
language servers or specific language modes, but for writing it's pretty snappy (and
|
||||||
|
pretty). [[https://orgmode.org][Orgmode]] is a very interesting experience coming from being a staunch Markdown
|
||||||
|
defender, but it's not a huge adjustment and the experience with emacs is sublime. It's
|
||||||
|
also usable outside of emacs, although I can't speak to the experience, and GitHub
|
||||||
|
supports it natively (and Hugo, thank goodness). [[https://justin.abrah.ms/emacs/literate_programming.html][Literate programming]] also seems like
|
||||||
|
a really neat idea of blog posts and documentation, and I might switch my repository
|
||||||
|
READMEs over to it for things like configuration templates. These are still early days
|
||||||
|
though - I've only been using emacs for a few days and am still working out where it
|
||||||
|
fits in to my development workflow beyond markdown/orgmode documents.
|
||||||
|
|
||||||
|
/sidenote: emacs or Emacs?/
|
Loading…
Reference in a new issue