RE: An extended discussion of extensibility

From: Fyodor Tkachov <"Fyodor>
Date: Tue, 30 Nov 2004 16:24:41 +0300

----boundary-LibPST-iamunique-1207988557_-_-
Content-type: text/plain


Robert,

> As I user maybe today I just need some Exponential Random numbers in a hurry.
> Prehaps I am used to something like the FORTRAN NAG library,
> where there probably is a function that does exactly what I want
> with an eight character name like RNDX7FK3.
> No flexibility, just a simple function call (and my wallet is $5000 lighter!).
>
> With LibRandom you have to create a 'Variate' object, but

But WHY do you think one cannot prepackage standard variates as read-only exported variables?
This is the third time already this issue occurs!
Stan was first to point it out a while ago, I discussed it too...

> As a software designer both my existing design and your suggestion
> are still too inflexible. They support two ways of describing
> Variates (Probability Density Function & Cumulative Distribution
> Function), but have no provision for adding new descriptions (eg
> Characteristic Function, or Moment Generating Function etc).

One can derive a further ABSTRACT type from your Variate, with more methods,
on top of your Lib. As a first step.
As a second step, your Lib is modified by the user.
As a third step, you incorporate such modification into a new edition of Lib.

> An 'ideal' theoretical solution is not a good solution if
> it 0) - Requires excessive design and implementation effort

I agree in general but don't see anything excessive about my proposals.
Of course I understand your reluctance to spend time on purely syntactic modifications of a huge library along the lines you are not yet quite comfortable with -- and which won't be appreciated by your colleagues :-)

> & 1) - Assumes an unrealistic degree of 'computer science
> sophistication' on the part of the user (whose
> expertise is in some other application domain.)
>
> So we need to compromise, knowing that tomorrow we will
> revise our opinion about the suitability of todays choices.

Robert, please, by all means, do take care of the fortran programmers. :-)
In the meantime, I am reading a one-semester course (16x2-hr lectures) to 1st year physics students after which they are fully comfortable with the basic structure of BlackBox (ABSTRACT/hidden final types/dir objects etc.).
Isn't it great that we have this kind of division of labor? :-)

> BOTTOM LINE: EXTENSIBLE PROCEDUREs allow useful design options.

As long as there are old-style fortran programmers to convert to BlackBox.
I agree and support it.
I may add that I don't have a single EXTENSIBLE anywhere in my software. For a pragmatic consideration of simplicity -- which like beauty seems to be in the eyes of the beholder :-)

Cheers
Fyodor


Powered by the E-mail PIM - Info Select - www.miclog.com
--------------------------------------------


To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xy

To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.

Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy

Current posting policy:

a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.

b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.


