There are many free FEM programs under GPL, such as DUNE, FreeCASE, z88, Hermes, etc. Which one should we choose to follow? Have there been any articles which compare them?
In order to fully use and understand FEM software it is good to be involved in research related to FEM, and also to use some commercial FEM software, because these tend to be more polished, have better documentation and bigger user base. Now, FEM is a general method for solving PDEs, but my recommendation would be to use specialized FEM. For example if you do electromagnetics, use FEM tailored for that purpose. About comparisons, they are very difficult to get right, since there are many thing to look at. How fast the FEM code is, how accurate it is, what is the input (for example is hex or tet mesh needed) etc. If the software is good enough for your problem than it is good enough. Happy meshing and PDE problem formulation :-)
You really need to evaluate each code based on your specific needs, especially when considering open source FEM tools. They tend to be tailored to the problems of interest to their developers, so if your application fits into their area the code will certainly be better-suited for your needs. Also, to understand FEM fully you should write sample codes of your own to explore how the inner-workings of a code must be structured.
The best strategy is to choose according to your programming skills. If you can program in a specific programming language then you should choose an open source written in that language. This will utilise you in being able to read, understand thus eventually modify the code according to your needs.
I think that if you want to reach your programing skill you must choose free FEA program. Also your selection depends on your area. Althogether I reccomend to use commercial software like ABAQUS.