Subject | Re: [Firebird-Architect] Re: Error Reporting in New API |
---|---|
Author | Jim Starkey |
Post date | 2005-02-18T04:06:58Z |
Claudio Valderrama C. wrote:
wonderful interface, but it's going to take longer than I care to think
about to supplant isc_dsql_whatever. That lead to the idea of a
hard-to-use but common interface.
and works its way into the message as a different type of message, and
back. In specific, the datatype given by the user is maintained from
client to engine. Conversely, a datatype extracted from a record version
will flow back to the client, converted only if the client asks for it
in a different type.
My ambition is a new API will supplant all of DSQL (the calls will be
supported, but through a client side layer). The original BLR interface
will be mainted as a legacy interface.
the engine.
more than welcome. But just like BLR, I don't expect you to like it.
threads vs. sessions. For what it's worth, this is also true of
Vulcan. Two threads are perfectly welcome to fight over parallel calls
to isc_receive. Which one wins is a race condition, but nothing will be
lost or corrupted.
Believe, Claudio, it's easier to agree on how to get someplace when
everyone wants to get to the same place.
already implemented. The issue becomes protecting an investment in code
rather than ideas. Ideas are cheap; implementation is expensive.
Another way to look at it is that it is *always* better to take the risk
up front. In any project, open source or (think carefully, Jim), uh,
other, the biggest risk is that you've overlooked a problem or a
potential shortcut. Discovering that after the fact makes everyone one
-- implementor, critic, and maintainer -- unhappy in the short, medium,
and long term.
Talk is cheap and email is free.
DEC developed a low end graphic terminal called GIGI. Among a number of
serious problems, the microcode didn't implement Vt100 split screen
scrolling, so it couldn't run the VMS EDT editor. I argued with the
project manager long and hard that if it couldn't run the editor, it was
useless. He said it would take 6 months to remask the ROMs and they
would lose $6,000,000 in sales. They made a couple of hundred thousand
and sold maybe a hundred. The computer museum got the rest.
It is better to get it right than to get it wrong sooner.
and I talk constantly about the sociology of open source. I haven't a
clue. I am bewildered at my dual role as inventory and chief enemy of
pools.
I try to be open about what I do, listen to objections, explain my
reasoning, change my ideas when appropriate, then fight like hell. If
it were left to a simple referendum, we wouldn't have threads, SMP, or
objects. Next year, these will be like motherhood.
I got infinite grief at DEC for pushing relational databases when
everyone knew CODASYL was the accepted commercial standard. I got
infinite grief for designing a system that could support SQL when we all
new that the Datatrieve language (aka GDML) was superior. I got great
resistance on multi-generational concurrency control when every knew
record locking as the way to go. I got infinite pushback from Rdb/VMS
on blobs. I've got a thick skin. I back off when I think I'm wrong.
And I change like a rhino (hopefully a thoughtful rhino) when I think
I'm right. I do assume that everyone understands the issues as well as
I think I do, and tend to assume that someone who doesn't agree or
understand is being venile, which my wife tells me isn't actually the
case, at least not all the time.
to introduce. We've got a merge to bicker about first.
Thanks for the questions.
>I has the idea from months ago that IscDbc was being pushed as the nativeI toyed with the idea, and eventually gave it up. I think IscDbc is a
>interface.
>
wonderful interface, but it's going to take longer than I care to think
about to supplant isc_dsql_whatever. That lead to the idea of a
hard-to-use but common interface.
>Yes, that is my intention. A "value vector" originates in the client
>
>
>> 4. Extensible, efficient, and readily adaptable to the remote
>>protocol.
>>
>>
>
>Ok, but the phrase "primary interface" confuses me:
>- is this the innermost interface the engine will offer?
>
and works its way into the message as a different type of message, and
back. In specific, the datatype given by the user is maintained from
client to engine. Conversely, a datatype extracted from a record version
will flow back to the client, converted only if the client asks for it
in a different type.
My ambition is a new API will supplant all of DSQL (the calls will be
supported, but through a client side layer). The original BLR interface
will be mainted as a legacy interface.
>- does it affect BLR and or GDML as used in the engine's files?The BLR calls stay. GDML is a client layer on BLR and doesn't exist in
>
the engine.
>- is this layer only for usage of higher level layers in the server? Can myAnyone who wants to talk pseudo-objects is welcome. Your application is
>application talk directly to it?
>
more than welcome. But just like BLR, I don't expect you to like it.
>- does this interface offer thread safety?Yes. The primary API will be thread safe with no restrictions on
>
threads vs. sessions. For what it's worth, this is also true of
Vulcan. Two threads are perfectly welcome to fight over parallel calls
to isc_receive. Which one wins is a race condition, but nothing will be
lost or corrupted.
>>The process that I believe leads to good design has these steps:And a horse is a refined sort of ass.
>>
>> 1. There is agreement on requirements. This is too often skipped.
>> Without a clear understanding of requirements, there is no way
>> to judge a prospective design.
>>
>>
>
>The horse has always problems when pushing the cart...
>
Believe, Claudio, it's easier to agree on how to get someplace when
everyone wants to get to the same place.
>> 2. An individual produce a design. Or maybe two or threeThere is a huge problem when somebody presented something he or she has
>> individual produce independent designs. I don't like design by
>>committee
>>
>>
>
>Doesn't this model fit a private corporation more than an open source
>project? It assumes one or two gifted people are the ones with the exclusive
>right to show the path to the rest. Also, if we agree to your vision, then I
>see nothing bad with people doing a prospective implementation of something
>and then offering it to the project, as Alex did some days ago in devel.
>
already implemented. The issue becomes protecting an investment in code
rather than ideas. Ideas are cheap; implementation is expensive.
Another way to look at it is that it is *always* better to take the risk
up front. In any project, open source or (think carefully, Jim), uh,
other, the biggest risk is that you've overlooked a problem or a
potential shortcut. Discovering that after the fact makes everyone one
-- implementor, critic, and maintainer -- unhappy in the short, medium,
and long term.
Talk is cheap and email is free.
>> 3. Prospective designs are weighed against the requirements. ThisMarketing at Interbase reported to me.
>> often leads to a restatement of the requirements and an
>> iteration (this is a very good thing). Problems are found,
>> imaginations are kick-started, alternatives proposed.
>>
>>
>
>This is a luxury for an open source project. The marketing dept at a
>commercial entity won't allow this to go further, as the number of
>iterations may be big.
>
DEC developed a low end graphic terminal called GIGI. Among a number of
serious problems, the microcode didn't implement Vt100 split screen
scrolling, so it couldn't run the VMS EDT editor. I argued with the
project manager long and hard that if it couldn't run the editor, it was
useless. He said it would take 6 months to remask the ROMs and they
would lose $6,000,000 in sales. They made a couple of hundred thousand
and sold maybe a hundred. The computer museum got the rest.
It is better to get it right than to get it wrong sooner.
>This is where heat is produced, but we can't change the second law onThere more inertial in Firebird than any place I have ever worked. Ann
>thermodynamics... ultimately everything degenerates into heat amd heat flows
>trying to produce an uniform, inert state. This explains also why some
>proposals stall.
>
and I talk constantly about the sociology of open source. I haven't a
clue. I am bewildered at my dual role as inventory and chief enemy of
pools.
I try to be open about what I do, listen to objections, explain my
reasoning, change my ideas when appropriate, then fight like hell. If
it were left to a simple referendum, we wouldn't have threads, SMP, or
objects. Next year, these will be like motherhood.
I got infinite grief at DEC for pushing relational databases when
everyone knew CODASYL was the accepted commercial standard. I got
infinite grief for designing a system that could support SQL when we all
new that the Datatrieve language (aka GDML) was superior. I got great
resistance on multi-generational concurrency control when every knew
record locking as the way to go. I got infinite pushback from Rdb/VMS
on blobs. I've got a thick skin. I back off when I think I'm wrong.
And I change like a rhino (hopefully a thoughtful rhino) when I think
I'm right. I do assume that everyone understands the issues as well as
I think I do, and tend to assume that someone who doesn't agree or
understand is being venile, which my wife tells me isn't actually the
case, at least not all the time.
>Not right away. I've a lot of wounds to lick and Netfrastructure bugs
>
>>I'm perfectly happy to continue the discussion of error reporting in a
>>hypothetic new primary API. I do have a scheme that I believe works.
>>If something better shows up, I'll adapt it.
>>
>>
>
>What's next? Are you going to show some examples related to how the calling
>code would be?
>
>
>
to introduce. We've got a merge to bicker about first.
Thanks for the questions.