Stack OverflowWhat rare programming tools do you use?
[+39] [66] Daniel W
[2008-10-04 10:39:17]
[ editor devtools ]

What tools do you use that may be considered rare in that aspect that you have only seen a few people use it? It may be any tool that may be valuable for programmers.

I myself use UPX [1] on occasions.

(1) Do the tools that I build for myself count? - Ferruccio
(13) So does an answer with up votes actually mean the tool is NOT rare, thus should be voted down (since it isn't, in fact, rare)? - Aardvark
Ferruccio: Sure, if you think other developers would be interested. Aardvark: Who knows? ;) - Daniel W
(1) Aardvark, I voted up just because I have found a new tool for me. (SquirreL) - Sergey
@Aardvark, I think primarily answers should be voted up for being "useful" which would mean that people who didn't know about the tool think it might be useful. At least that avoids your paradox :P - Draemon
Yeah… shouldn't the answers be sortered by votes with the less votes first? That way those answers would be "rarest". :) - Spoike
[+42] [2008-10-04 10:43:00] Mikael Jansson [ACCEPTED]

Common Lisp.

An elegant weapon. For a more ... civilized age.

Also see:


(11) Just so that nobody missed the reference: - ojrac
[+34] [2008-10-04 11:48:27] VonC

[Humour on] I try to stay off old legacy code editors because of the learning curve ;)
(From Steve Rowe's Blog [1].) [Humour off]

[Actual answer] I am pretty sure not everyone is using a QR-code [2] editor like this one:

It is used to store addresses and URLs that may appear in magazines, on signs, buses, business cards or just about any object that users might need information about. Users with a camera phone equipped with the correct reader software can scan the image of the QR Code causing the phone's browser to launch and redirect to the programmed URL.


[+26] [2008-10-04 15:23:20] Leigh Caldwell

AWK [1] - for lots of data processing tasks it is just the right level of abstraction - more powerful than sed, less work (and learning curve) than Perl.


I wonder sometimes if I am the only soul alive still using AWK or knowing what it is. I still have my o'reilly book on awk/sed on my shelf and the kids on my team come in and stare at its age from time to time. - MikeJ
I still use awk on occasion. - ConcernedOfTunbridgeWells
awk isn't really rare, it's pretty wide spread where I work. - André
Perfect tool to use with find. - Ubersoldat
I love me some awk. - JUST MY correct OPINION
[+25] [2008-10-04 14:29:39] pookleblinky

I use Richard Feynman.

Seriously. He used to advise that until you can explain something to a child, you don't really understand it. Exaggerated, but the principle is true.

If you cannot explain the "why" of your code to another person, you will be kicking yourself 6 months from now when you must maintain it. Or when the maintenance programmer breaks into your home with a knife clenched between his teeth.

(1) Richard Feynman: tales of heroic nerddom - Rick Minerich
"Explain to a child" is a great idea. I was discussing this just the other day with, as it happens, my child. I pointed out to him that any experts he encounters will be able to boil down the essence of their field into a handful of fundamentals, understandable by almost anyone. - iii
[+24] [2008-10-04 17:21:14] Ricardo Cabral

Graphviz [1] as an aid for visually understanding complex dependencies among modules, classes, packages, etc.


Graphviz saved me in many situations! - Kknd
Graphviz nearly counts as mainstream, judging by the number of people who recognise it - I gave a presentation on Agile Documentation including it and had about 15% of the audience already using or familiar with it. - Andy Dent
[+20] [2009-01-01 19:07:01] cookre

I use that rarest and most precious of tools - time.

Sadly, one all too often sees developers jumping right in to coding milliseconds after getting an assignment.h

I would guess 70%+ of the time I spend on a program is up front just ruminating, cogitating, and percolating, with an occasional snippet of code to fiddle with something I'm unsure of.

Makes managers real nervous.

It's not until I know EXACTLY how things are going to be laid out, and KNOW it is the way to go, do I start coding in earnest.

You're "one of those nerdy organized types who refuses to write code until he's got a spec" (to quote Joel Spolsky, at: )? Good for you! The next time my program works the way it's meant, or I expect it, to, I'll buy you a beer... =) - David Thomas
Something like that, only the spec is in my head :) - RCIX
[+17] [2008-10-23 21:01:25] bmdhacks

