开源开发平台_电线之间:开源开发商Sindre Sorhus的采访

开源开发平台

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/

开源开发平台

你可能感兴趣的:(编程语言,人工智能,java,python,大数据)