If you would like to have us develop an exciting new application for you with the most comprehensive and efficient tools available in the market, wait no more. Reach out to us today to learn how we can help you with your next Software Application Development.
What’s Trending in Software Development Tools
Disclaimer: This is not a sponsored post and the author's views are entirely his own.
WHAT’S AN IDE?
The word IDE is an acronym for Integrated Development Environment and is basically the editor or tool used to produce, test, and compile code. Whether you are making a Windows app, mobile apps for Android or iOS, or something else you use an editor. There are many kinds of editors some are more basic Text editors, and some are full blown powerhouse IDEs with features like code completion, syntax highlighting, intelligent error correction/suggestions, and integrated servers/testing platforms which brings me to the next part.
TEXT EDITOR VS IDE. WHATS THE DIFFERENCE?
At the very basic level, all IDEs are text editors, even Microsoft Word is a text editor. These essentially allow you to open a file, add some text and save the changes. Common examples are Notepad (Windows), TextEdit (Mac), Vim/Vi/Nano (Linux)
What makes IDEs different from regular text editors is that they usually offer more built-in features and depending on the type of IDE, specific features for developing in a certain language.
As an example, if you wanted, you could write a novel using solely Notepad. It can do the basic act of typing words on a document, but MS Office Word can help with spelling, grammar, and structure. It is the same for IDEs. There is no one right choice of IDE. The decision can largely be based on cost (Yes, some are expensive) and personal preferences. The next section will be about the IDEs I use and enjoy and some alternatives that are great and FREE!
RECOMMENDATIONS
I would like to preface with this: At NeuronicWorks Inc. we license JetBrains, so I will hold off until the end about their suite of tools.
With that out of the way, here is a list of IDEs that are free and recommended:
- Visual Studio Code: VS Code is a great customizable, open-source software. It is not limited to anything, but I tend to use it more for web development. The biggest benefit is that it is FREE, has excellent community support & plugins, has an in-built debugger, plus as it is an IDE backed by Microsoft so the feature updates and improvements are not likely to stop anytime soon.
Other web/frontend tools include Brackets, and Atom.
Atom is another text editor with code support that was created by GitHub. Atom allows for plugins but requires extensive configuration to turn into an IDE.
Brackets is another free and open-source software from Adobe mostly supportive of front-end development. This is a recommended software for beginners learning to code or navigate through CSS for the “front end” – basically what the user sees and interacts with such as a webpage. - Visual Studio: This is Microsoft’s premier IDE for Windows and MacOS. It is a launchpad used to create anything from a Windows form app to a .NET library, or an ASP.NET website, with many other capabilities not mentioned here. There is a community edition, but the catch is you must have a license to be able to produce paid software using it as your IDE. Again, it has great community support, tonnes of plugins and packages all available through the built in NuGet package manager. Plus, as mentioned before, it comes from Microsoft, so the feature updates and improvements keep rolling out continuously.
- Intelli J IDEA: JetBrains offers a community edition of their Java IDE working in similar fashion to Visual Studio on the intended use and licencing terms. Like Android Studio (mentioned below) this would also be a good way to test out a JetBrains product before committing to a license.
Then there are editors like Notepad++ or Sublime.
- Notepad++ is an editor for files and code more advanced than its counterpart Notepad but is not a complete IDE like Visual Studio Code.
- Sublime comes out of the box as a basic editor with a minimal set of advanced features. It’s more akin to Atom in the idea that the need for extensive configuration is shared by both tools. However, there is good community support and as a result offers multiple packages and extensions to fill out your environment with features like syntax highlighting or code formatting making it closer to an IDE. I normally use these for some quick editing or editing a specific section of text, and for a quick copy and paste of text.
There are other free IDEs like Eclipse with which I have not had a great experience, but in retrospect it was probably an older version and may have come along since then.
WARNING: The next bit includes strong personal opinions that may sound promotional, but they come purely from experience.
If cost is not a constraint, I highly recommend using IDEs from JetBrains.
JetBrains: The closest free equivalent to JetBrains are the tools from Microsoft which is why I spoke about them earlier on in the article. The base of this judgement comes from using both Microsoft and JetBrains Products to perform similar development tasks. They both offer fantastic ecosystems of support and packages/plugins galore. I am a huge fan of some Microsoft created tools (WSL & Windows Terminal to name a few), but in this case, I personally feel more productive with JetBrains IDEs. I have had days where I am switching back and forth between IDEs for the projects I’m working on. When I go from something developed by JetBrains to Visual Studio I don’t find the experience all that different. They are both world class IDEs and have nice interfaces with themes and other nice UI touches. The real breakdown happens when I try to do an action, something I could do in a JetBrains IDE with minimal effort, but in Visual Studio it’s either not possible or is complicated or doesn’t perform the action in an expected way and I must do it manually. Those are the times when you seen the deep pitfalls. So, 90% of the time the function is equivalent but that other 10% of the time its just not comparable.
To put it into perspective, I am reminded of a fitting claim I heard about how apes and humans share 99% DNA. The most intelligent of apes can outperform humans in memory tests or achieve communication in sign language which are amazing feats for apes. Whereas human intelligence can put man on the moon or do complex math calculations to achieve survivable space flight. In this context even though IDEs share 99% of the same concepts/DNA, the free tools do not quite match their paid for counterparts.
I will not go into detail about all the IDE’s and other developer tools, only the ones I use everyday.
- DataGrip: This happens to be the most useful database management tools I have come across. It is good for managing multiple databases in one IDE and makes it easy to export schema, or DTD, or import data from excel. No other database tool I have used can do what this one does effortlessly when it comes to visualizing the entries, inserting data, creating tables, columns, primary / foreign keys, and even indexes.
- Webstorm/Php Storm/PyCharm: Each of these are useful for front end development as well as backend development and offers features for certain configurations with respect to the language. For e.g., PyCharm offers more capabilities regarding python development.
- Android Studio(FREE): This is a free IDE for android development from Google powered by the JetBrains platform and this can give you a little taste of what other JetBrains products are like. I recommend giving it a try, but be careful, you could end up feeling like your other IDEs are missing key features.
- ReShaper/Rider: If you are creating a windows solution and are using Visual Studio but still want the benefits of JetBrains features, they make a plugin for Visual Studio that adapts it to have JetBrains IDE features like suggestions and keyboard shortcuts. So, you don’t have to give up the hot keys you are used to even on a different IDE. Rider is also a JetBrains adaptation of Visual Studio that gives you the JetBrains look and feel but for Windows development.
JetBrains does offer a student program for those of you who are currently enrolled in IT courses. It’s easy to apply for a licence and it will help you debug you code easier!
The reason I rave about JetBrains is the internal code completion, error suggestion, and improvement suggestion features that are powerful and help you become more proficient in the language. A good example for this is that I was introduced to lambda functions, ternary operators, and string interpolation when Android Studio suggested I could use them in my code! It increases productivity allowing one to skip simple errors and do some powerful editing like multi-carat word selection and global word select and replace. These are benefits that I have not found in other IDEs or that work to a less degree of effectiveness.
IDEs aside, a JetBrains subscription gives you access to so much more then what I just listed above. Their ecosystem offers tools to expedite, automate, and enhance for CI/CD, Bug Tracking and even manage application development lifecycles all in one place. I personally look forward to trying out more of the new and existing tools they have to offer.
What are your experiences with IDEs? Write to me at jpanzini@neuronicworks.com to share your thoughts and feedback on what you use to develop applications.