What Tools Do You Use?

Started by
24 comments, last by daerid 18 years, 7 months ago
I'm looking for clarity on everyone's standard setup. I'll describe my problem and how I've approached it, but the overall process seems very sloppy and I still don't feel like my environment is "right". Here are my main questions: 1. What OS do you primarily develop in? 2. What are your main programming tools? 3. Do you use an IDE? Which one? 4. What tools are absolutely necessary for programming and development? 5. What tools make it easier? 6. Would you describe your programming environment as being "polished" or would you say it's like the "House Jack Built"? 7. If you think your environment is polished, how do you organize your environment? Folders with application links? A batch file that opens all your tools? Something else? 8. Do you have any suggestions as to what I should do to polish my setup? 9. Are there any problems with your setup? To answer my own questions 1. Windows XP 2. Dev-C++, the GIMP, DDD (visual GDB tool), cygwin. 3. Yes, Dev-C++. 4. Not sure. 5. Not sure. 6. House Jack Built 7. n/a 8. n/a 9. Everything is very disorganized, inefficient, and it feels incomplete. My Problem Everything I want to do always seems to require another tool, that I don't have, and there isn't pre-built binary for my system. I spend an enormous amount of time and effort setting up the environment. The process to set it up is frequently long, involved, and something I don't feel I could duplicate without the same effort again if I switch systems. Using Dev-C++ (4.9.9.2), as it turns out, the debugger doesn't really function. I did some research to find an adequate debugger. After two days worth of research and work, I now have an adequate debugger installed (DDD). Even now that I have it, it's still less than satisfactory, there's a long process to start it, and it runs very slowly. But it's a perfect example of just how complicated everything is for me. I couldn't just download DDD and install, first I had to get LessTif, which I also couldn't just download and install. To do that I needed to get cygwin. Once I had cygwin I had to configure and build LessTif, then I had to configure and build DDD. Everything on my system is so seperate that it hardly feels like an efficient environment to work in. Which leads me to the question of what in the world does everyone else use? Is it this much work for everyone just to setup the tools you need? Would I be better off just using Linux since it's the only systems most applications seem to have a binary availabe for? (Although I DO have Linux installed, there's even problems there, and I'm no Unix expert) Analogy (not necessary to read this far) I feel like a handyman. I reach for a nail and I'm told "No nails, you have to make your own." so I go to a forge to make some and they're ask "Did you mine any iron yet?" so I go to a mine and I hear "Well you're going to have to build your own pick to mine with." and in the end all I can think is "I just wanted to hang a picture on my wall, but somehow now I'm in the Amazon Jungle looking for raw materials." Thanks for taking the time to read and respond =)
Advertisement
1. XP, but I make an effor to keep my code as cross-platform as possible.
2. Dev-C++, MinGW, GDB.
3. Yes, Dev-C++.
4. A compiler, a text editor.
5. A debugger, an IDE.
6. House Jack Built.
7. All of my code's in one place, and the two things mentioned in #8.
8. Keep your APIs together, instead of leaving them scattered, or just plugging them into your compiler's directories, that way you don't have to track files down when you want to upgrade/remove the API. If you're reusing code, keep it all together in its own folder or something, that way you just have to include the appropriate files and you're all set.
9. I never take the time to make projects, so I'm always recompiling everything.

If you don't like the way Dev-C++ plays with the debugger, use it from the command prompt. I do, and I haven't had any problems with it.
Quote:Original post by Jekler
1. What OS do you primarily develop in?


Linux. I also use Windows to test things.

Quote:
2. What are your main programming tools?


A text editor (Usually kate). A compiler and make tool (gcc and gnu make respectively).

gdb as a debugger - I don't use a GUI for the debugger because I haven't found one which is more efficient than using it from the CLI yet.

Perhaps the latest version of kdevelop might help.

Quote:
3. Do you use an IDE? Which one?


Not for games development at the moment. I've used VS.NET 2002 and Eclipse 2 before. They both have good features, and annoying bugs.

Quote:
4. What tools are absolutely necessary for programming and development?


An editor which does what you want. A shell which can be scripted so you can do unusual tasks in an automated fashion.

Quote:
5. What tools make it easier?


Any tools I create. Basically I often create small fairly hacky tools, often in Perl, to do specific tasks.

Quote:
6. Would you describe your programming environment as being "polished" or would you say it's like the "House Jack Built"?


It's got problems, but it's pretty good.

