There is a simple problem with web development these days: the tooling is lacking a lot of features people had for years: static analysis tools, runtime dynamic analysers, code editors support and others.
Code editor support is especially important as we spend most of our time there: writing and, more commonly, reading and exploring code. Modern IDEs like WebStorm and Visual Studio have accomplished big results in bringing such intelligent support to their costly products. For light-weight editors lovers there is open-source project working on that - TernJS.
Fortunately, I was on my vacation hanging out on sunny warm San Diego beaches with my good friends, so I had a lot of time to "background process" these thoughts.
Nothing made me so enthusiastic to work on such project like a good time spent outdoors in a good company of friends. It probably was the first time in last 6 month when I got so much sun and spent less than 10 hours a day in front of a computer.
One day I refused to go to a movie theater with others and sat down for a solid
couple of hours implementing an MVP for Meteor + Tern integration: convert type
definitions of Meteor public API (using existing work of
and teaching Tern basic scoping rules of Meteor.
After my vacation week I found another weekend to finish and test my work. After testing it on a simple app with Sublime Text first, I recorded a simple screencast to show my work to people. The next day I recorded the sequel walking through the installation process for Vim. The same day happy users reported this plugin to work on Emacs as well. I was happy. The MVP worked for people. It worked for me.
Smart types-based auto-completion, "jump to definition", "find references", documentation look up in Meteor apps worked out of the box, thanks to Tern's flexible plugin system.
To reach the wider audience I proposed my lightning talk and showed off to everyone on the Internet.
I consider it to be pretty successful for a weekend for fun project:
- It works for my work
- Everyone on the mailing list thread was excited and supportive
- The GitHub repo got more than 350 unique views in over the first week
It also got covered by all Meteoric knowledge sources: meteor-talk mailing list, Meteor's twitter, /r/Meteor, Meteorpedia, Meteor Hacks weekly, Meteor Podcast, Meteor Devshop SF, Meteor's Youtube channel. That's hard to miss :).
But it is not over yet! There is a big room for improvements in my plugin! I am already in the process of bringing Meteor smart-packages analysis support, documentation support and bringing the tooling for definitions generation for newer Meteor versions and Atmosphere packages.
Hopefully, this little side project will make a lot more people happier working with Meteor. Alright, folks, I going back to oplog work. Will work on this during next weekend!