Friday, April 13, 2007

Essential Features for Eclipse PDT

Eclipse PDT project initiative is a good news for PHP developers. However, there are few basic features, which are expected of any web development tooling, still missing. It is good to know that the project is focused on serious features on unit testing, debug infrastructure, editors etc. You can vote for the essential feature enhancement on project page.

I would like to share some PDT uses from a developer perspective. I use PDT for editing and source code management. These features are good enough, and will be more productive eventually.

However I felt lack of support for deployment features, all you get is external tools for local apache and basic page browsing. But Every time I modify a web page, I've to do rcp or use WinSCP to deploy that file back to the server and refresh page. Also, most of the times, It's essential to be connected with server on SSH connection to do regular fancy server stuff. WinSCP, although a great tool, isn't really "ergonomic excellence" and hence this tool switching becomes a painful activity.

It seems PDT is assuming that developers work only on development/staging machine and hence the lack of support for deployed web applications. Also based on my experience, I found PHP deployment to be very very different, fairly simple to be ridiculously near non-existence, compared to other "heavy-weight" web environment. Java, for example, has lots of "things" and steps to deploy a web app, but that's a different story...

I strongly recommend consideration for following features:
  1. Built in SSH command interface (remote terminal as console view ).
  2. Support for auto upload, or built in rcp (rsync builder - rsync as a part of auto-build would be a great feature!). Alternatively, this can be like MS Visual Studio style interface through HTTP interface, using HTTP methods (PUT etc.). Live Deployment feature is *essential*.
These basic features, not specific to only PHP IDE, can substantially increase productivity.
I'll post more uses of PDT as I go along using it.

14 comments:

Pascal said...

You should take a look at the target management effort from the DSDP project. It has some of the capabilities you need: http://www.eclipse.org/dsdp/tm/index.php

Villane said...

Have you tried Remote System Explorer (RSE) from the Target Management project? It should have the things you need, and even support direct editing of remote files: http://www.eclipse.org/dsdp/tm/

Anonymous said...

Hey Nirav,

Your comment about rsync is probably best handled at the EFS layer. There need to be more EFS providers, such as WebDAV, SSH/scp, and FTP.

e

Chris Aniszczyk (zx) said...

Please check out RSE

http://www.eclipse.org/dsdp/tm/

It does a lot of what you mentioned.

Patrick Roumanoff said...

from what I understand those two items already exist within the
Remote System Explorer
which is part of the
target management of the Device Software Development Platform Project

Patrick Roumanoff said...

from what I understand those two items already exist within the
Remote System Explorer
which is part of the
target management of the Device Software Development Platform Project

Nirav Thaker said...

Guys, Thanks a lot.
I shall checkout RSE and other features of target management project.

Anonymous said...

Are you coming to Eclipse Forum India (http://www.eclipseforumindia.com/) in Bangalore, May 28-31 2007?

Nirav Thaker said...

@Anusha
I would have loved to, but my schedule will not allow me to be there :(

Nirav Thaker said...

@Anonymous

I don't know much about EFS, but I find RSE and other Target Management really cool.

I still believe rsync can be a real good feature for remote development.

Clark Endrizzi said...

I have a question for everyone posting. I am new to eclipse and it seems you can't use RSE and PDT together because you have to choose one or the other. How would you use RSE to have a remote sight within a PHP project?

Martin Vium said...

All i could find about working with RSE inside projects is this:

http://wiki.eclipse.org/index.php/TM_and_RSE_FAQ#Working_with_TM_.2F_RSE_as_a_User

Think it says the projects have to implement EFS (Eclipse File System) to be able to do this. Can't get it working under PDT.

Martin Vium said...

Link got messed up:

http://wiki.eclipse.org/index.php/TM_and_RSE_FAQ
#Working_with_TM_.2F_RSE_as_a_User

Marc said...

Thank you for that hint! I was wondering that PDT-Features didn't work on remote filesystems.