4 ms·
Disclaimer: I do Java using Eclipse for my day job, and have used one of their Java IDEs in the past (IntelliJ IDEA). The code-editing side of XCode compared
by yawn 15y ago
Disclaimer: I do Java using Eclipse for my day job, and have used one of their Java IDEs in the past (IntelliJ IDEA). The code-editing side of XCode compared to these IDE is like a relic from the 90's.
Once you use a refactoring tool to rename a class and have it renamed everywhere in your project, you get a taste for what XCode is missing. There are several refactorings like this that shave a lot of time out of some of the more annoying tasks. Code generation allows you to define a method or property once and have it added to both .h and .m files, as well as have properties synthesized. If you want to add an argument to the method signature, that is done in one step, too. The SVN integration in IntelliJ IDEA was superb. I have had issues using SVN in XCode where the interface refuses to load history, and the interface for managing conflicts just isn't there (try having 2 devs change the project file). These are just a few things off the top of my head.
- thoradam 15y agoOff-topic: How would you compare Eclipse to IntelliJ IDEA and why did you choose Eclipse?
- yawn 15y agoMy current employer (and myself, too) had a history of Eclipse already when I started. Another dev got hired that was an IntelliJ nut. He was able to set up a working environment without "contaminating" our projects. Occasionally we would pair with him driving, and I was always impressed by the speed and quality of the IDE. Once he left I never bothered to look further.
- reverend_gonzo 15y agoI've used both. I have a personally bought copy of IntelliJ, though I'm using Eclipse now. For the most part, they're both comparable. Both have powerful refactoring and code-generation abilities. For core Java development, there's no need to leave Eclipse. IntelliJ might provide some nice features, but overall it doesn't warrant purchasing a license. When combined with web development, other languages, or non-core development, is where it easily pays off to switch to IntelliJ. We were doing some Grails work, and Eclipe's support (via STS) was shady at best. We put off trying IntelliJ since it meant learning a new environment, new shortcuts, etc, but after about a day of playing with it, we were sold, and never looked back.
- gregschlom 15y agoFor the record, there's a free version of IntelliJ now. (Community Edition)
- eropple 15y agoIntelliJ is also a lot nicer for Scala than the Eclipse plugins. The Python plugin is pretty excellent too; it brings in most (all?) of what you'd buy PyCharm for.
- Zev 15y agoHave you tried Xcode 4? I'm not its biggest fan, but, it is a step up from Xcode 3 when it comes to refactoring. It can rename a class everywhere in your project, for example.
- ageektrapped 15y agoXcode 4's refactoring is still quite poor. Renaming something is akin to a "find and replace all" in my experience. If two unrelated classes have the same method name, Xcode will rename all instances of both classes if you rename one of the methods.
- SeoxyS 15y agoWhat you have to realize is that refactoring is a dangerous concept in Objective-C, regardless of which IDE you use, because of Objective-C dynamic nature. Classes can be loaded or switched at runtime, non-existant methods can be called, and class and methods can be variables. Cleanly refactoring is much easier to achieve in a statically-typed language such as Java, which is why Java IDEs are so much better at automatically refactoring.
- yawn 15y agoThis doesn't really ring true to my ears. I have some experience with Smalltalk, which is where refactorings were pioneered, and which Objective-C has some roots in. Smalltalk is even more "dynamic" than Objective-C. If you get the chance, I recommend playing around with Squeak or Pharo.
- msbarnett 15y agoIt's not (just) the dynamism of Objective-C that make some refactorings unable to be guaranteed to produce correct results; the "C" part plays a big role as well.