I used to use a PS2 Dev Kit back when I was doing console development.

PS2 Dev Kit

It's basically the unholy marriage of a PlayStation 2 console and a PC running some ancient version of Red Hat Linux [1]. It lets you download code onto the console and run it, and even step through it in a debugger. You don't actually interact with the Linux portion aside from a socket API that's very opaque. The only reason I know it runs Linux is that to upgrade its firmware you upload RPMs into its web interface.

When we were testing a game that had 2-on-2 network play, I actually had to have four of them on my desk with a bunch of TVs to display all the output.


(1) That's looked cool! - m3rLinEz
(1) I would love one of those and pay good money if i found one for sale. - Tim Matthews
(1) They're a lot bigger that that picture looks at first glance - it isn't just a fat version of the normal PS2 - frou
Are these supposed to be rediculously hard to code for? That's what i've always heard anyway. Would love to own one to have a play around with. - Dan Harris
[+16] [2008-10-04 13:27:10] Alan Hensel

I like to use UnxUtils [1] for some good old Unix command-line tools on Windows. (Some people prefer cygwin, but that never did it for me.)


(1) +1. These are native Win32 ports based on MSVCRT.DLL. On Windows these play nicely with native paths and therefore native windows tools. If I wan (for example) sed in a back-end win32 process, the UnixUtils one tends to be better than cygwin. - ConcernedOfTunbridgeWells
[+15] [2008-10-04 11:40:37] MusiGenesis

I use Paint for graphics.

Yuck! Use Paint.NET instead. - Kevin
(7) Paint.NET is not rare. Using Paint makes me feel sort of Amish. - MusiGenesis
(3) i've used it for scientific publications hahahaha - Nope come on man! - Dead account
@Ian: I've always wanted to write my own graphics editing program, but if I ever tried I would probably get about as far as Paint, so it seems more efficient to just use Paint. - MusiGenesis
Paint is good for trying to get screenshots into usable formats, and for basic image manipulation. Plus, it's one of the only image manipulation formats that is guaranteed to be on a work machine. - glasnt
[+15] [2008-10-23 21:53:59] Sherm Pendley

Brains. They shouldn't be rare, but judging from much of the code I've seen, they are. :-(

[+14] [2008-10-04 11:15:25] Igor Drincic

PowerBuilder IDE

A tool that shouldn't have become so rare. - David G
Indeed, DataWindow is just remarkable :) - Igor Drincic
Me, too. It's still a great tool for prototyping, working with databases, and doing quick reports. It has saved my butt more than once when the boss needed something done in a hurry. - Mike
Isn't the Datawindow in fact just what Linq is now trying to emulate, 15 years late? - Vincent Buck
(3) I still wake up screaming from nightmares of trying to maintain PowerBuilder code. - Chip Uni
@Chip Uni - I wish I could upvote you more :< - glasnt
[+11] [2008-10-23 22:06:15] Sergey

I use SciTE [1] as a lightweight cross-platform text editor. It has one feature that I love very much - changing font size from the keyboard. It's very handy for me to set a small font for huge log files and a big font just by pressing Ctrl+"+", Ctrl+"-".


FYI on Mac OSX this is standard for nearly every application. I routinely blow up a terminal window to show a co-worker, or blow up a notepad to relieve eye-strain. - Karl
@Karl, interesting. - Sergey
Scite is wonderful ! .... and I still do not know why people go ga-ga for Eclipse ? ! - Arkapravo
[+10] [2008-10-23 22:09:00] Gerald

I use OllyDbg [1] quite a bit for debugging, reverse-engineering, analyzing and tweaking assembly language code.


[+9] [2008-10-04 11:11:20] Andre Bossard

Internet Explorer 6.0

