What Can We Learn from IntelliJ IDEA?
This article was originally published by Alibaba senior technical expert Wu Xiang in Alibaba intranet. It is now published under the authorization of Alibaba Middleware.
Recently, we upgraded our Java IDE from Eclipse to IDEA. During the upgrade process, I studied IntelliJ IDEA and did some research on it. I understood why IntelliJ IDEA (commercial) has a better reputation than Eclipse (free), and I would like to share some personal thoughts on it with you.
After reading this article, you will learn about the importance of the Creative Flow and ergonomics, because they can make you stronger. This article mainly covers the following topics:
- Market share and performance of IntelliJ IDEA
- The secret of the success of IntelliJ IDEA
- Two factors that distinguish IntelliJ IDEA from other IDE designers
- Inspiration of IntelliJ IDEA on our work
- Make full use of IntelliJ IDEA to make yourself stronger
Market Share and Performance of IntelliJ IDEA
Since 2012, IntelliJ IDEA has been rapidly rising. In 2016, it captured 46% of the market share of the developer market. According to a research in 2018, the market share of IntelliJ IDEA increased to 55.4％, winning the throne of the Java IDE world. Martin Fowler, renowned author, software consultant and speaker, speaks highly of IntelliJ IDEA on his blog. IntelliJ IDEA also achieved 98% customer satisfaction, which is extremely high.
Secrets to IntelliJ IDEA’s Success
According to global researchers, its success is attributable to the following two factors: successful product features and marketing strategy.
Successful Product Features
- Intelligent code completion: IDEA is integrated with an independently developed language interpreter, which provides deep static analysis. This is a killer feature that makes coding more intelligent and efficient.
- No save button: IDEA provides comprehensive shortcut keys for every function that you want to use.
- Outstanding performance: Extremely smooth user experience.
- IDEA not only maintains the core plug-ins, but also provides an excellent toolkit to deliver a consistently good user experience.
Successful Marketing Strategy
- IDEA beats many competitors by focusing on the product and upholding the “better” design philosophy and principle.
- IDEA does have a dedicated marketing team, but its simple and powerful slogan perfectly delivers its core marketing logic: “Try it. Test it. If you feel it’s better, use it.” The product speaks for itself.
I assume most of you are already very familiar with the features of IDEA. So I am not going to elaborate on them here. Now, let us unveil the true reasons for its success.
How Does IntelliJ IDEA Make a Difference in the World of IDE Design?
To my understanding, the fundamental reason for its popularization and rise is that it follows two important design philosophies:
1. It Does Not Break Developers Out of Flow
Every aspect of IntelliJ IDEA is designed with ergonomics in mind. IntelliJ IDEA is built around the idea that every minute a developer spends in the flow is a good minute, and things that break developers out of flow are bad things. Every design and implementation decision considers the possibility of interrupting developer’s flow and seeks to eliminate or minimize it.
I personally find this quote very beautiful.
“Creative Flow” or just “Flow” is a state of mind where you feel evenly attuned, and focused on the task at hand.
When you are in a Flow state, you feel completely absorbed in your activity, and you forget about time and space. Flow state is an optimal state of consciousness. According to a 10 year study by McKinsey, when you are in a Flow state, you are 500% more productive.
After studying this design philosophy, I cannot help imagine how wonderful our products will be, if they can bring users into and keep them in their Flow state. They will help our users efficiently complete their tasks, and significantly improve the production efficiency.
IntelliJ IDEA claims that they use ergonomics in the design of the IDEA: “The capable and ergonomic IDE for JVM”.
Ergonomics is a science that focuses on the study of how to enhance human comfort, and reduce fatigue and discomfortness through product design. This concept is very important in home design and human engineering to help you feel more comfortable, increase the efficiency, and reduce the pressure.
Here are two typical examples of ergonomics:
Customer service headset
Without customer service headsets, customer service personnel will have a much more difficult time.
Zipper carton box
The quality and ergonomic zipper design of Yiside zipper carton boxes are the best in the industry.
Inspirations of ergonomics on software design:
- Provide consistent user experience
- Break complex tasks into simpler tasks
- Break long sequences into separate steps
- Due to human memory limits, the product needs to properly remind users to provide valuable assistance to them, so that they can be completely absorbed in their work and remain undisturbed.
For more information, see the fifth article on the references list.
If you want to experience an ergonomical design, IDEA shortcut keys and the no-save-button design will help you understand what ergonomics means.
Inspirations on Our Work
Our team believe that the IDEA growth engines: outstanding design concepts, extraordinary user experience, open community, and the parallel business model of the community version and the commercial version. It is available as an Apache 2 Licensed community edition, and in a proprietary commercial edition. The evolution circle of IDEA is to attract more users with better product experience, and to attract more talents to develop better products by using profit contributed by users. What I learned from IDEA is that our products must be subject to people-centric design.
- Flow state: We should list the tasks of our users, keep them in the flow state, and eliminate factors that may reduce their efficiency.
- Ergonomics: When we design our products, we must sufficiently consider the scenarios in which our products will be used. This is an integrated design, similar to the star-ring architecture. Coding is only a part of software development. We must comprehensively consider all other factors, such as the requirement and idea submission, requirement analysis, research and development, product publishing, and business commercialization analysis. The ultimate goal is to enable users to comfortably complete their tasks by using our products.
- Intelligent code completion: Use artificial intelligence to improve the work efficiency of our users. The intelligent code completion feature of IntelliJ IDEA is a typical example that we can learn from.
I will integrate the design concepts of flow state and ergonomics into the design of our technical products, and I look forward to presenting our achievements soon.
Here I would like to share two flow state IDE plug-ins with you:
1. Hot code replacement tool: JRebel
A hot deployment plug-in that helps developers modify Java files of a running project and dynamically reflect changes into running projects. Click to learn more
2. A must-have development and testing tool: Cloud Toolkit
Helps developers more efficiently develop, test, diagnose, and deploy applications. This plug-in allows you to easily deploy your local application to any machine. Learn more about Cloud Toolkit at https://www.alibabacloud.com/help/doc-detail/98551.htm
About the Author
Wu Xiang, Alibaba Cloud senior technical expert. Wu Xiang has been serving as an architect of Alibaba Cloud Settlement Platform for many years, and is the founder of the tbbpm workflow engine. Wu Xiang was responsible for commercialization of cloud products from scratch. In recent years, he has been responsible for middleware development of Alibaba systems such as stores and details.