It's time to ditch Medium for good! 🌈⚡️

Introducing Devblog by Hashnode. Blog on your domain for FREE. Highly customizable and optimized for developers.

Learn more

I am James Kyle. Ask me anything.

James Kyle is a popular open source developer. He is one of the core team member of TC39, Flow, Jest, Lerna, Yarn, Marionette, and Babel.

He worked as an engineer at Facebook and Cloudflare and is currently handling open source at Thinkmill.

You can find him sharing knowledge at many popular conferences and on his blog. He has a pretty cool collection of stickers, grab them if you like.

Ask James Kyle about:

  • Flow type checker
  • Working with Yarn
  • Babel.js
  • Building durable JavaScript apps
  • Public speaking
  • Contributing to OSS

Alright, I guess it's all over now. Thanks for your questions everyone

Ask a Question

65 discussions

As you were one of the initial contributors of Babel.js, what was the motive behind creating the library? How it become a separate project? Please share the story. :)

Seb really deserves all the credit for the creation of Babel/6to5. I joined in early on, but it’s really his story. He’ll probably cringe at my response to this, but I’ll share the story anyways.

When I first found 6to5 (which was Babel’s original name), I was really excited because I had been a bit frustrated with other tooling that existed at the time.

My friend Jason Laster had been talking about AST transformations a few months before and remember thinking “that shit is magic which can’t possibly work reliably, regex replacement is much easier to deal with”

When I came across the Babel codebase a bunch of things clicked. At the time it only did like 4 things and it was very small and easy to follow along with. But I was still convinced that Seb must’ve been some computer science grad that I couldn’t keep up with.

I reached out to Seb via email because I wanted to contribute to his project. It was fairly small things, but I spent hours writing those emails because I was terrified to get something wrong.

Then I found out he was still in high school and had far less experience than me. I was confused.

It’s easy to then think that Seb is some super young genius, but that’s really the wrong thing to take away. Seb’s no genius, having been friends for a few years now I could tell you all sorts of dumb shit he’s done.

But when he started 6to5, Seb came at it with a really great attitude and really strong motivation. Something that I’ve since tried adopting for myself.

Babel’s really not that complicated. If you want to learn about it I have all sorts of resources for you:

  1. https://github.com/thejameskyle/the-super-tiny-compiler
  2. https://github.com/thejameskyle/babel-handbook
  3. https://www.youtube.com/watch?v=Tar4WgAfMr4

Complexity isn’t that hard to deal with if you come at it with the right attitude. Don’t be afraid to get involved because something seems above you. It’s really not, and the people who try to claim that it is are stupid assholes.

Reply to this…

Share your programming knowledge and learn from the best developers on Hashnode

Get started

What’s your experience learning Go lang? Why do you think the developer adoption is very slow?

https://twitter.com/thejameskyle/status/691026500603121664

Lol, I’m gonna get so much shit if certain people see that tweet.

I actually don’t like Go that much… or really at all. It doesn’t really address any of the problems that I have with other languages. It’s nice they put so much effort into their stdlib (standard library), but the npm ecosystem completely crushes it in my opinion.

Also, the argument that something being in a stdlib is somehow better than having installable libraries is not interesting.

I don’t know that Go’s adoption has been very slow. Languages don’t get adopted overnight, it takes years and years before most people even start to take notice. I think Go is doing fine for itself.

Reply to this…

How can you possible manage working on so many open source projects and having a full time job as well? How do you get time to attend so many conferences?

Well today my job is to work on open source. My only other responsibilities are justifying their existence/development/maintenance and integrating them with tooling inside the company.

But before that was my job, I kinda just overworked myself. I’d work my normal job during the week and on night, weekends, and holidays I would do open source. I would be in a bar with friends and I’d be responding to issues on GitHub.

It was a stupid and very privileged thing I did. I don’t want anyone else to try or be forced to do that.

I’m trying to find new ways to address this in our industry. I joined Thinkmill because Jed Watson and I had ideas on how we could reteach companies what open source meant. It’s actually very easy to justify open source within a company… It’s an investment in the quality of life of your codebase. It pays off bigger than a lot of other investments you could make in maintenance.

I also used to burn myself out on conferences. I had this idea in my head that every conference talk had to be completely new. But after awhile I started making “conference friends”, other speakers who speak so often we’ll end up at the same events all the time. I noticed that their talks tended to bleed into each other, often repeating the same exact content.

The JavaScript community is massive, if you want to teach the community a new idea, you have to repeat it over and over and over. Babel didn’t become the next big thing because Seb or I gave some epic talk a few years back. It became a big thing because we kept repeating ourselves over and over and over until we had taught tens of thousands of people.

So speakers should feel free to give the same exact talk a dozen times and evolve it over time. Stop stressing about creating new content constantly.

Also, I get time to attend so many conferences because I’m privileged as hell. I don’t deserve to go more than anyone else. Which is part of the reason I don’t submit talks to conferences anymore (there are other reasons). There’s a limited number of spots, and throwing myself in there is disadvantaging someone else.

Reply to this…

A bit offtopic: What are you playing on your gaming PC?

Overwatch and Planet Coaster mostly, want to get a group going with gmod

Reply to this…

If you like to see a new library to solve a existing problem in JavaScript today, what problem would that be?

To give you an example, if you look at Flow, it’s sort of a static type checker that helps you catch bugs on the fly.

I’m not entirely certain what you’re trying to ask so I’ll reword the question to my understanding: “What new tools/libraries/etc would you like someone to create that solves problems developers are facing today?”

I can’t really think of anything that I would like to exist that I’m not already trying to create. My ~/Projects folder is filled with dozens of repos not on GitHub yet which I’m halfway through.

These days, most of my focus is on design systems. Which break down UIs into small components/elements/atoms/symbols (whatever you want to call them) so that they can be composed together to create very complicated designs easily. I’m focusing more on the developer side, but a lot of it is designed so that developers can work more closely with designers and product managers.

There’s a bunch of people at Airbnb who are working in a similar place, but a little bit more from the design side. I hope to meet them in the middle and create the next generation of tooling. I’m doing it so that small companies can innovate at the speed of some of these larger corporations.

Reply to this…

Load more responses