There must be a photo here, it’s canton tower.

My story with GSoC 2018: Beginning

Vincent Chan
Apr 27, 2018 · 3 min read

This is the first part of my stories with GSoC 2018. I will share my personal experiences and all the things happened with GSoC 2018 in the series.

About Me

I am from China, Guangzhou. I major in Computer Science and I am serving my 3rd year at South China Agricultural University. This year before Google Summer of Code (GSoC), I served my internship in a Chinese Company named Bytedance. My job is front-end development. I am really interested in the technologies behind front-end development. During the internship, I was required to use Redux + React for developing new features. I learned a lot from these.

Programmers always have a passion for discovery. That’s what I will do. Before I served my internship, I learned a lot about compilers myself. In my point of view, a compiler is like a precise machine. It helps programer to create other machines(compiling programs). I have written some toy interpreters myself such as halang. It has many bugs, no tests, and it's a poor project. But I learned how a parser compiler works in this project.

After some silly projects like halang. I realized that implementing a compiler from zero is very hard. It was at this point that I wanted to work on some complete compiler, and add some features on it.

That time I chose babel. Last year, I submitted a PR about implementing the new feature of TC-39 stage-0 proposal: pattern matching. Since the champion in charge of this proposal of TC-39 has changed, there are updates that now need to be made to it. Here is the PR and I continue to work on it as the spec is defined.

Story With Webpack

As you know, webpack is also a project armed with compiler technologies. It was very exciting for me to see webpack on the GSoC 2018 organizations list this year.

Before GSoC started, I tweeted to Sean (one of the owners of webpack) to ask if webpack can offer some projects about AST analysis (as this was what I wanted to focus on). Sean replied immediately and give me a suggestion about deep scope analysis. It’s about implementing new tree-shaking features that are more intuitive and automatic. I think it’s very cool and will be an exciting challenge for me.

Tobias Koppers has ownership over this feature in webpack, and he is my mentor in GSoC 2018 now. I often talked to Tobias about details of webpack and implementations of new feature, and he’s very nice to work with.

It’s my pleasure that webpack selected me, and I am looking forward to what’s in store next in my GSoC 2018 journey.

Work To Do

GSoC provides a timeline officially on the homepage. But I will have my own timeline with my mentor. Here’s my Github repo contains the jobs I have done:

And here’s what I will do during the GSoC:

  • Improve escope to analyze the scopes of code
  • Add tests infrastructure for testing
  • Extract module dependencies from plugin
  • Do tree shaking with the plugin

If I really finish this, webpack will support tree-shaking in the new version. This has the potential to have profound impacts in front-end performance by removing even more dead code from bundles that are created. It’s unbelievable that I could have the potential to make such an impact on the front-end community at this scale. Thank you GSoC and Thank you webpack.

Last but not least

I believe that I will finish the job at the end with happiness. Let’s enjoy it!

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store