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 (now CodeGear) 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. 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 Freescale 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.|
|Adobe Creative Suite: Web 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 Illustrator. 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.) Identical toolsets are available for development using either Windows and Mac OS.|
|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 can be used to develop a single app for Windows, Mac OS, and Linux. It's easy to switch 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).|
|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).|
|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.|
All logos and product names are trademarks of their respective developers or distributors.
This site is in no way affiliated with Microsoft Corporation
© 1999-2008, Rzero.