Quote:
7. If you think your environment is polished, how do you organize your environment? Folders with application links? A batch file that opens all your tools? Something else?


I use mutiple desktops. I have one or more for the editor, and another one where I can run the compiler (via make). My editor has a multiple document interface, but sometimes I open several windows (which it can also do), or use the split panes feature.

If I'm also playing around with graphics, I do that in another desktop, and I have another desktop for web browsing / email.

Quote:
8. Do you have any suggestions as to what I should do to polish my setup?


Not really. You have to find your own best setup.

Quote:
9. Are there any problems with your setup?


There are many. At the moment the feature I mainly want is *decent* code completion in my editor - not having it is not REALLY annoying, but it does sometimes make unfamiliar things take slightly longer than they might do otherwise.

I'd like a version of gcc which supports precompiled headers at some point. Compiling C++ programs which use a lot of big headers (STL, Boost etc) can get slow. I split my programs up into fairly small units.

I don't really like Make very much - but it's functional. My Makefiles are rather imprecise (I usually throw in a dependency of all my objects on all my headers).

But better an imprecise Makefile dependency than missing ones, which cause build problems.

Mark
1. Linux
2. g++, make, and gedit
3. none, makefiles get the job done. Though i've been meaning to see what the linux IDEs look like these days.
4. SDL, gdb, the GIMP, blender
5. doxygen, CVS - though i'm thinking about switching over to subversion
6. "House Jack Built"
7. N/A
8. Get rid of as many distractions as possible.
9. I'm happy with it, but linux still has its warts.

Quote:4. What tools are absolutely necessary for programming and development?
A web browser (preferably firefox).
And that's about it, really.. I could live with punching in machine code on a mainframe frontpanel, but internet access is absolutely vital for projects of any size.
Quote:Original post by Will F
3. none, makefiles get the job done. Though i've been meaning to see what the linux IDEs look like these days.
They're not mutually exclusive you know..
Quote:Original post by Jekler
Everything I want to do always seems to require another tool, that I don't have, and there isn't pre-built binary for my system. I spend an enormous amount of time and effort setting up the environment. The process to set it up is frequently long, involved, and something I don't feel I could duplicate without the same effort again if I switch systems.
I personally tend to move my sources around a lot so I tend to avoid external tools and libraries if possible. At least I try not to use anything beyond small(ish) utilities that can easily be distributed with the source itself.

[Edited by - doynax on September 3, 2005 2:33:53 PM]
1. What OS do you primarily develop in?
Windows XP - SP2

