Allegro.cc - Online Community

Allegro.cc Forums » Game Design & Concepts » Project Planning / Management

This thread is locked; no one can reply to it. rss feed Print
 1   2   3 
Project Planning / Management
Trezker
Member #1,739
December 2001
avatar

My IDE is called GNU/Linux. I use plugins like gnome, nautilus, geany etc...
There's even a live support system called x-chat which uses the IRC protocol where I can communicate with multiple support personnel at once.

Mordredd
Member #5,291
December 2004
avatar

Well, it all depends where you put your reference, doesn't it? Visual Studio slows me down like hell (that means my head runs in idle while VS is doing weird things). Eclipse isn't that bad, but both are bloated with unuseful crap. Unluckily, everything that is not bloated with unuseful crap will be waved away as being "not professional", whatever that means.

I have tried a few IDEs and stuck with QtCreator, which is lighting fast, faster than my fingers are. It copies many good concepts from Eclipse, like code navigation, but does that with enormous speed. It doesn't brag with 20 menus that each have 50 submenus, but instead supports you invisibly.

There is one disadvantage though: You can't go to fetch coffee when IntelliSense updates..
{"name":"visual-studio-wait.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/a\/4\/a4e23e39e3b1c44962ac2eea709414fd.png","w":589,"h":185,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/a\/4\/a4e23e39e3b1c44962ac2eea709414fd"}visual-studio-wait.png
Source: http://www.donkitchen.com/2009/07/03/visual-studio-2008-is-a-piece-of-shit/

james_lohr
Member #1,947
February 2002

Apart from start-up, which can take up to a minute, Visual Studio, Eclipse and Netbeans are all "lightning" fast for me.

Using Netbeans (with built-in Maven and SVN), a new starter can go from a freshly built PC to having any of our company's hundreds of projects checked-out and successfully building in 10 minutes.

That will never happen in your cobbled together environments.

Slartibartfast
Member #8,789
June 2007
avatar

These are the features I deem mandatory in my code editing program:

  • Smart autocompletion + preview documentation

  • Goto implementation/goto definition

  • Find all references

And another I can live without but is still very useful is support for snippets.

These features are required from a debugger:

  • Highlight current line, next(into/over), break, pause, set next instruction etc.

  • Watch variables, evaluate expressions, show all local variables

  • View Stack

  • Watch memory

  • Smart breakpoints (break on hit count, when an arbitrary expression is true or an address has been modified)

Other things that are needed:

  • Code profiling/coverage

  • Source control

Using Visual Studio with Visual Assist X and DevPartner + plugin from your favorite source control has you covered on all fronts, and you can do all of those quickly (There's keyboard shortcuts for everything you need). Incredibuild is also priceless.
I've never run into cases where I feel slowed down by this setup, so I feel that this sort of proves that an IDE is a great way to do your thing.

Of course, my requirements are tainted by what I'm familiar with, so if you've got anything to add to that list or any reservations...

EDIT: Other useful things: (still covered under an IDE)

  • I also really like a cpu register/sse/fpu window available in a debugger (with the ability to show assembly code of course).

Arthur Kalliokoski
Second in Command
February 2005
avatar

support for snippets.

What's a snippet? Is it some useful little piece of code you use often but never made it into the libraries? I'm constantly searching other projects to fetch some useful bit of code. I used to put these into a library, but I'd like these things to be stand alone without special libs.

I also really like a cpu register/sse/fpu window available in a debugger (with the ability to show assembly code of course).

They all watch too much MSNBC... they get ideas.

Slartibartfast
Member #8,789
June 2007
avatar

What's a snippet? Is it some useful little piece of code you use often but never made it into the libraries? I'm constantly searching other projects to fetch some useful bit of code. I used to put these into a library, but I'd like these things to be stand alone without special libs.

Not exactly, its a "shortcut" for an often repeating pattern of code.
For example, you might start with the code:

RValue = Foo(x,y,z);
RValue

You highlight the lower RValue and choose the "Check for failure snippet", then it pops a dialog where you enter the text X, hit enter and it automatically inserts:

if (FAILED(RValue))
{
    Logger.Log(X);
    return RValue;
}

You can manually define any code snippet you want to paste, and map it to any name (so you could make so you start typing Try and it will morph it into

try
{

}
catch(exception &e)
{
}
finally
{
}

Or whatever you want.

I guess if you wanted to just use it to manage a library of useful snippets of code you could do that as well :X

</quote>I also really like a cpu register/sse/fpu window available in a debugger (with the ability to show assembly code of course).</quote>
Visual Studio also has those, and they are really useful, I'll add them to my post.
(For those that don't know, just watch "eax" to see eax, and you can hit alt+8 while debugging to debug the assembly code)

Matthew Leverton
Supreme Loser
January 1999
avatar

Using Netbeans (with built-in Maven and SVN), a new starter can go from a freshly built PC to having any of our company's hundreds of projects checked-out and successfully building in 10 minutes.

Yeah right... It takes longer than 10 minutes just to install an IDE. :P

Nothing is faster than:

  • git/svn checkout

  • make

:o

Actually, I like a good IDE, but I hate environments where you must do things via an IDE or else there's no other way. I worked on a Java program while getting my Masters, and Eclipse, Maven, and whatever else I was using drove me crazy. :P

james_lohr
Member #1,947
February 2002

Yeah right... It takes longer than 10 minutes just to install an IDE.

By now you should have learnt to take everything I say with a pinch of salt. :P

Quote:

but I hate environments where you must do things via an IDE or else there's no other way

I spent nearly a week trying to get someone's EJB project (along with a GWT font-end) to work. Up until then he had been the only person working on it, and had used a million different Eclipse addons. It was a Maven project, but his POM file was a disgusting mess - as bad as the worst ant script I've ever seen (in fact, he had used a library which allowed him to embed bits of ant scripts in his POM file ). It was the most horribly excruciating experience of my life and I ended up giving up and telling him to get it working from a fresh check-out on a fresh machine - which he still hasn't managed to do months later!

So I agree, like anything, it's possible to screw it up if you really try. ;)

bamccaig
Member #7,536
July 2006
avatar

That will never happen in your cobbled together environments.

That can all be done in a single command line... :-/ From an unformatted hard drive to a running project is only 10 minutes. :-X

Of course, it depends on the developers designing the project that way. That includes documenting dependencies clearly and simply (so you can easily install them with your package manager or download the necessary sources and get those installed), as well as providing an automated build system. I can type a command line without looking at my screen or keyboard. If I have to click a [dynamically positioned] button on a [dynamically-sized] space then I have a lot of coordination calculations to do. You generally need a about six[1] such operations to load a Visual Studio solution and build it (there may be some keyboard shortcuts to cut those down, but how many of us know them). Every such GUI operation is slower than the command line operation simply because it requires coordination as opposed to blind typing.

Imagine using a keyboard whose mappings changed in subtle ways every time you used it. That seems like a fair analogue to what it's like using a graphical user interface. You think of it as just "clicking a button", but in practice your brains needs to coordinate your eyes and hand from some dynamic starting point to some dynamic ending point with a potentially dynamic mapping between real world and virtual distance, etc. I personally find it very slow every time I have to reach for a mouse. The only time a mouse serves me well is when I'm pwning n00bs, and even then it varies greatly by game and configuration. :-[ I had a VERY hard time with Deus Ex: Human Revolution because the mouse-based movements were unpredictable. Any time I found myself in a combat situation (rare because I was stealthy the whole game) I had a very hard time.

Personally I consider it a bug to have to launch a graphical application and click a UI button to build a project. BAF seems to imply that a Visual Studio solution can be built from the command line, but to my knowledge he has never demonstrated it... I'm willing to wager that it's a lot more typing than `make', if it's possible at all. :-/

References

  1. File..., Open..., Solution..., X, Open, Build and Debug. ???
Matthew Leverton
Supreme Loser
January 1999
avatar

bamccaig
Member #7,536
July 2006
avatar

That's a project, not a solution. ;D :-[ I'll have to give that a try on Tuesday and see how well it works out.

Matthew Leverton
Supreme Loser
January 1999
avatar

It works with solutions too. For example:

msbuild allegro.sln

The IDE uses msbuild, so it should be feature complete albeit it probably via switches that are meant to be machine generated.

Oscar Giner
Member #2,207
April 2002
avatar

bamccaig said:

You generally need a about six[1] such operations to load a Visual Studio solution and build it (there may be some keyboard shortcuts to cut those down, but how many of us know them).

[1] File..., Open..., Solution..., X, Open, Build and Debug.

Well, of course in order to use an IDE efficiently, you need to learn to use it :P. I'm pretty sure you can ask anyone that uses VS and he'll know that F7 builds the solution and that F5 debugs it (or Ctrl+F5 to run without debugging). I've been using those shortcuts since VC6 :o. And Ctrl+O is the standard shortcut for opening a file in any Windows app.

bamccaig
Member #7,536
July 2006
avatar

A graphical UI's biggest strength is the mouse. It's designed first for use with the mouse and the keyboard shortcuts are applied after. I would be fascinated to watch somebody use Visual Studio with the keyboard only because I imagine it would be very obscure and a lot of work. I doubt that anybody really does it. A GUI encourages the mouse and I know that most users predominantly use the mouse with them. Despite using Vimperator first and now Pentadactyl with Firefox, I'm still forced to use the mouse on a regular basis to the point where I often use it even when I don't have to just because it's habit...

Trezker
Member #1,739
December 2001
avatar

Your project should maintain proper instruction for how to go from a freshly installed OS to building the project.

Of course you can't keep guides up to date for every conceivable OS. But just keeping it up to date for the environment you're mainly using yourself is a great help.

At regular intervals, install the OS on a fresh virtual machine and see what it actually takes to build your project.

Slartibartfast
Member #8,789
June 2007
avatar

bamccaig said:

A graphical UI's biggest strength is the mouse. It's designed first for use with the mouse and the keyboard shortcuts are applied after. I would be fascinated to watch somebody use Visual Studio with the keyboard only because I imagine it would be very obscure and a lot of work.

It's nice that you imagine that something is hard, but here in the real world it is possible, easy and comfortable. Even I[1] only use the mouse for highlighting text and for quickly navigating a file[2]. (and manipulating the source control I guess)

References

  1. I'm very bad at remembering shortcuts :X
  2. And even then only for a single file, as inter-file navigation is done much more easily with alt+shift+o, alt+o, alt+g and alt+left for example.
Oscar Giner
Member #2,207
April 2002
avatar

bamccaig said:

I would be fascinated to watch somebody use Visual Studio with the keyboard only because I imagine it would be very obscure and a lot of work

You mean like vim? :P Why would it be more/less obscure or require more/less work?

I'm not that good with VS shortcuts TBH (but I always usy F7/F5). A good example of using shortcuts in a GUI based app is After Effects. I've been following some video tutorials (videocopilot) and one of the first things they teach you is shortcuts, lots of them. And the guy tells you how important is learn to use them to be able to use After Effects much more efficiently.

Trezker
Member #1,739
December 2001
avatar

I 3D modeling keyboard shortcuts are essential.
Blender has a steep learning curve, but once you've got the most basic shortcuts down you can work without feeling interrupted every time you need to go through menus to do something.

The key concern with shortcuts is that you don't need to move your eyes away from what you're working on.

ImLeftFooted
Member #3,935
October 2003
avatar

The new Xcode (4.2b7) got about 2-3x slower. It now is essentially compiling every line of code as you write it to get those squiggly red underlines for errors in real time.

Tobias Dammers
Member #2,604
August 2002
avatar

It's a culture clash, really.

On one side, there's the IDE crowd, using large, complex, but comfortable tools to make their lives easier. The IDE somewhat prescribes certain aspects of your workflow, project structure, and even team organisation, but as long as you don't try to fight this, and you have sufficient hardware resources to feed the IDE, it can be an extremely productive way of working (I've been there, and it's definitely not bad).

On the other side, there's the UNIX crowd, with their mantras of 'small, sharp tools', textuality, 'do one thing right', etc. etc. The tools are spartanic by themselves, but they do exactly what you tell them, nothing less, nothing more, and they form the building blocks of an incredibly flexible and powerful programming environment.

I could do some things really fast in Visual Studio, and that was great. But other things were excruciatingly hard, and required an obscene amount of repetitive manual work. At one point, I was refactoring a horribly bad class, changing the parameters for the constructor. That class was used just about everywhere, hundreds and hundreds of occurrences of the same constructor, with dozens slight variations, and I had to change them all. I ultimately resorted to using vim for the task.

These days, I don't know where I'd be without vim. Just a few features that make it all worthwhile:

  • macros. Utterly awesome. You type qn, where n is a letter of your choice, at which point vim starts recording everything you type, until you hit q again. The n register now contains the key sequence you typed, and by typing @n, you can play it back, feeding the contents of the n register back into vim's command interpreter. But it gets better: if you've made a mistake while recording, you can paste the recorded key sequence into your text, edit it, and yank it back into the same register, and then execute the edited macro.

  • shellouts. Almost equally awesome. When vim isn't enough, you can select some text and pipe it through any shell command; the command's output replaces the original text. One of my favorites is :%!xmlindent; another nice one is :%!cat filename - just insert the contents of filename into the current document.

  • the gf command - step on a filename, type gf, and bam, you're there.

  • ctags - especially when exuberant-ctags is available. It's like a precalculated baseline for intellisense, designed to keep working as much as possible even if the source code changes (and when it is really too outdated, YOU get to decide when to run it again). Combined with vim's built-in autocompletion, it gets pretty close to a proper IDE's autocompletion, but there is zero background activity (by contrast, Netbeans or Visual Studio suck up considerable amounts of CPU cycles just to keep their autocomplete data up-to-date).

---
Me make music: Triofobie
---
"We need Tobias and his awesome trombone, too." - Johan Halmén

bamccaig
Member #7,536
July 2006
avatar

It's nice that you imagine that something is hard, but here in the real world it is possible, easy and comfortable.

It's only relatively easy and comfortable. That's not to say that it can't get a whole lot better. :)

It's nice that you imagine that something is hard, but here in the real world it
I'm very bad at remembering shortcuts :X

It helps when the shortcuts are sensible, easy to get to, and have mnemonic meanings (and when they're good enough to use all the time).

And even then only for a single file, as inter-file navigation is done much more easily with alt+shift+o, alt+o, alt+g and alt+left for example.

Are those Visual Studio shortcuts? :-/ What do they do?

You mean like vim? :P Why would it be more/less obscure or require more/less work?

Vim is modal. In command mode, where you spend most of your time, just about every key has a sensible meaning, and they're pretty well optimized for how often you use them. With an editor that isn't modal, normal keys are reserved for normal input at all times, so you need a modifier key for everything.

One of the most basic things, that also happens to be a great relief, is using hjkl for basic cursor movements. I also use them for scrolling in Firefox (with Pentadactyl) and it's so much easier than reaching for arrow keys, page buttons, or a mouse. :) I regularly find myself trying to scroll that way in sub-par applications now. :D There are a lot more useful commands for movement too.

A good example of using shortcuts in a GUI based app is After Effects. I've been following some video tutorials (videocopilot) and one of the first things they teach you is shortcuts, lots of them. And the guy tells you how important is learn to use them to be able to use After Effects much more efficiently.

And effectively what he's getting at is that the graphical UI is a waste of developer time (and in many projects the GUI is one of the most complicated things to maintain). :P

But it gets better: if you've made a mistake while recording, you can paste the recorded key sequence into your text, edit it, and yank it back into the same register, and then execute the edited macro.

How do you paste and yank from the registers? :o I haven't gone this far yet.

...another nice one is :%!cat filename - just insert the contents of filename into the current document.

That sounds like the hard way to do :r[ead] filename. :)

...the gf command - step on a filename, type gf, and bam, you're there.

Another nice one that I haven't used before. :)

...ctags - especially when exuberant-ctags is available. It's like a precalculated baseline for intellisense, designed to keep working as much as possible even if the source code changes (and when it is really too outdated, YOU get to decide when to run it again). Combined with vim's built-in autocompletion, it gets pretty close to a proper IDE's autocompletion, but there is zero background activity (by contrast, Netbeans or Visual Studio suck up considerable amounts of CPU cycles just to keep their autocomplete data up-to-date).

I used them briefly one time, but I found it annoying to have the box coming up when I type, covering part of the code. I haven't bothered trying to configure it to my liking. Usually I don't need it anyway. I rarely don't know what I'm typing, and when I don't Visual Studio's intellisense isn't much help, and in the time it takes me to identify when the correct option is highlighted I can often have already typed the word. :-X I should probably give it another try though to see if I'm wrong, but I'd be afraid to let it taint me. :P

Slartibartfast
Member #8,789
June 2007
avatar

bamccaig said:

Are those Visual Studio shortcuts? :-/ What do they do?

Yes.
alt+shift+o - goto file in project. (Hit it, start entering filename and it shows all matches for what you entered so far, hit enter to choose)
alt+o - switch between header and implementation. (essentially if you are viewing foo.c it takes you to foo.h and the other way around.)
alt+g - goto definition/declaration. If you hit this when over a name (variable, function, macro etc.) it will offer to take you to where it is defined or where it is declared (depending on context, and if it can't tell it allows you to choose). This is if course cross-file
alt+left - go back to your previous location. So if you just pressed alt+g to view exactly how that function is defined you can hit alt+left and go back to where you were just using it.
All of these are basic and vital when working with visual studio.

Quote:

It helps when the shortcuts are sensible, easy to get to, and have mnemonic meanings (and when they're good enough to use all the time).

It might help, but it doesn't change the fact I'm bad at remembering them.
I worked an entire semester with Emacs and all I managed to fit in my head is: open/save/copy/cut/paste, and now I don't remember any of it.

Quote:

It's only relatively easy and comfortable. That's not to say that it can't get a whole lot better. :)

Sure, but none of us really know precisely how things work for the other guy, so we can't really compare, and so long as everyone is happy with their way...
How about we agree that doing anything from the command-line in Windows is a disaster :P

Tobias Dammers
Member #2,604
August 2002
avatar

bamccaig said:

How do you paste and yank from the registers?

Just prepend your yank and paste commands with "n (where n is the register you're targeting). For example, "ayy yanks the current line into register a. "+3yaw yanks 3 words to the system clipboard. "ap inserts the contents of register a after the cursor.
An alternative way is to enter insert mode and press Ctrl-r; this will bring up a little "; you can now press a letter, digit, or special register key to insert the contents of that register at the current location. So i<C-R>a<Esc> does (roughly) the same as "aP.

Quote:

It helps when the shortcuts are sensible, easy to get to, and have mnemonic meanings (and when they're good enough to use all the time).

The best thing about vi commands, IMO, is how they are ultimately consistent, almost modular. 'y' is for yanking, 'c' is for changing, 'd' is for deleting, 'i' is for inserting, 'a' is for appending. All these operations can be modified the same way: append 'aw', and they operate on a whole word. Double them, and they operate on the current line. Append a slash and a regex, and they operate up to the next match. Prepend a number, and they are applied this many times.
At the same time, most of the commands are perfectly mnemoic, yet almost all of the keys are used for something, which means they are used very efficiently.

---
Me make music: Triofobie
---
"We need Tobias and his awesome trombone, too." - Johan Halmén

bamccaig
Member #7,536
July 2006
avatar

How about we agree that doing anything from the command-line in Windows is a disaster :P

FTFY. :-/ I still prefer the command line for most things in Windows (it's a lot faster and more reliable for file operations, for example), but it sucks compared to a UNIX shell.

verthex
Member #11,340
September 2009
avatar

I just use gcc on the command line and debug with gdb in cygwin .

 1   2   3 


Go to: