I am a new developer and do most of my work in Developer Console. What are some of the advantages i will get if i start using Force.com IDE besides version control and being able to deploy code to another target sandbox.
Force.com IDE is very good. Especially you will feel right at home if you are a previous user of eclipse for some other programming language. But there is a really cool light weight IDE for development in force.com. Try mavensmate plugin for sublime. I was using developer console and moved to mavensmate. Now will never go back. Link - http://mavensmate.com/
It even offers editing of zipped static resources in latest update
I use all 3 (Dev Console, Eclipse IDE Plugin, and MavensMate). I spend most of my time in Dev Console for basic APEX / VF stuff. If things get complex, I'll typically move to Eclipse to keep up with files. I also use Eclipse to manage my move packages. I'll typically create a project in Eclipse with just the files associated with assignment X. This makes moving things simple. Additionally, if a user comes back a few months later and needs to change something, I already know which files might be affected along with the relevant test classes. More recently, I've started doing a lot of bootstrap / js remoting stuff. MavensMate is by far the best tool for keeping up with js, css, html files in static resources. Just make sure you do a 'get latest' from the server when switching around.
A few additional points to all of the above good points
- Eclipse IDE will (via RMB
Force.com | deploy to server) will compare your project to the target org and identify what has changed (in case you've lost track). You can also delete classes/triggers/... via Eclipse when you deploy to the target org. Not possible with Changesets if you use that path for deployment
- I do almost all my test runs via DC. Downloading the log to Eclipse IDE can sometime take ages.
- I use my DC
Execute Anonymouswindow to maintain a running list of apex fragments that I use to experiment with or, especially, to launch scheduled batch jobs that need to be tested
- DC is your only option to understand VF viewstate
- Eclipse can be easily hooked up to Git or a Git/Gerrit CI/CD workflow.
5%: Eclipse (for ApexPMD)
5%: Dev Console (for completely certain test validation)
I almost always use MavensMate. The one use of Eclipse that's valuable to me personally is the use of ApexPMD, which is an Eclipse plugin that will scan your Apex and note areas where quality can be improved. It flags things such as SOQL in loops and reassigning parameters, and defines how "serious" it believes each violation is.
One thing to be wary of outside of the official Salesforce console is the conflict of the Tooling API vs Metadata API. I don't know the exact cause, but my team and I have observed several instances where code wouldn't compile for inexplicable reasons in MavensMate, then when we switched the API used in MavensMate settings (e.g. Tooling -> Metadata), it would compile. We have also observed unit tests failing in MavensMate and then passing successfully in the Salesforce UI (dev console) - this could be true with Eclipse as well, although I have never observed it there.
Plus you can play embedded arcade games while your tests execute! ;)