Is JetBrains appCode a Solution Looking for a Problem?

Bottle

Sometimes when a company releases a new product I sit back and think if I would use it.  If not, I try to understand who the customer might be and the reasons they use it.  When I first saw the announcement for the new Objective-C IDE from JetBrains, appCode, I asked myself those questions.

As a user of Apple’s XCode IDE for writing Objective-C, I tried to imagine the reasons why I might use it and none came to mind.  I also tried to imagine who might use it and I couldn’t think of anyone.  OK, maybe there are folks out there who use XCode and hate it, they may use it but I think the market is far too small to consider putting efforts into writing an IDE to target those people.

InfoQ has an interview with Maxim Shafirov of JetBrains about the project and after reading the article, I am still scratching my head.  From the article, appCode features include:

Main features of the IDE are:

  • Smart editor with code completion
  • Opening and creating Xcode projects (including Xcode 4)
  • Integration with the standard Interface Builder
  • Running applications in iOS Simulator
  • Debugger with breakpoints, variables, watches and evaluate expression
  • Refactorings, e.g. ‘Change Signature’ and ‘Extract Method’
  • On the fly code analysis and quick-fix suggestions
  • Tight version control systems integration (Subversion, Git, Perforce and CVS)

    I don’t see a feature here in the short list which Apple’s IDE doesn’t include.

    A question I asked myself..why develop appCode in the first place?

    InfoQ: What drove the decision to develop appCode?

    Maxim: We at JetBrains admire what Apple has done to desktop apps and more generally to a consumer targeted software. They’re setting new interaction design quality standards. But this is not the case when it comes to developers software, in our opinion. So we see a great opportunity for JetBrains to bring its development tools expertise to this emerging market of developers, who know how a great software should look, who care about their productivity and code quality.

    Developers even need to have XCode 3 or 4 installed to use appCode:

    InfoQ: Do I still need XCode / the Apple development infrastructure to develop applications?

    Maxim: Yes. You need to have Xcode 3 or Xcode 4 installed. At the very least we need a platform SDK that comes with Xcode, the Interface Builder and device simulator.

    I have used JetBrains’ RubyMine IDE in the past and it is not free.  I don’t think other JetBrains’ product are free, so one can only assume appCode will not be free.  Why would I pay for something Apple gives me free, as a registered developer or $5 in the App Store?

    I had thought that maybe appCode would be developed to be cross-platform, like their other products, and run on OS X as well as Windows and Linux.  This would make it a really nice proposition for non-Mac owners but the dependency on XCode makes it unrealistic.

    In summary, appCode:

    • Is an Objective-C IDE just like XCode
    • Needs XCode to Run
    • Only runs on OS X
    • Is likely not to be free

    To be fair, I downloaded appCode and it looks nice, opens my XCode projects but I ran into issues trying to actually run the project.   It built but the simulator never loaded and ran.  I will probably wait for a future EAP build to try again.

    I realize appCode is only an EAP and not even beta at this point.  I’m sure things will improve and new features will be added but I’m not sure JetBrains has a winner here.  The XCode environment is the gold standard for Objective-C development and I don’t see so many problems with that would drive me to use an alternative IDE at this point.  I will keep an open mind but it seems JetBrains is trying to solve a problem that doesn’t exist.

     

    • damieng

      About half the people I know that have messed around with XCode don’t like it…

    • Rgptk6j

      You forgot to mention that appCode has a woeful Java-based GUI that falls short of the look & feel we should expect from Mac apps.

    • http://www.accidentaltechnologist.com Rob Bazinet

      Actually, I didn’t forget. The fact that it is a Java-based GUI is a huge drawback, the same with RubyMine. It’s lack of responsiveness and use of memory is why I don’t use it.

      I didn’t mention it because it seemed like I would have been being picky and wanted to just talk features.

    • Rgptk6j

      Fair enough.

      Before Xcode 4 was on the scene, I might have seen the point of appCode as a place to innovate in areas where Xcode 3 was stale. But Xcode 4 is already here and has brought a huge amount of freshness. I agree thoroughly with your post.

    • Jeremy

      You are neglecting at least two major things that appCode will provide that Xcode does not: code insight and refactoring that works. Heck, having these things _exist_ will be a step above Xcode and the JetBrains folks will surely go a lot farther than ‘exists’.

    • http://pulse.yahoo.com/_ESDNIKCUNYVQ5PLTVUHOUNX7EI Jordan

      XCode is one of the worst development environments I’ve ever used. I suffer through it because it is (was) the only choice. JetBrains knows how to make an IDE. Have a look at AppCode’s Refactor menu and then tell me why you would ever use XCode again. Once you’ve done that exercise move on to the Code menu. AppCode is a god-send.

    • http://pulse.yahoo.com/_ESDNIKCUNYVQ5PLTVUHOUNX7EI Jordan

      Who cares about the IDE’s GUI? This is a development tool.

    • http://pulse.yahoo.com/_ESDNIKCUNYVQ5PLTVUHOUNX7EI Jordan

      Wait there’s more…

      How about the fact that AppCode has useful warnings. It just warned me about an object I wasn’t releasing.

    • Nickc

      The refactoring support is the reason why you would use it! I came from a Java background and used IntelliJ IDEA (which by the way there exists a free version of), being forced to use XCode to develop iOS apps was a major step backwards, predominately in the realm of quick refactoring of simple things, like extracting a local variable… how hard should that be for them to add, who knows why they haven’t. If we are lucky having appCode in the mix will make XCode better in the long run.

    • Nickc

      Using the jetbrains IDEs can be a bit annoying on lower end machines because of the issues you mentioned, memory was always one of the main issues, especially when you have a very large project. I believe it is probably the price you pay for fast text search and “find usages of…” with a large amounts of files, which I wouldn’t sacrifice for the price of upgrading my ram!

      On the actual GUI point though, I would say it is a more than sufficient GUI. I don’t recall ever going “why the hell are they doing it like that??” but maybe the years of using it for Java development on PC has corrupted my mind :-P

    • http://www.accidentaltechnologist.com Rob Bazinet

      I guess the refactoring support is nice it’s important to you. To me, I like a snappy UI and JetBrains just does not create any. I don’t find any issues with XCode that bother me.

    • http://www.accidentaltechnologist.com Rob Bazinet

      Maybe those devs are used to Visual Studio. XCode is just different and works fine for what it needs to do.

    • Anonymous

      I assume they started on this before XCode 4.

      It doesn’t make a whole lot of sense to me why they would build this either, given that XCode 4 has all the missing features that would have given AppCode an advantage over XCode 3.

      Is AppCode going to have drag-and-drop integration with interface builder? XCode 4 is obviously the beginning of a new wave of focus on tools from Apple. How will AppCode keep up as Apple increases the tools integration – where’s the Core Data editor, for example?

      More importantly, Apple is likely to be pushing the Cocoa system through an evolution, starting relatively soon to get from the totally C based model to something more modern. My guess is that it’s going to be incremental but either way, XCode is going to be the vehicle for supporting developers through the transitions – just the same as when they switched from PowerPC to Intel, and from GCC to Clang as they are now. Anyone who buys into a different IDE because of minor usability preferences is going to end up in a world of pain.

    • Anonymous

      Have you tried clicking ‘analyze’ in XCode 4?

    • Anonymous

      Have they tried XCode 4? Also – learning any new IDE always takes time. Just messing around won’t tell you anything – it’s only when you have a real purpose (i.e. a product to ship) that you figure out whether it’s any good.

    • Husain

       As a developer, I do MS development day to day using Visual Studio and cannot live without JetBrain’s Resharper plugin.  As a Java developer, I used JetBrain’s IntelliJ IDE and could not live without it (even though Eclipse free and carries the same argument you have).  Bottom line is: XCode sucks as an IDE, and JetBrains know exactly how to make developer focused software.

    • http://cjkent.myopenid.com/ Chris

      I’m exactly the sort of person JetBrains were thinking of when they created AppCode.  I’ve used IntelliJ for Java development for years and it’s amazing (and now it’s free too).  When I first used Xcode it was like going back to Java development in 2002.  I had high hopes for Xcode 4 but was thoroughly disappointed.  I remember saying to one of my co-workers that what I really wanted was an Obj-C IDE from JetBrains.

      The difference between AppCode and Xcode is the deeper understanding of the code that AppCode has and the refactorings and quick fixes it offers.  Xcode feels like a text editor in comparison.

      I hope AppCode succeeds but I fear its appearance and price might be an obstacle.  I also suspect that lots of Xcode users don’t realise what they’re missing.

    • Sam

      This is so typical xcode developers arrogance, you are just saying that because you are used to work with xcode.
      You can do everything with xcode, it has most the required features, but they are provided in such an unfriendly outdated manner. Just as one simple example, show me another environment that takes a snapshot before daring to make a simple refactoring operation. AppCode in its beta stage is so much better, and yes I’m one of those people that fall off your statistics who would be willing to pay for it.

    • http://www.accidentaltechnologist.com Rob Bazinet

      Nope, not arrogant but just ignorant of the purpose of AppCode.  If there is a great reason to take the free and supported IDE from Apple, XCode, and replace it with something I have to pay for, AppCode, then I would.  No one responding to his post has delivered a convincing reason to spend the money on it.

      I never said not to use AppCode, my post was a sincere question as to why anyone would use it.   Refactoring?  Well, if you need a tool to refactor your code then you might want to go back to computer science school and learn a bit instead of relying on tool.

      Still not convinced.

    • Nickc

      “Refactoring?  Well, if you need a tool to refactor your code then you
      might want to go back to computer science school and learn a bit instead
      of relying on tool.”

      If that is not arrogance I don’t know what is…

    • Leonardo

      “I don’t find any issues with XCode that bother me”

      you probably never tried the xcode subversion client :-)

    • Leonardo

       I can see the point of not switching to an EA software but people who have tried it still believes is better in lot of aspect to xcode, and it is still a EA software. A comparison between the two products is pointless by now. But jetbrains people are well known, since long time, for creating very good software.
      And honestly, some good competition in the objective-c territory is really welcomed…see for example all the good java ide around, they have been the result of the community demand and some strong player working on it Sun, IBM…ecc.

    • Anonymous

      IntelliJ is to Eclipse as iOS is to Android.   So I expect great things from AppCode.

    • Matt Davis

      I’m a .net developer and have used Visual Studio most of my working career. Visual Studio, love it or hate it, gets the job done straight out of the box and I have never particularly wanted any more. That was until I started using JetBrains ReSharper. It adds so many features that you never knew you wanted until you had them.

      Since ReSharper has been around Microsoft has incorporated a number of those features into the IDE. These features may never have arrived or at least taken their time had ReSharper not introduced the tool to the development community.

      Praise not only needs to go to JetBrains for developing innovative tools, it should also go to Microsoft who have written the IDE so that plugins like ReSharper can be distributed and installed.

      Ultimately competition will drive innovation and that is what we need.

    • Pingback: AppCode : lite Cocoa/iOS editor | Cjed blog()

    • Anonymous

      Whenever I read that someone is happy with Xcode I assume they’ve never used anything else.

      I think in this case it might be more of a “vote against the guy you hate” kind of thing. Xcode is so bad, so poorly executed and lacking in basic features other IDE’s have had for at least half a decade, that people might jump at any other option. I hate to admit it but Visual Studio beats Xcode in almost every measure of usability and good design. Xcode is bad — really, really bad. It’s so bad it’s embarrassing.

      Apple completely ignored what makes Macs so great, User Experience, when developing Xcode. It’s like the best gardener in the world having a weed filled yard at home.

    • Anonymous

      Whenever I read that someone is happy with Xcode I assume they’ve never used anything else.

      I think in this case it might be more of a “vote against the guy you hate” kind of thing. Xcode is so bad, so poorly executed and lacking in basic features other IDE’s have had for at least half a decade, that people might jump at any other option. I hate to admit it but Visual Studio beats Xcode in almost every measure of usability and good design. Xcode is bad — really, really bad. It’s so bad it’s embarrassing.

      Apple completely ignored what makes Macs so great, User Experience, when developing Xcode. It’s like the best gardener in the world having a weed filled yard at home.

    • Harshagrs

      Hi Rob,
      Why would someone pay for a tool like TextMate if Apple already provides Xcode and TextEdit? I can explain you the areas where AppCode really shines.  I am sure you write code which involves delegates and how many times you have copied and pasted the code from either documentation or from a different class? AppCode knows what you want based on the context, it can offer you the messages to implement which is lot of time saver.  Or do you know AppCode can show Unused Imports in your code? Believe me no one wants to pay money if something is not living up to the promise. 

      Just give it a try with open mind and who knows you may suddenly see Xcode lacking so many basic IDE features which can accelerate the coding process.

      Regards
      Harsha

    • Franklin Dattein

      I have seem dozen of developers with the same question/argument along the years and there are clearly three  developer profiles, which would agree with this article:

      1. Good programmers that are so used to the first IDE that has been introduced to them, that they have no idea on how productive they can be with the right tools. This guy has spent the first of  his carrer developing C on a text editor and is usually the same guy that loves re-inventing the wheel instead of learning a open source framework.

      2. The change agnostic. This guy is proficient in a not-so-bad-tool like XCode or Visual Studio and is simply too lazy to make changes and spend time required to get used to a new tool and become productivity with it. He has tried to switch tools sometimes, usually for less than 30 minutes and gave up because he couldn’t do basic stuff.

      3.The poor programmer. This guys has only one bullet for a problem, doesn’t diversify, thus doesn’t have the need a tool that integrates well with other tools. He has never read a single refactoring book, refactoring for him is just another buzzword that he will eventually be forced to learn. 

      People who are happy with XCode and Visual Studio are usually a good fit for one of these categories. For these people I say, open you mind, there is much more out there.ps. For the guy who said that a  “Java based tool is a drawback”. Memory is cheap, your time is not.

    • Rafael

      Oh my God, I just cannot believe I’m reading this. Go read some good book kid, start with “Clean Coder” book, you will learn that refactor is part of any good professional programmer.

    • Bumpkin Bunny

      After the 30 days trial period I’ve just bought Jetbrains Appcode. It’s not free but it worths every penny. Seriously, XCode4 is a only a big (and very bad) joke beside AppCode! Just spend some time using this software and you will find it out.

    • Sai Tat Lam

      Whoa you have never come across with code sense and syntax highlighting in xcode 4 suddenly disappeared and no way of resurrecting them?  Either you are the one build success type dev or you haven’t really coded in xcode.  To be honest I would have not needed to look for an alternative if xcode 4 did NOT have such ridiculous bugs that no other IDEs (or even the crappy gedit) will fail at.