Before getting into "sectarian" issues about this product vs. that product, I'd like to do a little ecumenical evangelism...
Programming remains one of the great frontiers of the computing universe, and even if I built a whole site the size of this one dedicated to programming tools, I'd still just be scratching the surface. After all, they are the oldest - which means broadest and deepest - category of software. Twenty or more years ago, every computer came with programming tools (sometimes nothing but), and every computer user knew how to write programs. Since then, the commercial software industry has made that unnecessary... which is kind of a loss, because it means that most computer owners today can only do the things that other people have programmed. Like riding the bus (which can be convenient) instead of driving your own car (which can be liberating). The irony is that with modern Integrated Development Environments (IDEs) programming is now easier than ever. "Software is infinitely malleable," is a common expression in computing circles... but only if you're the one shaping it. First you need an idea of what languages are available to use. Then find the best tools for those languages that suit your needs. Obviously I'm no fan of Microsoft's tools, but if you're comfortable working within their framework and choose to do so, you'll still be better off than someone who lets Microsoft write all of the software she uses. |
|
Microsoft's Visual Studio.NET makes it easy to do whatever you want... as long as you want to develop programs for their operating system, to work with their applications, using their languages. Visual Basic was specifically created as a language that would only work on Windows; VB does not (cannot) exist in any other environment. Their ActiveX web components are designed to work only with Internet Explorer (not Netscape, Opera, etc.), and some even require the visitor to have a current copy of MS Office on their machine! On the other hand, Java programs don't need Windows to run, so Microsoft deceptively designed J++ (their Java tool) to produce programs that would only run on Windows! This got them slapped by the courts, so out of spite Microsoft is trying to banish Java from Windows altogether (with only the delayed, dead-end J# offered to support marooned J++ developers). They want programmers who use Java and C++ (which is also too portable) to switch to an incompatible variant, C# (or "D " to its detractors). If you want development tools that give you real freedom to choose which technologies to use, which languages to use, and which platforms to develop for, you need to look elsewhere.
|
|
Borland provided the first integrated development tools to the masses with their affordable "Turbo" compilers, and have spent the last several years bolstering their best-selling array of cross-platform tools, which are equally useful at writing programs that take advantage of Microsoft's proprietary technology such as C# and .NET, or those that take advantage of open standards. The award-winning C++Builder and Delphi are powerful tools for rapid development of Windows apps with either C++ or Object Pascal. Kylix brings those tools - and those same C++/Pascal applications built with them - over to Linux. JBuilder provides similar tools for working with Java (already on Windows, Macintosh, Linux, and Solaris). Keeping in touch with their tools-for-everyone roots: each of these is available in an affordable "personal" edition as well as "professional" and "enterprise" packages with all the power tools. Kylix and JBuilder are offered in free packages for creating non-commercial apps. Other appealing deals are their hefty discounts for academic users, and their free optimising C++ Compiler (without the code-producing "Builder" tools).
|
|
The Metrowerks CodeWarrior family may support more different microcomputer platforms than any other independent line of integrated development tools. (A partial list includes Windows, Mac OS, Linux, Solaris, Java, Netware, PalmOS, Symbian, PlayStation, Nintendo, QNX, and various embedded processors.) The tools themselves work with different languages, such as C, C++, Java, and Assembly. For that matter, they're adaptable to working with just about anything, including third-party plug-ins and whatever other tools a developer might bring with him. The company has a strong commitment to education, with reasonably-priced academic and learning packages, and CodeWarriorU.com, which offers free online programming classes.
|
|
Macromedia Studio MX provides everything you need to create multimedia and internet-based applications, as a viable alternative to traditional programming tools. The suite combines Dreamweaver and Flash, with graphics tools Fireworks and Freehand, and scripting server ColdFusion rounding it out. Dreamweaver can be used (and purchased) by itself, with a comprehensive set of tools for developing data-driven web sites programmed using JSP, PHP, ColdFusion, or ASP. Flash is also a powerful programming environment, for producing interactive graphic applications. (Although the software to run Flash apps is proprietary, it's freely available for nearly every modern OS.) Nearly identical toolsets are available for development using either Windows and Mac OS.
|
|
IBM's VisualAge family covers nearly all the bases in the "big iron" realm (familiar country to IBM) as well as the desktop and handheld realms. The languages include C++, Java, SmallTalk, COBOL, PL/I, and RPG. Depending on where each language makes sense, the various development packages each run on various operating systems (e.g. Windows, Unix-like, OS/2, Java virtual machine, and various IBM mainframe systems). VisualAge for Java is one of the most popular Java toolkits on the market.
|
|
Xcode is the development environment included free with the current version of Mac OS X, with an intuitive "interface builder", and support for AppleScript and all of the variants of C popular for programming on Mac and Unix-like systems. It includes easy access to all of Apple's current application technology, of course, and can develop apps optimised for the new 64-bit G5. Its main shortcoming is the same as that of Visual Studio's: it's only useful for developing apps for their OS.
|
|
REALbasic is a development environment that uses an advanced, structured version of BASIC, but unlike Microsoft's offering, it's available for both Mac OS and Windows, and the apps you build on one OS can be run on the other, including "classic" versions like Win 98 and OS 8. (Support for Linux apps is planned for an upcoming version.) It's easy to switch to REAL from Visual Basic, especially with the help of REALbasic's code conversion utility. A free 30-day trial is available.
|
|
NetBeans is an open-source, modular development environment for Java, written in Java. This means it can be used on any system that supports Java (i.e. most of them out there). It's the foundation on which Sun's own Sun ONE Studio is built, web-services powerhouse BEA is using it for one of their WebLogic packages, and Compaq has extended the toolset for use on their OpenVMS.
|
|
Sun's development packages effectively cover the ground you'd expect from them. As the creators of Java, they have a certain expertise with that technology; their widely-praised Sun ONE Studio (based on NetBeans) exemplifies that. It's available in both free and commercial editions. As a Unix developer, they certainly know C/C++; Sun ONE Studio Compiler Collection demonstrates sthat. As a long-time mini-computer vendor, they have a legacy of support for high-speed mathematical computing in Forte for Fortran & High-Performance Computing.
|
|
Oracle JDeveloper is part of their Internet Developer Suite. As the name suggests, its primary use is developing components such as servlets for web-based applications, and if the back-end for your apps is the ever-popular powerful Oracle database server, you can expect good integration with this set of tools (though it's not limited to accessing Oracle data).
|
|
WebGain VisualCafé specialises in supporting the development of Java server apps, a fact which enables them to contend with much larger companies in Java IDE market share. They have two packages: expert (for developing client applications), and enterprise (for server-based applications). Both include Macromedia's Dreamweaver Ultradev for building a framework to put your code in.
|
|
The GNU Compiler Collection (GCC) is a free set of tools for compiling programs to run on any Unix-like system (not just GNU itself). Among the languages supported are C, C++, Objective C, Fortran, Java, and Ada. Some of the tools have been ported to DOS, Windows, and PalmOS. These are the tools of choice for most open-source software projects, since they're open-source themselves. GCC does not include an "integrated development environment"; developers are free to use whatever editors and such they choose. (The incredibly extensible and programmable GNU Emacs is one of the more powerful and popular editors. The Java Development Environment for Emacs primes it for doing Java.)
|
|
KDevelop is an open-source development tool for building Linux applications using C++. Despite the name, it supports the GNOME desktop as well as KDE, in addition to apps that use only Qt or no graphical elements at all. (But you need to have KDE installed - which can be done on Windows or Mac OS X - to use it.) Framework templates are available for all these kinds of apps, to help get you going on new projects, as well as code-generators for things like dialog boxes (which you can then tweak to your heart's content).
|
|
Black Adder is a cross-platform visual development tool for the Python and Ruby languages. It's available for both Linux and Windows and the applications it helps you develop will work in either environment. (Python itself is supported on other platforms as well.) It generates code to use the Qt graphics components. It's available either for personal home use (i.e. no redistribution of the components included in the package) or professional development (at a higher price, of course).
|
|
Intel/KAI provides development tools (compilers and debuggers, mostly) geared toward Unix-like OSes and multi-processing systems, using C++ and/or Fortran. Their KAP tools help convert single-process apps to multi-processing architectures. Using the parent company's Intel Compilers for C++ and Fortran offers a head-start on support for the chipmaker's latest processors.
|
|
Imatix Libero is a top-down development tool that generates code for you, in your choice of language (including - but not limited to - C/C++, PHP, Java, Perl, Awk, Unix shells, Rexx, and Visual Basic). You design your program as a state diagram, use Libero to produce a sound framework into which the rest of your code will fit, and proceed from there. It's free, open-source, and available for most operating systems.
|
|
Apple's HyperCard is a different kind of programming tool, so much so that "real" programmers never took it seriously, and even Apple never figured out how to market it. Which is ironic, since the rather popular World Wide Web (which it pre-dates) is based on the same hyperlinking concept. It's remarkably powerful, especially when used with the many extensions available for it. For example, it was good enough for the creators of Myst, one of the best-selling (and arguably best) computer games ever. Unfortunately, Apple no longer sells it.
|
|
In the half-century history of computers, there have been literally thousands of programming languages developed, each with their own ideas, ideosyncracies, strengths, and weaknesses. Java, C, Basic, and Pascal get most of the attention these days, but they're by no means the only languages, not the best for every job, and not necessarily the easiest to learn. Depending on what you're trying to do, or the kind of problem-solving methods you're best at, you might find another language better. Consider one of the languages commonly used for web scripting, or dive into the broad and deep pool of general-purpose languages, where anything that can possibly be computed... actually can.
|