Today in Edworking News we want to talk about Enlightenmentware as programmers, we interact with software tools daily. Most of them can barely get the job done. But once in a while, we discover a piece of software that transcends mere utility. These tools capture our imagination, open new possibilities, and affect how we design our own systems. I call such software enlightenmentware. The most common source of enlightenment for programmers is the programming language they use at work or learn as a hobby. I experienced many jolts of enlightenment from fiddling with programming languages, from masm and C to Prolog and Idris.
In this article, I praise the software that contributed the most to my enlightenment.
UNIX
UNIX is user-friendly—it’s just choosy about who its friends are.
Introduction to UNIX: I started looking for my first real programming job around 2008 while studying at a university in my hometown of Nizhny Novgorod. Almost all the open positions required knowledge of mysterious things called UNIX and sockets. My curriculum didn’t offer a course on UNIX or operating systems in general, so I decided to get a textbook and master the topic myself.
Discovering Mandriva Linux: A search for a working UNIX installation led me to Mandriva Linux. It was like discovering a parallel universe where you don’t have to pirate software or spend forty minutes installing an IDE to compile a C program. Here, people developed software for fun and shared it freely.
Continuous Evolution with UNIX: From that moment on, UNIX followed me through all stages of my life:
- The toddler phase of keeping up with cutting-edge Ubuntu releases.
- The rebellious teens of compiling custom kernels for my Thinkpad T61p.
- The maturity of returning to Ubuntu LTS.
- The overwhelmed parent stage of becoming a happy macOS user.
UNIX became an essential building block in my profession. Most of the software I wrote operates in a UNIX environment, and I still occasionally consult my copy of Advanced Programming in the UNIX Environment.
Git
Git is easy to shoot your foot off with Git, but also easy to revert to a previous foot and merge it with your current leg.
Initial Encounter with Version Control Systems: I encountered version control systems in early 2009; the company I worked for used Rational ClearCase to manage their code. The system versioned each file separately and relied on large configuration files—config specs—to construct a consistent snapshot of the source tree. The tool was utterly confusing and intimidating, so I avoided dealing with it beyond the minimal requirements of my job. About a year later, I joined a shop that used Subversion. This time, I invested in learning upfront and swallowed the entire Version Control with Subversion before making my first commit.
Discovering Git: Git was nothing like Subversion. It had a steep learning curve and confused everyone to no end. Still, the confusion was qualitatively different from what I experienced with ClearCase. ClearCase is confusing like a Russian novel: All the characters have strange names, the plot is complex, and it doesn’t end well. Git is confusing like math: It slowly melts your brain and molds it into a tesseract, giving access to higher dimensions.
Understanding Git: Learning about Git’s internals was so much fun that I became interested in the bits and bolts of other version control systems. I traveled through time from Darcs to Mercurial, BitKeeper, and the ultimate origin, SCCS. I also built a toy one-file version control system while learning Rust. Git removed the friction from using version control; there was no excuse not to version anything of value anymore. Merging branches with Git didn’t cause anxiety disorders. The staging area—confusingly named index—became essential to my workflows. My favorite feature was the breathtaking beauty of Git’s design, the elegant mix of distributed systems, acyclic graphs, and content-addressed storage.

Image source: [Wikipedia](https://en.wikipedia.org/wiki/File:Git-logo.svg)
Emacs
While any text editor can save your files, only Emacs can save your soul.
Early Days with Text Editors: I edited my first programs in a friendly blue window of Turbo Pascal 7.0. The environment had little friction: no project or build configuration, no noticeable build time; you type your code and run it.
Exploring Emacs: Most likely, I got interested in Emacs due to my obsession with Lisp after reading Structure and Interpretation of Computer Programs and looking for a Lisp to interact with. I remember reading An Introduction to Programming in Emacs Lisp around 2010 and having a great time.
Diving Deep into Emacs: Emacs is a Lisp machine that provides text editing and window management capabilities. It is a powerful, convenient, and friendly development environment for building dynamic text-driven applications in Emacs Lisp. Almost everything in Emacs is a Lisp object you can inspect, interact with, and access its documentation. Emacs’ dynamism makes extending it much easier than any other editor. The feedback loop is airtight: you can immediately try out your code in the context of the editor you use to write it.

Image source: [Wikipedia](https://en.wikipedia.org/wiki/File:EmacsIcon.svg)
Edworking is the best and smartest decision for SMEs and startups to be more productive. Edworking is a FREE superapp of productivity that includes all you need for work powered by AI in the same superapp, connecting Task Management, Docs, Chat, Videocall, and File Management. Save money today by not paying for Slack, Trello, Dropbox, Zoom, and Notion.
Remember these 3 key ideas for your startup:
Embrace Enlightenmentware: Seek out software that goes beyond basic functionality. Tools like UNIX, Git, and Emacs can revolutionize your workflow and boost your productivity by capturing your imagination and opening new possibilities.
Invest in Learning and Exploration: Delve deep into the internals of these advanced tools. The effort to master them can significantly pay off in the long run, making your work more efficient and fulfilling.
Leverage Community and Open Source: Much of the enlightenmentware stems from open-source communities. Engage with these communities to gain insights and contribute to evolving these tools. Collaboration often leads to greater innovation and problem-solving.

Image description: Reading and discussing notes on community platforms is beneficial for your growth.
For more details, see the original source.