Fix 43670, 44501 - Fix how HDGF deals with trailing data in the list of chunk headers
[poi.git] / src / documentation / content / xdocs / historyandfuture.xml
blob8c1355d32db9cc5497eaf496177c8fb91a047cae
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3    ====================================================================
4    Licensed to the Apache Software Foundation (ASF) under one or more
5    contributor license agreements.  See the NOTICE file distributed with
6    this work for additional information regarding copyright ownership.
7    The ASF licenses this file to You under the Apache License, Version 2.0
8    (the "License"); you may not use this file except in compliance with
9    the License.  You may obtain a copy of the License at
11        http://www.apache.org/licenses/LICENSE-2.0
13    Unless required by applicable law or agreed to in writing, software
14    distributed under the License is distributed on an "AS IS" BASIS,
15    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16    See the License for the specific language governing permissions and
17    limitations under the License.
18    ====================================================================
19 -->
20 <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.3//EN" "./dtd/document-v13.dtd">
22 <document>
23   <header>
24     <title>Apache POI - Project History</title>
25     <authors>
26       <person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
27     </authors>
28   </header>
29   
30   <body>
33     <section><title>Apache POI - Brief Project History</title>
35         <p>The POI project was dreamed up back around April 2001, when
36         Andrew Oliver landed a short term contract to do Java-based
37         reporting to Excel. He'd done this project a few times before
38         and knew right where to look for the tools he needed.
39         Ironically, the API he used to use had skyrocketed from around
40         $300 ($US) to around $10K ($US). He figured it would take two
41         people around six months to write an Excel port so he
42         recommended the client fork out the $10K.
43         </p>
45         <p>Around June 2001, Andrew started thinking how great it would
46         be to have an open source Java tool to do this and, while he
47         had some spare time, he started on the project and learned
48         about OLE 2 Compound Document Format. After hitting some real
49         stumpers he realized he'd need help. He posted a message to
50         his local Java User's Group (JUG) and asked if anyone else
51         would be interested. He lucked out and the most talented Java
52         programmer he'd ever met, Marc Johnson, joined the project. He
53         ran rings around Andrew at porting OLE 2 CDF and rewrote his
54         skeletal code into a more sophisticated library. It took Marc
55         a few iterations to get something they were happy with.
56         </p>
58         <p>While Marc worked on that, Andrew ported XLS to Java, based
59         on Marc's library. Several users wrote in asking to read XLS
60         (not just write as had originally been planned) and one user
61         had special requests for a different use for POIFS. Before
62         long, the project scope had tripled.  POI 1.0 was released a
63         month later than planned, but with far more features. Marc
64         quickly wrote the serializer framework and HSSF Serializer in
65         record time and Andrew banged out more documentation and worked
66         on making people aware of the project
67         </p>
69         <p> Shortly before the release, POI was fortunate to come into
70           contact with Nicola -Ken- Barrozzi who gave them samples for
71           the HSSF Serializer and help uncover its unfortunate bugs
72           (which were promptly fixed).  More recently, Ken ported most
73           of the POI project documentation to XML from Andrew's crappy
74           HTML docs he wrote with Star Office.
75         </p>
77         <p> Around the same time as the release, Glen Stampoultzis
78 joined the project.  Glen was ticked off at Andrew's flippant attitude
79 towards adding graphing to HSSF.  Glen got so ticked off he decided to
80 grab a hammer and do it himself.  Glen has already become an integral
81 part of the POI development community; his contributions to HSSF have
82 already started making waves.
83         </p>
85         <p>Somewhere in there we decided to finally submit the project
86          to <link href="http://cocoon.apache.org/">The Apache
87          Cocoon Project</link>, only to discover the project had
88          outgrown fitting nicely into just Cocoon long ago.
89          Furthermore, Andrew started eyeing other projects he'd like to
90          see POI functionality added to.  So it was decided to donate
91          the Serializers and Generators to Cocoon, other POI
92          integration components to other projects, and the POI APIs
93          would become part of Jakarta.  It was a bumpy road but it
94          looks like everything turned out since you're reading this!
95         </p>
97          <p>In Early 2007, we graduated from 
98           <link href="http://jakarta.apache.org/">Jakarta</link>, and became
99           our own Top Level Project (TLP) within Apache.</p>
100     </section>
102 <!--
103     <section><title>What's next for Poi</title>
104         <p>First we'll tackle this from a project standpoint: Well, we
105         made an offer to Microsoft and Actuate (tongue in cheek
106         ... well mostly) that we'd quit the project and retire if
107         they'd simply write us each a really large check. I've yet to
108         get a phone call or email so I'm assuming they're not going to
109         pay us to go away.
110         </p>
111         <p>Next, we've got some work to do here at Jakarta to finish
112            integrating POI into the community.  Furthermore, we're
113            still transitioning the Serializer to Cocoon.
114         </p>
115         <p>HSSF, during the 2.0 cycle, will undergo a few
116         optimizations. We'll also be adding new features like a full
117         implementation of Formulas and custom text formats. We're
118         hoping to be able to generate smaller files by adding
119         write-support for RK, MulRK and MulBlank records. I'm also
120         going to work on a Cocoon 2 Generator. Currently, reading is
121         not very efficient in HSSF. This is mainly because in order to
122         write or modify, one needs to be able to update upstream
123         pointers to downstream data. To do this you have to have
124         everything between in memory. A Generator would allow SAX
125         events to be processed instead. (This will be based on the low
126         level structures). One of the great things about this is that,
127         you'll not only have a more efficient way to read the file,
128         you'll have a great way to use spreadsheets as XML data
129         sources.
130         </p>
131         <p>The HSSF Serializer, will further separate into a general
132         framework for creating serializers for other formats and the
133         HSSF Serializer specific implementation. (This is largely
134         already true). We'll also be adding support for features
135         already supported by HSSF (styles, fonts, text formats). We're
136         hoping to add support for formulas during this cycle.
137         </p>
138         <p>We're beginning to expand our scope yet again. If we could
139         do all of this for XLS files, what about Doc files or PowerPoint
140         files? We're thinking that our next component (HWPF - Manipulates
141         Word Processor Format) should follow the same pattern. We're hoping
142         that new blood will join the team and allow us to tackle this
143         even faster (in part because POIFS is already finished). But
144         maybe what we need most is you!  </p>
145       </section> -->
147     </body>
148   <footer>
149     <legal>
150       Copyright (c) @year@ The Apache Software Foundation All rights reserved.
151       $Revision$ $Date$
152     </legal>
153   </footer>
156 </document>