2. What are your main programming tools?
MSVC 6 (I know, I know, OBSOLETE, but I'm upgrading when MSVS 2005 comes out), plus a number of hand-wrapped tools, like a build stamp generator, etc. Natural Docs for on-the-fly documentation, also batch filed into the build process. And of course the debugger in MSVC 6. Plus, I use Perforce, which has saved me a lot of grief and hassle when I dick something up royally and have to revert.

3. Do you use an IDE? Which one?
MSVC 6

4. What tools are absolutely necessary for programming and development?
I feel that an IDE is completely necessary, plus a documenting tool, because with the IDE, things just get to spread out for me, and I can't keep on top of all that functionality in multiple apps. With the documenting tool, I think that's a must because it allows you to update your documentation much more easily, and because of that, you're more likely to update it every time you make a small change. I used to not use Natural Docs, and let me tell you, my documentation on almost every function was a few versions behind what I was using. It also helps to have some tools to automate repetative tasks, like making a buildstamp, as an example. Also, source control is NECESSARY. Without it, backups, restore points, it's all chaos.

5. What tools make it easier?
I don't know about specific tools, but I like batch files immensely. They make life a lot easier, allow me to automate otherwise repetative and boring tasks, and do things that would otherwise take time and be mistake-ridden. Like compiling log files into one big searchable log. Or whatever. Anything that automates tasks you do a lot.

6. Would you describe your programming environment as being "polished" or would you say it's like the "House Jack Built"?
My programming environment is polished, in that everything is right where I need it, or doesn't require any user input at all. At least, it is for me, and I define that as 'polished'.

7. If you think your environment is polished, how do you organize your environment? Folders with application links? A batch file that opens all your tools? Something else?
I've got everything where I have easy access to it, be it in the IDE, or run automatically every build.

8. Do you have any suggestions as to what I should do to polish my setup?
Get a real IDE? Sure Dev-C++ is all well and good for beginners (it was for me), but when you start being limited by it, you need to move out. Plus you probably need to automate your tasks more. Or so it seems to me.

9. Are there any problems with your setup?
At the moment, no, but there are always some small problems with every tool I add, but they are ironed out when I find them.

Cheers!
Free speech for the living, dead men tell no tales,Your laughing finger will never point again...Omerta!Sing for me now!
Quote:Original post by doynax
Quote:Original post by Will F
3. none, makefiles get the job done. Though i've been meaning to see what the linux IDEs look like these days.
They're not mutually exclusive you know.


Yeah I know, i've just been productive enough with makefiles that I haven't needed an IDE. I came over to linux from macs a couple years ago and after a bit of initial confusion realized that I could live without an IDE. Though I do still have fond memories of Codewarrior and Project Builder (and to a lesser extent Think Pascal).

My initial impressions of linux IDEs (kdevelop for example) were not all that favorable, but i've been meaning to check and see how far they've progressed.
1. Linux (Debian ATM) with KDE

2. gcc, autotools, gdb, valgrind, kwrite (occasionally vim)

3. no, I like to have separate (lightweight) windows/programs for everything

4. a compiler, a scriptable build system (allowing things like dynamic source code generation, automatic unit tests etc.) and a debugger

5. subversion, diff, kompare (a graphical diff tool), python automation or other misc. scripts, a good window manager (virtual desktops are a must)

6. I feel efficient and see no need for major changes

7. I navigate to my project directory using konqueror, middle click to open some subdirectories into tabs, hit F4 to start a console and get started.

8. It looks like you are trying to use Unix/Linux tools under windows and have ended up in a kind of a dependency hell, as well as having two operating environments side by side (cygwin+libraries and windows+libraries) occupying memory. Do consider trying Linux. If you have had trouble with one distribution, try another. I'd personally recommend SuSE, Ubuntu or Debian stable.

In most distros getting a specific development tool or library to work involves little more than selecting it from the package manager. The IDEs in Linux are, however, hardly better than Dev-Cpp. If you want a good IDE with the most polished GUI debugger on earth then you'll probably want to get MSVC.

9. Not really. gdb is a little cumbersome to use from the CLI but I don't need it that often.
Quote:Original post by Jekler
1. What OS do you primarily develop in?

Mac OS 10.x (currently using 10.4)
Quote:
2. What are your main programming tools?

In order of how much I use them (currently):

  1. Emacs

  2. CLISP

  3. Nano

  4. Python

  5. Eclipse

  6. GHCI (Haskell compiler)

  7. Lua

  8. Xcode


Quote:
3. Do you use an IDE? Which one?

Eclispe and Xcode.
Quote:
4. What tools are absolutely necessary for programming and development?

Depends on what you are trying to accomplish
Quote:
5. What tools make it easier?

Again, depends on what you are trying to accomplish. Usually for me, though, Common Lisp (I'd use it more often, if I could ever get CLSDL working).
Quote:
6. Would you describe your programming environment as being "polished" or would you say it's like the "House Jack Built"?

Polished, for the most part.
Quote:
7. If you think your environment is polished, how do you organize your environment? Folders with application links? A batch file that opens all your tools? Something else?

The dock and the terminal, mostly.
Quote:
8. Do you have any suggestions as to what I should do to polish my setup?

I would recommend that you start using Linux more, since you mentioned that most of the tools you want to use already have binaries for it.
Quote:
9. Are there any problems with your setup?

I have several different Python binaries, each having their own site-packages directory. That can get annoying at times.
1. Win2k via putty/screen to NetBSD
2. vi, gcc, gdb, MSVC2k5, gimp, textpad, pencil/paper, gprof, LeakTracer, google, about 200lbs worth of books, grep/sed/awk/perl/...
3. Is plain vi an IDE? I only use MSVC2k5's IDE for debugging and quick fixes. I use textpad occasionally when I want syntax highlighting and regex searches on windows.
4. a compiler. Though a lot of other things make it less painful.
5. everything else :]
6. It works for me. I'm sure others have swankier tools, or nicer setups. I'd like to think mine is decent enough to not be a roadblock.
7. Well, screen on unix rocks. Having those screens in a ssh terminal while also having the benefits of windows' in others is quite nice. Once the tools are open, they usually stay open.
8. Sounds like you just need to build your sys-admin foo so you can make windows work better for you, or learn to avoid the Linux newbie-landmines.
9. Sure. SCPing over win32 source files to compile on MSVC2k5 becomes tedious.

This topic is closed to new replies.

Advertisement