I am very interested in the Apache Portable Runtime Project (APR). Platform independence is an ambitious goal and I commend you on taking up the challenge. The issue of platform independence is becoming an increasingly important one in much of my work. Ive looked into several efforts that facilitate the ability to write one application which will run on multiple platforms and the APR seems to be among the most advanced.
I am considering using the APR for a project, but a number of issues related to platform independence and the strategy and design goals of the APR have arisen in some discussions. Ive read through the documentation and some of the mail list archives, but I still have some questions. Any answers you can provide to any of these questions will be greatly appreciated, and will go a long way in aiding my decision of whether APR can be of use. Questions: How does the performance of applications written to the APR API compare to application written to the native platform API? In terms of size and speed? Other organizations, such as Netscape, have tried to build similar platform abstraction systems but have had mixed results, and concluded that some systems built to these frameworks are not efficient enough for use in deployed production systems. Still other attempts at a unified platform, such as POSIX, have achieved limited success, how is APR different? Has anyone looked at similar commercial or open source products such as QT or ACE? How does APR compare to these products? How complete is the platform abstraction is achieved by APR? ie. Which interfaces are still native now, and what is the long term plan? Are only server-side OSs going to be supported, or are desktop and embedded OS platforms going to be supported as well? Are there any plans for GUI support -- related to desktop question above? If so, will this preserves the look and feel of the particular platform or is there an APR look and feel that will be consistent for all applications? The web page describes that developers be assured of predictable if not identical behaviour. What functionality does not provide identical behavior on all platforms? How are these compromises chosen? Is support for a particular application the test, i.e. Apache? How are type and endian platform difference issues resolved? Does APR have a preferred representation for types? Does this give preference to certain platforms? I.E. does APR define a platform independent representation used by all supported platforms? Network Byte Order? Does APR implement the IEEE 754 floating point standard? Will APR support language bindings other than C? e.g. Java? Thanks for any answers, David Viel ____________________________________________________________________________________ Need a vacation? Get great deals to amazing places on Yahoo! Travel. http://travel.yahoo.com/