Visual toolkits speed and simplify application development. A good toolkit saves you time and money. Programmers can make more powerful software faster.
Object oriented programming saves time. Programmers reuse code. When they write software to accomplish a certain task, it can be used over and over again. They no longer have to rewrite overlapping code.
When multiple programmers write overlapping code, they each write programs that do similar things. Expensive and wasteful. It's like having people who live next to each another and work in the same office take separate cars to work. A better solution is to carpool. Developer toolkits are car pooling for programmers.
Programmers do not need to recreate software to accomplish routine functions. Those functions are already written. In a carpool, the passengers can spend their time more productively since they no longer have to drive. A toolkit lets the programmer make the software better.
A tool is a small program or module that performs a specific task. A good toolkit has many tools to carry out all kinds of tasks. A typical task is decompressing a JPEG image so it can be viewed on a computer display. A programmer simply places the tool in the application and arranges for the application to feed compressed JPEG data to the decompression tool.
Once the file is decompressed other tools can convert it from a JPEG image to an RGB image so it can be modified. These tools save the programmer time. JPEG is a universal format. All JPEG compressors work pretty much the same way. A programmer shouldn't have to write JPEG routines.
There are two main tool technologies, Dynamically Linked Libraries (DLLs) and ActiveX. Programmers can write their own DLLs and ActiveX Components or they can use DLLs and ActiveX Components included in toolkits.
A DLL is a function or set of functions an application can call to perform a task. A DLL may be a collection of math functions or an image decompressor. Applications can call up a DLL any number of times. Any number of applications can use a DLL at the same time.
To call a DLL a programmer inserts a line into the program that orders the computer to run the code contained in the DLL. The line in the program may contain one or more arguments. An argument is data the DLL needs to perform its function.
DLLs are 16 or 32 bit. This describes what kind of processor the DLL is optimized to run on. A 16 bit DLL will run on any processor. A 32 bit DLL will only run on a 32 bit processor like a Pentium. 32 bit DLLs give an application better performance on newer computers. 16 bit DLLs makes applications compatible with older computers.
DLLs are added to an application when it's written. Often they're installed on a computer as separate files. Open the Windows folder on your computer and you'll find a few DLL files.
ActiveX Controls are modular programs that can be added to an application. Like DLLs they perform common and routine tasks.
Unlike DLLs, ActiveX Controls can be added to an application as needed. Let's say you are using an image viewer. The viewer decodes a variety of images. Then you encounter an image which your viewer can't decode.
If the program uses standard DLLs, the programmer would either have to rewrite one of the DLLs to include the new image format, or rewrite the application to recognize a new DLL. With ActiveX technology the programmer just has to add the appropriate ActiveX Control needed to decode the new image format to the main application's library. When the application encounters the new image format it searches all the available ActiveX controls for one that recognizes the new format.
ActiveX is a component technology. Microsoft's Internet Explorer Web browser uses it. On the Web Internet Explorer encounters a large number of file formats. When you discover a new file format, add an appropriate ActiveX component to Internet Explorer. The installation is automatic. DLLs and ActiveX are different in the programming environment. DLLs are called as external subroutines. A developer treats the DLL as an independent program. ActiveX controls are fully integrated into Microsoft's programming environments like Visual Basic.
Visual Basic is a container for ActiveX controls. Add the control to Visual Basic and its functionality can be added to any application. Because the ActiveX control is now part of the programming environment it is just a mouse click away from being added to an application. This makes ActiveX extremely easy for programmers to use.
Non-programmers can easily use ActiveX Controls to add functionality to their applications. All they need is an application that can be used as an ActiveX container. Adding an ActiveX Control becomes a matter of copying the Control to the application's ActiveX directory.
ActiveX makes it easy to update installed software. Instead of writing a new software package, the programmer only has to write new ActiveX Controls and send them to end-users. They follow the instructions and install them on their hard drive. The software is instantly updated.
ActiveX Components come in 16 and 32 bit versions optimized for use on different hardware.
ActiveX Controls and Dynamically Linked Libraries can be written in any computer language. Once written they are compiled. That is, converted into machine code instructions the computer can run directly. They can then be accessed in any programming language.
Application Programming Interfaces (APIs)
Application Programming Interfaces (APIs) are essential to all application development projects. APIs are collections of DLLs and ActiveX controls. APIs go between applications and the operating system. An API lets a programmer use features built into an operating system. These include routine functions like opening up files and drawing window boxes on the screen.
When the operating system is updated, the APIs are updated with it. Applications make use of newer, more advanced operating system features without having to be rewritten.
APIs can be for any system level service. APIs exist for video displays, network input/output, printing . APIs save developers time and money. Programmers don't have to create drivers for all the hardware.
API's are invaluable. There are dozens of video display boards used by PCs. Each display board has its own software. It would be impossible for all applications developers to write software for each display board. An API lets developers write their applications for a single generic video display software driver. The generic instructions for the video display are converted to specific instructions needed by a particular display board.
APIs allow applications to be transportable so that they can work with a wide variety of hardware.
Programmers often talk about programming environments. This is the complete set of resources used to generate applications. A programming environment includes a programming language editor, compiler, tools and debugging facilities. A mechanic works in a garage, a programmer works in a programming environment.
Java Development
Java, the latest programming environment debuted from Sun Microsystems (Mountain View, CA 512-434-1591) in 1995. Sometimes the biggest challenge is getting past the bizarre coffee metaphors.
Java is a programming language just as Visual Basic, C and Pascal. Java is a proprietary language owned by Sun Microsystems. It's the same regardless of what hardware is running it. Java is cross platform. Java is entirely hardware independent. Java is popular on the Internet because Webmasters needed a way of creating applications that would run on any hardware.
Java programs must be run by an application called a Virtual Machine. The Virtual Machine is written for each hardware platform. The Virtual Machine runs Java applications. Java applications, as long as they do not use hardware specific features, will run on any Virtual Machine.
The first Virtual Machines capable of running Java were Web browsers. Not surprising since the Web desperately needed a cross platform solution.
Running Java applications within a browser is clumsy. Operating systems programmers are incorporating Java Virtual Machines into more and more operating systems. If your operating system includes a built-in Java Virtual Machine all you need to do is to double click on a Java application to run it.
Code security is one of the greatest concerns when developing Java applications. Many developers are worried their Java code is easy to hack. This presents a problem to developers and businesses that are going to rely on applications written in Java. Java code must be kept secure from tampering.
Great Products
Accusoft (Westborough, MA 508-898-2770) is one of the few toolkit companies providing a complete set of cross platform tools. ImageGear ($3,000) is available for Windows, Mac, Unix and OS/2. This is great for programmers who develop applications in multiplatform environments. ImageGear's functionality can be enhanced with toolkit extensions such as the Medical Imaging Extension ($1,000-$5,000). Accusoft is developing new toolkits that will add multimedia and Java extensions to ImageGear.
High-end imaging is used in medicine, meteorology, mining and oil exploration. A leading high-end imaging toolkit is Advanced Visual Systems (Waltham, MA 617-890-4300) AVS/Express ($3,000-$25,000). It's an application development environment. AVS/Express is available in end-user and developer versions for all applications include the most popular Unix platforms.
Black Ice Software (Amherst, NH 603-673-1019) Has a number of toolkits. Most notable is TiffSDK ($500-$600). TiffSDK includes tools for handling tiffs and group three and group four fax compression standards.
Bluebird's (Carlsbad, CA 760-438-2220) imageABLE ($2,500) incorporates software engines from third-party developers including TMSSequoias' ScanFix, Calera WordScan, Kofax Barcode, KOFAX Batch Scan, and Pixel Translations Batch Scan. This makes it easy to add the functionality to these products to applications.
Computer Clearing House (Rochester, NY 716-334-4191) has a low cost, feature rich, toolkit . ImageSuite ($100/seat) is a modular, high-level toolkit that enables databases, Lotus Notes and other applications to work with image data. ImageSuite's modules support multimedia data and vector for CAD.
One of the most popular programming environments is Powersoft's (Concord, MA 508-287-1500) Powerbuilder. Powerbuilder is to enterprise-wide software development what Microsoft's Visual environments are to the desktop.
The ImageBASIC ($1,000-$7,500) toolkit from Diamond Head Software (Richardson, TX 972-479-9205) is designed to integrate imaging with document management and workflow applications. Diamond Head's toolkits work in ImageBasic, a complete development environment and an extension on Visual Basic.
PhotoPro ($350) from ImageFX (Rochester, NY 716-272-8030) is a new ActiveX toolkit designed to facilitate format translation. If you need to convert a 24-bit RGB image to a 4-bit GIF, this toolkit is probably for you. It joins FXTools ($400), ImageFX's multimedia toolkit. FXTools provides tools for working with sound and video.
Imagination (Silver Spring, MD 301-588-8411) is one of the leaders in ActiveX toolkits. IMAGinE ($800) is an all-in-one solution to application development. Flexibility is a hallmark of IMAGinE. The kit supports multiple applications engines and native 32 bit ActiveX controls that allow individual workstation applications to be tailored to user needs.
Imagine Software Solutions (Cincinnati, OH 513-984-9860) makes toolkits specifically designed for adding image support to other windows applications. The ImagN' toolkit version 3.0, ($300-$400) provides image viewing tools for Windows. The company also makes similar toolkits for FoxPro and Magic.
Kofax (Irvine, CA 714-727-1733) makes a wide range of products including hardware and software for end-user and OEMs. The company makes ImageControls ($1,000-$5,000), a collection for image capture and StorageControls ($1,000) for jukebox management and COLD.
LeadTools Pro Express from Lead Technologies (Charlotte, NC 704-332-5532) is now at Version 8. Their last version won an Editors' Choice Award. It provides a wide variety of tools for multi-media, Internet support, display support, database development, scanning, printing, compression and annotation.
In addition to a number of image capture applications Seaport Imaging (San Jose, CA 408-366-6400) makes Autopilot ($3,000). Autopilot is an API designed for image capture, barcode recognition and scanner control.
Pegasus Imaging (Tampa, FL 813-875-7575) has been acquiring other toolkit software companies. Their own product, PicTools ($1,500) is the low level toolkit on which other toolkits are based. PicTools brings rapid compression and decompression to all the standard file formats.
Pixel Translations (San Jose, CA 408-325-3880), the developer of the Image and Scanner Interface Specification (ISIS), has a visual toolkit that is not limited to scanning. PixTools/EZ ($3,000-$4,000) is a complete suite of imaging tools. And it supports all ISIS compliant scanners, more than 150. PixTools/EZ supports long internet filenames and Internet related compression techniques. Pixel Translations makes use of Metatools, combining multiple functions into a singe ActiveX control.
Snowbound Software (Newton Center, MA 617-630-9495), makers of Raster Master ($1,000-$2,500) toolkit, have a number of developer toolkits for different platforms. Raster Master provides a broad base of tools for imaging, workflow and COLD. Their toolkit line now supports annotations and new versions of their toolkit for Unix.
TMSSequoia (Stillwater, OK 405-377-0880) has three toolkit products, ScanDirector ($2,500), ScanFix ($975) and ViewDirector ($1,800). The toolkits are for scanning, image cleanup and image viewing. They feature patented algorithms and anti-aliasing to improve the readability of one-bit scans.
Visionary Solutions (Philadelphia, PA 215-342-7185) has a dual toolkit strategy. Their original product, PowerImage ($900-$1,500) works under the Powerbuilder development environment from Powersoft. PowerImage brings a wide variety of programming tools for use in creating enterprise wide applications. Visionary's other product line, VisImage ($900-$1,500) makes those same tools available to desktop developers.
Visionshape (Orange, CA 714-282-2668), the scanning and image processing company, has ActiveX toolkits for scanning, image viewing and forms processing. You can use Image Handler ($2,000) royalty free and add modules ($500-$1,000) for barcodes and image processing. Or buy the entire VisionTools ($4,000) package. U