(Ok, it isn't rare, but it should be)

You still use it? - Kevin
I also use Lynx, though is not a programming tool per se. Best way to browse the tubes at the office - Ubersoldat
(5) I find that w3m is pretty good too, as an alternative to Lynx. - jparanich
Let me guess, did you loose a few billions when your IE6 crashed ? - Arkapravo
"a few billions" of what? I already lost billions of microseconds, that I could spent with sitting outside in the sun, or having a good time with my wife instead of mingling with IE 6. - Andre Bossard
[+7] [2008-10-04 13:41:17] Phil Bennett

Code generation with a twist -- I've got my own set of macros ( Common Lisp [1]) that generate all of my data access layer (stored procedures, DTO [2]s,) output entirely in C# / VB.NET.


[+7] [2008-10-04 17:21:23] PhiLho

Of course, something I think is rare can actually be used by lot of programmers! Stuff I use and don't see my co-workers using:

  • SQuirreL SQL Client [1] is still my tool of choice to access various databases, even after trying some others.

  • AutoHotkey [2] isn't a very nice language (although it came from a long way) but it is very convenient to do a quick tool with GUI. I made an uninstall tool with it, a little form to fill a database table (using Oracle's command line tools), etc. Plus its management of hotkeys is just excellent.

  • Lot of other tools, like the Sysinternals' ones, Wireshark (not so rare, actually), etc.


Love SQuirreL. My life changed the day I found it. - Ubersoldat
[+7] [2008-10-23 20:46:39] KC Baltz

Screen Ruler [1] is great for any kind of visual development where you want to count how many pixels high or wide something is.

Bare Tail [2] is a 'tail' replacement for Windows that is great for monitoring log files. It's GUI-based and lets you assign filters to colorize log output (E.g. red text for Exceptions, light grey on white for debug output you want to ignore).


[+7] [2009-04-17 12:52:44] Damien Pollet

Smalltalk ! ( Squeak [1], GNU Smalltalk [2], the free edition of Cincom VisualWorks [3], but mostly Pharo [4] in practice).

Not as old a language as Lisp, but quite fun too :)


[+7] [2009-04-17 12:56:56] chris

Sadly, common sense.

[+6] [2008-10-23 21:49:45] Peter

I don't feel entirely comfortable calling them 'rare', but I've installed packages from the gnuwin32 [1] toolset as I need them, and as a result have pretty much the whole lot installed now. It seems to be unusual among my coworkers to use command-line tools but they are utterly brilliant for some problems - for example AWK [2] for mass manipulation of text data (which tends to come up frequently in this job).


[+6] [2008-11-13 22:44:32] user37248

I use:

Common Lisp/CLOS for programming - I was exposed to Lisp in the 1980's, been through ObjectPascal (MacApp), C/C++, Java, Perl, Python, etc. but I always return to Common Lisp because it's so much more productive.

Allegro Allegroserve/Webactions web server running under screen. I can connect to the running process and compile in new Common Lisp functions at any time.

LaTeX for documentation - I live in Emacs, I write code, mail, browse the web, and write documentation in Emacs.

PostScript for drawings. I used to "draw" pretty hairy illustrations in PostScript. Now I use more PGF/Tikz.

SystemVerilog/VHDL for living...

[+5] [2008-10-04 11:14:17] Ryszard Szopa

I am using PL/Scheme to write procedures stored in PostgreSQL in Scheme. Most of my project is in Common Lisp, and Scheme allows me to minimize the cost of context switching. Of course, I would prefer to have Common Lisp as the PL, but nothing like that exists (yet, I hope). Curiously, it feels like Guile is a bit faster than PL/Python (though I don't have any real proofs for that).

[+5] [2008-10-04 14:11:37] torial

Agent Ransack - for a grep-like tool with a nice UI on Windows -


CS-Diff - for a free Diff tool with a nice diff display -

CS-Diff? WinMerge is so much better -- seriously! - Kevin
Must be taste, at least when I was picking diff tools, WinMerge seemed clunky -- but that was years ago. I've used BeyondCompare for one project (it was the Customer's) and find it very good. Just haven't seen a need ot jump the WinMerge bandwagon, sorry. - torial
I recommend over both CS-Diff and WinMerge but it's, as usual, a matter of taste. - Jonas Elfström
I ended up settling on KDiff3 right now, for power sake. Comparing 3 folders or files is very nice. Although I miss the UI of CS-Diff, so I will probably install it for more niche cases. - torial
+1 for AgentRansack. So much faster to search for files than the windows search. - Mads Hansen
[+5] [2008-10-04 15:24:38] neu242

I use Joe's own editor [1] for quick and simple edits. I haven't met anyone else who uses it, although it seems to have a large user base.


