or many developers, there is a special affinity for their "first programming language," to the extent that wars are fought daily on the programming newsgroups over which language is best. As is too true in cross-cultural or cross-ethnic conflicts in our world today, often we are so fiercely loyal to our favorite language or culture that we may miss out on some very valuable and useful opportunities to "borrow" from other languages and cultures.
One fascinating aspect of .NET is the cross-language inheritance between classes that are built in different languages, but share the same MSIL intermediate language layer. In addition, if you primarily use C#, but see something in VB.NET that you like, you can simply use the Microsoft.VisualBasic namespace and call any VB.NET functions you want.
As we focus this issue on .NET Languages, let me point out a great cross-cultural opportunity for those .NET developers who are willing to think outside the .NET box. The Visual FoxPro Toolkit for .NET, released recently on the GotDotNet website, is a collection of over 200 commands and functions that are effectively added to your .NET language of choice just by referencing the VFPToolkitNET.dll, which is written in managed .NET code and does not require a VFP runtime.
"Why would I want any Visual FoxPro code in my .NET application?" you might ask. The answer is simple: productivity.
The Toolkit contains some incredibly useful functions from VFP that are not native to .NET, such as STREXTRACT, which can save you lines and lines of code when you need to pull text out from between two user-defined delimiter strings, such as you might face in a screen-scraping scenario. Another example is STRTOFILE, which converts a string into a file in just one line of code. You can find the toolkit freely available for download at www.gotdotnet.com/team/vfp.
The Marks of a Good Developer
If you are a good developer, you are much more than your language. In fact, choice of language is near the bottom of the list when it comes to good developer traits and skills. No matter what language you prefer, you will be a lousy developer without a generous serving of items from the following list:
Analysis Skills: The greatest language in the world won't help you if you don't know how to assess a problem from several angles, balance the needs of the business owner and end users, cut through cherished traditions and "the way things are done," and logically arrive at a clear set of essential business needs. If you cannot learn to think logically, perhaps you should consider another career path. (Of course, if you cannot think logically, you may have a hard time arriving at that decision.)
Creativity and Attention to Detail: Good developers invariably are a mix of creativity and attention to detail. Creative thinking certainly belongs in the analysis phase of a project, but without attention to detail, your specifications will be poorly designed. Creativity can also lead to performance efficiencies in the way the coding is done. However, attention to detail is just as much of a priority in the coding phase, since you don't want to interpret the analysis plans so creatively that the end product bears little resemblance to the specs.
Flexibility and Detachment: Good developers work hard to create solutions that meet the essential business needs, and try to do so in a way that reflects good programming practices. However, you can get too attached to your own work, to the point that good suggestions for improvements are viewed as a personal challenge to your programming abilities instead of what they aregood suggestions for improvement.
Curiosity and Eagerness to Learn: In an environment of constant change, you will literally go crazy or become severely frustrated without an eagerness to learn new things. Good developers don't just stop at some comfortable point in time, park their skillsets there forever, and expect to survive in an industry of change. I'm not suggesting that you never spend enough time with a certain version of development language or platform to become expert with itjust that you don't ever stop learning.
The Perfect Solution
What's the solution to becoming a good developer, or growing from a good developer into a great one? A good approach is to immerse yourself in the writings of the best developers, then overcome inertia and complacency to act on what you have learned.
I believe that CoDe Magazine is an essential resource that belongs in the hands of every analyst, developer and IT manager. I say this unashamedly, because I really do believe that our writers are among the "cream of the crop," and that you are guaranteed to learn something of value in every issue.
If you have just bought a copy of CoDe at the newsstand or have just received a sample copy, why not take a positive step in your growth as a developer and subscribe now? You have our promise that we will continue working hard to become "your favorite magazine."