Interview with JetBrains’ John Lindquist
Please meet John Lindquist, the newest addition to JetBrains’ team of Technology Evangelists. John gave us a nice full-blown interview, so… don’t let me take any more of your time—read on and get to know him!
1. Hi John, we would like to welcome you to JetBrains and thank you for taking the time to speak with us. You are a highly recognized figure in the Flash world for example, but for those who don’t already know you, can you tell us a bit about yourself?
Sure, from the tech side: I started programming back in high school by writing games on my TI-85 calculator instead of paying attention in high school math (unless you count hypercard before that). I played around with writing my own blogging software from a home server (ASP). I moved on to doing odd jobs while in school back around 2000 (php, java). For the next couple years, developed an internal app for the University of Utah for rendering/submitting pdfs (php, pdf, etc). Then settled down to work for an agency called Schematic with clients like Disney, Dell, Target, etc (flash, html). Most recently was working as a consultant at Roundarch with clients like Bloomberg, HBO, Air Force, etc.. (HTML/JS, flex, flash, etc).
On the personal side: I’ve been happily married for 9 years and have 3 incredible young boys. I’ve received a degree in English and took a stab at Law School (which I found mind-numbingly boring) before settling down in a full-time dev career.
2. Why do you want to work at JetBrains, and what will you be working on?
Over the years, I’ve had a very public love affair with Intellij (I’ve met many people like me). JetBrains’ IDEs have saved me so many days of my life thanks to the intelligent refactorings, inspections, etc that I feel obliged to share that knowledge with the world ;) I’ve also been very happy with the support from the JetBrains developers for implementing my feature requests and fixing my bug reports. I’ll probably be bugging them even more with feature requests now that we’re on the same team. ;)
My speciality is making video tutorials (see my youtube channel http://youtube.com/johnlindquist) so my main focus while working at JetBrains will be making videos covering a variety of technologies/frameworks/etc while using JetBrains’ tools to show off their features. Starting off, I’ll be targeting JavaScript frameworks using WebStorm, but over the months/years I’ll begin branching off my videos into other languages and tools.
3. What has influenced your decision to change your focus from one technology to the other?
I’m a front-end guy who loves building creative apps. I don’t really care about the language or platform as long as it delivers a great experience to the end-user. Recently, I had a ton of fun playing with Lua for some personal projects simply because the language lets you do anything. On the other hand, I’ve found writing Intellij plugins (in Java) to be the most rewarding because I can share them with others and I end up using them every day. Luckily I have enough experience bouncing between languages that picking up a new one comes pretty naturally. I think the weirdest thing is picking up a language you haven’t used in years (e.g., php) and your concepts of languages/patterns/architecture/etc have changed so much that it feels like starting over.
4. From your point of view what are the advantages of HTML5 over Flash and where does it need to improve?
HTML (and some of the “5”) runs on the iPad. That’s pretty much the only thing many clients care about right now.
You have to watch the recent “The Web Can Do That?” presentation from Google I/O to see how amazing browsers are becoming. It’s unfortunate the entire world isn’t running >Chrome 21, but it’s a really, really exciting time to be a web developer.
I’d hope with Flash’s new focus on gaming that it would be a more consistent/performant experience across browsers than HTML/JS will be for a few years, but I’ve seen some pretty impressive gaming demos in JS too. Honestly, I think there’s just so much excitement, motivation, and competition in the JS communities now that they’ll power JS through any pre-conceived notions of weakness.
5. Which of the latest HTML5 features have you tried yourself? Did they fit your needs? Would you advise others to try them when building an enterprise application?
Most recently, I’ve been doing a lot of work with PhoneGap and using WebView to build mobile apps. Due to the nature of mobile devices (huge variety of OS versions and WebView support) it’s been nothing but compromise after compromise on some of the most basic features (gestures, scrolling, etc). As for Canvas, WebGL, CSS3, sockets, video, etc, etc, etc, I’ll save my opinion for later since my experience is limited to prototypes and online demos.
6. Was the Flash crisis in late 2011 the only reason for JavaScript rise?
Not even close. People love to place blame and point fingers, but you have to simply analyze your market and choose the best technology that fits. Flash is re-inventing itself as a gaming platform. JavaScript is having a “coming of age” where developers are treating it as a real solution for applications. I think the rise/fall we’re seeing points to the market/solutions that we’re working with. Nothing more, nothing less.
7. Does JavaScript have potential to overtake classic languages (Java/C#/C++)?
My sister, a blogger, has copy/pasted code snippets of JavaScript, but I’m sure she can’t say the same for Java. In my opinion, it will all come down to the “barrier of entry” for writing the language. For JavaScript, you don’t have to download/install anything and it can have an immediate visual impact on what you’re building (html, etc). More than anything, I think that will drive the upcoming generations of developers to dive into it (I’m sure many people reading this will disagree).
Beyond that, I hope to see many more new languages topping the TIOBE charts throughout my lifetime as new devices and platforms hit the scene.
8. Is it now possible to create an enterprise-level application in JavaScript both server-and client-side?
Enterprise apps are typically built by large teams leveraging legacy systems. Today, I believe JS would be great for an app where you’re starting from scratch and have a small agile team excited about the technology. On the flip side, just ask anyone how difficult it is to hire top-quality JS talent today and you’ll quickly realize how hard it would be to staff a large team for a JS project (especially if you’re trying to attract them to “humdrum” enterprise apps). I think we’re at the point where the technology is ready, but the community of needs to mature into seasoned app developers who have settled into roles of “enterprise JS consultants” before I’d recommend JS across the stack for enterprise.
9. What would be your advice for newbie JavaScript developers? For experienced folks? (except using JB products!)
Newbies: There are plenty of good apps out there that present good coding challenges for you. For example, try building twitter using fake data. Then add more features like making the tweet lists sortable or organized by common words. Take it one step at a time and keep Stackoverflow open in another tab and you’ll be cranking building your own client-side JS apps in no time. Just have fun and don’t be afraid to make mistakes.
Experienced folks: contribute to open-source projects and get involved in the discussion. Once you reach a certain skill level, the only way to learn is to have others critique your work. Trust me, open-source communities are great at critiquing your work ;)
10. What do you do in your free time? Do you have any hobbies?
I code and/or read about code a lot in my free time. I think it’s both a blessing and curse to have your hobby be the same as your job. Sometimes you think, “I need to get out more”, but then at midnight you concoct a cool new feature from a couple nuggets of inspiration and you dive right back down the rabbit hole.
Oh, and I love racquetball, playing guitar, and helping with service projects.
11. Thank you again for your time John and we look forward to the positive contributions that you will make as a JetBrains Evangelist. Are there any upcoming events, books or topics that you would like to plug?
Only my youtube channel for now: http://youtube.com/johnlindquist
I’ll start working on my conference schedule, updating my online profiles, etc once I officially start with JetBrains next week and go from there. Thanks!
You can learn more about John and these technologies through his website and twitter account.