jiacai2050 / ideas

Think more
https://github.com/jiacai2050/ideas/issues
29 stars 2 forks source link

An Interview with Bozhidar Batsov, Creator of CIDER, Projectile, Prelude, and RuboCop #51

Open jiacai2050 opened 1 year ago

jiacai2050 commented 1 year ago

[

](https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0413185-1326-4dfd-a498-060ee88f0c06_1140x812.jpeg)

Bozhidar Batsov

Bozhidar Batsov is an Emacs fanatic and author of several popular & useful projects.

Who are you, and what do you do?

I'm Bozhidar and I love computers in general and programming in particular. My fanatic devotion to Emacs is known world-wide. I spend a lot of my (free) time on GitHub, contributing to various open-source Ruby, Clojure and Emacs Lisp projects. My most notable open-source projects are RuboCop (a linter/formatter for Ruby) and CIDER (a Clojure IDE for Emacs).

I'm a constant learner when it comes to programming and I love playing with new programming languages - right now I'm learning OCaml.

You can learn more about me here.

How did you get interested in that?

Assuming you mean programming - through video games! Like many children I got drawn to computers to be able to play more games and to programming to be able to make games. The full story of how I became a programmer is will be a small novel, so I'll leave it at that.

What tools do you use? (Could be hardware, software, something else entirely.)

I've got two computers - one reasonably powerful desktop computer that I use when I'm at home and one thin and light laptop that I use when traveling. I'm a big believer in "laptops stand for portability" and I really dislike desktop replacement type of laptops. Yeah, some people really need them, but I'd hate to carry constantly with me a laptop that's 2+ kg.

After many years of being a Linux and macOS user I've switched mostly to Windows a couple of years ago and my experience there has been fairly positive. I get access both high-quality Windows apps and great Linux environment in the form of WSL.

I've recently ordered the new MBA with M2 and down the road I might get a M2 desktop machine as well. Like many others I've been really impressed by the performance and power efficiency of Apple's recent chips.

I'm obsessed with mechanical keyboards (and typing in general). I own many keyboards by my favorite one by far is the legendary Leopold FC660C (with Topre switches). I hate being apart from it.

As for the software:

Besides the tools, what routines help you get your work done?

To be honest - I've always been struggling to maintain a strict routine. Still, I've found helpful personal Kanban, some aspects of the Getting Things Done framework, keeping a lot of notes, todos, reminders and events around.

I also try to segment my days into portions for personal development, OSS work, my day job, hobbies, etc. Having some structure in ones day always helps.

What's the story behind how you started using Emacs?

It's another (very) long story, but the short version is that I was using vim for C programming around 2005 and I read somewhere that Emacs was a better editor for C developers. I read a book about Emacs, I got interested in it and the rest is history. :-) I was also very fortunate to work with some very devoted Masters of Emacs on my next job, who cemented my love for Lisps and Emacs.

Emacs Prelude has probably helped a lot of people get started with Emacs that otherwise might not have. By adding sane defaults and a curated set of packages, it lets users hit the ground running. Do you think it's better to start with something like Prelude, or should users try plain Emacs first and then try to add their own customizations?

Depends on the kind of person you are and deep do you want to go early on. I remember I really struggled with setting up Emacs initially, so something like Prelude would have helped me a lot. I imagine many people are curious about Emacs, but don't have the time to learn it in depth and they would benefit a lot from Prelude.

I think it's also very useful for people who want to build a configuration from scratch, as it gives them a ton of pointers in the right direction (e.g. they know all the packages there are high-quality). Otherwise they'd have to do a lot of additional discovery work.

To answer your question directly - I think that most people would probably benefit from starting with something like Prelude and gradually tuning it to their needs, as opposed from starting from a clean slate.

Emacs has been around for more than 40 years now and is still going strong. What do you think is the reason for the longevity? And why should people prefer to use Emacs today, over something like VSCode or Sublime Text?

I've already answered this question in depth many times. I'd suggest to our readers the following articles:

