Friday, March 24, 2017

10 Tools Used by Java Programming Developer in Day to day life

Every trade has their tools, and Java programming is no  exception. In fact, good knowledge of tools and mastery of using them, saves a lot of time in design, development, testing, debugging, and troubleshooting any production issue. In order to become a good developer, you must know right tools for right jobs. A developer without tools and tricks are like a toothless lion, hence it's very important that you devote some time on learning tools required for your day to day job. Many developers think that learning an IDE like Eclipse, NetBeans or IntelliJ is enough, but that's just the start of the process. No doubt that IDEs are the most important tool ever created for programmers but they are not the solution for everything.

There are always some more tools and tricks which you can learn from your peer or teammates. Some tools are specific to your project and some tools are very general and you can use it in any project.

Similarly, just knowing Java tools are not enough, since you are always going to work with other technologies as well e.g. SQL, UNIX, XML, Database etc. You should know right tool for right job e.g. Putty Connection Manager or mRemote really helps to create a list of hosts you often access, hence you don't need to remember their login details and connection details every time you want to log in. The tool can remember that for you. This small things matters and saves a lot of time, especially when you really need them.

In this post, I would like to share some of the most common, must have tools used by Java developers. Most of these tools are free, open source of easily available in every bank or software organization. In fact, I used many of this tool in my daily programming life.



Top 10 Tools Java Developer Should Know

Here are the 10 most common tools most of the Java programmer uses in their day-to-day life. If you are working in Java technologies, you should already be familiar with these tools, but if you are not, it's a good time to know and explore them.


1) Eclipse and NetBeans
IDEs are the most important tool for Java developers. IDE not only provide you integrated development environment but also helps to navigate, debug and document your code. Since Eclipse is an industry leader, it is the one, which almost half of the Java developers used. I go one more extent, and along with using Eclipse, I like to use Netbeans for writing test programs, testing and debugging new thing for Java web development. I found Netbeans more easy to use for web development because it comes with bundled tomcat or any other application server and it's to create a project, run and debug them.

10 Tools Used by Java Programming Developer



2) Edit Plus, Notepad++ or Sublime
Edit plus and Notepad++ are two text editor, which I extensively use for different purpose. be it document random ideas, or viewing portion of log files or creating documents. The great thing about Edit Plus is it's fast, fluent and supports regular expression for all find and replace task. Notepad++ is also a good tool to open any Java file, which is not configured in IDE, it supports syntax highlighting, which makes them easy to read. Recently, I have also heard good things about the SubLime Text editor, I haven't tried it yet but it seems to be a good option if you can't purchase a license for Edit Plus, as SubLime Text is free.

Best Text Editor for Java Developers



3) Chrome and Firefox
Google is your friend and probably the most important tool in software development, irrespective of whether you are working in Java, C++ or UNIX, Network or Infra. In order to use Google effectively, you need a fast and fluent browser and an internet explorer is no more an option. Google Chrome and Firefox are my favorite web browser for going Google and finding stuff I need. They also come with inbuilt web tools like inspecting and visualize, so that you can check the HTML, make changes, check CSS, make changes, see what are the error while parsing those HTML, which JavaScript file has been loaded etc. That information is really useful for Java EE developer and other web developers. The whole suite of the tool is also known as Chrome Developer Tools.




4) Aqua Data Studio
Aqua Data Studio is a Java based tool, which I personally like to use for connecting database. You can connect Oracle, Sybase or SQL Server database using Aqua Data Studio. So if you are not using database specific tools e.g. Oracle developer Studio, or SQL Server Management Studio, consider using AquaStudio. It is even more useful if you have to connect to different types of database, for example, I have worked on companies where one application is using Oracle, other is using Microsoft SQL Server and some are using DB2 database. In this case, I prefer to stick with AquaStudio, if I have to simultaneously connect to multiple databases. One alternative of AquaStudio is DB Artisan, but I haven't used it much to like it. Both Aqua Data Studio and DB Artisan is paid tool, you need a license to use it.

SQL client for Java programmers



5) XMLSpy
XMLSpy is a tool to work with XML files. By the way, it's not free, but you can get it in your company if they are using XML. It allows you to explore XML file, find XPATH, execute XPATH and XSLT transformation. The good thing about this is that it handles larger XML files e.g. files with 4 to 5 MB quite well without crashing in the Windows environment. Alternatively, you can use Notepad++ or Internet explorer to open XML File but IE really crashes while opening big XML files, so not a good option.

Top 10 Tools Used by Java Programming Developer



