---------------------------------------------------------------------------- The Florida SunFlash Catalyst Flash: SunSoft Developer Newsletter * Spring 1994 * Volume 5, No. 1 Part 3 of 3 SunFLASH Vol 66 #85 June 1994 ---------------------------------------------------------------------------- The Electronic Journal For Sun Users Since 1988 John J. Mclaughlin, Publisher & Editor - flash@sun.com ____________________________________________________________________________ 66.85 Catalyst Flash: Developer Newsletter - Volume 5, No. 1 (3 of 3) From: Catalyst-Flash@Sun.Com (Susan Yeh) (532 lines) ---------------------------------------------------------------------------- Subject: EUROPEAN DEVELOPER PROGRAM TO SPUR SOLARIS X86 APPLICATION GROWTH ________________________________________________________________________________ SunSoft(TM) has extended Catalyst(SM), the industry's leading program for third-party UNIX(R) developers, to focus on driving application development for the Solaris(TM) x86 environment in Europe. The new initiative offers European developers a host of products, service and support and marketing programs, to ease development efforts and speed up time to market. Through SunSoft's Catalyst program more than 8,500 applications -- a combination of SPARC(R) and x86 -- are available on the Solaris platform. Leading vendor such as Oracle(R), Informix(R) and Lotus(R) are shipping applications for the Solaris x86 environment and more than 800 applications are in the process of moving over to this powerful platform. A key feature of Catalyst is the Early Access Program, specifically designed for developers who want to be on the cutting-edge of technology and the market. Through the program, members receive early access and first customer shipments of Solaris and related development tools, as well as service and support for 12 months. Other programs include SupportPack which offers service and support for 6 months from SunSoft's developer engineering team; discounts on Solaris software products such as device driver kits, software developers kits and compilers; and discounted hardware from manufacturers such as AST Research, CMS, Dell(TM) Computer, Metrologie and Peacock Computer. In addition, Catalyst program members are entitled to comprehensive discounts on training courses; free listings in European and international guides, and free information center hotlines. The program will start in the United Kingdom, France and Germany with rapid expansion planned for the rest of Europe. For more information on enrolling in the SunSoft Catalyst program in Europe, use the following free numbers: United Kingdom: 0800 894 317 France: 05 90 59 40 Germany: 01 30 81 70 08 ________________________________________________________________________________ Subject: BIL'S Q&A ________________________________________________________________________________ We in SunSoft(TM) Devloper Engineering are dedicated to doing as much as we can to assist you in developing or porting your applications to Solaris. To that end, we have selected one person (me! Bil Lewis, hacker extraordinare) to ensure that your questions get a timely and public answer. Send your E-Mail questions to catalyst-flash@sun.com, and I will personally research the matter to produce a (hopefully) valuable and (certainly) amusing reply. -------------- Q: I've heard alot about threads from Sun(R), HP(R), IBM(R), etc. But I'm trying to get a product to market. What should I care about a bunch of whizzy programming fads? A: Multithreading is the neatest thing since sliced bread. First, it gives you a superior programming paradigm to write in. Second, You can produce better code faster because the paradigm better matches the task. And if you happen to be working with an OS that supplies a two-level process model (Solaris is the only one I know of), then you also get superior I/O efficency WITHOUT messing around with those ugly asynchronous I/O calls. If you also happen to have an MP machine, you get superior CPU power. The icing on the cake is that as long as you are writing to the soon-to-be POSIX standard, then you can write a single piece of source code and run it on multiple hardware & software platforms with no more than a single TSR (Theoretical Simple Recompile :-). Running it on HP/UX gives you the advantage of simpler code. Running it on the Solaris operating environment provides you with a two-level model and access to multiple processors. One important consideration is that the POSIX standard is "not quite" complete. So HP's threads library is not quite the same as Sun's, which is not the same as IBM's, etc. They're very, very close, and as soon as the standard is signed off (Its coming...) we will all comply. Another important issue involves libraries. Not all of them are "thread safe". For example, say the library call FOO() uses a global variable, STR. If thread #1 writes the string "rm foo.txt" to STR, thread #2 could over-write the end of STR with "*.*" and thread #1 might exec it. Most SunSoft library calls are thread safe (they're documented in the MAN pages), but you are the one who's responsible to be certain. The bottom line? It may or may not be the right time for you to move your projects to multithreaded technology, but it's high time that you know enough about multithreading to be able to make decisions about using it in the future. Q: How can I be sure about the importance of Multithreading? A: Well, for starters, don't simply take our word for it. Go and check it out for yourself. Sybase, Oracle, Ingres, and Informix didn't even wait for us to come out with a thread library. They've each implemented one themselves (at considerable cost, by the way...). Maybe they know something you don't? Q: What happened to the static libraries in Solaris 2? A1: Many of them are gone. A2: This is a GOOD thing. For your business, for your programming, and for your immortal soul. Really. 1) Statically linking libraries into your program take up more disk space (bad for you, good for Seagate). How much? Here's the size of hello.c: dynamic: 5132 static: 147708 2) Statically linking libraries into your program take up more physical memory (bad for you, good for Fujitsu). How much? Hard to say, but... My workstation has 85 processes running on it, 64 of which are unique binaries. If they pulled in say 25% of libc (~1MB) that would add 250K to each of the 64 at a minimum. That's 16 MB. 13 of the binaries are using X11, for another 4 MB. And 8 of the binaries use libxview, adding 6 MB. So from just taking the most obvious libraries, we're saving about 25-30 MB of virtual space by sharing the libraries. 3) Statically linking libraries into your program breaks the ABI (bad for your immortal soul). The program you statically linked on 2.0 may not run on 2.3! When you statically link with a system library, you include the vendor implementation of the publicly defined function spec such as registers, structs, trap to kernel etc. which are subject to change without notice. If you dynamically link, then you are only linking to the publicly documented "guaranteed to not change" function definition defined by the ABI. 4) If there were a bug in a library under 2.2 (this is hypothetical of course) and that was fixed under 2.3, then a statically linked program wouldn't get the fix when running under 2.3, but a dynamically linked program would. Ditto with performance improvements. Q: I HATE porting code! My system now runs on 357 different platforms, and the last thing in the world I want to do is to port from 4.1 to Solaris 2. A: Sorry about that. Now take a deep breath and chant your favorite mantra. We all know that the fun part of programming is the concept and creation phase. Testing, release, support, and maintance get progressively more boring. And porting is the worst. But Solaris is real, it's the future, and it really is a superior OS. And with the forthcoming Common Desktop Environment (CDE) and a common UNIX(R) OS API, it will vastly reduce your porting efforts in the future. Check out the article on CDE in this issue for more details. For now I suggest two things: 1) The new static BCP under Solaris 2.3 will run the vast majority of 4.1 programs. It may give you some breathing room. 2) If you already run on 357 different platforms, you're not looking forward to porting from SunOS 4.1. But one of those 357 is certainly an SVR4 platform. And a suprisingly large number of (often complex) programs written for other SVR4 platforms will run on Solaris with just a TSR+. _______________________________________________________________________________ Subject: DO YOU USE THREADS? _______________________________________________________________________________ SunSoft is looking for a few good ISVs who would like to share their success stories with the world. Threads is one of the truly unique features that places Solaris above the OS flocks of SVR4s that exist, and we want to brag about it. The best way for us to brag, is to show off how it's helped you. So, if MT has made your product better, and you don't mind a bit of free advertising, then we want to hear about it! Contact: Bil.Lewis@Sun.Copm 1-415-336-5141 ________________________________________________________________________________ Subject: INTRODUCING THE SOLARIS DEVELOPER CURRICULUM ________________________________________________________________________________ Committed to support the growing community of Solaris(TM) developers, SunSoft(TM) has created a complete curriculum of five developer courses that highlight the features, tools and technologies of the Solaris operating environment for both SPARC(R) and x86 platforms. The curriculum provides excellent resources for independent software developers writing commercial applications and in-house developers creating applications for their internal computing environments. The courses include: * Solaris Technology Integration -- Designed for developers and workgroup managers, this three-day class offers exposure to the most important elements of the Solaris operating environment including Multithreading, Device Driver Interfaces, ToolTalk(R), Motif(R), and the SunSoft Distributed Object Environment, Project DOE. * Migrating to Solaris -- This two-day course is designed for developers who want to migrate existing applications from SunOS 4.1.x to a Solaris 2.x environment. Students are provided with an overview of the Solaris operating environment, a migration strategy, and hands-on experience. * Writing Solaris Device Drivers (for SPARC and x86) -- Device driver developers will find this course useful as it includes an overview of the Solaris operating environment, and outlines strategies for development and migration. This three-day course has been specifically designed for developers who work in either a SunOS 4.1.x SPARC or UNIX Intel environment. * Programming with Threads -- Programming with Threads is a three-day class for experienced C application developers who want to develop multithreaded applications using the UI Threads package. Students will learn how to use the UI Threads package and will gain experience in writing and debugging multithreaded programs. * ToolTalk Services -- This class is designed for the experienced application developer who is familiar with C or C++ and wants to develop inter-operating applications using the ToolTalk Service. This is a two-day course featuring administration of the ToolTalk product, participation in ToolTalk sessions, dynamic and static message patterns, sending and receiving ToolTalk messages and standard message sets. Special Offer for Solaris Developer Conference Attendees of the developer conference can attend any of the five courses at a discounted rate, three days prior to and immediately following the conference; April 2-April 4, and April 8-April 10. The suggested retail price for each course is $500 per classroom day, with the special price for developer conference attendees discounted to $300 per classroom day. If you are interested in attending any of the classes in conjunction with the Solaris Developer Conference call 1-800-433-4224 in the U.S. and Canada, or 1-801-484-6695. For general course information contact Penni Bengtson at 1-415-336-4706 or send email to Penni.Bengtson@Sun.Com. ________________________________________________________________________________ Subject: BUSINESS STRATEGIES CAN YIELD HIGH RETURNS ________________________________________________________________________________ By, Mike Schelp, Ventana Consulting One of the key concerns of software developers is how to increase the revenue stream and maintain its integrity in the face of the rapidly changing technology and changing customer business requirements. Unfortunately, business practices in the industry have not, in general, kept up with the changes and as a result many adversarial relationships have developed between software developers and their customers. Consequently, discounts tend to be high, the sales cycle long, and the administration process complex due to the creation of "special deals." Software developers are now seriously engaged with the question of how to choose and implement the most effective business strategies to translate their tech- nology into revenue. In addition to pricing and discount strategy, new emphasis is being placed on the development of effective licensing metrics, license periods that meet the customer's business requirements, upsizing and downsizing strategies, transition/migration policies and support and maintenance metrics and pricing. At the core of this work is the development and implementation of a process to select the best licensing metrics (i.e. user based, CPU based, usage based etc.). Low cost products can often be considered "tools" where usage charac- teristics need not be considered. As the value increases however, licensing metrics need to be chosen that more closely approximate use. Poor choices can create obstacles to sales. Software products can be segmented into categories according to functional characteristics and usage characteristics and differenct licensing metrics may fit each of these segments. For example, client-side software tends to be interactive intensive while server-side software tends to be more compute intensive. Different licensing metrics may be appropriate for each. In addition, more than one metric may be appropriate for a specific product due to the diversity in customer use of the software and their specific business concerns. License management technology has been implemented during the last few years to gain control and compliance over existing and new licensing metrics and the corresponding terms and conditions. However, customer backlash has begun. Hardcore lockouts impede use and create additional obstacles to sales. The issue can be looked at differently when viewing it from the perspective of providing the tools to measure software use and ensuring that the proper revenue has been collected. This is not to say that in some market segments, hard core control and compliance is not required. The industry has been slow to adopt new licensing methods that correspond to the changing conditions for several reasons, but one in particular stands out. It is very difficult to predict the change to the revenue stream without accurate software usage profiles that mirror potential new licensing metrics. Consequently, software developers should also use software license management technology as a data collection tool to gain usage information so that sound business and financial decisions can be made in the future. Focusing on licensing metrics alone is not enough. All of the additional business practice elements need to be developed. Consideration must be given to the software developers requirements for revenue generation and integrity and the customers needs to purchase the software products in a way that fits their business and the way they want to do business. This implies offering customers choices regarding the manner in which they purchase their software. To most effectively translate software technology into revenue, a comprehensive set of business practices must be considered. Concentration on all these elements can yield significant results. The resulting changes in either de- creased costs or increased revenues can lead directly to large increases in profits. We are no longer engaged in a game where only technology, price and discounts make the deal. -------------- Mike Schelp is the principle consultant at Ventana Consulting of Cupertino, California. The firm specializes in working with software providers to create the best business practices to most effectively translate their software technology into revenue. Ventana Consulting can be reached at 1-408-446-9973. ________________________________________________________________________________ Subject: NEW SUNSOFT PRESS BOOKS ________________________________________________________________________________ TOOLTALK AND OPEN PROTOCOLS: INTER-APPLICATION COMMUNICATION by Astrid M. Julienne and Brian Holtz Suggested list $US 36 A SunSoft Press/PTR Prentice Hall book ISBN 0-13-031055-7 TOOLTALK AND OPEN PROTOCOLS: INTER-APPLICATION COMMUNICATION is the second in a series of books related to the ToolTalk service, one of the first commercial products to facilitate information exchange between applications from different developers. ToolTalk(R) is available on multiple platforms, including SPARC(R), x86, NCR(R), SGI, IBM(R), HP(R), and DEC(R). The software on all platforms is equivalent in both usage and design, and the platforms are compatible with each other. ToolTalk has been chosen as the standard messaging facility for the Common Desktop Environment (CDE) that will be shipped in the second half of 1994 by cose participants SunSoft(TM), HP, IBM, and USL. The ToolTalk service allows applications to integrate smoothly with other applications for both individuals and global workgroups. However, to be able to exchange messages, applications must follow the same protocol; that is, a well-defined interface that maximizes application autonomy. If protocols are observed, cooperating applications can be modified, even replaced, without affecting one another. In addition, applications written or modified today to observe a protocol are inherently compatible with future applications that observe the same protocol. TOOLTALK AND OPEN PROTOCOLS: INTER-APPLICATION COMMUNICATION discusses how to design, write, and implement 'good' open protocols with examples using the ToolTalk messaging service. The book discusses both procedural and object- oriented protocols in similar detail. The procedural protocol examples emphasize using the ToolTalk standard message sets; the object-oriented protocol examples emphasize the ToolTalk object manager. Key topics include solving the application integration problem; understanding ToolTalk; principles of open ToolTalk protocols; creating procedural protocols; creating object protocols; and implementing ToolTalk protocols and applications. The book also discusses using ToolTalk in both CDE and SunSoft's Project DOE (Distributed Objects Everywhere) system. TOOLTALK AND OPEN PROTOCOLS: INTER-APPLICATION COMMUNICATION will be a valuable tool for developers who want to design and write protocols that take advantage of the 'plug-and-play' opportunities available both today and with the distributed object technology of tomorrow. -------------- EXPERT C PROGRAMMING: DEEP C SECRETS by Peter van der Linden Suggested list $US 32 A SunSoft Press/PTR Prentice Hall book ISBN 0-13-177429-8 This is a very different book on the C language! In an easy, conversational style EXPERT C PROGRAMMING explains the difficult areas of ANSI C that other books gloss over, like why C declarations are so complicated and how to code arrays that can grow and shrink in size. Author Peter van der Linden has worked for Sun's compiler and OS kernel group for the past seven years. He presents dozens of astonishing examples drawn from practical experience, including: * Software that blew up the space probe to Venus * The C bug that shut down the entire AT&T phone system * How hardware quirks affect C software * C programmer job interview secrets * Why programmers can't tell Halloween from Christmas day! * The C code for a complete BASIC interpreter EXPERT C PROGRAMMING reveals the coding techniques used by the best C programmers. It relates C to other languages, and includes the first introduction to C++ that can actually be understood by programmers without weeks of mind-bending study. This colorful book covers both the IBM PC and UNIX systems. It is an entertaining and educational romp through C showing how it is really used by the experts. EXPERT C PROGRAMMING is a MUST READ for everyone who has ever used the C programming language, or who wants to learn more about the implementation, practical use, and folklore of C. This is the only book on the market that decodes key sections of the ANSI C standard into English, and explains how compiler writers and programmers cope with the whole thing. Its down-to-earth approach is packed full of practical help. Don't expect EXPERT C PROGRAMMING to describe what i = j; means, but instead it's a grab-bag of all the quirks and oddities of the C language that you won't find written down anywhere else! How To Order SunSoft Press books are available through local bookstores worldwide and through SunExpress at 1-800-USE-SUNX. The two books featured above are also available through PTR Prentice Hall Corporate Sales 1-515-284-2607. For an on-line SunSoft Press book catalog send e-mail to SunSoftPress@Sun.Com, or call 1-415-336-7384. ________________________________________________________________________________ Subject: WHO TO CALL ________________________________________________________________________________ As a SunSoft Catalyst Member, you have access to many useful services. Please contact the sources listed below for questions, or ordering information. SunSoft Catalyst Program and Product Information ------------------------------------------------ SunSoft, Inc. 2550 Garcia Avenue M/S MTV08-222 Mountain View, CA 94043-1100 U.S. and Canada: 1-800-SUNSOFT, option 1 (1-800-786-7638) International: 1-510-460-3267 To Order SunSoft Developer Products ----------------------------------- U.S. and Canada: 1-800-SUNSOFT, option 3 (1-800-786-7638) International: 1-510-460-3267 FAX Order Line: 1-415-691-1158 Catalyst Developer Information by FAX ------------------------------------- Catalyst FAX-On-Demand Hotline U.S. and Canada: 1-800-769-4000 International: 1-415-688-4357 Catalyst Hardware Discounts and SunLease Program ------------------------------------------------ Catalyst Developer Resource Center U.S. and Canada: 1-800-742-4484 International: 1-415-336-0390 ### (C) 1994 Sun Microsystems, Inc. Sun, Sun Microsystems, SunSoft, Solaris, Solaris LIVE, SunOS, Catalyst, DeskSet, NeWS, X11/NeWS, NFS, ONC+, OpenWindows, ToolTalk, Wabi, XIL and XGL are service marks, trademarks or registered trademarks of Sun Microsystems Inc., licensed to SunSoft, Inc., a Sun Microsystems business. SPARC is a registered trademark of SPARC International, Inc. SPARCstation and SPARCserver are trademarks of SPARC International, Inc. licensed exclusively to Sun Microsystems, Inc. Products bearing the SPARC trademark are based upon an architecture developed by Sun Microsystems, Inc. UNIX and OPEN LOOK are registered trademark of UNIX System Laboratories, Inc. Motif and OSF/Motif are registered trademarks of Open Software Foundation, Inc. OMG is a registered trademark of Object Management Group. X/Open is a trademark of X/Open Company Limited. Adobe and Display PostScript are trademarks or registered trademarks of Adobe Systems, Inc. DEC is a registered trademark of Digital Equipment Corporation. Dell is a trademark of Dell Computer Corporation. HP is a registered trademark of Hewlett-Packard Company. IBM is a registered trademark of International Business Machines Corporation. Lotus is a registered trademark of Lotus Development Corporation. Microsoft is a registered trademark of Microsoft Corporation. NCR is a trademark of NCR Corporation. NeXT and NeXTSTEP are trademarks of NeXT Computer, Inc.Oracle is a registered trademark of Oracle Corporation. SCO is a registered trademark of Santa Cruz Operation, Inc. Sybase is a registered trademark of Sybase, Inc. Univel, is a trademark of UNIX System Laboratories, Inc., a wholly owned subsidiary of Novell, Inc. All other products or services mentioned herein are trademarks or registered trademarks of their respective owners. Product offerings, product features, and pricing are subject to change without notice. ********************************************************************** For information about SunFlash send mail to info-sunflash@Sun.COM. Subscription requests should be sent to sunflash-request@Sun.COM. For last month's digest, send email to flashadm@sun.com with a Subject line of 65.00 For Gopher and WAIS access: sunsite.unc.edu. (Login as 'gopher' for a simple gopher client, 'swais' for a simple WAIS client (over 500 databases). All prices, availability, and other statements relating to Sun or third party products are valid in the U.S. only. Please contact your local Sales Representative for details of pricing and product availability in your region. Descriptions of, or references to products or publications within SunFlash does not imply an endorsement of that product or publication by Sun Microsystems. Send brief articles (e.g. third party announcements) and include contact information (non-800#, fax #, email, etc) to: John McLaughlin, SunFlash editor, flash@Sun.COM. +1 305 351 4909