Is there an IDE that the MW developer community has settled on and can recommend?
tip-toeing softly away from the list....
Thanks - Tod
* Tod listacctc@gmail.com [Mon, 09 May 2011 09:08:43 -0400]:
Is there an IDE that the MW developer community has settled on and can recommend?
tip-toeing softly away from the list....
Lots of MediaWiki source files contain the following lines:
if (!defined('MEDIAWIKI')) { // Eclipse helper - will be ignored in production require_once (...); }
Lots of another files has such signature: /* vim: set expandtab tabstop=4 shiftwidth=4: */
So I guess that's the answer - vim and eclipse.
I use Notepad++ in Windows and gedit in Linux - although I am not a major developer. Eclipse looks too bloated to me, vim is fast but hard because it has contexts - one has to get used to it. Maybe someday.
Dmitriy
On Mon, May 9, 2011 at 9:08 AM, Tod listacctc@gmail.com wrote:
Is there an IDE that the MW developer community has settled on and can recommend?
Depends on who you ask. Dmitriy pointed out vim and Eclipse. I personally use Netbeans when I want a full IDE, and I know a few other people who do as well.
For quick one line edits? Vim. Gedit. Smultron. Depends on my mood :)
-Chad
On Mon, May 9, 2011 at 3:08 PM, Tod listacctc@gmail.com wrote:
Is there an IDE that the MW developer community has settled on and can recommend?
Sam has a license for phpStorm, iirc, available for all MediaWiki developers.
Bryan
"Bryan Tong Minh" bryan.tongminh@gmail.com wrote in message news:BANLkTinddq+HJgTE=4dwc5OfBvNHT7pm9g@mail.gmail.com...
On Mon, May 9, 2011 at 3:08 PM, Tod listacctc@gmail.com wrote:
Is there an IDE that the MW developer community has settled on and can recommend?
Sam has a license for phpStorm, iirc, available for all MediaWiki developers.
Bryan
I use phpStorm (got the license key from Sam), which is pretty good. I probably use less than 1% of all its features, but the little things it adds (like being able to click on a function call, hit a key and get a popup of its documentation, or jump to its definition with another keypress) are useful little timesavers. I started with Eclipse, but as Brion says it gets *very* grumpy when trying to load large projects, and seems to have quite a few memory leaks.
Ultimately, the codebase is sufficiently large and esoteric that few-to-no IDEs are able to fully discharge the task of "integrating" development, testing and deployment (I have yet to hear many success stories of debugging/breakpointing/etc, for instance, and you'll probably waste as much time (and hair) getting it working as you'd save by using it); so basically, go for whatever will do the things you want with the minimum of extraneous "features" which will probably just end up consuming time, memory and sanity...
--HM
On Mon, May 9, 2011 at 6:08 AM, Tod listacctc@gmail.com wrote:
Is there an IDE that the MW developer community has settled on and can recommend?
There is no magic bullet. :)
In the early days I mostly used fairly lightweight syntax-highlighting program editors (bbedit on Mac, jedit on Linux/Windows, joe or vim if stuck in a terminal) and a command line for grep & version control, and that was Good Enough For Me.
I mostly use Netbeans these days -- like Eclipse it's an open-source pluggable Java-based IDE mega-framework, but I've found it more stable and comfortable to use than Eclipse. Its PHP & JavaScript mode does decent highlighting, it has standard integration with SVN and Git, and it handles project navigation, autocomplete etc including extracting type information from doc comment annotations. Most importantly, project-wide search and replace works and is speedy enough compared to mucking about with find and grep.
Some folks around the office also use Eclipse. The downside of either of these is that they're huge apps -- they eat memory for breakfast, and if they're unstable can be very frustrating. The upside is that they tend to be very flexible, but much less intimidating than classic Unixy stuff like vim or emacs.
Others are still very happy with a lighter-weight programming editor: something in the GUI flavors like TextMate or bbedit (Mac), Kate or gedit (Linux), or whatever the heck Windows people use.
Some hardcore people use a terminal-based editor like vim or emacs by choice; the best of these are extremely powerful with syntax & navigation features though they tend to have a higher learning curve.
The most important things you probably want in a programming environment are:
* project-wide search & search-and-replace (you will kill yourself playing with 'grep' without this) * PHP & JavaScript syntax highlighting (a must) * quick way to pop around to other files in the project by name/path (even if just from a command line)
Some folks will care also about: * version control integration (all I ever use is a 'svn annotate' shortcut!) * debugger integration (if/when you can actually make it work, AWESOME) * autocompletion assistance (it's a help but if you can navigate around or look up help easily, it's not key) * integration with language & library documentation (if you know your way around php.net, no biggie)
-- brion
On 09/05/11 18:47, Brion Vibber wrote:
On 09/05/11 15:08, Tod wrote:
Is there an IDE that the MW developer community has settled on and can recommend?
Some hardcore people use a terminal-based editor like vim or emacs by choice; the best of these are extremely powerful with syntax& navigation features though they tend to have a higher learning curve.
The whole point is looking like a hacker at social events :b I had people frown upon me while I was just writing a blog post. Priceless.
Anyway, the top reason I use vim, is that vi is part of POSIX which guarantee him to be available on any Unices. Be it a Juniper router, a Macbook, the popular Linux or an obscure IRIX server (the one covered by dust that was managed by "Joe" who left the company 2 years ago).
vim comes with almost anything you need, and more. Most commands are available in very few keystrokes but the learning curve has a huge slope at the beginning :-(
I used Eclipse a long time ago, but found it to be too slow and unstable, it probably changed by now. Or try Netbeans as recommended by Brion. The feature I am missing, is the documentation popup above the caret when: - filling function parameters - choosing a class method (show the method doc) They come from the PHP doc blocks we are using.
You can also try TextMate which is popular among core ruby on rails developers (or at least they pretend so). It is only for Mac, and I am not sure how well PHP is supported.
On 5/10/2011 2:15 AM, Ashar Voultoiz wrote:
On 09/05/11 18:47, Brion Vibber wrote:
On 09/05/11 15:08, Tod wrote:
Is there an IDE that the MW developer community has settled on and can recommend?
My take is that there are three cultures.
(1) People who use IDEs that are actually useful for the languages that they use. This is true of Eclipse for Java, but probably not Eclipse for anything else. This is true of Visual Studio for both C# and Visual Basic. In these cases you get a visual debugger that actually works, code completion that actually works and various code analysis features that actually work. Yes, these products are big, but (i) you get something back for the bloat, and (ii) 24GB of RAM costs about $350 these days and if you increase the productivity of a programmer who gets paid $35 an hour by 1%, that pays for itself in less than a month of full-time work.
An interesting characteristic of type (1) tools that they are rarely Open Source. Eclipse/Java is nominally Open Source but it's got a big company (IBM) behind it, and I think without that Eclipse/Java would be a type (3) tool. When it comes to "scratching an itch", the kind of people who develop type (1) tools don't need type (1) tools and they won't do the 80% of the effort to finish the last 20% of the product.
I'm not aware of any type (1) tools for dynamically typed languages.
(2) Text editors. You've got plenty of choice here. Lately I like jedit because it works on Windows, Mac and Linux and it has an edit-over-SFTP that (unlike many products that claim this feature) actually works. I used to use emacs, and it's handy to know vi in case you have to fix up a FUBARed Unix machine of some kind. If you're running Windows, the key thing is having something better than Notepad.
Something important is that there's a cultural gap between type (1) and type (2)'s. A lot of type (1) people 's are intimidated by the though of using type (2) tools and a lot of type (2) people see the use of type (1) tools as being a sign of mental weakness.
(3) People who use broken IDEs and (generally) don't realize their tools are broken. Here you're paying the performance and bullshit taxes that come with type (1) (in fact, probably experiencing 10 or 100x the bullshit) and not getting the very real benefits that come from type (1) tools.
For instance, there are several Scala plugins for Eclipse and they all share the feature that they don't work. Opening in a Scala file is like playing Russian Roulette. The file might take 2 seconds to open, or maybe 2 minutes, or maybe 2 hours. Even if your code compiles just fine, you'll never get the red marks in the margin to go away so at some point you'll decide to ignore them -- unless you've got some sense and switch to type (2) tools.
All of the PHP plugins I've seen for Eclipse are bad, if not as bad as the Scala plugins. Maybe Eclipse attains type (1) status for something other than Java, but I've never seen it. I've yet to see a PHP IDE that attains type (1) status, but maybe just maybe if the stars align right you might occasionally get a visual debugger working with PHP... Maybe.
I think the real problem is that people use the word "IDE" and don't differentiate between the type (1) and type (3)'s, between the emperors who have clothes and those who don't. Most type (2) people think all IDE's are crap, so they don't see the difference between type (1) and type (3) tools. Most type (1) people accept any claim that a product is an "IDE" and are so terrified of trying type (2) tools that they'll take whatever they can get: they'll desperately cling to type (3) tools even when they make their lives miserable.
On Tue, May 10, 2011 at 11:24 AM, Paul Houle paul@ontology2.com wrote:
I've yet to see a PHP IDE that attains type (1) status, but maybe just maybe if the stars align right you might occasionally get a visual debugger working with PHP... Maybe.
There's NetBeans, which has already been mentioned 2 or 3 times in the thread. It does PHP (and Java and C) and I have no complaints with it. It's bloated, but nowhere as bad as Eclipse--and as you've pointed out, the PHP plugins for Eclipse are awful.
-Chad
On 10 May 2011 16:24, Paul Houle paul@ontology2.com wrote:
My take is that there are three cultures.
Just posted to Reddit, with some interesting discussion:
http://www.reddit.com/r/programming/comments/hb7cs/the_three_types_of_ide/
I do believe you've come up with something good here.
- d.
Where can I get a phpStorm license? I like to start fixing some easy bugs and I was making myself the same question about IDEs since I've always worked with Eclipse.
regards,
Matias.
On 12/06/11 05:07, Matias wrote:
Where can I get a phpStorm license? I like to start fixing some easy bugs and I was making myself the same question about IDEs since I've always worked with Eclipse.
Ask Reedy:
http://www.gossamer-threads.com/lists/wiki/mediawiki/200386
;)
Tod listacctc@gmail.com writes:
Is there an IDE that the MW developer community has settled on and can recommend?
Since no one else has said it: emacs is my choice. I typically use flymake (http://www.emacswiki.org/emacs/FlyMake) while editing to catch obvious syntax errors. I've configured emacs so that MW coding conventions are followed: http://www.mediawiki.org/wiki/Manual:Coding_conventions#emacs_style
Oh, and it works with mediawiki-mode, which I maintain. So I can edit code and edit wikis via the API using the same editor.
Mark.
On Mon, May 9, 2011 at 12:31 PM, Mark A. Hershberger < mhershberger@wikimedia.org> wrote:
Since no one else has said it: emacs is my choice. I typically use flymake (http://www.emacswiki.org/emacs/FlyMake) while editing to catch obvious syntax errors. I've configured emacs so that MW coding conventions are followed: http://www.mediawiki.org/wiki/Manual:Coding_conventions#emacs_style
Oh, and it works with mediawiki-mode, which I maintain. So I can edit code and edit wikis via the API using the same editor.
Props, sir. Mad props. :)
-- brion
wikitech-l@lists.wikimedia.org