• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

What IDE Or Editor Do You Use?

Have you ever worked on a large scale project with a dozen other developers? It is pure chaos if everyone uses VIM. You end up spending too much time going through each file updating methods,classes,objects etc after one little change in strategy. Using Netbeans or Eclipse makes it much easier. You can all work within a desired framework and let the IDE take care of developers tromping all over other people's code.

That's what a version control system is for. Pretty sure I mentioned git before. It does a pretty good job at merging code together and telling you about conflicts. Also if you're merging in changes and you're not reviewing how they've been merged in, that bad to begin with. You don't need a GUI to manage a framework for you. More software than not has some thought about how code for any particular part of a project should be written, hence why projects like Moodle have guidelines you must follow to contribute code back upstream.

I should be clear I only do php professionally, and I do it all on windows. I've already explained how I think skill factors in though so my level of talent shouldn't preclude me from having an opinion... in my opinion

There is a time and a place for GUI tools and I understand that. I also don't want you to think that I don't want you to have an opinion because I have a strong one of my own. If a GUI IDE helps you do what you do, that's fantastic. All the code I work with lives on Linux servers so I have to work with a Linux platform and the easiest way to do that is stick with what I have to run stuff on. So I don't develop locally. If I write Java I'll use Netbeans and VS for C#, but when it comes to editing scripts, I can't find much justification to use an IDE.

You can't have good advanced code completion with PHP anyways because the data can always mutate. Just because it was initially set to some class "Foobar" doesn't mean that at another point it won't be "Barfoo". Most dynamically typed languages have this problem and code completion really is best suited for languages like C# and Java, languages that are strongly typed, but when it comes to scripting languages like PHP and Ruby it very well could be incomplete. I too write php professionally and it all runs on a *nix server. At work I develop on a pair Ubuntu server and deploy to a pair RHEL servers.

honestly those sound like people who got used to one way of doing things and then found reasons to keep it. the only thing that makes sense is if you are already using terminal or you NEED to cli ssh for some reason. nothing else in that post is a good reason imo to keep using such an old method. this is NOT me bashing you, your skills, or your program. this is me saying I do not understand the reasoning and I wish that I could.

I've seen your code, you are better than me by miles. but that doesn't mean I'm just going to accept that your method is better when it doesn't seem that way to me. To me it seems more likely that you are just that much better, and if you used current software you could be even more efficient.

Not at all, there is a time and a place for everything. If you don't need a GUI, there is no reason to use it imho. I can't fathom why anyone would want to run PHP on a Windows server unless there is another piece of software you're using that needs Windows (except MSSQL, MSSQL and PHP together has always been a mess). That's just me though. I've heard horror stories about using PHP with MSSQL, and I can believe it after trying to use IIS with PHP. Also, why pay for Windows Server licenses if you can get away with Linux on your server? I do understand that not all software runs on *nix, so it's not always an option.

Also just because CLIs came first doesn't mean that they're obsolete.

And I say you are complicating it by using multiple programs or scripts when one program CAN do everything you need. I can edit a file, and with a single keystroke upload & preview it. I can set up the program to keep files in sync automatically. why would I EVER use rsync or write a script when the program I am already using to edit the file can do it all for me?

I didn't say complicate, I said complect. As in, to make compound.
The exact definition is:
MerriamWebster Dictionary said:
transitive verb
: intertwine, embrace; esp : to plait together : interweave

I personally think that a lot of IDEs have a lot of features and have, quite frankly, snow balled by making any one particular tool overly complex (not necessarily complicated to use,) by having it do multiple things. I personally believe that having one tool for one job is the appropriate approach. That way each tool focuses on what it has to do well and by doing that you're not introducing interdependencies between different aspects of whatever application you're working on.

I just like simple tools that do simple things with scripts that put these simple parts together to do something complex. That's just a preference though.

I respect that you like GUI IDEs and such. I think there are some pretty good ones out there. My experiences with Netbeans for Java have been very good in fact, but as far as what I enjoy the most and has been consistently my favorite and best platform to use has been a cli with some from of *nix using vim as an editor.

It doesn't surprise me that an open source project would use vim and emacs. I am not saying one is better than the other. Anyone who does so has never spent any significant amount of time developing in a large corporate environment.

The right tools for the right job, man. To validate your point, you're right. I haven't worked in a large corporate environment so I can't say, but I can say I have experience with small to medium sized teams, but even with teams up to 8-10 people you'll still see people using subversion or git with vim or some other editor.

I don't see either tool being better or worse in a larger environment when people know how to properly use the tools they need for either platform.

I'm just saying from my own personal experience, I've enjoyed working on the CLI on *nix more so than not, particularly with PHP and Ruby applications.

I apologize for my abrasive attitude for anyone who may be offended, I tend to have that effect on people. I don't mean to put anyone down, I just feel strongly about this. Remember, I'm talking about what I prefer, not what is better for all use cases. What might be better for me, might be completely different than what is good for someone else.
 
I can't fathom why anyone would want to run PHP on a Windows server
no i should have been clearer. I only code I don't host myself, I use dedicated or shared lamp servers & just use windows as my os. since I work from home it's my work and personal machine, which is the main reason for using windows. even using linux though I just can't go as far as cli.

