開源開發平臺
by Vivian Cromwell
通過維維安·克倫威爾(Vivian Cromwell)
電線之間:開源開發商Sindre Sorhus的采訪 (Between the Wires: An interview with open source developer Sindre Sorhus)
Here’s my interview Sindre Sorhus, a prolific open source developer who lives in Thailand.
這是我對Sindre Sorhus的采訪,他是一位多產的開源開發人員,住在泰國。
告訴我們一些關于您的童年以及您成長的地方。 (Tell us a little bit about your childhood and where you grew up.)
I grew up in a suburban area outside Oslo, Norway. When I was little, I was really interested in Legos. Every year I would get Legos for birthday and Christmas. Legos really sparked my interests in building things early on. At one point, I had a huge Lego city built into my room and it almost occupied the entire room.
我在挪威奧斯陸郊外的郊區長大。 小時候,我對樂高積木很感興趣。 每年我都會在生日和圣誕節得到樂高玩具。 樂高積木確實激發了我對盡早構建事物的興趣。 有一次,我在自己的房間里建了一座巨大的樂高城市,幾乎占據了整個房間。
您是如何開始編程的? (How did you get into programming?)
When I was seven, my family got our first Windows 95 computer. I used to play a game called Map Blaster where the character jumped around to solve math problems. A few years later we finally got internet access and it changed everything for me. I spent a lot of time writing in guestbooks on other people’s web pages and gathering gifs. One day, I got curious about how the website worked and discovered the “view source” button in the browser.
我七歲的時候,我的家人有了我們的第一臺Windows 95計算機。 我曾經玩過一款名為Map Blaster的游戲,該角色跳來跳去解決數學問題。 幾年后,我們終于可以上網了,對我來說一切都變了。 我花了很多時間在其他人的網頁上寫留言簿并收集gif。 有一天,我對網站的工作方式感到好奇,并在瀏覽器中發現了“查看源代碼”按鈕。
That was a mind blowing discovery for me. I could just right click, view the source and then I could see how everything was made. I didn’t understand much in the beginning, but as I looked at the same thing over and over again I started to understand how it worked. This is how I started my programming journey.
這對我來說是一個令人震驚的發現。 我可以右鍵單擊,查看源,然后可以看到所有內容是如何制作的。 一開始我不太了解,但是當我一遍又一遍地看同一件事時,我開始理解它是如何工作的。 這就是我開始編程之旅的方式。
I made my first website when I was ten. It was after having looked at the source for a few years. It had all kinds of colors, a star patterned background, animated with media background music — it was one of those touches that everyone had on their websites back then. I used Microsoft FrontPage.
我十歲時建立了自己的第一個網站。 這是在看了幾年的資料之后。 它具有各種顏色,星形圖案的背景以及媒體背景音樂的動畫效果-那是當時每個人在其網站上都擁有的那些風格之一。 我使用Microsoft FrontPage 。
One time, I was bored so I created thousands of nested directories on my dad’s computer and it ended up crashing the computer. My dad had to reformat the computer; he was impressed and annoyed at the same time. That was also how I lost my first website.
有一次,我很無聊,所以我在父親的計算機上創建了數千個嵌套目錄,最終導致計算機崩潰。 我父親不得不重新格式化計算機。 同時讓他印象深刻和惱火。 這也是我失去第一個網站的方式。
Later during my school year, I got into Flash games and we would watch a lot of Flash movies during school breaks. I was curious how they were made but there was never any source button. So I decompiled the swiff files, that was easy because they were not obfuscated. That, again, gave me the opportunity to learn from other people’s work. I started to modify other people’s games and redid all characters, made new enemies, added high scores. It was a proud moment when I realized others could actually play a game that I had glued together.
在我學年的晚些時候,我開始玩Flash游戲,在放學期間我們會看很多Flash電影。 我很好奇它們的制作方法,但是從來沒有任何源按鈕。 所以我反編譯了swiff文件,這很容易,因為它們不會被混淆。 再次,這給了我學習其他人工作的機會。 我開始修改其他人的游戲,重做所有角色,結交新敵人,增加高分。 當我意識到其他人實際上可以玩自己粘在一起的游戲時,這是一個驕傲的時刻。
您在軍隊中花了五年時間擔任前端開發人員和攝影師。 當時的網絡開發是什么樣的? (You spent five years in the military as a front end developer and photographer. What was the web development like at that time?)
After graduating from high school, I was conscripted directly to the military in Norway. I got into the media unit where I spent most of my time in the office working on the intranet. There wasn’t much to do in the evenings because we lived in the barracks so I decided to build stuff. But most of my experience had been copying and pasting other people’s PHP and JavaScript and I didn’t quite understand how they worked. One day, I stumbled upon Python and Django, it had great documentation and tutorials that PHP never had. I would read tutorials every day and started building things at work.
高中畢業后,我被應征入伍,直接進入挪威的軍隊。 我進入媒體部門,大部分時間都在辦公室內聯網上工作。 晚上沒什么可做的,因為我們住在軍營里,所以我決定去建東西。 但是我的大部分經驗是復制和粘貼其他人PHP和JavaScript,我不太了解它們是如何工作的。 有一天,我偶然發現了Python和Django,其中包含了PHP從未有過的出色的文檔和教程。 我每天都會閱讀教程,并開始在工作中構建事物。
That is how my actual coding started. After the conscription, I planned to go traveling before college. But I got a job offer from a unit in the military named Cyber Defence Unit. It was intriguing so I took the offer, and I ended up spending 5 years there.
這就是我實際編碼的開始方式。 征兵后,我打算去上大學。 但是我從一個名為“網絡防御部隊”的軍事部門獲得了工作機會。 這很吸引人,所以我接受了這個提議,最終在那兒呆了5年。
您是如何參與TodoMVC和Yeoman的? (How did you get involved with TodoMVC and Yeoman?)
I started using GitHub around 2011 but mostly as a consumer. I would go around, looking at different repos and starring them because they looked fun. I fixed some typos in README.md files but that was about it.
我在2011年左右開始使用GitHub,但主要是作為消費者。 我會四處逛逛,查看不同的回購協議并加注星標,因為它們看起來很有趣。 我在README.md文件中修復了一些錯字,但僅此而已。
One day I stumbled upon TodoMVC which helps you to select a JavaScript framework. It was a really awesome idea, although in hindsight we need a lot more advanced applications to actually solve the problems of performance testing and framework capabilities. The first thing I remembered about TodoMVC was that it had a nice logo. It seems very superficial, but that’s what got me started.
有一天,我偶然發現了TodoMVC ,它可以幫助您選擇JavaScript框架。 這是一個很棒的主意,盡管事后看來,我們需要許多更高級的應用程序才能真正解決性能測試和框架功能的問題。 我想起的關于TodoMVC的第一件事是它有一個漂亮的徽標。 似乎很膚淺,但這就是讓我開始的原因。
I liked the logo so much that I decided to look around a bit more. I noticed they didn’t really have a jQuery application so I decided to create one. I submitted a pull request over the weekend and got a response back from Addy Osmani who is the maintainer of the project. He merged my PR quickly which was a super nice experience for a beginner like me. I felt good that my app was now included in this really popular project. I did this for a few weeks, and Addy added me to the project which was really cool.
我非常喜歡徽標,所以我決定環顧四周。 我注意到他們實際上沒有jQuery應用程序,所以我決定創建一個。 我在周末提交了請求請求,并收到了項目維護者Addy Osmani的回復。 他Swift合并了我的PR,對于像我這樣的初學者來說,這是一個非常不錯的經歷。 我的應用程序現在已包含在這個非常受歡迎的項目中,我感到很好。 我做了幾個星期,然后Addy將我加入了這個非常酷的項目。
This really got me interested in open source. Before this, I was just a passive consumer, but with TodoMVC I got a taste of maintaining a big project which was a lot of work. But I learned a lot from that experience.
這真的使我對開源感興趣。 在此之前,我只是一個被動的消費者,但是在TodoMVC的幫助下,我有一個大型項目的維護工作量。 但是我從那次經驗中學到了很多。
A few months later, Addy went to work for Google. His first project at Google was Yeoman, a scaffolding tool for modern web apps. Because we worked so well together on TodoMVC, so he decided to invite me as an external contributor.
幾個月后,Addy前往Google工作。 他在Google的第一個項目是Yeoman ,這是一種用于現代Web應用程序的腳手架工具。 由于我們在TodoMVC上的合作如此出色,因此他決定邀請我作為外部貢獻者。
Our initial goal with Yeoman was to create a set of tools that everyone can use to create great web apps. What we didn’t realize then is that it is impossible to solve everyone’s problem in one tool because on the web there are just too many use cases. Yeoman became a popular configuration that many developers created generators to extend Yeoman that suit their own use cases.
Yeoman的最初目標是創建一套每個人都可以用來創建出色的Web應用程序的工具。 那時我們沒有意識到的是,不可能用一種工具解決每個人的問題,因為在網絡上有太多的用例。 Yeoman成為一種流行的配置,許多開發人員創建了生成器來擴展Yeoman,以適合自己的用例。
History repeats itself as well if you look at Create React App or Webpack. Someone starts out making this product that is supposed to solve one problem, but because everyone has different needs, problems arise. When you realize this tool cannot cover everything, you add the configuration. The key is to have a balanced approach. You have to say “No” and you need to know when to say “no”. You may disappoint some users because they have obscure use cases. That is the hard part of making tools, and it’s even more difficult in open source projects because there is so much feedback.
如果您查看Create React App或Webpack,歷史也會重演。 有人開始生產應該解決一個問題的產品,但是由于每個人都有不同的需求,因此會出現問題。 當您意識到此工具無法涵蓋所有??內容時,您可以添加配置。 關鍵是要采取平衡的方法。 您必須說“不”,并且您需要知道何時說“不”。 您可能會使某些用戶失望,因為他們的用例不明確。 這是制作工具的難點,而在開源項目中則更加困難,因為反饋如此之多。
您為什么對開源充滿熱情? (Why are you passionate about open source?)
I love open source and I think it goes back to the “View Source” button in the browser. In my opinion, open source is the most effective way to build software because it enables us to build on top of each other’s work. Everyone benefits if any one person solves a hard problem. Open source lets me work with incredible people from around the globe that I would never have been able to work with otherwise. We get to work on what matters to us and focus on what’s needed by the community instead of focusing on generating revenue.
我喜歡開源,我認為它可以回到瀏覽器中的“查看源代碼”按鈕。 在我看來,開源是構建軟件的最有效方法,因為它使我們能夠在彼此的工作之上進行構建。 如果任何人解決一個難題,每個人都會受益。 開源使我可以與世界各地令人難以置信的人們一起工作,否則我將無法與他們一起工作。 我們致力于解決對我們重要的事情,并專注于社區的需求,而不是專注于創收。
Paul Irish has a great video on YouTube titled “Ten Things I learned from the jQuery Source.” That’s what got me interested in reading the jQuery source code. Paul Irish was right, you learn a lot by actually doing whatever it is you want to learn how to do.
保羅·愛爾蘭(Paul Irish)在YouTube上播放了一段很棒的視頻,標題為“ 我從jQuery Source學到的十件事 ”。 那就是讓我對閱讀jQuery源代碼感興趣的原因。 保羅·愛爾蘭(Paul Irish)是對的,您實際上可以通過做自己想做的事情學到很多東西。
開源的可持續性如何? (How about open source sustainability?)
That’s definitely a point of conflict that I’ve been thinking about a lot recently. I’ve done open source full time for about three years now. I don’t earn any money but it would be nice to do this full time as a paid job. Vue.js by Evan You is a great example of how open source sustainability can work, though. He created a framework that everyone wanted and it has been used by quite a few companies. Other companies and individuals have incentives to invest in his project because it is useful in production. The key is to make your project dependable. I personally don’t think contributions from individuals are enough to sustain a project.
這絕對是我最近一直在思考的一個沖突點。 我已經完成了大約三年的全職開源工作。 我沒有任何收入,但是全職做這份帶薪工作會很好。 不過 ,Evan You的Vue.js是一個很好的例子,說明了開源可持續性如何工作。 他創建了每個人都想要的框架,許多公司已經使用了該框架。 其他公司和個人也有動機投資于他的項目,因為它在生產中很有用。 關鍵是使您的項目可靠。 我個人認為個人貢獻不足以維持一個項目。
I’ve been thinking about using Open Collective so we can collect money to reward contributors and event promotions. Webpack has done a great job there. I was actually against this for a long time, because I was worried that there were going to be expectations for us to make unwanted changes whenever someone put money towards the project. Usually, if a company invests in a project, they want the work prioritized and the issues fixed quickly.
我一直在考慮使用Open Collective,以便我們可以收集資金以獎勵貢獻者和活動促銷。 Webpack在這方面做得很好 。 實際上,我很長時間以來一直對此持反對態度,因為我擔心,無論何時有人向該項目投入資金,我們都會做出不必要的更改。 通常,如果公司投資項目,則他們希望優先進行工作并Swift解決問題。
I am currently living in Thailand and I think I would be fine with less than 1500 dollars.
我目前生活在泰國,我認為少于1500美元就可以了。
您有超過1000個npm軟件包。 您如何保持如此高效? (You have over 1000 npm packages. How do you stay so productive?)
That’s a misconception. People see the number 1000 packages and they think I’m insanely productive, but what they don’t realize is that most of those packages are small and modular. They’re pretty much done when they are published. I like to compare programming to building with Lego: I create lots of Lego bricks which can be assembled to build larger constructions. I use them with other packages before publishing to ensure they solve my problems. That is also why users would not submit a lot of feature requests because they are so small. If they need something more they can just build another module. 90% of my time is spent on my biggest 10 projects.
這是一個誤解。 人們看到了1000個軟件包 ,他們認為我的效率很高,但是他們沒有意識到,大多數軟件包都是小型且模塊化的。 它們在發布時幾乎完成了。 我喜歡將編程與使用Lego進行構建進行比較:我創建了許多Lego積木,可以組裝這些積木來構建更大的結構。 在發布之前,我將它們與其他軟件包一起使用以確保它們能夠解決我的問題。 這也是為什么用戶因為它們很小而不會提交很多功能請求的原因。 如果他們需要更多東西,他們可以構建另一個模塊。 我90%的時間都花在了我最大的10個項目上。
在與苛刻且有毒的人打交道時,您可以給新的OSS貢獻者什么建議? (What is one advice you can give to new OSS contributors when dealing with demanding and toxic people?)
I have been doing open source for six years now so I’ve developed a thick skin. I don’t think anything bothers me anymore because I like to think that I’ve experienced it all. I talk to a lot of beginners who experience some toxicity and then quit. Open source is supposed to be a fun thing you do, not a cause of stress in your life.
我從事開源已經六年了,所以我變得皮膚很厚。 我認為沒有任何事情會困擾我,因為我喜歡認為自己已經經歷了這一切。 我與許多初學者交談,他們遇到了一些毒性,然后退出了。 開源應該是您做的一件有趣的事,而不是生活壓力的原因。
My advice to new developers is that you shouldn’t let strangers on the internet negatively affect your mood or your drive. It isn’t worth it. If you have the option to walk away, take it — utilize the unsubscribe button. Open source maintainers need to remember that users are not paying customers. We’re providing something to them for free, on our own free time.
我對新開發人員的建議是,您不應讓互聯網上的陌生人對您的情緒或駕駛產生負面影響。 這是不值得的。 如果您可以選擇走開,那就走吧-利用“取消訂閱”按鈕。 開源維護者需要記住,用戶并未向客戶付費。 我們在自己的空閑時間免費向他們提供東西。
With toxic people, you need to always be the bigger person. It sounds wrong, but what I try to do is to kill them with kindness. Somehow it has worked for me for many years. For example, if someone is annoying, I’ll try to be as open and kind about the situation. I make sure never to be sarcastic or talk down to them. The trolls feed on your annoyance and discourse, so when it’s not there, they’ll leave you alone.
對于有毒的人,您需要始終做大人。 聽起來不對,但是我想做的就是善待他們。 不知何故,它為我工作了很多年。 例如,如果有人煩人,我會盡量保持開放和友善的態度。 我確保永遠不要諷刺或對他們說話。 巨魔以您的煩惱和話語為食,因此,如果不存在,它們將讓您獨自一人。
I utilize the muting option wherever it’s provided, especially on Twitter. It’s good to realize just when someone is bordering on toxic, and it’s much better to simply shut that voice and input out instead of causing unnecessary conflict.
無論在何處都可以使用靜音選項,尤其是在Twitter上。 最好只是在有人接近有毒物質時就意識到這一點,最好是簡單地將聲音封閉并輸入,而不要引起不必要的沖突。
您為自己的模塊設計了一些徽標,它們很棒。 您是如何學習設計的? (You designed some logos for your own modules, they are awesome. How did you learn design?)
I started by following online tutorials to make cool effects. I used to use Adobe Illustrator, but now I use Sketch .
我首先按照在線教程制作了很酷的效果。 我曾經使用Adobe Illustrator ,但是現在我使用Sketch 。
It’s really fun for me to design, and I think more programmers should try it. After programming for hours, it’s nice to take a break to do some creative work in a different way.
設計起來對我來說真的很有趣,而且我認為更多的程序員應該嘗試一下。 經過幾個小時的編程,很高興休息一下,以其他方式進行一些創意工作。
It also benefits my projects by creating logos, because it gives the project more of a personality. Usually, when you enter a repo on GitHub, you get the same text based things: a header, some introduction and README.md. It is nice to spice it up with some graphics. It turns out people are more likely to use the project if there is a logo. For example, Vadim Demedes, a developer from Ukraine, submitted this pull request right after AVA’s release. Vadim later became an AVA team member. He told me he got interested in AVA because of its nice logo.
通過創建徽標,這也使我的項目受益,因為它使項目更具個性。 通常,當您在GitHub上輸入一個倉庫時,會得到相同的基于文本的內容:標頭,一些介紹和README.md。 很高興在其中添加一些圖形。 事實證明,如果有徽標,則人們更可能使用該項目。 例如,來自烏克蘭的開發商Vadim Demedes在AVA發布后立即提交了此請求請求 。 瓦迪姆后來成為AVA團隊成員。 他告訴我他對AVA感興趣,因為它的徽標很好。
What prompted you to move to Thailand? Tell us what a typical day looks like for you.
是什么促使您搬到泰國來的? 告訴我們您的典型日子如何。
I didn’t really know much about Thailand at all. When I worked in the military obligatory service, I planned to travel. I got an offer and ended up staying for another four years. I just went with the flow, because life happens.
我對泰國一無所知。 當我在義務兵役時,我計劃旅行。 我得到了一份報價,最終又住了四年。 我只是順其自然,因為生活會發生。
One day, when I was preparing a phone interview with Google, I just decided that if I’m ever going to travel, it would be now, otherwise, it would never happen. So I canceled the interview and submitted my resignation at work the day after. I bought a one-way ticket to Thailand and that was it.
有一天,當我準備與Google進行電話采訪時,我決定,如果我要去旅行,那將是現在,否則,它將永遠不會發生。 因此,我取消了面試,并于第二天上班辭職。 我買了一張去泰國的單程票。
I did backpacking for half a year in South East Asia, and that’s where I met my girlfriend. I eventually settled in Thailand because it was my favorite. I love its rich culture, friendly locals, and food. I have been living in Thailand for two years now.
我在東南亞背包旅行了半年,那是我認識女朋友的地方。 我最終在泰國定居,因為它是我的最愛。 我喜歡這里豐富的文化,友善的當地人和美食。 我已經在泰國生活了兩年。
I work out of local coffee shops three days a week because I am more productive when I have people around me. Otherwise, from nine to six I do a lot of open source coding and maintenance, sometimes my side projects. On most days, I get more than 20 pull requests and tons of issues to fix. In the evening, I spend time with my girlfriend Im; we both love the spicy street food at night markets. Sometimes duty calls and I find myself back in front of the computer late at night.
我每周三天在當地的咖啡店工作,因為當我周圍有人時,我的工作效率更高。 否則,從九點到六點,我會做很多開源編碼和維護工作,有時還會做一些我的項目。 在大多數情況下,我會收到20多個拉取請求和大量問題要解決。 晚上,我和女友林一起度過。 我們倆都喜歡夜市的辛辣街頭小吃。 有時值班電話,深夜我發現自己回到了電腦前。
I didn’t learn the Thai language because while I am good at programming languages, spoken language is much harder than any programming language, and Thai is especially hard. My girlfriend, on the other hand, is fluent in Thai, Russian, English and pretty good at Swedish. At some point, I want to learn Thai and other languages, but I’m not pressed for time.
我沒有學習泰語,因為雖然我擅長編程語言,但口語比任何編程語言都難得多,而泰語尤其難。 另一方面,我的女友精通泰語,俄語,英語,并且精通瑞典語。 在某個時候,我想學習泰語和其他語言,但時間緊迫。
是什么促使您啟動AVA項目? (What motivated you to start AVA project?)
I was using Mocha a lot because I made a lot of modules that had to be tested. I wasn’t really happy with how it worked. Mocha injects some global objects but they are not defined anywhere. Because I was doing it in Node.js, I had a lot of async APIs and it was not very convenient to do with Mocha.
我經常使用Mocha,因為我制作了許多必須測試的模塊。 我對它的工作方式并不滿意。 Mocha注入了一些全局對象,但未在任何地方定義它們。 因為我是在Node.js中進行的,所以我有很多異步API,而使用Mocha并不是很方便。
I wanted something simpler and more optimized for my use case. So one weekend, I decided to work on it, and by Sunday evening I published 0.0.1 version for AVA on npm. Even though JavaScript is single-threaded, IO in Node.js can happen in parallel due to its async nature. AVA takes advantage of this and runs your tests concurrently, which is especially beneficial for IO heavy tests. In addition, test files are run in parallel as separate processes, which allows for potentially even better performance and an isolated environment for each test file.
我想為我的用例提供更簡單,更優化的功能。 因此,一個周末,我決定進行此工作,到周日晚上,我在npm上發布了AVA的 0.0.1版本。 即使JavaScript是單線程的,由于其異步特性,Node.js中的IO仍可以并行發生。 AVA利用此優勢并同時運行測試,這對于IO繁重測試尤其有用。 此外,測試文件作為單獨的進程并行運行,這可以潛在地提高性能,并為每個測試文件提供隔離的環境。
Because I didn’t have time to fix bugs and I only wanted to use it on my own projects, it was private. After a year and a half, I finally made a logo for AVA, cleaned up the repo, wrote a lot of documentation. Then, I published the project.
因為我沒有時間修復錯誤,而且只想在自己的項目中使用它,所以它是私有的。 一年半后,我終于為AVA制作了徽標,清理了存儲庫,寫了很多文檔。 然后,我發布了該項目。
Most of the users seem very happy about AVA because we get positive tweets on the project all the time. They really like how simple the syntax is and how easy it is to get started. I just made it to scratch my own itch, but it turns out that other people had the same problem and liked my solution.
大多數用戶似乎對AVA感到非常滿意,因為我們一直都對該項目給予積極的推文。 他們真的很喜歡語法的簡單性以及入門的簡易性。 我只是想撓自己的癢,但事實證明,其他人也有同樣的問題,并且喜歡我的解決方案。
Nowadays, I spend more time on managing the project because there are so many new issues and pull requests every week, which leaves me very little time to code.
如今,我花更多的時間在項目管理上,因為每周都有很多新問題和請求提出,這使我很少有時間進行編碼。
您為什么決定進入macOS開發? (Why did you decide to get into macOS development?)
I did a little bit Objective-C programming but I didn’t have a great experience. This January, I got an idea for a Mac application, and I had some free time so I jumped right into Swift. That is how I usually learn new things. It’s very spontaneous. I begin with a desire to make a product, then I figure out what skills I need to make that product then I learn them. The idea comes before the planning.
我做了一些Objective-C編程,但是經驗不足。 今年一月,我有了一個Mac應用程序的主意,并且有一些空閑時間,所以我直接進入了Swift 。 那就是我通常學習新事物的方式。 這是非常自然的。 我從制作產品的愿望開始,然后弄清楚制作該產品所需的技能,然后學習。 這個想法先于計劃。
Swift is a lot harder to learn initially than JavaScript, but Swift shines because it is strongly typed. When you compile, it is much more unlikely to crash if you use optionals correctly. The only thing I didn’t like about Swift is that you still sometimes have to interact with the old APIs in C.
最初,Swift比JavaScript難學得多,但是Swift發光是因為它是強類型的。 編譯時,如果正確使用可選選項,則崩潰的可能性很小。 我不喜歡Swift的唯一一件事是,有時您仍然必須與C中的舊API交互。
I wrote a few productivity and utility apps. Lungo is a menu bar app that I wrote, and you find it on the App Store. The other one I wrote is Battery Indicator.
我寫了一些生產力和實用程序應用程序。 Lungo是我編寫的菜單欄應用程序,您可以在App Store上找到它。 我寫的另一個是電池指示器 。
您明年的計劃是什么? 您是否打算全職工作或考慮其他方法來實現財務可持續性? (What is your plan for next year? Are you planning to go full time or consider other ways to become financial sustainable?)
I have been living off savings for the last three years and doing open source software. That’s a lot easier in Asia but it doesn’t last forever. Ideally, I would like to do open source in a financially sustainable way but that’s difficult, so I will probably do some contracting next year.
在過去三年中,我一直靠積蓄為生,并從事開源軟件的開發。 在亞洲,這要容易得多,但不會永遠持續下去。 理想情況下,我想以財務上可持續的方式進行開源,但這很困難,因此明年我可能會簽約。
I have tried a few different things. One thing I did is to ask for support in GitHub README.md file. I wouldn’t call it an ad but more of a small banner. I made a little bit of money but it is far from being able to sustain me.
我嘗試了幾種不同的方法。 我做的一件事是在GitHub README.md文件中尋求支持。 我不會稱其為廣告,而是稱其為小橫幅。 我賺了一點錢,但遠不能維持我。
I might give Patreon a try.
我可以試一下Patreon 。
您希望在JavaScript生態系統中進行哪些改進? (What are some of the things you wish to improve in JavaScript ecosystem?)
In my opinion, the JavaScript ecosystem is great already but we still have a lot of quirks to work around on browser side of things. There are so many projects with this giant build script just to get a simple app out there, that is why I love Node.js.
在我看來,JavaScript生態系統已經很不錯了,但是在瀏覽器方面我們還有很多怪癖。 這個龐大的構建腳本有很多項目,只是為了在那里提供一個簡單的應用程序,這就是為什么我喜歡Node.js的原因 。
The problem with browsers is that they are very complex. You have the network to think about, you need to optimize for both size and performance, you have lots of different use cases, frameworks to choose from. Everyone tries to simplify it, but then you end up being too opinionated, then you add configuration but there is too much boilerplate. I don’t see an easy path forward unless you fix the actual platform instead of creating lots of solutions on top of it. One thing I think will improve the situation is when we finally get modules in the browser. You may not need a build step for everything then.
瀏覽器的問題在于它們非常復雜。 您需要考慮網絡,需要針對大小和性能進行優化,您可以選擇許多不同的用例和框架。 每個人都試圖簡化它,但是最終您會變得過于固執,然后添加配置,但樣板太多。 除非您修復實際的平臺而不是在其之上創建許多解決方案,否則我認為前進的道路并不容易。 我認為可以改善這種情況的一件事是,當我們最終在瀏覽器中獲取模塊時。 然后,您可能不需要所有步驟的構建步驟。
為什么JavaScript開發人員沉迷于獨角獸? (Why are JavaScript developers obsessed with unicorns?)
The whole pony movement started with the Django community actually. When you started asking the features you want, developers would say “I want a faster HTTP parser,” or “I want ORM that just works.” One day, one of the core devs on Django mailing list responded to one of the feature requests with “no, you can’t have a pony!” The whole unicorn movement started with that feature request denial.
整個小馬運動實際上都是從Django社區開始的。 當您開始詢問所需的功能時,開發人員會說“我想要一個更快的HTTP解析器”或“我想要可以正常工作的ORM”。 有一天,Django郵件列表上的一位核心開發人員對功能請求之一做出了回應:“不,你不能擁有小馬!” 整個獨角獸運動始于該功能請求被拒絕。
There’s even a website dedicated to the lovable pony.
甚至還有一個專門介紹可愛小馬的網站 。
I don’t remember exactly how it spread to the JavaScript community. It was one of those things that just happened on its own. Having something as fun and silly as unicorns helps me work through programming and OSS and ups my morale. The same goes for silly gifs.
我不記得它是如何傳播到JavaScript社區的。 這只是自己發生的事情之一。 擁有像獨角獸一樣有趣和愚蠢的東西,可以幫助我完成編程和OSS的工作,并提高我的士氣。 愚蠢的gif也是一樣。
I originally posted this interview on Between the Wires, an interview series featuring those who are building developer and designer products.
我最初將此采訪發布在“電線之間” ,這是一個采訪系列,主要介紹那些正在開發開發商和設計師產品的人。
This project is made possible with sponsorships from frontendmasters.com, egghead.io, Microsoft Edge and Google Developers.
來自frontendmasters.com , egghead.io , Microsoft Edge和Google Developers的贊助使該項目成為可能。
翻譯自: https://www.freecodecamp.org/news/sindre-sorhus-8426c0ed785d/
開源開發平臺