(Redirected from Programming software)A 'programming tool' or 'software tool' is a
program or
application that
software developers use to create, debug, or maintain other programs and applications. The term usually refers to relatively simple programs that can be combined together to accomplish a task, much as one might use multiple hand
tools to fix a physical object.
History
The history of software tools began with the first computers in the early 1950s that used linkers, loaders, and control programs. Tools became famous with Unix in the early 1970s with tools like
grep,
awk and
make that were meant to be combined flexibly with
pipes. The term "software tools" came from the
book of the same name by
Brian Kernighan and
P. J. Plauger.
Tools were originally simple and light weight. As some tools have been maintained, they have been integrated into more powerful
integrated development environments (IDEs). These environments consolidate functionality into one place, sometimes increasing simplicity and productivity, other times sacrificing flexibility and extensibility. The workflow of IDEs is routinely contrasted with alternative approaches, such as the use of Unix shell tools with text editors like
Vim and
Emacs.
The distinction between tools and applications is murky. For example, developers use simple databases (such as a file containing list of important values) all the time as tools. However a full-blown database is usually thought of as an application in its own right.
For many years,
computer-assisted software engineering (CASE) tools were sought after. Successful tools have proven elusive. In one sense, CASE tools emphasized design and architecture support, such as for UML. But the most successful of these tools are IDEs.
The ability to use a variety of tools productively is one hallmark of a skilled
software engineer.
List of tools
Software tools come in many forms:
★
Revision control:
Bazaar,
Bitkeeper,
Bonsai,
ClearCase,
CVS,
Git,
GNU arch,
Mercurial,
Monotone,
PVCS,
RCS,
SCM,
SCCS,
SourceSafe,
SVN,
LibreSource Synchronizer
★ Interface generators:
Swig
★ Build Tools:
Make,
automake,
Apache Ant,
SCons,
Rake
★
Compilation and
linking tools:
GNU toolchain,
gcc,
Microsoft Visual Studio,
CodeWarrior,
Xcode,
ICC
★
Static code analysis:
lint,
Splint
★ Search:
grep,
find
★
Text editors:
emacs,
vi
★
Scripting languages:
Awk,
Perl,
Python,
REXX,
Ruby,
Shell,
Tcl
★
Parser generators:
Lex,
Yacc,
Parsec
★
Bug Databases:
gnats,
Bugzilla,
Trac,
Atlassian Jira,
LibreSource
★
Debuggers:
gdb,
GNU Binutils,
valgrind
★
Memory Leaks/Corruptions Detection:
dmalloc,
Electric Fence, duma,
Insure++
★ Memory use:
Aard
★
Code coverage:
GCT, CCover
★ Source-Code Clones/Duplications Finding: CCFinderX
★
Refactoring Browser
★ Code Sharing Sites:
Freshmeat,
Krugle,
Sourceforge,
ByteMyCode, UCodit
★
Source code generation tools
★ Documentation generators:
Doxygen, help2man,
POD,
Javadoc,
Pydoc/Epydoc
Debugging tools also are used in the process of debugging code, and can also be used to create code that is more compliant to standards and portable than if they were not used.
Memory leak detection: In the
C programming language for instance,
memory leaks are not as easily detected - software tools called
memory debuggers are often used to find memory leaks enabling the programmer to find these problems much more efficiently than inspection alone.
IDEs
Integrated development environments (IDEs) combine the features of many tools into one complete package. They are usually simpler and make it easier to do simple tasks, such as searching for content only in files in a particular project.
IDEs are often used for development of enterprise-level applications.
Some examples of IDEs are:
★
Delphi
★
C++ Builder
★
Microsoft Visual Studio
★
Xcode
★
Eclipse
★
NetBeans
★
IntelliJ IDEA
★
WinDev
See also
★
Computer-aided software engineering tools
★
Software development kit
★
Configuration System
★
Toolkits for User Innovation
★
Software engineering and
list of software engineering topics
★
Software systems
★
Computer science
★
Scripting language