Also just because CLIs came first doesn't mean that they're obsolete.
not necessarily obsolete, but I wonder other than small imprint what can they do that you can't configure an ide to do as well? you can use an ide just like a cli but with more features, no? to your next point though i do see it as a simple individual part.
I didn't say complicate, I said complect. As in, to make compound.
and I thought I had a good vocabulary. I saw the red underline and didn't even bother to look it up. :shadedshu

but I definitely see your point, I just feel the opposite about it. If I can find one program I like to do multiple parts of the job, i don't need to find the individual parts. flashfxp + debug wamp stack + notepad++ was the closest I had come before moving to phpstorm. and I just needed a little bit more that wasn't available without imho pita plugins. not only do i like the editor in phpstorm better than notepad++, but it made my job a lot simpler by requiring less software juggling and letting me code more.

I apologize for my abrasive attitude for anyone who may be offended, I tend to have that effect on people. I don't mean to put anyone down, I just feel strongly about this. Remember, I'm talking about what I prefer, not what is better for all use cases. What might be better for me, might be completely different than what is good for someone else.

same here. it really seems it is as simple as different opinions. I always try to understand ... sometimes that's the best answer I can get :)
 
That's what a version control system is for. Pretty sure I mentioned git before. It does a pretty good job at merging code together and telling you about conflicts. Also if you're merging in changes and you're not reviewing how they've been merged in, that bad to begin with. You don't need a GUI to manage a framework for you. More software than not has some thought about how code for any particular part of a project should be written, hence why projects like Moodle have guidelines you must follow to contribute code back upstream.

yes, that's true you can use Git or something similiar for control. But let's see you walk into a project halfway through and you need to review 100's of .class files with little to no documentation. a gui ide is prefect because you can quickly review those files using tabs and switch back and forth with no hassle. i am talking hundreds of .class files. then, if you are working with a compiled language like java try writing a .class file that imports a dozen or so other .class files and external jar's using the cli. And if you make a mistake or change one aspect of the code to recompile you have to reenter every single .class you want to include during compile time. an ide like netbeans/eclipse manages all of that for you.
 
yes, that's true you can use Git or something similiar for control. But let's see you walk into a project halfway through and you need to review 100's of .class files with little to no documentation. a gui ide is prefect because you can quickly review those files using tabs and switch back and forth with no hassle. i am talking hundreds of .class files. then, if you are working with a compiled language like java try writing a .class file that imports a dozen or so other .class files and external jar's using the cli. And if you make a mistake or change one aspect of the code to recompile you have to reenter every single .class you want to include during compile time. an ide like netbeans/eclipse manages all of that for you.

Lack of documentation is the fault of the developer. Every method, class variable, and class should be documented imho (I also think that Netbeans will read javadoc style comments for auto-completion documentation). If it's not you're just making it harder regardless of what IDE you use.

VIM lets you have multiple files open and lets you switch between them as well as slitting the screen as well as showing diffs. (Man, I love vim-diff,) but on top of that you can use ctags with vim with languages like php where all you need to do is select a keyword, press ctrl+] and it will open the file and show you where that word is defined. So without any gui at all, I was just able to navigate classes by method with a two button keystroke. I don't call that bad at all.

Also I think I mentioned how there are some languages where GUI IDEs work well, java is one of them. I happen to like Netbeans when I write Java myself, but I'm speaking generally here, as a tool, vim lets you do many things very quickly. As primarily a web developer who writes php, ruby, and bash, I have some incentives to want to use vim.

If I were to write Java, I would rather have real code completion and the ease of navigating Java APIs instead. I think I would want that for almost any strictly typed language to be honest.

So let me rephrase, I like vim for writing scripts. I like GUI IDEs when I use strictly typed and compiled languages.
OUch ouch black background, white power etc etc.
What? I think TPU is in a browser under that screenshot, so the light background is probably TPU. I use black on white or white on black depending on the ambient lighting and which ever I feel like using.
 
So let me rephrase, I like vim for writing scripts. I like GUI IDEs when I use strictly typed and compiled languages.

that is exactly where i was going with that. :toast:
 
I like vim for writing scripts. I like GUI IDEs when I use strictly typed and compiled languages.

I tried this before, using the same method. But I just feel weird while using vim, to the point that it is old, and hasn't been updated so much. I just find myself sticking with GUI IDE's.
 
I tried this before, using the same method. But I just feel weird while using vim, to the point that it is old, and hasn't been updated so much. I just find myself sticking with GUI IDE's.

Weird doesn't mean that it's worse. Vi is old, VIM is less old but the version I'm running isn't even a year old so, no, you're wrong. :)

It has a steeper learning curve, but it doesn't mean that it isn't a good option. There is more to remember, that's definitely true but like anything else, you get better at what you use a lot and the added advantage to having a GUI is that you can visually search for what you want as opposed to figuring out what commands or keystroke combinations you have to make to do any one particular thing, but on the other hand on a command line editor, most actions you'll do are within one or two keystrokes so the time it takes to do any one thing can be less if you know what you're doing.

As I said before, I would use a GUI editor for something like Java or C# but for a scripting or command languages, VIM is pretty powerful for things like Ruby, PHP, and BASH. Not knowing how to use a tool is not the fault of the tool. Hard to learn doesn't imply hard to use. ;)

Learning VIM is like learning regular expressions. You don't get very good at it unless you use it practically and you use it a lot.
 
I tried this before, using the same method. But I just feel weird while using vim, to the point that it is old, and hasn't been updated so much. I just find myself sticking with GUI IDE's.

Read this.
 
Back
Top