See http://mindprod.com/jgloss/tweakable.html A static final constant that may be safely varied between limits. The program still behaves the save way, no matter what the value, but it may run faster at the optimum setting. Tweakables include such things as ideal buffer sizes, maximum number of threads to spawn, best initial sizes for various Hashtables and ArrayLists, how frequently to invoke the garbage collector and even the size of the virtual heap. Tweakables can also be discrete variables that for example may select between one of seven different sorting algorithms. I envision a time when automated optimisation process will monitor your program every time it runs in production, automatically adjusting the tweaking parameters until it gradually learns and homes in on the optimal settings for running under various conditions. In the meantime, what would be the best way to go about implementing them? What sort of syntax would you use? A simple integer tweakable constant has a min, max and suggested value. Anyone is at liberty to adjust the suggested value between min and max. Some tweakables you need no know the value of at compile time. Some could be adjusted with sliders on generic control panel at run time, with persistence. Ideally some program would try adjusting them and doing experiments. -- Canadian Mind Products, Roedy Green. Coaching, problem solving, economical contract programming. See http://mindprod.com/jgloss/jgloss.html for The Java Glossary.