Do you program in any language used by the Open Source movement? If so, then this newsletter and the Association of C and C++ Users (ACCU) is for you!
The ACCU is a non-profit international organization devoted to improving the skills and professionalism of its members, most of who are programmers just like you. The ACCU has about 1,000 members worldwide. Historically, the ACCU’s technical focus has been on C and C++. These languages are also the main languages used by the Open Source movement. Thus, there is a natural synergy between the two. However, with the growing importance of other languages, the ACCU is broadening its focus to include Java, XML, Perl, and Python.
The Silicon Valley chapter of the ACCU holds monthly meetings at the Computer Literacy bookstore in San Jose at North 1st Street and Trimble. We meet at 7:00pm every second Tuesday of the month. For directions, see Computer Literacy San Jose bookstore.
We also hold special events. Some of these will be co-sponsored with the Software Development Forum of San Jose. Look for them in our calendar
For more information on the ACCU, visit our web site at www.accu.org.
This newsletter will be short and to the point in all things. There will be two major areas covered: technical issues and issues related to working here in Silicon Valley.
In the technical area, we will carry:
· Technical articles on programming issues.
· Factoids related to programming in the various languages.
· Information and experience on using tools to do the job better.
In the issues related to working here in the Valley, we will report on
· What’s Hot and What’s Not
· Job trends
· Salary and compensation information
· Rumors and tidbits
· Calendar of language-related events.
We will try to keep things light and entertaining -- who says nerds can’t have fun.
For now, this newsletter will be published monthly in both printed and online form. However, that may change as demands dictate.
Figure 1 shows the growth in demand for various languages nationwide over the last six months. As you can see, growth in the interest in XML far outpaces most other languages Meanwhile interest in Cobol has waned.

Figure 2 shows the normalized demand growth for the various languages. The normalized demand growth is computed by taking demand trend and multiplying it by the number of openings needing that language as part of a person’s skill set.
From the numbers in Figure 2, demand for C/C++, Java, and HTML is running head to head. From this, you can infer that mastering any of these three languages would be profitable.
From Figures 1 and 2, it is obvious that XML is going to play a major part in the coming year(s). If you want to play around with it, a recommended book is "XML IE5 Programmer’s Reference" by Alex Homer Wrox Press Inc; ISBN 1-8610-0157-6. While Internet Explorer 5 may not be your favorite browser, it does support much of what is standardized today in XML. It also has limited support for XSL (eXtended Style sheet Language) and full support for Cascading Style Sheets (CSS). Thus, it makes a good environment to play around in and learn more about XML and its cousins.
According to a survey conducted by RONIN Corporation for IBM, "U.S. corporations lose half their customers in five years, half their employees in 4½ years and [all] their investors in less than one year." For us geeks, that means that the half-life of a customer is five years, of an employee is 4½, and of an investor less than a year. And we thought employment turnover was high in the Valley. BTW, the average term of employment in the Valley for software engineers is about 14 months.
For those of you addicted to rumors, we will print them shamelessly, if you supply them and whatever information we need to worm our way out of the consequences. For example, that Tom fathered Cynthia’s Siamese twins doesn’t cut it, but that Dick is starting a new company to do X does qualify, if X is Open Source or software related.
Those wonderful folks at the DVD Copy Control Association, Inc (DVD CCA) are suing 79 people and 500 other John Does worldwide for (a) reverse engineering the DVD encryption code, or (b) having the code on their web site, or (c) linking to sites having the code. They don’t cite any law being broken, but claim severe monetary damage.
Preliminary court date was Wednesday, December 29, 1999 in Santa Clara Superior Court. I read the complaint and its covering letter (see www.frozenlinux.com/local/decss/letter.html ). It is badly written, has no valid legal precedence (in fact the opposite exists), shows a basic lack of understanding of terminology, and presuppose their business model should work, evidence to the contrary. They demanded that a TRO (Temporary Restraining Order) be issued against all the defendants. Can you see that being enforced worldwide? By now, I expect the source code will be available on tens of thousands of sites, or salted away for a time of need -- see the complaint for a list of sites where the source is available. The Electronic Freedom Foundation (www.eff.org) provided the legal assistance to fight this case.
Late Wednesday afternoon, the judge denied the TRO. We go to court again on January 14, 2000.
The book, The Standard C++ Library by Nicolai M. Josuttis, Addison Wesley, ISBN 0-201-37926-0, is a gold mine of C++ design and coding techniques. Amongst others, there is a paragraph on template functions. Like me, you have probably declared a function like this:
template<class T1,class T2>
void f(T a1, T a2)
{cout<<a1<<" “<<a2<<endl;}
// . . .
f(1,2.0); // error
f<int>(1.3, 2.7); // OK
In this example, the first invocation of f()
is in error because when the compiler detects the implicit argument
type based on argument one, type T is an int and when based on
argument two, type T is double. However, type T can only be one or
the other, not both.
Using the explicit template argument type in the second example, all the arguments are forced to be int, and thus, the compiler needs to convert the arguments to the specified type. So, both double arguments are converted to int.
Therefore, if you want to allow conversions on template functions, explicitly specify the type(s) of the template argument(s).