TLDR; The community around Emacs is small, but extremely devoted to the cause. You can't build such a community with money, as corporations often try to do. And Emacs is mostly aiming at the people who want to build a very customized editor for themselves, instead of using someone else's editor. That will always have some appeal IMO, even if the target group is pretty small.

What resources (books, videos, etc.) or advice do you have for people that are interested in your line of work?

For Emacs:

For Clojure:

Following my 3 blogs would expose them to a lot more resources:

How do you relax or take a break? How do you avoid burnout?

I don't have have any magic recipes, but there are a few things I love to do relax:

When I feel I'm close to burnout generally I reduce my open-source work and focus more on my relaxing activities. One can easily see how I go through cycles of a lot of OSS activity and almost none. Occasionally I'd take longer breaks from work as well.

What are some of your favorite things that you've created?

Probably my favorite projects are:

Who or what inspires or motivates you; or, alternatively, that you admire?

Many of the hackers of the 70s-90s are a big inspiration and personal heroes of mine (think people like Dennis Ritchie, Brian Kernighan, Rob Pike, Jamie Zawinski, Paul Graham, etc). Same with the community leaders in every programming community I'm active in. (e.g. here are some of my Clojure heroes - https://metaredux.com/posts/2019/06/10/clojure-heroes.html)

As for my motivation, it comes from two directions:

What would be your dream setup?

A laptop with the size of an MBA, with the power of an MBP, 20 hours of battery, no heat and no noise. :D And two Control keys! I guess I'll have to wait 5-10 years for something like this to happen. Powerful and light laptops that run Linux well would also qualify as dream setup for me.

On a more serious note - I'm quite happy with my existing home setup and other than getting a quieter fan and a more powerful GPU I wouldn't change anything there.

In terms of software - I think Emacs is all the dream setup I would ever need!

Subscribe to Syntopikon

Interviews, writing, and video.

jiacai2050 commented 1 year ago

博日达尔·巴佐夫

Bozhidar Batsov是 Emacs 的狂热者,也是几个流行且有用的项目的作者。

你是谁,你做什么?

我是 Bozhidar,我总体上喜欢计算机,尤其喜欢编程。我对 Emacs 的狂热热爱是举世闻名的。我在 GitHub 上花费了大量(空闲)时间,为各种开源 Ruby、Clojure 和 Emacs Lisp项目做出贡献。我最著名的开源项目是RuboCop (Ruby 的 linter/格式化程序)和CIDER ( Emacs 的 Clojure IDE)。

在编程方面,我是一个不断学习的人,我喜欢使用新的编程语言——现在我正在学习 OCaml

你可以在这里了解更多关于我的信息。

你是怎么对它感兴趣的?

假设您的意思是编程 - 通过视频游戏!像许多孩子一样,我被计算机吸引是为了能够玩更多的游戏,而被编程所吸引是为了能够制作游戏。我如何成为一名程序员的完整故事将是一部小小说,所以我就此打住。

你使用什么工具?(可能是硬件、软件,也可能是其他完全不同的东西。)

我有两台电脑——一台功能相当强大的台式电脑,我在家时使用,另一台轻薄的笔记本电脑,我在旅行时使用。我坚信“笔记本电脑代表便携性”,我真的不喜欢台式机替代型笔记本电脑。是的,有些人确实需要它们,但我不愿意经常随身携带一台 2 公斤以上的笔记本电脑。

在成为 Linux 和 macOS 用户多年之后,几年前我主要切换到 Windows,并且我在那里的体验相当积极。我可以使用 WSL 的形式访问高质量的 Windows 应用程序和出色的 Linux 环境。

我最近订购了带有 M2 的新 MBA,并且在未来我可能还会得到一台 M2 台式机。和其他许多人一样,我对 Apple 最新芯片的性能和能效印象深刻。

我沉迷于机械键盘(以及一般的打字)。我拥有许多键盘,到目前为止我最喜欢的是传奇的Leopold FC660C (带有 Topre 开关)。我讨厌和它分开。

至于软件:

除了工具之外,还有哪些例程可以帮助您完成工作?

