Most of us that work in the IT industry have been around for a long time. We started out in our parents basement writing code in some BASIC environment, ussually Commodore BASIC or QBASIC. Do you remember how thrilling it was? Your first program and it was something extremely basic but the point was it worked. Some of us got hooked right away and kept trying to solve problems and added more and more pushing the capabilities of whatever language we used. As we got older the environments progressed and the programming tools progressed and got more complicated.
For those of us that had access to what was to become the internet we learned about more programming tools and languages through some electronic bulletin board somewhere. This is what is called hobbyist programming. Most of these freeware and shareware programmers are hobbyists they code at night but have a day job somewhere else. One of the guys that I know that does shareware is a woodworker by day, he makes cabinets and bed frames and he comes home at night and codes and sells his shareware just to give him extra money and to supplement his income. The problem up until now was that programming tools were getting very expensive. For the hobbyist this was too expensive and they cant afford some of the high end programming environments. Luckily the times have changed and companies like Borland and Microsoft have made some very nice tools available for low cost or free. There are Open Source IDE’s such as SharpDevelop and numerous others for Java and C++.
Build it yourself
One way to do it is to build it yourself. Download the .NET Framework, the Borland C++ command line tools and Emacs or GVim and you got yourself an extremely usable development environment. For this method you need to know the proper Syntax for whatever programming language you are using. This method is for the extremely geeky and new developers may find this method a little bit intimidating. For those of you that want to learn C# on Linux I strongly suggest Mono. Mono is an open source implementation of the Microsoft .NET Framework. It runs on a wide variety of UNIX and Linux platforms. Packages are available for different flavors of Linux as well as Mac OS X and Win32. You can build Mono for any distribution of Linux and you can build Mono on different UNIX environments such as Solaris, HP/UX and ,God Im going to get flamed for this, UnixWare as well as FreeBSD. Emacs comes standard with Linux and Mac OS X so that is no big deal. Im also going plug XCode right now. XCode is the development environment available for Mac OS X, its also free from Apple Computer. For Mac users I strongly suggest XCode its a very simple tool to learn and you get tons of support from Apple. XCode comes with Interface Builder as well as other tools.
Of all the IDE’s out here for C# this is my personal favorite. I find it much less resource intensive than Visual Studios and I enjoy the layout much more. Borland C# Builder comes in two different flavors. There is a Professional version that includes an Architect, Professional and Enterprise edition that starts at $999.00 and there is a free personal edition. For work I use the Professional version because there is a catch to the Personal edition, the personal edition can only be used for non-commercial development which inhibits the developer. You can also export the code from Borlands project files to Visual Studio formats. C#Builder is extremely easy to use and is very intuitive for the new user. If you are interested in developing ASP.NET content C#Builder can also do that. For those of you that can afford it, go with the professional version. If you just want a decent IDE to create Open Source software than the personal edition is equally just as good. C#Builder does require IE 6, the .NET Runtime and the .NET SDK 1.1
The golden boy of Open Source C# IDE’s. Very good and very stable, also very cheap to acquire. SharpDevelop is already at RC2 and if RC2 is any vision of whats to come I forsee SharpDevelop becoming an extremely popular package both commercially and personally. RC2 is right now at a usable point. When I first heard about SharpDevelop it was at version 0.7 and at that time it was just a good editor, it has advanced pretty far and it is one of the Open Source projects that I look forward to seeing what happens. SharpDevelops layout is very similar to that of Visual Studios. There are a wide range of options for SharpDevelop, yopu can work on either C# or VB.NET projects. There is also a C++ option where you can create C++ projects. Its not hampered by the same non-commercial only restriction such as C# Builder personal. SharpDevelop wss forked recently and dubbed MonoDevelop. MonoDevelop is the IDE for the Mono project but lacks some features such as Windows Forms design. MonoDevelop is for the Linux platform but has been compiled on Mac OS X and Solaris. SharpDevelop requires the .NET SDK 1.1 but you can also use the Runtime only as that has the VB.NET and C# compilers built in.
Web Matrix is a hobbyist tool created by Microsoft for web development. Its part of the ASP.NET project and is free for download. Web Matrix is the forerunner to Microsofts Web Development Express package. Certain features were taken from Web Matrix and placed into the Web Developers express product. Web Matrix is mostly used for ASP.NET development biut you can save .cs files and create them making it good for C# development. You can also use Web Matrix to create static HTML pages, edit text files and is great at creating interactive web pages. Being that WDE is in circulation now I dont know what the future is for WebMatrix. Whether Microsoft kills the development of Web Matrix or opens it up to the Open Source community is unknown at this time. Although there is no official support, forum support is available.
Visual Studios Express Line
Visual Studios Express is Microsofts developer tools cut down and repackaged seperately. Visual Basic Express, Visual J# Express, Visual C# Express, Visual C++ Express, SQL Server Express, Web Developer Express are the individual products. These are not crippled versions of their professional package but more or less just individualized. Pricing has not been officially announced but some have stated it will be about $49.00 USD for each product. If you are up to speed with Microsofts development suites then you should have no problem whatsoever using these tools. If you are new to programming you will find Microsofts famous ease of use incorporated. SQL Server Express is the only package I know of that will be free definately.
XMLSpy is another great developer tool. It doesnt have anything in the way of WindowsForm design but this is more or less a good editor for doing manual syntax. It was recently made free by Altova for home use. You can do many different types of documents using XMLSpy, XML, HTML, Text and even ASP pages. On Longhorn Alpha I was using Visual SlickEdit 9 until my trial period ran out. I started using XMLSpy Home Edition and it works beautifully on Longhorn Alpha. Its also usable on Windows XP Pro and Home as well as Windows 2000. Only the home edition of XMLSpy is free.
Java programming is great if you want to develop cross platform applications. The best way to develop real Java applications is to stay away from proprietary Java tools such as Visual J++ and Visual J#, rather go for an standards compliant stack such as Suns Java or the BEA suite. There are several free IDE’s for Java development. The first being Eclipse. Eclipse is an Open Source project to develop an IDE based on the IBM WebSphere toolset. Its allows utilization of plugins and you can enhance it in many different ways. Eclipse lacks the GUI designer that the C# tools offer and to create GUI elements in Java you have to use the Swing toolkit. The second is Netbeans. Netbeans is an IDE developed by Sun Microsystems also open source. You can enhance Netbeans through the use of plug-ins as with Eclipse, the only downfall with Netbeans is the speed. Its very slow starting and compiling and it takes twice as long to compile the same Java code in Netbeans than in Eclipse. For me, Eclipse is the best tool available for the job.
C++ programming seems to be the top dog programming language in the world today. Everyone seems to love C++. C++ is the cadillac of the development world. Its fairly simple to learn, not as simple as C# or Visual Basic, but if you ae a quick learner you will pick it up in no time. For the newcomer to the programming scene I also recommend Eclipse for developing in C++. The Eclipse C++ IDE is a separate plug-in for Eclipse and doesnt come with the standard download. If you are happy doing Windows only programming and Windows programming gives you the warm and fuzzies use Visual C++. If you are interested in Mac OS X programming use XCode, if you want to write code that you can take across multiple platforms then use Eclipse.
These are all great tools for the nobbyist programmer. As you can see there is a wide variety of products that can be used, some free, some low cost but all of them of great quality. Programmiung over the years has been a pleasure for me. Asl alway look to the web for information. It is impossible for me to list all the resources and programs that are available. For me, Eclipse handles more than 99.9% of my programming needs for Java and C++. I am often inclined to sort of preach Eclipse to everyone but by all means explore your options and use the tools that are best for you. What I may like and dislike may be the total opposite for you so dont cut yourself short and by all means experiment. Learning how to program is hard but very rewarding. Nothing beats the rush of actually writing code and to have your program work. If you are new to programming by all means have fun, if your program doesnt work the first time out then do some problem solving but by all means dont give up.
About the Author
Roberto J Dohnert is a Unix/Linux and Windows Consultant and software developer. His first introduction to Unix based systems dates back to NeXTStep. He is a member of the GNU Darwin Distribution and has made several contributions to that and other projects. His personal webpage is here.
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.