Two weeks with Zend Studio for Eclipse

After more than ten years with Emacs and terminal flipping as my primary development environment, whether for C, PHP, WSDL, HTML/CSS or javascript, I decided to try (I mean really really try) an IDE for a while. As PHP is my main focus these days I have been looking towards Zend Studio for Eclipse. I figured Eclipse with it’s maturity must work well enough on linux.

Why am I not happy with emacs and the power of the command line and all the tools available a few key strokes away you might ask? Well, as being a lazy programmer is nowadays considered being a plus, I want some more help from the environment. I want to be reminded about all those FIXME’s and TODO’s scattered in the code. I want better integration with subversion, better and easier testing and reliable refactoring support for starters.

Getting started

It is easy try an IDE and quickly loose interest. You start the program, look around, get annoyed when you don’t find the keyboard shortcuts or don’t understand the concepts. I’ve done that before. I know this and decided to use Zend Studio on the biggest project I’m on at the moment. The team members are located in two different countries, use different operating systems and time is sparse. Everything needs to run smoothly. Blissfully ignoring the tingling bells warning me not to do it I imported the project into Zend Studio from subversion.

That part went really well. It seems easier to import a project from subversion than directly from a directory structure.

Using the IDE

One of the concepts I always have had trouble understanding is when the IDE keeps weird project files in the code tree. Thouse files should not be part of the project. Team members should be free to use whatever tools they find best for their productivity. Zend Studio does not do this even though it has it’s own status for files which is good. It can still be a bit annoying when Zend Studio gives me the weird error Could not open the editor: Editor could not be initialized when opening files. Huh? If you look at the java exception, available as error details, it only means the resource or file have been changed from outside of Zend Studio. To open it you need to refresh the file through F5. A minor nuisance but why not tell me the file is changed and ask if I want to reload the file? It can’t be that hard.

There are many good things though. I like having PHP Documentor just a click away. Using the refactoring feature and being able to reliably rename class methods throughout the project is a big plus. Code folding, inline language warnings and errors in the editor and easily navigating between different places in the code are also things that makes life easier. It is also something you’d expect in any modern IDE. Sometimes I miss grep on the command line but it is probably just a matter of getting used to the GUI way of searching.

So all in all I’m happy this far. The IDE gives me the support I want. But there are a few things that I think is problematic.

Subversion integration. It is easy to see the history of a file and compare against different revisions directly in the IDE. But it is actually very hard to see the small annotation icons which indicates if a file has local changes. (I have a 17″ laptop with a screen resolution of 1920×1200.) And the other day when committing a change that spanned many files in many directories not all of the changed files were selected for commit. I didn’t notice this and subsequently the when updating the test environment it broke. Easily fixed but still annoying. This problem together with the editor not handling file updates from outside of the IDE is making life a little bit harder than it should be.

Encoding support. I am in the habit of using UTF-8 for everything. This particular project was originally created on a windows machine and all the files were encoded in ISO-8859-1. I didn’t give it much thought as i’ve been on the project for some time and Emacs have always detected the encoding without bothering me. Zend Studio for Eclipse use UTF-8 as default but completely ignores the encoding in the already existing files. I didn’t notice the problem until a team member using windows called me and asked why I screwed up the files.

It is my responsibility but the stupid editor didn’t exactly help me. Setting the project encoding to ISO-8859-1 and then manually fixing the faulty files removed this issue.

Both of the above problems can be fixed by me being a bit more careful now that I know more about the IDE. It is still serious when you can’t trust the IDE fully.

The last and most annoying bit is the speed. Or rather lack of speed. The program is slow. Dead slow. I have a modern dual core laptop with 3 Gb RAM running Ubuntu 8.04.1. Zend Studio for Eclipse is a bit slow to start with. After working a few hours in the IDE the editor can’t even keep up with my writing. After a long day the laptop sometimes start swapping. I don’t know if it Eclipse, the Zend Studio part or java itself. The speed is still not acceptable.

Summary

I chose to try the Professional edition as I want, among other things, subversion and refactoring support which is not available in the community version. The price is 399€ which isn’t that much if it increase my productivity enough. The slow editor and the fact that I have to double check many things isn’t really a productivity boost though. I haven’t used all the features I thought I needed. On the other hand I have only tried it with an old, non Zend Framework project. Support for the framework, which I use for new development, is integrated into the IDE in various ways and I haven’t had the time to try it out.

The trial version is working another two weeks. Before then I have to decide if the extra features in the commercial version are worth 399€.