老实说——我一直在努力保持严格的作息规律。尽管如此,我还是发现了有用的个人看板、Getting Things Done 框架的某些方面、保留大量笔记、待办事项、提醒和事件。

我还尝试将我的日子分成几个部分,用于个人发展、OSS 工作、我的日常工作、爱好等。在一天中有一些结构总是有帮助的。

您开始使用 Emacs 的背后有什么故事?

这是另一个(非常)长的故事,但简短的版本是我在 2005 年左右使用 vim 进行 C 编程,我在某处读到 Emacs 是 C 开发人员更好的编辑器。我读了一本关于 Emacs 的书,我对它产生了兴趣,剩下的就是历史了。:-) 我也很幸运在我的下一份工作中与一些非常忠诚的 Emacs 大师一起工作,他们巩固了我对 Lisps 和 Emacs 的热爱。

Emacs Prelude 可能已经帮助很多人开始使用 Emacs,否则他们可能不会。通过添加合理的默认值和一组精选的软件包,它可以让用户开始运行。您认为从像 Prelude 这样的东西开始更好,还是用户应该先尝试普通的 Emacs,然后再尝试添加他们自己的定制?

取决于你是什么样的人,你是否想早点去。我记得最初设置 Emacs 时我真的很费力,所以像 Prelude 这样的东西会对我有很大帮助。我想很多人对 Emacs 很好奇,但没有时间深入学习,他们会从 Prelude 中获益良多。

我认为它对于想要从头开始构建配置的人也非常有用,因为它为他们提供了大量指向正确方向的指示(例如,他们知道那里所有的包都是高质量的)。否则他们将不得不做很多额外的发现工作。

直接回答你的问题——我认为大多数人可能会从像 Prelude 这样的东西开始并逐渐根据他们的需要调整它,而不是从头开始。

Emacs 已经存在了 40 多年,并且仍然很强大。你认为长寿的原因是什么?为什么今天人们更喜欢使用 Emacs,而不是像 VSCode 或 Sublime Text 这样的东西?

我已经多次深入回答过这个问题。我建议我们的读者阅读以下文章:

TLDR; Emacs 周围的社区很小,但非常致力于这项事业。你不能像公司经常尝试做的那样,用钱建立这样一个社区。而 Emacs 主要针对那些想要为自己构建一个非常定制化的编辑器,而不是使用别人的编辑器的人。在我看来,这总是有一些吸引力,即使目标群体很小。

对于对您的工作感兴趣的人,您有哪些资源(书籍、视频等)或建议?

对于 Emacs:

对于 Clojure:

关注我的 3 个博客将使他们接触到更多资源:

你如何放松或休息一下?你如何避免倦怠?

我没有任何神奇的食谱,但有一些我喜欢做的放松的事情:

当我觉得自己快要精疲力尽时,我通常会减少我的开源工作,更多地关注我的放松活动。人们可以很容易地看出我是如何经历大量 OSS 活动和几乎没有活动的循环的。有时我也会从工作中休息更长的时间。

你创造的一些你最喜欢的东西是什么?

我最喜欢的项目可能是:

谁或什么启发或激励你;或者,您欣赏?

许多 70 至 90 年代的黑客是我的灵感来源和个人英雄(想想Dennis RitchieBrian KernighanRob PikeJamie ZawinskiPaul Graham等人)。与我活跃的每个编程社区中的社区领导者一样。(例如,这是我的一些 Clojure 英雄 - https://metaredux.com/posts/2019/06/10/clojure-heroes.html

至于我的动力,来自两个方向:

你梦想的设置是什么?

MBA 大小的笔记本电脑,具有 MBP 的功率,20 小时的电池续航时间,不发热,无噪音。:D 和两个控制键!我想我将不得不等待 5-10 年才能发生这样的事情。运行良好的 Linux 的强大而轻便的笔记本电脑也符合我的梦想设置。

更严肃地说——我对我现有的家庭设置非常满意,除了获得更安静的风扇和更强大的 GPU 之外,我不会改变那里的任何东西。

在软件方面——我认为 Emacs 是我梦寐以求的设置!