home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / t / tornado / Aims next >
Encoding:
Text File  |  1995-07-14  |  8.2 KB  |  137 lines

  1. This document attempts to explain the underlying ideas behind Tornado. They
  2. are short and sweet (only three), and so thus should not be taken lightly.
  3. They attempt to define conclusively what Tornado is aimed to be, and become.
  4.  
  5. First and foremost, a few terms should be explained. In ordinary English, the
  6. following probably mean much the same, but as referred to here they are
  7. different:
  8.    A Tornado programmer is a coder who uses Tornado, in any shape or form
  9. (including ideas) to write his/her program with. He/she doesn't _have_ to
  10. actually code supplied by the Tornado group.
  11.    A Tornado developer is a coder who is actively writing Tornado, and takes
  12. an active part in supporting it. They don't necessarily have to programmers,
  13. but can be "mere" icon and graphic designers - you don't need to be a C++
  14. whizz-kid to participate. Also, beta-testers are included in this catagory. 
  15.  
  16.  
  17. Aims of the Tornado project:
  18.  
  19.    1: The first, and primary aim of the entire Tornado philosophy, is to
  20. increase productivity for the user.
  21.  
  22.    To this end, the Tornado suite of resources will be carefully designed to
  23. ensure the user will not meet with 'niggling' problems, like missing fonts
  24. causing a recurring irremoveable error for example. Also, the Tornado
  25. resources should be written in such a manner as to gently push the Tornado
  26. programmer in a direction that is consistent with the Tornado general look
  27. and philosophies.
  28.    Added to this, Tornado applications must be frugal with processing power,
  29. memory, and disc space. This is so more can be done with less. An example of
  30. where Tornado does this, is the availability of changing filetypes in line -
  31. for example, if a GIF file is dragged into a Tornado app that can only read
  32. Sprites, the file is converted before being passed to the app. This saves
  33. disc space. Or adding preemption: this allows continuous flowing polling. Or
  34. virtual memory: this allows a sprite editor to edit a 2560x2048 32bit sprite,
  35. which would normally take 21Mb plus of RAM, with only 1Mb of memory (albeit
  36. 4Mb would decrease disc activity somewhat!), thus saving on memory needed.
  37.    To this end there will exist a 'vetting' procedure, allowing Tornado
  38. programmers to submit their code for review. If the code passes, then the
  39. program may be labelled as a program conforming _fully_ to the Tornado
  40. standard. This will attempt to make (especially commercial) programmers write
  41. consistant code which uses Tornado to the full ie; somehow disabling RAM
  42. transfers or not using external subtasks when they should will fail a
  43. program, as doing this detracts from the aims of Tornado.
  44.    Some people on the rather paranoid usenet have expressed worries that
  45. Tornado will force writers to write identical code, which is boring and lacks
  46. the individual touch. What should be noted here, is that the vetting
  47. procedure costs quite a bit of money (£50 minimum, moving upwards with size
  48. and complexity of the program], and is really intended for commercial
  49. writers. PD writers will no doubt forego the vetting process, and we are not
  50. too worried by this as PD apps usually are downloaded on the basis of
  51. strength of word, and thus any rogue apps will be left archived and unused.
  52.    Just because Tornado is aiming in a particular direction doesn't mean all
  53. programmers using it must conform as well. Even if we tried to enforce this
  54. we would fail. No doubt the PD apps scene will remain as varied as ever,
  55. although it is hoped PD writers will try and make their apps as complient as
  56. possible, to aim for a better desktop all round.
  57.    However, if anyone reading this is still worried, please feel free to
  58. write to one of the Tornado team.
  59.  
  60.  
  61.    2: The secondary aim is to create a convention, a standard, which will set
  62. the means by which all other RISC-OS applications will aspire to.
  63.  
  64.    This means that Tornado programs will utilise features and aspects of
  65. today's computing in excess of the current status quo. For example, the
  66. subtasks as provided by Tornado are rather TAOS-like in structure and use.
  67. Tornado provides OLE, virtual memory, relocatable heaps etc. as standard in
  68. all applications (if they choose to avail of it, which is pretty difficult
  69. not to do) and this fact will increase productivity for all users using
  70. Tornado applications. Tornado also has a number of features indicative of a
  71. superior nature, like tfs: is written to be extremely quick, allows spaces in
  72. filenames of unlimited length, unlimited depth of the filing hierarchy, and
  73. has support for 32-bit filetypes when they come out.
  74.    The protocols and features implemented in Tornado are also constructed for
  75. speed, frugality and efficiency. Many of the protocols and features also use
  76. aspects and variations not currently heard of on any platform, and it is
  77. intended and hoped other platform developers may listen and learn, as will be
  78. noted when a certain GUI comes out: note how similar it is to the RISC-OS
  79. desktop and how they've hashed up the icon bar? :-)
  80.    Finally, Tornado developers will be drawing up, considering, and
  81. developing protocols and standards which it is hoped will form much of the
  82. new development work on RISC-OS, which to date has been rather lacking. Also,
  83. a standard will be created, meaning less of one program using one standard
  84. and thus being completely incompatible with another program using another
  85. standard, which hinders productivity.
  86.  
  87.  
  88.    3: The tertiary aim is to make life as easy as possible for the
  89. programmer, whilst not damaging the previous two aims.
  90.  
  91.    This essentially is the same as what FileSwitch does for FS writers. Those
  92. of us old enough :-) will remember trying to write filing systems for 6502
  93. based machines. RISC-OS 2 was such a boon because it took away all the
  94. drudgery, and imposed a loose standard for filing system's to follow. This is
  95. what the Tornado shell intends to do for Wimp apps, taking care of things
  96. like loading and saving automatically, opening windows and dialogue boxes,
  97. OLE and hotlinking etc (see the Tornado brief). It is proposed you could
  98. write a good text editor in less than 8k of !RunImage, and a multi-format
  99. file viewer in about 2k.
  100.  
  101. Notes: 
  102.  
  103.    There has been an odd trend in recent years to produce huge libraries of
  104. code and not actually go further. Thus you get one program using Interface,
  105. another using WimpExt, another using ABCLib in various odd combinations.
  106. There is a lot of already written library code out there, for all languages,
  107. all needs. However, they are all stand-alone objects, and this is probably
  108. understandable. Also, libraries like DeskLib, although excellent, apply to
  109. AOF format languages only, and thus Basic gets left in the dark, which
  110. shouldn't be the case, despite Acorn's stupid attitudes.
  111.    Tornado isn't intended to do this all over again. There are some fine
  112. libraries of code out there, and Tornado intends to build on them rather than
  113. rewrite them. To this end, it is part of the Tornado project to search out
  114. sections of already written code, and merge them into Tornado. This should
  115. save some work on the behalf of the Tornado developers. In other words, if
  116. you know of a bit of code (either yours or someone else's) which does
  117. something you think would be useful to Wimp writers at large, give us a
  118. shout. You won't get any money, but you will get a mention in the Tornado
  119. docs.
  120.    To this end, Tornado will rely on auxillary libraries. Those decided upon
  121. for definate so far are RISC-OS 2 (it /is/ a library!), WimpExt by Jon
  122. Ribbens v2.18 from Doggysoft, and the DragASprite module by Andrew Clover
  123. v2.01 also from Doggysoft. Currently I am seeking out version 3.50 of
  124. WimpExt, but as yet to no avail. Can anyone help?
  125.    TBH I can't see any need for many more libraries. WimpExt provides
  126. everything from quick memory copying routines to rendering Draw files, and
  127. Tornado will use WimpExt to its fullest extent. DragSprite+ is used, also
  128. from Doggysoft as the DragASprite module in RO3 isn't as great as it could
  129. be, and this DragASprite+ is completely flicker-free, even in mode 21 on an
  130. Arm2!
  131.    This said though, most of Tornado is written in C, and sections of C code
  132. from other sources will probably be mercilessly ripped out and incorporated
  133. into Tornado. We will seek copyright permission first though. Also, the C
  134. sources will not use ANSI C libs, as they rather badly affect the compiled
  135. product (ie; large & slow), and also this means they won't be relient on any
  136. resident modules. 
  137.