Tagged with: , , ,
Posted in PHP
30 comments on “Two weeks with Zend Studio for Eclipse
  1. Thomas says:

    I know that Vim has a very good PHPDoc plugin.

  2. FabriZZio says:

    I’ve used the commercial version of Zend Studio for Eclipse for a while (a project or two) and I have to say that speed isn’t really the most positive factor of this IDE.
    When you’re in a hurry, and as a developer that can easily happen a lot, it’s just too slow. So slow we actually “downgraded” back to the original Zend Studio (5.5.1)

    Too bad because the Eclipse version has some nice features that aren’t available in the standard one…

  3. tsb says:

    I tried zend myself a short year ago for a project. Overall I did enjoy it, much for the same reasons you do. So it seems vim-users and emacs-fanatics can find common ground after all :)

    Personally I was so used to vim and the various commands like egrep, vimdiff etc that after a while I fell back on vim again. I did *not* think it was worth so much money. And the one thing that really annoyed me with it was the speed of the thing. It was so slow, sometimes it would almost halt. And this was on a core 2 duo E6600 2gb ram linux rig..

    I’ve been meaing to give http://www.netbeans.org/ a try, since it seems pretty similar and doesn’t come with an insane pricetag.

  4. Paul says:

    You could also try software like ActiveState’s Komodo or Sun’s NetBeans – especially in the later one much work for PHP was done lately, and it’s full open source, no (finanicial) investment needed for baic functionality…

  5. Andrew says:

    Re the speed thing – the operative word in your computer’s description is “laptop”. You’re almost assuredly out of disk i/o. Grab a high-speed flash drive and move your files onto it. I use these: http://www.corsairmemory.com/products/voyager.aspx (GT version.) It’ll blow you away with how much faster everything goes, particularly with Zend. Do this now.

    Re the encoding – you’re going to need to solve that by convention, likewise with line endings. There’s no 100% foolproof way for an editor to figure out the encoding of a file, which means that different editors will make different guesses… Tip: Zend will specifically drive you nuts because by default it’ll happily support multiple different line endings in the same file and contribute to the mayhem by adding new lines in whatever its default line ending is w/o concern for the existing line endings of the file. (Yes we ended up with several files with Mac, Unix and Windows line endings in our SVN tree before we got on the ball and locked this down in our configs.)

    I found it interesting that you wrote a whole piece on IDE’s without mentioning code completion and debugging. IMO, the biggest benefit of phpDoc comments is code completion hinting. :)

    There are other cheaper IDE’s out there if cost is the concern… We use PhpEd for various reasons but we have a few copies of Zend for some of its exclusive features and the fact it can operate quite nicely as a Java IDE @ the same time.

    Andrew

  6. Stephan says:

    Did you try 6.1?

    I’m using it since it was called Zend Neon (pre 6.0), and it is something of a hate-love. What’s evil, i think with every update it gets worse. in 6.1.0 the CSS and JS editors are nearly unusable here (flickering in CSS, very slow response in JS). Sometimes I ask myself if Zend ever tests their releases…

    Build management is buggy, sometimes the builder runs for hours without completing (for example if the workspace was modified from the outside through a manual svn update and you don’t fresh before building or cleaning).

    On the other hand it’s the best IDE i’ve ever worked with. Everthing I need is there or can be installed through eclipse features, I like the svn integration, the Remote System Explorer and stuff.

    I just wish they would fix old bugs instead of adding new features :(

  7. Brendon says:

    you can get subversion support without the “professional version”. Subclipse and subversive and both free plugins for eclipse (which zend studio is based on) for svn support.

  8. Roy says:

    thanks for this review!

    Few things that could help you about Zend Studio for Eclipse regarding what you mentioned here:

    * Short cuts – you can set any short cut to any action in the “General” -> “Keys” preference page. Moreover for people that flop from Emacs, you have an already installed “Emacs” scheme that preserve the Emacs short keys.

    * You can set the default encoding in the “General” -> “Workspace” this applies to all of your projects.

    In general most of the settings can be found in the search box of the preference page. Also if you’re looking for a feature – a best practice is to search also in the Eclipse community.

    Thanks, and good luck with it.

  9. For PDT, there’s the normal subversion plugins for Eclipse available. Subversive for example is far better than the Zend Studio SVN integration (which has been terrible in the pre-eclipse versions).

    Just checkout Subversive or Subclipse.

    You mentioned the speed: It’s Eclipse. It always has been slow :-)

  10. RFS says:

    You can use the subclipse module from:
    http://subclipse.tigris.org/

    You can use that with the community version of ZS and its free. Also, one thing you can try as well is to manage the memory eclipse uses natively. Some information is presented here on performance tuning eclipse.

    http://www.eclipsezone.com/eclipse/forums/t61618.html

  11. Pete W says:

    Another problem with Zend Studio, is that it only works on 32-bit OSs.

  12. kvz says:

    You may want to try Eclipse PDT. Which also has some speed issues, but is free (shouldn’t have to pay for slow programs right) and has svn integrated using either subclipse (from the guys that made svn) or subversive (from the guys that made eclipse).
    I did a writeup on it some time ago if you’re interested. http://kevin.vanzonneveld.net/techblog/article/my_new_ide_eclipse_pdt/

  13. Danne says:

    I found it interesting that you wrote a whole piece on IDE’s without mentioning code completion and debugging.
    I find it so natural a requirement that I forgot to mention it.

    Grab a high-speed flash drive and move your files onto it.
    I’m sorry but that just sounds backwards. On a modern computer you shouldn’t have to do that. Eclipse is dead slow eating RAM as if that’s what it is made for.

    PDT it of course a way to go. But it still, from what I know, it does not have reliable refactoring? Refactoring support is a great feature if you’re in the habit of refactoring your code when the project evolves.

    The cost is not really that big a deal. But if you get next to nothing compared to the free alternatives it still a waste of money. I’ll continue using the program over the next few weeks and also try the PDT version. Then I’ll decide.

  14. monk.e.boy says:

    I use NuSphere, I don’t know if it works on Linux, but I really like it. It has a sweet profiler which shows you where ZF is slow ;-)

    monk.e.boy

  15. Chris Snyder says:

    Ah. Thanks for this review, it answers the question “Should I try Zend+Eclipse on my new netbook?” The answer would seem to be no, based on performance alone (and probably also screen size). Every time I try to use Eclipse the complexity of it scares me away again.

    I’m a happy long-time user of Zend Studio 5.5.x. Man I wish they’d throw that codebase to the community and let us hack it into the very best php editor ever.

  16. Sam says:

    Worth mentioning is the viplugin for eclipse http://www.satokar.com/viplugin/ – I’m just testing it out at the moment but seems to be working pretty well.

  17. Paul M says:

    “Could not open the editor: Editor could not be initialized.”

    THANK YOU SOOOOO MUCH.

    It’s been doing my head in. Why not say “Please refresh project file list” or something like that?

    Thanks though :o )

  18. Gobble says:

    First of all, a million thanks for that tip on how to solve that nagging error. It turned me crazy!!!
    Secondly, I’ve been always a user for zend 5.X releases, starting from version 3 as I remember, I loved it much, but when that last release came to light, I hated it much, and couldn’t use it at first until a day came and I found my way a bit and doing fine. But honestly, I’m missing the old one.
    PS,performance is excellent with me, I have no problem at all on my laptop. Really it is very bad on my desktop, but that machine is outdated and cries when running office 2007

  19. Oleg says:

    “Could not open the editor: Editor could not be initialized.”

    THANK YOU SOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO MUCH.

  20. james says:

    Could not open the editor: Editor could not be initialized.

    Thank you refresh the project.

  21. Mark says:

    Thanks for tip on stupid “Could not open the editor: Editor could not be initialized” error.

  22. jkush says:

    Danne,

    I totally feel your pain, man. I’ve been working with eclipse for almost 8 years now, and vividly remember getting kicked out of the engineering labs once back in college for bashing the keyboard well past anything acceptable… all due to eclipse. lol. It’s a huge learning curve, and the truth is, the platform takes bits and pieces from your already-awesome development habits and re-molds them. For example, the project files. Eclipse is a plugin system. In fact, the core itself is just a plugin. With that being said, the project files are meant for pure portability, perspective/run settings, and so forth (without having the need for it to be known anywhere else). There’s nothing you can do about it, and unless you just learn to accept it, add some svn:ignore rules, and move on, you’ll always have that itch. This leads me to my second issue/acceptance. Eclipse has the capabilities for anything you’d like to accomplish, but you need to understand how to get there, agree with it’s methods, and just learn to work with it. If there’s ever a problem, just go to preferences and try searching in the top left corner. You’re bound to find the configuration settings for anything. Also, it’s prime to understand the basic concepts of working sets, filters, formatters, buildpaths, etc. and so forth if you plan on using it for employment.

    Lastly, you need to come to grips with the fact that your running a java IDE, and it just isnt meant to handle maintaining 6 projects at once, with build all auto selected, all being monitored with svn…. so, it’s best to say that under normal operating environments, maximizing the IDE’s resources is a major plus. if you require such resources, you need to move out of java IDE and into a desktop application. You should look into adding extra memory to the java heap stack ( either through command line xmxargs, or within the ini config file … i think ZSE\Zend….ini ). Just google eclipse startup commands java memory.

    Once you get past the minor quirks that seem to tick you off, the IDE itself is one of the best tools I’ve used in my career as both a java and a php developer.

    Hope this helps a little, as it really wasnt geared for ZSE specifically.

  23. Jeff Simon says:

    This article and comments have been helpful. I am trying to decide on a development environment after having used Zend Studio for the last 4 or so years, and presently using 5.5.1.

    The only reason I am considering the change is that I have converted from the PC to the Mac, and all things being equal would prefer to have a native Mac app. Unfortunately, while Zend has products for OS X, they don’t see to be providing the 5.x product, and only the 6.x product “for Eclipse.”

    I have already looked at plain old Eclipse and am put off by the substantial learning curve for things that while “good for the long run” don’t add any immediate value.

    While the Zend product seems worthy, it is also the learning curve, and I am tempted to just stay with 5.5.1 running under Fusion. Unless something else comes along that’s what my current decision is.

    Also, there is Mac version of UltraEdit in alpha testing which appears to support debugging with Xdebug and Subversion. So as an UltraEdit user, that may also be a viable option eventually.

    So staying with 5.5.1 for now.

  24. Noah says:

    Dual core? That’s your problem. Try buying a laptop that uses a Sandy Bridge chip, I doubt you’ll run into any speed issues. Cheers!

  25. Moazzam Khan says:

    I have heard good things about PHP Storm also. Just finished downloading it. Going to give it a try and see how it fares. It is supposed to be faster and lighter than Zend Studio 9.

  26. Jeff says:

    This article and comments have been helpful. I am trying to decide on a development environment after having used Zend Studio for the last 4 or so years, and presently using 5.5.1.

    The only reason I am considering the change is that I have converted from the PC to the Mac, and all things being equal would prefer to have a native Mac app. Unfortunately, while Zend has products for OS X, they don’t see to be providing the 5.x product, and only the 6.x product “for Eclipse.”

    I have already looked at plain old Eclipse and am put off by the substantial learning curve for things that while “good for the long run” don’t add any immediate value.

    While the Zend product seems worthy, it is also the learning curve, and I am tempted to just stay with 5.5.1 running under Fusion. Unless something else comes along that’s what my current decision is.

    Also, there is Mac version of UltraEdit in alpha testing which appears to support debugging with Xdebug and Subversion. So as an UltraEdit user, that may also be a viable option eventually.

    So staying with 5.5.1 for now.

  27. @Jeff. I am VERY confused regarding your comments. They are dated 2013 and yet you are still talking about ZendStudio 5 and 6? And issues running on a Mac? Seriously? What am I missing. The blog post was written around five years ago. A lot has changed (and a lot has not!) Why have you not been using ZS 5, 6, ,7 ,8 and 9? Zend Studio 10 is frankly a game changer! It has spectacular support for doing php based backends to html5 mobile ready front ends. As it has been pointed out, it is Eclipse based and java based and so it will run a bit slower then some of the compiled applications out there. And sure, on a Mac it will work slower then anywhere else because of the shitty support for Java on the Macs. With that being said, it’s an IDE it is suppose to be slow =). Certainly give the 64bit Mac Version of ZS 10 a try. If you really want a more “native” mac experience, and do not mind giving up a few things, I would highly suggest giving the newest version of Coda a spin. I used Coda 1 back when I used a mac and it’s a great Web Editor that has PHP support to it. The newest version is even better. TextMate is a balls-to-the-walls programmers editor that is totally kick-ass (and as of this year Open Source and Free..just takes a minute to find the free binaries). I am a Linus user and I use Vim around 80% of the time, and then when I need some of the advanced features of the IDE (like REAL debugging) I use Zend Studio 10.

  28. Agree. The article is very old and a lot could have changed since. Personally I use PHPStorm. To be honest though, that just kind of “happened”. It’s not because one or the other is better or worse.

  29. Remarkable issues here. I’m very satisfied to see your article. Thanks so much and I am taking a look forward to touch you. Will you kindly drop me a e-mail?

    Here is my website: pass drug test 1 week

  30. Nathanial says:

    Hi to every body, it’s my first go to see of this web site; this web site carries awesome and
    genuinely good data designed for readers.

2 Pings/Trackbacks for "Two weeks with Zend Studio for Eclipse"
  1. [...] on the DotVoid blog Danne Lundqvist has posted about the experience of two weeks with the Zend Studio for Eclipse software as a primary [...]

  2. [...] For North America users, the default encoding should be ISO-8859-1. If you open up a file that’s encoded in UTF8 without changing the encoding accordingly, you may end up screwing up the file. [...]

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>