----boundary-LibPST-iamunique-1207988557_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIFxwYXINClJvYmVydCxccGFyDQpccGFyDQo+IEFz
IEkgdXNlciBtYXliZSB0b2RheSBJIGp1c3QgbmVlZCBzb21lIEV4cG9uZW50aWFsIFJhbmRvbSBu
dW1iZXJzIGluIGEgaHVycnkuXHBhcg0KPiBQcmVoYXBzIEkgYW0gdXNlZCB0byBzb21ldGhpbmcg
bGlrZSB0aGUgRk9SVFJBTiBOQUcgbGlicmFyeSwgXHBhcg0KPiB3aGVyZSB0aGVyZSBwcm9iYWJs
eSBpcyBhIGZ1bmN0aW9uIHRoYXQgZG9lcyBleGFjdGx5IHdoYXQgSSB3YW50IFxwYXINCj4gd2l0
aCBhbiBlaWdodCBjaGFyYWN0ZXIgbmFtZSBsaWtlIFJORFg3RkszLlxwYXINCj4gTm8gZmxleGli
aWxpdHksIGp1c3QgYSBzaW1wbGUgZnVuY3Rpb24gY2FsbCAoYW5kIG15IHdhbGxldCBpcyAkNTAw
MCBsaWdodGVyISkuXHBhcg0KPlxwYXINCj4gV2l0aCBMaWJSYW5kb20geW91IGhhdmUgdG8gY3Jl
YXRlIGEgJ1ZhcmlhdGUnIG9iamVjdCwgYnV0XHBhcg0KXHBhcg0KQnV0IFdIWSBkbyB5b3UgdGhp
bmsgb25lIGNhbm5vdCBwcmVwYWNrYWdlIHN0YW5kYXJkIHZhcmlhdGVzIGFzIHJlYWQtb25seSBl
eHBvcnRlZCB2YXJpYWJsZXM/XHBhcg0KVGhpcyBpcyB0aGUgdGhpcmQgdGltZSBhbHJlYWR5IHRo
aXMgaXNzdWUgb2NjdXJzIVxwYXINClN0YW4gd2FzIGZpcnN0IHRvIHBvaW50IGl0IG91dCBhIHdo
aWxlIGFnbywgSSBkaXNjdXNzZWQgaXQgdG9vLi4uXHBhcg0KXHBhcg0KPiBBcyBhIHNvZnR3YXJl
IGRlc2lnbmVyIGJvdGggbXkgZXhpc3RpbmcgZGVzaWduIGFuZCB5b3VyIHN1Z2dlc3Rpb25ccGFy
DQo+IGFyZSBzdGlsbCB0b28gaW5mbGV4aWJsZS4gVGhleSBzdXBwb3J0IHR3byB3YXlzIG9mIGRl
c2NyaWJpbmdccGFyDQo+IFZhcmlhdGVzIChQcm9iYWJpbGl0eSBEZW5zaXR5IEZ1bmN0aW9uICYg
Q3VtdWxhdGl2ZSBEaXN0cmlidXRpb25ccGFyDQo+IEZ1bmN0aW9uKSwgYnV0IGhhdmUgbm8gcHJv
dmlzaW9uIGZvciBhZGRpbmcgbmV3IGRlc2NyaXB0aW9ucyAoZWdccGFyDQo+IENoYXJhY3Rlcmlz
dGljIEZ1bmN0aW9uLCBvciBNb21lbnQgR2VuZXJhdGluZyBGdW5jdGlvbiBldGMpLlxwYXINClxw
YXINCk9uZSBjYW4gZGVyaXZlIGEgZnVydGhlciBBQlNUUkFDVCB0eXBlIGZyb20geW91ciBWYXJp
YXRlLCB3aXRoIG1vcmUgbWV0aG9kcyxccGFyDQpvbiB0b3Agb2YgeW91ciBMaWIuIEFzIGEgZmly
c3Qgc3RlcC5ccGFyDQpBcyBhIHNlY29uZCBzdGVwLCB5b3VyIExpYiBpcyBtb2RpZmllZCBieSB0
aGUgdXNlci5ccGFyDQpBcyBhIHRoaXJkIHN0ZXAsIHlvdSBpbmNvcnBvcmF0ZSBzdWNoIG1vZGlm
aWNhdGlvbiBpbnRvIGEgbmV3IGVkaXRpb24gb2YgTGliLlxwYXINClxwYXINCj4gQW4gJ2lkZWFs
JyB0aGVvcmV0aWNhbCBzb2x1dGlvbiBpcyBub3QgYSBnb29kIHNvbHV0aW9uIGlmXHBhcg0KPiBp
dCAwKSAtIFJlcXVpcmVzIGV4Y2Vzc2l2ZSBkZXNpZ24gYW5kIGltcGxlbWVudGF0aW9uIGVmZm9y
dFxwYXINClxwYXINCkkgYWdyZWUgaW4gZ2VuZXJhbCBidXQgZG9uJ3Qgc2VlIGFueXRoaW5nIGV4
Y2Vzc2l2ZSBhYm91dCBteSBwcm9wb3NhbHMuXHBhcg0KT2YgY291cnNlIEkgdW5kZXJzdGFuZCB5
b3VyIHJlbHVjdGFuY2UgdG8gc3BlbmQgdGltZSBvbiBwdXJlbHkgc3ludGFjdGljIG1vZGlmaWNh
dGlvbnMgb2YgYSBodWdlIGxpYnJhcnkgYWxvbmcgdGhlIGxpbmVzIHlvdSBhcmUgbm90IHlldCBx
dWl0ZSBjb21mb3J0YWJsZSB3aXRoIC0tIGFuZCB3aGljaCB3b24ndCBiZSBhcHByZWNpYXRlZCBi
eSB5b3VyIGNvbGxlYWd1ZXMgOi0pXHBhcg0KXHBhcg0KPiAmICAxKSAtIEFzc3VtZXMgYW4gdW5y
ZWFsaXN0aWMgZGVncmVlIG9mICdjb21wdXRlciBzY2llbmNlXHBhcg0KPiAgICAgICAgIHNvcGhp
c3RpY2F0aW9uJyBvbiB0aGUgcGFydCBvZiB0aGUgdXNlciAod2hvc2VccGFyDQo+ICAgICAgICAg
ZXhwZXJ0aXNlIGlzIGluIHNvbWUgb3RoZXIgYXBwbGljYXRpb24gZG9tYWluLilccGFyDQo+XHBh
cg0KPiBTbyB3ZSBuZWVkIHRvIGNvbXByb21pc2UsIGtub3dpbmcgdGhhdCB0b21vcnJvdyB3ZSB3
aWxsXHBhcg0KPiByZXZpc2Ugb3VyIG9waW5pb24gYWJvdXQgdGhlIHN1aXRhYmlsaXR5IG9mIHRv
ZGF5cyBjaG9pY2VzLlxwYXINClxwYXINClJvYmVydCwgcGxlYXNlLCBieSBhbGwgbWVhbnMsIGRv
IHRha2UgY2FyZSBvZiB0aGUgZm9ydHJhbiBwcm9ncmFtbWVycy4gOi0pXHBhcg0KSW4gdGhlIG1l
YW50aW1lLCBJIGFtIHJlYWRpbmcgYSBvbmUtc2VtZXN0ZXIgY291cnNlICgxNngyLWhyIGxlY3R1
cmVzKSB0byAxc3QgeWVhciBwaHlzaWNzIHN0dWRlbnRzIGFmdGVyIHdoaWNoIHRoZXkgYXJlIGZ1
bGx5IGNvbWZvcnRhYmxlIHdpdGggdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBCbGFja0JveCAoQUJT
VFJBQ1QvaGlkZGVuIGZpbmFsIHR5cGVzL2RpciBvYmplY3RzIGV0Yy4pLlxwYXINCklzbid0IGl0
IGdyZWF0IHRoYXQgd2UgaGF2ZSB0aGlzIGtpbmQgb2YgZGl2aXNpb24gb2YgbGFib3I/IDotKVxw
YXINClxwYXINCj4gQk9UVE9NIExJTkU6IEVYVEVOU0lCTEUgUFJPQ0VEVVJFcyBhbGxvdyB1c2Vm
dWwgZGVzaWduIG9wdGlvbnMuXHBhcg0KXHBhcg0KQXMgbG9uZyBhcyB0aGVyZSBhcmUgb2xkLXN0
eWxlIGZvcnRyYW4gcHJvZ3JhbW1lcnMgdG8gY29udmVydCB0byBCbGFja0JveC4gXHBhcg0KSSBh
Z3JlZSBhbmQgc3VwcG9ydCBpdC5ccGFyDQpJIG1heSBhZGQgdGhhdCBJIGRvbid0IGhhdmUgYSBz
aW5nbGUgRVhURU5TSUJMRSBhbnl3aGVyZSBpbiBteSBzb2Z0d2FyZS4gRm9yIGEgcHJhZ21hdGlj
IGNvbnNpZGVyYXRpb24gb2Ygc2ltcGxpY2l0eSAtLSB3aGljaCBsaWtlIGJlYXV0eSBzZWVtcyB0
byBiZSBpbiB0aGUgZXllcyBvZiB0aGUgYmVob2xkZXIgOi0pXHBhcg0KXHBhcg0KQ2hlZXJzXHBh
cg0KRnlvZG9yXHBhcg0KXHBhcg0KXHBhcg0KUG93ZXJlZCBieSB0aGUgRS1tYWlsIFBJTSAtIElu
Zm8gU2VsZWN0IC0gd3d3Lm1pY2xvZy5jb21ccGFyDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLVxwYXINClxwYXINClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBt
YWlsaW5nIGxpc3QsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdvcmQgInVuc3Vic2Ny
aWJlIiB0bzpccGFyDQogICBibGFja2JveC1yZXF1ZXN0QG9iZXJvbi5jaFxwYXINClxwYXINClRv
IGdldCBhIGxpc3Qgb2YgdmFsaWQgZS1tYWlsIGNvbW1hbmRzIGFuZCBpbnN0cnVjdGlvbnMgb24g
dGhlaXIgdXNhZ2UsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdvcmQgImhlbHAiIHRv
IHRoZSBhYm92ZSBhZGRyZXNzLlxwYXINClxwYXINClNlbmQgYW55IHByb2JsZW0gcmVwb3J0cyBv
ciBxdWVzdGlvbnMgcmVsYXRlZCB0byB0aGlzIGVtYWlsIGxpc3QgdG8gdGhlIGxpc3Qgb3duZXIg
YXRccGFyDQogICBvd25lci1ibGFja2JveEBvYmVyb24uY2hccGFyDQpccGFyDQpDdXJyZW50IHBv
c3RpbmcgcG9saWN5OlxwYXINClxwYXINCmEpIFRvIHBvc3QgeW91IHNob3VsZCB1c2UgdGhlIHNh
bWUgYWRkcmVzcyBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQgdG8gdGhlIG1haWxpbmcgbGlz
dC4gVGhhdCB3YXksIHRoZSBsaXN0IHNlcnZlciB3aWxsIHJlY29nbml6ZSB5b3UgYXMgc3Vic2Ny
aWJlciBhbmQgZm9yd2FyZCB5b3VyIHBvc3RpbmcgaW1tZWRpYXRlbHksIHdpdGhvdXQgY3JlYXRp
bmcgYW55IG92ZXJoZWFkLlxwYXINClxwYXINCmIpIElmLCBmb3Igc29tZSByZWFzb24sIHlvdSBj
YW5ub3QgcG9zdCBmcm9tIHRoZSBhZGRyZXNzLCBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQs
IHlvdXIgbWVzc2FnZSB3aWxsIGJlIG1vZGVyYXRlZCB0byBhdm9pZCBzcGFtLiBQbGVhc2UgdW5k
ZXJzdGFuZCB0aGF0IG1vZGVyYXRpb24gd2lsbCBvZnRlbiBjYXVzZSBzb21lIGRlbGF5LCBpbiBw
YXJ0aWN1bGFyIG92ZXIgd2Vla2VuZHMgb3IgaG9seWRheXMuXHBhcg0KfQ=


----boundary-LibPST-iamunique-1207988557_-_---
Received on Tue Nov 30 2004 - 14:24:41 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:29 UTC