6) Eclipse plug-in
I used a lot of plug-in for different use in Eclipse e.g. JadEclipse for decompiling Java class files, eUML for creating UML diagrams, M2Eclipse for creating and running Maven based project in Eclipse, SVN and CVS plugin for connecting to source control repository from Eclipse, and Findbugs plugin for static code analysis. I would probably write another post about common Eclipse plugins needed or used by Java programmers, but these are something, which is very important. There are plugins for Git as well, which means you can create Java projects right from your Git repository in Eclipse.

Java tools for programmers



7) Putty and Putty Connection Manager
Since I mostly work in Linux platform and always need to connect to different Linux servers, I prefer to use Putty Connection Manager along with Putty. Putty is an SSH client which allows you to connect any UNIX servers, and by using Putty Connection manager, you can pre-configure all host, username, and passwords, which provides you one-click access to any host. I strongly suggest using Putty Connection Manager, if you have to log in on multiple environments e.g. Test, Dev, UAT, QA, Production etc. There a couple of good alternative of Putty connection manager exists e.g. I have used mRemote and Putty Multi-Manager also looks good.

SSH client for Java developers



8) FileZilla
If your development environment is Windows and your application runs on UNIX or Linux then you definitely need a tool to transfer files from Windows to Linux and from UNIX to Windows. There are many tools, many sftp clients which allow you to copy a file from Linux to Windows. I have myself tried FileZilla and WinSCP, but FileZilla is my favorite tool to transfer files from windows to Linux and from Linux to windows using SFTP (Secure FTP). You can also download FileZilla for FREE, it's one of the awesome FTP clients.

How to transfer file from windows to linux



9) Beyond Compare
Beyond Compare is my favorite comparison tools. Comparing files are one of the common tasks in a developer life, sometime before check-in after making a change, sometimes comparing config files from two different servers, or some time comparing files from two different releases to find the root cause of any bug. Even though you can also compare text files in Eclipse, Beyond Compare really helps in pre-release and post-release activity, in order to verify that right set of files are in place. Beyond Compare also allows you to compare files directly from UNIX boxes, and it can even compare folders or directories, which gives you visibility about new files added or removed. Beyond compare is not free, it needs a license and I am looking for a free tool which provides similar functionality but yet to find a good one, though WinMerge stands a good chance.

How to compare Java files



10) Cygwin
Since I mostly work on UNIX boxes, where all my Java application runs. But, when I need to work on Windows, I miss tools and commands like find, grep, xargs, and vi. Cygwin allows you to work in a UNIX-like environment on a Windows box. So, if you happen to like Linux and miss it while developing Java program in Windows, Cygwin is a good option for you. Alternatively, you can also set up your environment on VirtualBox and install Linux there.

how to run UNIX command in Windows


That's all on this list of tools for Java programmers. There are a lot of others including windows based SVN clients like tortoise SVN and CVS, which is quite popular among Java developers and of course Microsoft Office tools like Excel, Word, and PowerPoint, which I haven't included, but they are equally important. There are also some useful tools for Java JEE developers e.g. Chrome Developer Tools, Firebug, and Postman to test RESTful web services, which are worth noting.

Apart from these, you happened to have some more specific tools about your development environment, Server, and databases. So, don't forget to share, what tools you use for developing both core Java and J2EE applications.

Further Learning
Java Fundamentals: The Java Language by Jim Wilson
Java Web Fundamentals by Kevin Jones
What's New in Java 8
What's New in Java 9 By Sander Mak

9 comments :

Todd MacLeod said...

$500 for Aqua Data Studio?!? NO WAY. Too many wonderful, free database management alternatives available to waste spending half-a-grand on Aqua Data Studio.

Ch!rag said...

Hi Javin, few of the new generation tools are missing which are in use by lots of devops. IntellijIdea and Atom text editor.

sachin grover said...

RESTClient or POSTMan are equally important tool in java word!
Extensively used to test RESTful web services.

Zakir said...

Great post !! I appreciate your effort to bring info of all the necessary tools required for java developer under one post :-)

drkn said...

Eclipse, NetBeans ... what about IntelliJ? Also SublimeText is not free ...

Shahida D said...

Feature tools .....plz tell us in java

mouhcine said...

nice (y)

Emile said...

How about Mindterm? It's a java based SSH client that includes a connection management capability as well as file transfer using sftp, ftp, etc.

saurabh said...

angularJs batarang : It allows you to debug angulatJs application from chrome console.

AdvancedRestClient is another tool similar to PostMan

Post a Comment