NetBeans IDE, over several releases now, has been building up an awesome set of tools for frontend web development with Knockout.js:
- NetBeans IDE 7.4: wiki.netbeans.org/NewAndNoteworthyNB74#Knockout
- NetBeans IDE 8.0: http://wiki.netbeans.org/NewAndNoteworthyNB80#Knockout
- NetBeans IDE 8.1: http://wiki.netbeans.org/NewAndNoteworthyNB81#KnockoutJS
And there's also a handy plugin for generating a Knockout frontend for a Java EE backend:
These features include a bunch of different things, such as intellisense and documentation within Knockout's data-bind attribute...
...as well as intellisense for the attributes of Knockout components, as shown here:
So, to explore Knockout more broadly, it's time for the NetBeans community to get to know the Knockout community a bit better! To that end, Ryan Niemeyer, one of the active Knockout community members, has kindly responded to some 'getting to know you' questions I recently sent him.
Hi Ryan, thanks for taking the interview, can you tell us a bit about who you are and what you do?
My name is Ryan Niemeyer and I am a web developer who has been in the software industry for over 16 years. I work for a great company called LeanKit (http://leankit.com). We have an awesome product for visualizing workflows and I have the chance to work with many wonderful and talented folks. I work remotely from the Madison, Wisconsin area and live with my wife and two girls (7 and 4). I have been interested and involved with open source projects as well for the last 5 years, which has been a very enjoyable and valuable experience.
How and when did you get involved with Knockout.js?
I have always been interested in templating and data-binding technologies. I did a lot of XML/XSL work years back and the combining data with a description of how to present it (a template) always made a lot of sense to me. Eventually I started working with jQuery and jQuery templates, which I felt was a quite powerful tool at the time.
Finally, in 2010 when Knockout was first released, it just clicked for me right away. Knockout was able to eliminate so much of the spaghetti code normally required to wire up an application. At the time, I did not have a ton of my own problems to solve with Knockout, so I started getting heavily involved in the Knockout forums and answering questions on StackOverflow. Soon after that, Steve Sanderson, the author of Knockout, asked me to join him on the core team.
You have a very active Knockout.js blog—what are your aims with it and what should one expect to find there?
My blog is at www.knockmeout.net. When I started the blog, there wasn’t a lot of information about Knockout available on-line other than from the official site (http://knockoutjs.com). The blog gives me a chance to share some ideas that I have had for solving problems, introduce plugins that I have written, and provide additional background when there are Knockout releases. My posts have been a bit more infrequent lately, as life is busy at the moment, but I certainly intend on keeping the blog going of the long-term.
What do you consider to be the most awesome features of Knockout.js?
I think that Knockout has a very low barrier to entry. It is easy to learn and stays very focused on data-binding and templating concerns. Knockout definitely provides plenty of extensibility points to allow advanced usage, but you can be productive with it right away.
I believe that another great feature of Knockout is that we have worked hard to maintain backwards compatibility and support browsers all the way back to IE6.
Tools like Angular and Ember are definitely focused on providing more of a complete out-of-the-box experience for an entire web application, while Knockout stays focused on just the data-binding and templating pieces.
Some like to build their own stack by combining the most appropriate tools for their situation and Knockout can work well with a variety of other libraries.
What are the tools that you've been using with Knockout.js?
Many people can be pretty productive with Knockout in just about any tool. For most uses, it has a pretty low API surface area. I tend to use WebStorm or Sublime Text 3, but have tried a variety editors.
You've seen a bit of the NetBeans tooling via recent blogs—what do you think of them?
The tooling around Knockout in NetBeans looks very impressive. Having intellisense and even help information is really useful and powerful.
Anything else you'd like to share with the NetBeans community?
It is an exciting time for web development, as there are so many tools and solutions that are improving each day. I would encourage everyone to add Knockout.js to their list of solutions to evaluate for their web development projects.