My story with GSoC 2018: Beginning
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.
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!