Boost logo

Boost Users :

From: jackthompson99 (JMThompson_at_[hidden])
Date: 2002-01-23 01:40:53


Hey guys,

I sent an e-mail to Dr. Stroustrup a couple nights ago, and he
replied, "Have a look at boost.org. They exist specifically to
provide better libraries in the context of the C++ standard library
and to act as a test bed for new library ideas".

So, here I am. I've installed and built my boost libraries, and I'm
trying to figure out how to dig in.

Anyway, here's what I was telling the Dr.

        I've been using C for about a decade, and C++ for about 7
yrs. I'm a huge fan of your invention, and I honestly feel like your
name should eventually be as well known as Tesla and Edison. And the
Standard Template Library is an incredibly well engineered system. I
have a way to use it that is generic enough that it may be a
candidate to be another standard. I know that's a lot to say. I'd
like to explain it briefly, but first I should explain why I find it
useful.

        Since I started working with assembler, I've always felt like
the language I was using was missing something. I've used an
assortment of languages, and it seems like they are all missing the
same thing. The main part isn't really missing from C++, it's just
not commonly understood. The concept of virtual construction is the
core of the issue. Now I know that this problem is solved, but it
really could stand for just one more thing to wrap it up into
something usable for any ordinary C++ developer….

        Using a virtual constructor by way of a template, a developer
can easily create any kind of object based on any type of identifier,
but what good is that when the developer has exhausted all of his
efforts on just building a simple system to dynamically create
objects. The developer needs a way to organize these objects,
without building another data warehouse. And I have never heard of a
complicated database that shouldn't be fully hierarchical. So, the
system should be one hundred percent re-entrant.

        Well, I have such a beast. I'm not done with it yet. I'm
just now finishing up a project for Textron, where some of this
concept was cultivated into my skill set. I am having a rough time
explaining the system to my boss, and I'm in a real bind, but that's
another story. The main thing that I've learned from this job is
that the world needs to come together on one simple international
standard for dealing with data and persistent C++ objects.

        I've used my ClassFactory / DataStore system as a foundation
for another library that I call the WinFactory. This system simply
uses the ClassFactory / DataStore as a database manager. The objects
held in the database are simply graphical user interface components.
This worked out really well, `till by boss took it apart. But I have
a version of it that I'm re-writing at home that is much better. The
database can be held either in a simple text format, resembling
hypertext, or a binary file. The system relies heavily on the memory
manager, so fast memory allocation is required.

        I have also populated an MFC user interface with data held in
these objects. The system seems to be able to flex with just about
anything, and I feel like it could at least contribute to discussions
about new standards that are based on your standards. By the way, I
need to find a team that I can work with who has good work ethics and
integrity. Suggestions would be much appreciated.

.....

So, I've looked at the library list in Boost, and haven't recognized
anything like what I've built. I would love to explain this system.
But, again, this one belongs to Textron, and all of the documentation
too. I need to find some time to build this system for Boost.org.

The main concept behind the system is a warehouse environment. The
warehouse hase isles of goods. Each isle is any length, and each
isle contains exactly one type of product. And every product
contains a single pointer which is initally NULL. This makes it so
that when you pull the product off the shelf and open it, you will
see whatever the product is ( characters, integers, strings, etc. ),
and you will find one more thing. It's called the nest. Now, until
you try to use the nest, it's empty (NULL). But when you need it, it
is created. What is this nest you ask? It's another warehouse.
Just like the one that it is contained within.

So, the entier concept is one hundred percent re-entrant. This makes
it easy to build hierarchical infrastructures. The objects can be
virtually any C++ thing. They persist with the greatest of ease to
simple IO objects.

User interfaces are easy to build with this system. Content editors
view it as a script. C++ programmers view the script as C++ objects.

Again, I need to finish re-writing the system, and I need to document
it. But I feel like it is a candidate to become another Boost
library.

What do you think?????


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net