A couple of my co-workers use that for all their work. - MattBelanger
Do too, great editor, love the ancient Wordstar keystrokes. I install it on every linux machine I come in contact to. - squelart
+1 joe I know how to use vi, but I learnt joe in University about 10 years ago and I always use it on the terminal if I can install it. Administrators know I'll be happy if it's installed. - alex
Lately I have dropped joe in favour of vi. It was really just a practical desicion: Vi is available everywhere, and it's fantastically useful as long as I use it regularily. I previously only used it once in awhile, which was too seldom to remember all the useful keystrokes. - neu242
[+5] [2008-10-23 20:53:42] mkClark

Spin [1]

Great for finding concurrency issues in multithreaded or multitasked applications.


[+5] [2008-10-23 22:02:59] Jonas Gulle

I use WinHex [1] and IDA Pro [2] occasionally.

  • WinHex to inspect disk images and (currently) to dissect Smart Card APDUs collected with an USB Sniffer [3].
  • IDA Pro to disassemble BIOSes and other low-level code such as boot loaders and other pre-boot software.

(1) IDA pro is a very nice tool - Tom Leys
[+4] [2009-01-08 12:26:31] MadCoder

Com0Com [1] for creating connected virtual serial ports. I can fire up two VMs and use com0com on the host to connect the VM's serial ports together. Great way to test/debug serial port applications all on my workstation without having to break out any hardware.


[+3] [2008-10-04 10:54:15] mliesen

I often need to implement communication protocols. DockLight [1] is a great tool for testing and debugging communication. It targets serial communication (RS232,RS485), but it's also nice when doing TCP/UDP stuff.


thanks, will check this out! - pmlarocque
[+3] [2008-10-04 12:48:37] finnw

SETL [1].

Great for topological sorting [2] and similar algorithms if you want to invoke them from shell scripts.

Example (similar to unix tsort [3])

