CPX Q&A, 1.1, 7 Sep 93 Prograph CPX was introduced at the 1st Annual Prographers Conference in Halifax, NS, Aug 25-28. The following covers some Prograph CPX Questions & Answers. I'll post revised versions as necessary till the Q and A stabilize - send me your Qs. -- Mark Szpakowski, TGS Systems What is Prograph CPX? The Prograph language in a professional development environment, tuned for corporate application building. It supports multi-file projects with a rich application building class library. Version Number? 1.0 What are the key features of CPX vs 2.5? o A project structure, supporting multiple files, which can be shared among different projects. o A very rich class library (the ABCs, Application Building Classes), comparable in functionality to TCL or MacApp. o A set of extensible object editors (the ABEs, Application Building Editors), for dialog-driven or click 'n drag building of menus, windows, documents, etc. These let you build large parts of your application, including some of their behavior, with little or no programming. o Support for callbacks Ñ Prograph methods can now be called by Toolbox or other C or Pascal routines. o Much enhanced help and info, which communicates with Think Referenceª if you have that on your machine (i.e., click on the name of a Toolbox call, hit the Lookup button, and CPX will launch Think Reference and locate the info on that call!). o Numerous interface and environmental improvements (icon and list views, unified Cut/Copy/Paste, object deletion via the delete key, etc.). o New tutorial manual, and extensive User Guide and class library reference. Hardware Requirements Any Macintosh with a 68020 CPU or better, and enough RAM memory to permit a 7 megabyte partition. Prograph CPX and the ABCs/ABEs will actually load in as little as 6 megabytes RAM, but for any serious work you should allow 7 megabytes. NOTE: applications produced with CPX will run on any Macintosh, from the Classic upwards. The size of the partition required will depend on the application. The CPX software and examples as shipped de-compress to 14 megabytes of disk space. Allowing 20 megabytes on disk for CPX development is probably a good idea. Software Requirements Macintosh System 6 or System 7. Compiled Code Size Minimum size of an application using the ABCs is 150K (in 2.5 it was 186K). The CPX optimizing compiler strips out unused classes and methods. The size of generated code is smaller, and grows less quickly, than it did with 2.5. Code Speed Significant speed improvements have been made both to the CPX interpreter and to the optimizing compiler (which builds your final stand-alone application). Depending on the nature of your code, you will find speed increases of up to 7 times. Printed Documentation New Tutorial, plus User Guide, ABCs Reference, Extensions Reference and Migration Procedures. Is Think Reference bundled with CPX? No. Shipping Date Approximately end of September. If you order now, TGS Systems will bill or invoice you 4 weeks prior to shipment. Will 2.5 Extension Products work with CPX? Yes, the C Interface, Pascal Interface, Comm Toolbox, SQL Interface/DAL and ORACLE Interface all work. Even the Visual Effects Manager will work with a bit of tweaking (it was designed to work with a 2.5 Canvas class, which no longer exists in CPX). However, the examples provided on the Extensions disks were written with 2.5 System Classes, and won't run in CPX. Prices/Ship Dates for CPX Versions of Extension Products Not available yet. Educational Pricing 2.5 will continue to be sold into the education market until a CPX equivalent (i.e., smaller, less expensive version of CPX 1.0 aimed at students and people learning the language) is available. Is CPX more difficult to learn/use than 2.5? Remains to be seen, but probably is easier. The CPX environment is cleaner and more intuitive that 2.5's (list as well as iconic views in most windows, unified cut/copy/paste for text and for objects, deletion via delete key, better navigation aids, visible flags on breakpointed operations, click-hold on executed roots or opers to view data on them, behavior editors for specifying how objects respond to events, etc), but on the other hand is larger and more complex (dozens of sections, much bigger set of classes), with a correspondingly longer learning curve. On the other side of the learning curve is far greater ease of development. Training CPX training is being currently being conducted at several companies, providing a testing ground for courses that will be available starting in October. Third party books Dan Shafer's "The Power of Prograph" should be out by November or December. Several other books are in planning stages. Textbook Kevin Carver and Scott Steinman's "Introduction to Visual Object-Oriented Programming in Prograph" is being revised for CPX, and will then be published. User Groups Bay Area Prographers Users Group has well-attended monthly meetings (up to a hundred people) (contact shafer@well.sf.ca.us or davec@netcom.com). A NorthEast Area group is being formed by Michael Flickman (flickman1@applelink.apple.com). Newsletter Visual News, published by Visual Programming Inc (VPI), 2025 Marconi Ave., Sacramento, CA 95821, (916) 646-4227. Internet: patrick@vpinc.com. $24 for 1 year (12 issues) Premiere issue has six pages chock full of info on CPX, 2.5 database issues, etc. Can you directly integrate C or Pascal code into CPX? The "Not An Upgrade" letter said "Full compatibility with Think and MPW C and Pascal libraries", leaving the impression with some people that the C and Pascal Interface extension products are no longer necessary. This is not the case Ñ the C and Pascal Interfaces are necessary in order to make calls into C and Pascal libraries. Can I upgrade my Prograph 2.5 app to CPX? There is a source code translator that is included with the CPX package which lets you move 2.5 code into the CPX environment (i.e., it lets CPX read 2.5 code). All your logic code written in Prograph 2.5 will work without modification, except for some changes in a few primitives. However, applications written with 2.5 System Classes will not run in CPX, because CPX uses an entirely different class library (the ABCs). A $49 application framework translator, basically a System Classes "migrator", will be available by October. It will include a set of 2.5 Compatibility Classes which run inside the CPX environment, and a utility to morph your 2.5 System Classes into these new CPX classes. Thus this Ò2.5-CPX MorphÓ class system will let you run your 2.5 System Classes apps with in CPX. However, although the 2.5 Compatibility Classes are written using the ABCs, they are their own, class system, serving as an alternative to the ABCs. The application framework translator is not a "2.5-ABC Morph", a hypothetical beast which would turn your System Classes apps into ABCs apps. 2.5-CPX Morph will let you run your 2.5 apps in the CPX environment, but that is different from saying that it will make them fully compatible with the CPX ABCs. Will source for ABCs be provided? Not decided yet. Most likely scenario is yes. Source for Object Editors? Not decided yet. Most likely scenario is no, except for a few sample editors. Database Engine Unchanged except for bug fixes and inclusion of debug code. Database Strategy A key goal is to provide the high-level database tools (data-aware windows, visual SQL code generator, report generator, etc) to fully enable database development in CPX. TGS Systems is investigating server partners to be part of a complete Client/Server solution, and also possibly to replace the current Datafile Engine as a local database (where the server runs on the same machine as the client). Support for DAM/DAL is being strengthened, and Sybase will be added as a direct API. Apple Events and AppleScript High-level support for the core Apple Events, and low-level support for Apple Events in general, are part of CPX and ABCs 1.0. By February 1994 we will provide full high-level support, in the synchro-mesh fashion you're growing accustomed to, for making your applications Scriptable, Recordable and Attachable. Interrupt-driven Callback routines? No Ñ you can't have those if memory will be moved, which it very well might be inside your Prograph method. How do the ABCs compare with TCL or MacApp? According to Kurt Schmucker, who did a presentation on the topic at the Prographers Conference in late August, comparable in extent and functionality to TCL or MacApp. The object editors have no equivalent in TCL or MacApp; they extend your functionality to a different dimension, letting you lay out both appearances and behaviors on a high level. What's a "Behavior Editor"? A high level, dialog driven editor that lets you take a selected object (such as a button) and describe what happens when an event (usually a click on it) occurs. Most often the behavior includes a focus object (such as a scrolling list in the same window), a method belonging to that object (e.g., /Attach R), and, and "input specifiers" that let you pick the relevant objects that will be inputs to the method (e.g., the scrolling list and the value of an edit text box in the window). This is the familiar "Folks Database" example. Thus with the Behavior Editor you can tell the button to respond to a click by using the Scrolling List's /Attach R method, and that method should get as inputs the Scrolling List itself and the text entered into the Edit Text field, with the result that the text gets appended as the last item in the scrolling list. In effect you've defined how some things will happen without actually even coding in Prograph. Moving apps written with ABCs to Windows? If you use the ABCs, and don't make Mac-specific calls, you'll be portable with minimum effort. TGS Systems is currently porting Prograph CPX to Windows (NT and WIN32s), PowerPC (native-mode under System 7), and Unix (X-Windows and Motif), in order to support cross-platform application development and generation.