Programming Tools

Tools of the trade: What a hobbyist programmer has on his hard disk.


Linux

Linux Registered User 444424 What better operating system is there for a hobbyist programmer? Programming language support is built in. It really does not matter which you pick, you can customize them until they work like you wish. The beginner should take a look at http://distrowatch.com/ and choose one of the top four or five on the page hit ranking.

PROGRAMMING EDITORS

Most well established languages come with an Integrated Development Environment (IDE), and with Java you get a choice of several. They are tailored specifically to the language, with in built language help, and the good ones serve as a learning guide to the programming language in use. But a programmer rarely works in only one language or one programming environment, and for writing scripts or programming in less well known languages a programming editor that provides a good general tool set is essential.

PSPad

http://www.pspad.com

PSPad is a free programming editor with an advanced feature set. You get intelligent spell checking of comments and strings (ignoring the source code). Auto capitalizing of Key words on request, multiple syntax highlighting for different languages, auto-complete template features, ASCII chart, customized tools, capture of compile output, source code comparisons, built in Hex editor etc. etc. I don't make use of the FTP upload Option, but is there if needed. Project support is included, and the built in script support (VBScript, JScript etc.) allows the conversion of the project file settings into a makefile or batch file for compiling.

PSPad it is a very good HTML editor to boot, with preview, code checking, code formatting and conversion tools.

I would like more compile options, as I find I need to adjust these frequently. It is developed by a non-native English speaker, and I find it difficult to understand how to configure the advanced features. Other than that, this is what I use most of the time.

An example script file to create a makefile for a FreeBASIC multifile project and a PSPad syntax highlighting file for BCX and FreeBASIC can be downloaded. here.

FbEdit

FbEdit is a dedicated IDE for FreeBASIC written in FreeBASIC. With a built in resource file editor, project management and an add in debugger this is a very useful package for developing Windows GUI programs. In the last two years I have used Linux more than windows, so I have not had the opportunity to test it fully, but certainly my next Windows GUI program will be developed with FbEdit.

JFE

http://home.arcor.de/jensaltmann/JFE/jfe_eng.htm

This comes as part of the BCX install, and is probably the best free lightweight source code editor out there. It has one advantage over PSPad, better options and control over running external applications like compilers. I no longer use it because PSPad is just better.

PFE

Development of this Editor has been discontinued. It lacks syntax highlighting, but is otherwise still a useful package to keep around. I have it installed as a notepad replacement on one computer, so I don't use it for code any more.

Scintilla - SciTE

http://www.scintilla.org

Another excellent editor. On Windows I have been making more use of it recently, for miscellaneous programming activities like editing batch files. It has many configuration options available through configuration files. When you learn how to set it up, it is very powerful. It lacks some of the bells and whistles of PSPAD, but it runs on Linux.

KATE

KATE comes with every version of Linux using the KDE desktop, and can easily be installed on other systems. It is a very good code editor. It includes syntax highlighters and you can add your own if necessary. It lacks compile options but does have a configurable tool menu, and it has a terminal window allowing command line compiling. I added a tool to build a makefile to the tool menu, and compile the code by typing "make" in the terminal window. I much prefer this to SciTE under Linux for compiling FreeBASIC code.

Geany

http://geany.uvena.de/

Geany bills itself as a lightweight programming editor, and it does a decent job on Linux systems. It has built in FreeBASIC source code highlighting, and will compile FB code at a click of a button. It lacks enough configurable tools for my likening, and although there are some very nice plugins available, they require source code to install. I use it because it is convenient.


HEX EDITORS

A Hex editor is essential for a programmer, and there are many free ones available to choose from. I use the one built into PSPad, or the add-on Hex editor that comes with PellesC. I have at least four other free or add supported Hex editors, but generally the one in PSPad suits me fine, at least for file viewing.

For more serious work I have:

On Windows - XVI32 by Christian Maas http://www.chmaas.handshake.de/

(This link is correct by always gives me problems connecting).

On Linux - KDE Hex editor or GHex


GRAPHIC EDITORS

Windows is a graphical user interface, and sooner or later you will need to make an icon, draw something or paint something. There are the tools I keep handy.

PAINT

Yes the version of Paint that comes with windows is at the top of the list. I use it for detailed pixel work without the distraction of alpha channels and transparencies. Good for making screen shots using Ctrl PrtSc and paste.

KolourPaint

This is the rough equivalent of PAINT on Linux, excellent for simple graphic jobs.

GIMP 2

This is an advanced free GNU Graphics Editor that is every bit as good as anything else I have used. If you don't already have a paid up full featured Graphic program then there is no need to look beyond this. It has more features than I know how to use.

Irfanview

This is a free image viewer that I would not work without. It has a spew of handy features like image re-sampling, and rotating that I tend to favor over the more advanced features available in GIMP 2

IconEdit32

This is a free utility that I got with PC Magazine. It is utilitarian, with just enough advanced features to meet your needs, but not so much that you forget how to use it in between usages. (c) Ziff-Davis, written by Neil J. Rubenking.

KIconEdit

I use this on Linux for making and editing icons. It can import windows formats and save them in Linux formats.

AutoCAD

What is this doing here? Well I am an Engineer, and I know the basics of how to how to use it, and I am certain that I have never seen a better or simpler tool for 3D SOLID graphics. This is a different way from working with 3D objects than used by other packages, and you can convert from solids to wire frame, but not back. This tool set is excellent. Unfortunately AutoCAD costs thousands, so unless they have have it at work, and you can use it in the evenings, then it prices itself out of the market.

DeltaCAD

A shareware 2D only drawing package that woks well even in the shareware version; it is graphical and easy to use. I use this for all technical sketches that I would include in documents. It has a built in macro language for programming.

Milkshape 3D

I have used this package the most for 3D graphics to be included in software. It takes a little getting used to, but all the tools are there that you might need for simple to intermediate projects. This is shareware, but I found I needed to purchase a license to get the functionality I wanted, and it is reasonably pricey. The Milkshape model is well supported in terms of free code.

Draw 3D

This shareware package is nicely priced at $10, and is unsurpassed in the shareware market for its 3ds format support. This price includes the source code. So far I have used this mostly as a 3ds viewer. This package will load huge 3ds models that will crash Milkshape 3D and give AutoCAD fits.

Anim8or

The best freeware package, and probably as good as any. I sometimes make models in this package, and finish them in Milkshape. The only reason I have used Milkshape is that I have working source code to load MilkShape models in DirectX and OpenGL that I can use in my programs.


DIFF TOOL

A good diff tool, for side by side comparison of source code, is essential for a programmer. PSPad has a built in diff tool, which is good for checking document differences, and updating as you go, but there are dedicated tools available that offer more advanced features. Microsoft have the free WinDiff which does the job, but can be difficult to find for download unless you get it as part of a larger free package. DiffTool2 (or diff.exe) by Tim Foden is also free and works well, but my version came without any documentation, so unless you have used WinDiff or similar you may be puzzled how it works at first.


DEBUGGER

Most computer languages come with their own debugger, but on the occasion when they don't, then OllyDbg is a nice assembly level debugger. It is free, and worth having. The GNU debugger, gdb.exe is command line only, and needs a GUI front end to make it more user friendly. I use Insight, which I got on a computer CD, and I also have GVD a visual debugger I got with the GNAT Ada compiler. On Linux I prefer KDbg.