tokens := [t in split(getfile(stdin), '[ \t\r\n]+') | t /= ''];
edges := {[tokens(i-1), tokens(i)]: i in {2, 4 .. #tokens}};
nodes := domain edges + range edges;
(while exists x in nodes | x notin range edges)
  nodes less:= x;
  edges lessf:= x;

[+3] [2008-10-04 17:27:19] pklausner

Libero [1] for generating Finite State Machines. And it never occurred to me, that AWK or Graphviz are supposed to be exotic...


[+3] [2009-01-01 18:11:10] Ronny Brendel

VampirTrace [1] for tracking down performance problems (sequential, threading, and MPI)


[+2] [2008-10-04 12:13:56] Nils Pipenbrinck


I use it to translate object file compiled with GCC to the VS.NET C++ world. Also works great help when porting GCC inline-assembler to VS.NET (It does the ATT style to Intel style).

this? ...seems to be a great site too - epatel
[+2] [2008-11-13 22:58:57] Kluge

I use an incremental copy program of my own invention on a daily basis and can't figure out why I'm the only one thinks its essential. (That's why I wrote my own: Nobody else seems to have one that works exactly like I need.)

It's like directory diff program, comparing a source and destination directory and showing me which files are newer /older and of different size. It helps me to incrementally copy files, ignoring unchanged files, and preventing me from unintentionally overwriting newer files with older ones.

Maybe that's because people use some existing version control systems? - wasker
Subversion + TortoiseSVN is one option for doing this from a right-click in Windows. For example, commands like Update will only retrieve the differences to bring the directories up to date, and Switch also uses minimal operations to change between entire versions. - J c
You might like the Unison file synchronizer---it does everything you mention and more. - Norman Ramsey
What's wrong with rsync? - Aaron Digulla
Or robocopy on Windows? - benPearce
It might be a more belt-and-braces approach (hell, he even made the belt and braces) and might not be as well put-together as the commercials/established options; but hell, he's learned something interesting from his OS and for his coding. Surely that's worth it in itself. =) +1 - David Thomas
Learning something is all well and good but in my experience, the majority of the time the person paying you will not want some custom built tool when something more than adequate already exists. - benPearce
I found something very similar to my incremental copy program: Filesync (, except they took it to the next level by adding file diffs and some other neat features. Thanks for all the comments. - Kluge
Treecomp, it shows little blue and red dots for files that differ and black dots for those that don't. I'm not sure it runs on linux though :( - Carel
[+2] [2008-11-24 15:17:40] Anton Nazarov

I use xfig [1] for diagram drawing, though mostly not for development but for articles preparation.


[+2] [2009-01-08 11:47:06] Draemon

XSLT. Most people don't realise it's Turing complete [1]. You can do some clever things transforming Ant [2] build files and generating XML configuration files, and that sort of thing. Nicest thing I did was generating GraphML [3] from an XML version control log.


I found XSLT was the perfect tool to create text / XML output from XML files (just as I expected). - Tom Leys is an XSLT converter for REALbasic source in XML that generates Java class definitions and comments so I can run them through Doxygen. I got a bit obsessed one weekend. - Andy Dent
No XSLT is not turing complete because it does not offer integer numbers. A langauge only working with real numbers is not turing complete. (well in practice it doesn't matter - but in theory it is not). - Lothar
(1) @Lothar: Wrong. Turing machines process an infinite tape of symbols from a finite alphabet. Here is a UTM in XSLT: - Draemon
[+2] [2009-05-31 16:45:09] Marco van de Voort

Cygwin, Dia, joe - not shocking.

Out of the ordinary: Free Pascal using the (Turbo Pascal-like) textmode IDE for "scripting" (quick throwaway programming).

[+2] [2009-09-05 13:32:42] Silfverstrom

I use R for statistics. [1]


[+2] [2009-09-05 14:13:16] nmuntz

Unfortunately, my company uses Lotus Notes, and I find myself using Lotus Domino Designer [1] quite a bit.


(3) my condolences, sir - Jeff Atwood
(2) This its not rare, its ugly - Rodrigo
[+2] [2009-09-05 14:53:47] dicroce

I used to use "cdecl", a command line tool capable of turning very complex C type declarations into English language descriptions (unsigned char** foo == "A pointer to another pointer which points at unsigned characters").

It could also go the other way, though I never used that part.

[+2] [2010-05-02 12:18:22] SztupY

Total Commander [1] for everything file system related (and more)


[+1] [2008-10-04 11:05:08] Vinko Vrsalovic

Once upon a time I had to use Avenue, finding later her son, AVPython [1].


[+1] [2008-10-04 11:34:54] MikeJ

We have a part of our build script that is written using AWK / SED to generate some static content pages for our application. There is talk of migrating this to Ruby/ERB but it just hasn't happened.

[+1] [2008-10-04 17:12:08] Harald Scheirich

I am currently writing an interpreter for a DSL we are using, the parser is written using QLALR [1] a parser generator


[+1] [2009-01-01 16:06:50] Cesar Romero

I use Microfocus Cobol 3.

[+1] [2009-01-01 17:49:36] erikkallen

Script# [1]


[+1] [2009-01-01 19:11:41] Kevin Loney

010 Editor [1] whenever I'm doing protocol design or working with binary file formats


[+1] [2009-01-12 13:19:17] hyperboreean

I do code from time to time some snippets in Ada. It's a very nice language.

[+1] [2009-01-12 13:33:49] vava

I use Far Manager [1] (a text mode file manager for Windows) a lot. Perfect for creating prototypes in Ruby and any other language that doesn't need a compiler.


How does a file manager help in creating prototypes in Ruby? - Peter Mortensen
Because it is fast, you can easily navigate through directory structure, call rake scripts and it's editor is really good, it has syntax highlighting and simple form of completion. If you need to do something small fast, it just the best tool ever. - vava
[+1] [2009-09-05 15:05:00] unknown

[HumorMode=On] Brains?

[+1] [2009-09-05 15:39:14] Ira Baxter

I use a program transformation engine call the DMS Software Reengineering Toolkit [1] capable of specifying programming langauges, and custom program analysis, and mass program changes. I use DMS daily to define/extend the syntax and semantics of various programming langauges, and to build and test tools based on DMS.

Such tools include test coverage, profiling, code obfuscation, duplicated/dead code detection, lanaguage translation, static analysis, ...

DMS is designed so others can do this too.

[Full disclosure: I'm the architect].


[+1] [2010-03-16 07:38:51] Arkapravo

I use Dr.Python [1] IDE I personally find it very useful. However fellow Python coders prefer to use text-editors than IDEs , I guess it is 'different blokes, different strokes' !


[0] [2008-10-04 10:59:59] David Basarab

XML Explorer [1]. Lightweight XML file viewer (.NET/Windows only). Includes copying of formatted XML data, evaluation of XPath expressions, and XSD schema validation.


[0] [2008-10-04 12:58:55] CodeDemon

One rare tool I have used is Ebase Designer and Ebase Application server which is used for building electronic form applications. I have only ever seen it used in UK local government though I know some private sector companies use it.

It's a great tool for chucking together an online form quickly, though you never see any job listings that want this as a skill.

[0] [2008-11-13 22:51:01] le dorfier

For printing out arbitrary text files in multicolumn compressed text, I find that PrintFile [1] is useful and flexible. It does PostScript files nicely too.


[0] [2008-11-18 13:29:51] J c

Pixie [1] - an 8kb color picker.


[0] [2009-01-01 15:54:17] Rob Kam

ZTreeWin [1] file/directory manager for Windows. Very useful and very easy to use, there is a menu which shows the keys for various commands. I don't understand why more people don't know about it or use it, it's not free but it is inexpensive.


[0] [2009-01-01 16:03:14] icelava

[0] [2009-01-01 17:41:16] marc_s

ZtreeWin file manager too - never could warm up to Norton Commander, even in the old DOS days :)

Plus Araxis Merge [1] - a powerful two- or three-way file (contents) AND directory differ and merger - one of the few I know that can diff an ANSI and a UTF-8/UTF-16 file and even make changes to both - excellent stuff, highly recommended.



[0] [2009-01-08 12:06:28] Ronny Brendel

gcov [1] for code coverage of C/C++ code.

Some time ago I used the KDE Source Code Checker [2] to validate my own Qt [3] code.


[0] [2009-01-11 22:32:59] Paul Lefebvre

I use REALbasic for a lot of stuff. Most developers I talked to have never heard of it, so I guess that qualifies it as rare.

Nahh, I mention it to people all the time and they recognise it, although I admit most of those who do are Mac people. - Andy Dent
[0] [2009-01-12 13:11:11] Andy Dent

AppMaker (the original Mac programming tool for drawing interfaces and generating code).

I'm pretty sure I"m one of the few people left on the planet still using it, either for porting code I import from Mac resources or working on legacy AppMaker-based GUIs. I'm in the middle of a classic Mac to WPF rewrite at present, using AppMaker on an old Mac to get the UI regenerated into clean XML.

Is there a reason you're still using a -presumably, though I don't know the dev-community for Mac OSes- obsolete tool? Does it do something well that others don't? I'm not intending to appear contentious, I'm just curious... - David Thomas
Nothing else allows me to easily import old resources and run them through (Ruby) scripts to generate new code/resources. 1) As I said, I'm working on a conversion project to WPF where the original GUI was done in AppMaker and I added a XAML generator to port it. 2) If I need to port old Mac GUI's based on DLOG or PowerPlant PPob resources I can import them and regenerate them in other formats. 3) I'm working on a new version of the tool to generate Cocoa :-) - Andy Dent
[0] [2009-09-05 15:06:18] Vineet Reynolds

JScript Debug [1], for tracing JavaScript execution in Internet Explorer.


[0] [2009-09-05 15:13:32] cms

classdump [1] is a very useful tool, for inspecting closed source objective-c frameworks. You can figure out much of the same information using the builtin otool utility, but classdump provides a more convenient interface.

hfsdebug [2] a similarly useful tool for exploring HFS+ filesystems.


[0] [2010-05-02 12:05:36] Omry Yadan

I used khexedit [1] when developing a parser/generator for an unusually complex binary format. it was very pleasant to use. khexedit


[0] [2010-05-02 12:33:37] JUST MY correct OPINION

Thought. I've found judicious application of this tool saves me hundreds of hours of work. I wish more of my co-workers had used this tool in the past.

[0] [2010-05-02 12:46:15] Philippe Grondier

We work quite a lot with VBA, where development interface is really a pity (I guess this is THE reason why most developers stay away from this language). MZ-TOOLS for VBA [1] (there are other version for VBs) saved us hundreds of hours or work, and hundreds of headackes and depressions. It automatically numbers lines, generate error procs, documentation, gives complete search results, etc.

Another most usefull tool, though it is not really a programming tool, is " File Compare Tool [2]", with its command line mode. This allowed us to integrate it in our own source control tool for VBA.