Discussion:
Jbase to D3
(too old to reply)
CM
2004-08-20 07:09:26 UTC
Permalink
Hi Folks

Could someone please be so kind as to post some tips
& tricks on converting a Jbase system to D3.

Many Thanks
Chris
Glen
2004-08-20 15:43:11 UTC
Permalink
On Fri, 20 Aug 2004 09:09:26 +0200, CM <***@removethisopenit.co.za>
wrote:


Wow.. I thought jBase was the saviour for annoyed D3 owners.
Seriously though, why ya moving?

Glen
http://picksource.com
Post by CM
Hi Folks
Could someone please be so kind as to post some tips
& tricks on converting a Jbase system to D3.
Many Thanks
Chris
Mark Brown
2004-08-20 18:18:57 UTC
Permalink
Some of the main differences I have seen are

Filenaming
functions
indexes
case sensitivity
object code

everything else, I believe, is pretty much R83 compatible.

Mark Brown
Post by Glen
Wow.. I thought jBase was the saviour for annoyed D3 owners.
Seriously though, why ya moving?
Glen
http://picksource.com
Post by CM
Hi Folks
Could someone please be so kind as to post some tips
& tricks on converting a Jbase system to D3.
Many Thanks
Chris
BobJ
2004-08-20 18:56:19 UTC
Permalink
There are a number of little things that you can do with jBase that will
give D3 heartburn. If you are converting something that was written using
another Pick platform then you probably won't have much trouble. But if the
application was developed using jBase then it may resist the conversion in a
million small ways. I don't think that anybody can help you with
generalities, but start converting and then show us the problems and you
will probably get the help that you need. And like the man said, why would
anyone want to do that?????
BobJ
Post by Mark Brown
Some of the main differences I have seen are
Filenaming
functions
indexes
case sensitivity
object code
everything else, I believe, is pretty much R83 compatible.
Mark Brown
Post by Glen
Wow.. I thought jBase was the saviour for annoyed D3 owners.
Seriously though, why ya moving?
Glen
http://picksource.com
Post by CM
Hi Folks
Could someone please be so kind as to post some tips
& tricks on converting a Jbase system to D3.
Many Thanks
Chris
Patrick Payne
2004-08-20 23:17:02 UTC
Permalink
What platform. I believe on unix you will see less of an issue. On
NT the differences get much larger.

- Patrick
Post by BobJ
There are a number of little things that you can do with jBase that will
give D3 heartburn. If you are converting something that was written using
another Pick platform then you probably won't have much trouble. But if the
application was developed using jBase then it may resist the conversion in a
million small ways. I don't think that anybody can help you with
generalities, but start converting and then show us the problems and you
will probably get the help that you need. And like the man said, why would
anyone want to do that?????
BobJ
Post by Mark Brown
Some of the main differences I have seen are
Filenaming
functions
indexes
case sensitivity
object code
everything else, I believe, is pretty much R83 compatible.
Mark Brown
Post by Glen
Wow.. I thought jBase was the saviour for annoyed D3 owners.
Seriously though, why ya moving?
Glen
http://picksource.com
Post by CM
Hi Folks
Could someone please be so kind as to post some tips
& tricks on converting a Jbase system to D3.
Many Thanks
Chris
CM
2004-08-21 04:40:54 UTC
Permalink
Well in my opinion D3 is a superior product (ducking the flames)
To be honest the VAR involved knows D3 and absolutely nothing about
Jbase. So the move is to protect both him & the customer.
I will post comments when doing the conversion.

TA
Post by CM
Hi Folks
Could someone please be so kind as to post some tips
& tricks on converting a Jbase system to D3.
Many Thanks
Chris
Luke Webber
2004-08-21 05:54:00 UTC
Permalink
Post by CM
Well in my opinion D3 is a superior product (ducking the flames)
(Aims flamethrower at knee-height)

Jeez, that's a *dreadful* thing to say about jBASE. <g>
Post by CM
To be honest the VAR involved knows D3 and absolutely nothing about
Jbase. So the move is to protect both him & the customer.
I will post comments when doing the conversion.
The VAR might find it easier (and more profitable) to learn something
about jBASE. Or maybe the client should consider finding a new VAR.
Seriously, this could be a costly exercise, and if I was the client, I'd
expect to hear a better reason than the above for footing the bill.

Luke
BobJ
2004-08-21 10:09:50 UTC
Permalink
Post by Luke Webber
Post by CM
Well in my opinion D3 is a superior product (ducking the flames)
(Aims flamethrower at knee-height)
Jeez, that's a *dreadful* thing to say about jBASE. <g>
Post by CM
To be honest the VAR involved knows D3 and absolutely nothing about
Jbase. So the move is to protect both him & the customer.
I will post comments when doing the conversion.
The VAR might find it easier (and more profitable) to learn something
about jBASE. Or maybe the client should consider finding a new VAR.
Seriously, this could be a costly exercise, and if I was the client, I'd
expect to hear a better reason than the above for footing the bill.
Luke
Probably the end user doesn't know the difference between jBase and D3 and
doesn't care. I'm guessing now, but it sounds like someone has an
application that was developed using jBase and has an opportunity to
wholesale it to a D3 VAR. Out of idle curiosity (I am pretty idle these
days) I converted some programs that I wrote recently using jBase to D3. No
real problem at all, but I am pretty conservative and could probably run my
stuff on AP with no problem.
When D3 was a couple of years old and approaching maturity it was a
superior product when compared to other MV platforms. The other platforms,
by and large, have grown and matured while D3 has failed to do so. Bugs of
years standing still stand. Support is something less than outstanding.
IMHO jBase is the best of breed at least for the moment. The IBM products
are probably just as good technically but the jBase support (at least up
until now) puts jBase well in the lead. Now lets hope that jBase does not
follow in the footsteps of RD.

BobJ
Luke Webber
2004-08-21 11:10:25 UTC
Permalink
BobJ wrote:

[snip]
Post by BobJ
When D3 was a couple of years old and approaching maturity it was a
superior product when compared to other MV platforms. The other platforms,
by and large, have grown and matured while D3 has failed to do so. Bugs of
years standing still stand. Support is something less than outstanding.
IMHO jBase is the best of breed at least for the moment. The IBM products
are probably just as good technically but the jBase support (at least up
until now) puts jBase well in the lead. Now lets hope that jBase does not
follow in the footsteps of RD.
I venture to suggest that jBASE is superior from a design viewpoint as
well. There was a lot of serious thinking behind jBASE, and I just don't
see that in the U2 products.

Luke
BobJ
2004-08-21 14:12:42 UTC
Permalink
Post by Luke Webber
[snip]
Post by BobJ
When D3 was a couple of years old and approaching maturity it was a
superior product when compared to other MV platforms. The other platforms,
by and large, have grown and matured while D3 has failed to do so. Bugs of
years standing still stand. Support is something less than outstanding.
IMHO jBase is the best of breed at least for the moment. The IBM products
are probably just as good technically but the jBase support (at least up
until now) puts jBase well in the lead. Now lets hope that jBase does not
follow in the footsteps of RD.
I venture to suggest that jBASE is superior from a design viewpoint as
well. There was a lot of serious thinking behind jBASE, and I just don't
see that in the U2 products.
Luke
All of the serious thinking about Pick took place while Dick was still
alive. And all of the serious thinking about jBase took place while JimI
was still the boss. Tempis fidgets - but D3 just has a head start on jBase
and the U2s on the path to oblivion.
BobJ
Luke Webber
2004-08-22 06:33:09 UTC
Permalink
Post by BobJ
All of the serious thinking about Pick took place while Dick was still
alive. And all of the serious thinking about jBase took place while JimI
was still the boss. Tempis fidgets - but D3 just has a head start on jBase
and the U2s on the path to oblivion.
It's quite incredible to me that D3 isn't long dead, given the
management they've have behind the product.

And I think you'll find it's "tempers fuggit". <g>

Luke
Mark Brown
2004-08-22 07:41:47 UTC
Permalink
Maybe it's because a good product can outlive bad management.

The five phases of a programmer's life apply here as well:

1) What's Pick
2) Get me a Pick System
3) Get me the newest Pick System
4) Get me a Pick-like system
5) What's Pick


Mark Brown
Post by Luke Webber
It's quite incredible to me that D3 isn't long dead, given the
management they've have behind the product.
Luke
frosty
2004-08-23 16:05:44 UTC
Permalink
Post by Mark Brown
Maybe it's because a good product can outlive bad management.
1) What's Pick
2) Get me a Pick System
3) Get me the newest Pick System
4) Get me a Pick-like system
5) What's Pick
Mark Brown
A Classic! =`:^>
--
frosty, looking forward to phase six.
BobJ
2004-08-22 08:57:41 UTC
Permalink
Post by Luke Webber
Post by BobJ
All of the serious thinking about Pick took place while Dick was still
alive. And all of the serious thinking about jBase took place while JimI
was still the boss. Tempis fidgets - but D3 just has a head start on jBase
and the U2s on the path to oblivion.
It's quite incredible to me that D3 isn't long dead, given the
management they've have behind the product.
And I think you'll find it's "tempers fuggit". <g>
Luke
It is dead but the tail will keep fidgiting until sundown at which time any
who remember will say "fuggit" and wander off.
BobJ
unknown
2004-08-22 20:49:42 UTC
Permalink
Post by BobJ
Post by Luke Webber
Post by BobJ
All of the serious thinking about Pick took place while Dick was still
alive. And all of the serious thinking about jBase took place while
JimI
Post by Luke Webber
Post by BobJ
was still the boss. Tempis fidgets - but D3 just has a head start on
jBase
Post by Luke Webber
Post by BobJ
and the U2s on the path to oblivion.
It's quite incredible to me that D3 isn't long dead, given the
management they've have behind the product.
And I think you'll find it's "tempers fuggit". <g>
Luke
It is dead but the tail will keep fidgiting until sundown at which time any
who remember will say "fuggit" and wander off.
BobJ
Not Dead Yet. I'm installing a new one next week.

Patrick <;=)

Actually I think D3 still outsell jBase if
I am not mistaken. ;)
Ross Ferris
2004-08-23 07:46:13 UTC
Permalink
Could be a bit like the VHS vs: Beta debate ..... with a similar
outcome, as these days people are moving towards DVD's :-)
Post by unknown
Post by BobJ
Post by Luke Webber
Post by BobJ
All of the serious thinking about Pick took place while Dick was still
alive. And all of the serious thinking about jBase took place while
JimI
Post by Luke Webber
Post by BobJ
was still the boss. Tempis fidgets - but D3 just has a head start on
jBase
Post by Luke Webber
Post by BobJ
and the U2s on the path to oblivion.
It's quite incredible to me that D3 isn't long dead, given the
management they've have behind the product.
And I think you'll find it's "tempers fuggit". <g>
Luke
It is dead but the tail will keep fidgiting until sundown at which time any
who remember will say "fuggit" and wander off.
BobJ
Not Dead Yet. I'm installing a new one next week.
Patrick <;=)
Actually I think D3 still outsell jBase if
I am not mistaken. ;)
Nikolai Lukin
2004-08-23 11:32:17 UTC
Permalink
I would correct this one a bit.

Betamax (D3) vs. DVD (jBASE), if we talk MV...

Nick
Post by Ross Ferris
Could be a bit like the VHS vs: Beta debate ..... with a similar
outcome, as these days people are moving towards DVD's :-)
Kevin Powick
2004-08-23 15:13:54 UTC
Permalink
Post by unknown
Actually I think D3 still outsell jBase if
I am not mistaken. ;)
I wonder what the actual *new* (first time customer) D3 sales numbers
are, compared to upgrades from AP, AP/Pro, etc.?
--
Kevin Powick
Jeffrey Kaufman
2004-08-23 16:34:04 UTC
Permalink
I sold two NEW systems last month. One is a 20 user D3/Linux, the other is a
7 user. I also sold two AP/Pro to D3 upgrades this month. There is a total
of 41 users for all four sites.
--
Jeffrey Kaufman
Key Data Systems Group
www.keydata.us
559-432-3832
559-432-4657 fax

Western Pacific Supply
www.westpacsupply.com
888-WestPac
Post by Kevin Powick
Post by unknown
Actually I think D3 still outsell jBase if
I am not mistaken. ;)
I wonder what the actual *new* (first time customer) D3 sales numbers
are, compared to upgrades from AP, AP/Pro, etc.?
--
Kevin Powick
Simon Verona
2004-08-23 10:05:30 UTC
Permalink
Well I can understand the argument about the VAR having better knowledge of
D3 than jBase...

But the suggestion that D3 is technically superior????????? I can't
believe that... Factor in better support, better product evolution and a
potentially more secure future and I can't see how anybody who doesn't have
a legacy requirement (which I guess a VAR who only knows D3 is!) would
choose D3 over jBase!

This comment is even stranger from somebody who is obviously using jBase!!

What in particular do you find "superior" about D3 over jBase?

Just my 2 euros worth

Regards
Simon
Post by CM
Well in my opinion D3 is a superior product (ducking the flames)
To be honest the VAR involved knows D3 and absolutely nothing about
Jbase. So the move is to protect both him & the customer.
I will post comments when doing the conversion.
TA
Post by CM
Hi Folks
Could someone please be so kind as to post some tips
& tricks on converting a Jbase system to D3.
Many Thanks
Chris
Patrick Payne
2004-08-23 16:25:43 UTC
Permalink
D3's vme environment in some cases offers features/performance that
the native O/S environment of jbase does not. My app for example (web
app) creates code on the fly, compiles it, and calls it. I attempted
a few years ago to port this to jbase and had numerous issues with the
Jbase compile/catalog environment. Doug at modsoft mentioned the same
issues (probably the reason Coyote is still not ported to jbase).

This means for me and what I am trying to do D3 is better than Jbase.
Remember we are talking about solutions and not technology. The end
user just cares it works.

- Patrick
Post by Simon Verona
Well I can understand the argument about the VAR having better knowledge of
D3 than jBase...
But the suggestion that D3 is technically superior????????? I can't
believe that... Factor in better support, better product evolution and a
potentially more secure future and I can't see how anybody who doesn't have
a legacy requirement (which I guess a VAR who only knows D3 is!) would
choose D3 over jBase!
This comment is even stranger from somebody who is obviously using jBase!!
What in particular do you find "superior" about D3 over jBase?
Just my 2 euros worth
Regards
Simon
Post by CM
Well in my opinion D3 is a superior product (ducking the flames)
To be honest the VAR involved knows D3 and absolutely nothing about
Jbase. So the move is to protect both him & the customer.
I will post comments when doing the conversion.
TA
Post by CM
Hi Folks
Could someone please be so kind as to post some tips
& tricks on converting a Jbase system to D3.
Many Thanks
Chris
Simon Verona
2004-08-23 17:33:13 UTC
Permalink
I guess that would be one area where jBase would be slower compared to D3 -
in compile time.. The actual process of generating code on the fly and
compiling it shouldn't be an issue in itself...

Having said that I would have thought that performance would have been
adequate for small programs on a reasonable platform...

Agreed about solutions and not technology... Hence why I was interested in
the "why".

Regards
Simon
Post by Patrick Payne
D3's vme environment in some cases offers features/performance that
the native O/S environment of jbase does not. My app for example (web
app) creates code on the fly, compiles it, and calls it. I attempted
a few years ago to port this to jbase and had numerous issues with the
Jbase compile/catalog environment. Doug at modsoft mentioned the same
issues (probably the reason Coyote is still not ported to jbase).
This means for me and what I am trying to do D3 is better than Jbase.
Remember we are talking about solutions and not technology. The end
user just cares it works.
- Patrick
Post by Simon Verona
Well I can understand the argument about the VAR having better knowledge of
D3 than jBase...
But the suggestion that D3 is technically superior????????? I can't
believe that... Factor in better support, better product evolution and a
potentially more secure future and I can't see how anybody who doesn't have
a legacy requirement (which I guess a VAR who only knows D3 is!) would
choose D3 over jBase!
This comment is even stranger from somebody who is obviously using jBase!!
What in particular do you find "superior" about D3 over jBase?
Just my 2 euros worth
Regards
Simon
Post by CM
Well in my opinion D3 is a superior product (ducking the flames)
To be honest the VAR involved knows D3 and absolutely nothing about
Jbase. So the move is to protect both him & the customer.
I will post comments when doing the conversion.
TA
Post by CM
Hi Folks
Could someone please be so kind as to post some tips
& tricks on converting a Jbase system to D3.
Many Thanks
Chris
Joe
2004-08-24 00:05:40 UTC
Permalink
Simon, IIRC, jBASE programs are executables, but subroutines are all
rolled into one or more dlls (BTW, my jBASE experience was on NT;
don't know about *nix).

Creating programs on the fly shouldn't be a problem, but subroutines
may be another issue. IIRC, every time you changed one subroutine in
a dll, the dll had to be recreated. It's an extra step beyond
compiling and cataloging.

Regards,
Joe
Post by Simon Verona
I guess that would be one area where jBase would be slower compared
to D3 - in compile time.. The actual process of generating code on
the fly and compiling it shouldn't be an issue in itself...
Having said that I would have thought that performance would have
been adequate for small programs on a reasonable platform...
Agreed about solutions and not technology... Hence why I was
interested in the "why".
Regards
Simon
Post by Patrick Payne
D3's vme environment in some cases offers features/performance that
the native O/S environment of jbase does not. My app for example
(web app) creates code on the fly, compiles it, and calls it. I
attempted a few years ago to port this to jbase and had numerous
issues with the Jbase compile/catalog environment. Doug at modsoft
mentioned the same issues (probably the reason Coyote is still not
ported to jbase).
This means for me and what I am trying to do D3 is better than
Jbase. Remember we are talking about solutions and not technology.
The end user just cares it works.
- Patrick
Post by Simon Verona
Well I can understand the argument about the VAR having better
knowledge
of
Post by Patrick Payne
Post by Simon Verona
D3 than jBase...
But the suggestion that D3 is technically superior????????? I
can't believe that... Factor in better support, better product
evolution
and a
Post by Patrick Payne
Post by Simon Verona
potentially more secure future and I can't see how anybody who
doesn't
have
Post by Patrick Payne
Post by Simon Verona
a legacy requirement (which I guess a VAR who only knows D3 is!)
would choose D3 over jBase!
This comment is even stranger from somebody who is obviously
using
jBase!!
Post by Patrick Payne
Post by Simon Verona
What in particular do you find "superior" about D3 over jBase?
Just my 2 euros worth
Regards
Simon
Post by CM
Well in my opinion D3 is a superior product (ducking the
flames) To be honest the VAR involved knows D3 and absolutely
nothing about Jbase. So the move is to protect both him & the
customer. I will post comments when doing the conversion.
TA
Post by CM
Hi Folks
Could someone please be so kind as to post some tips
& tricks on converting a Jbase system to D3.
Many Thanks
Chris
Bob Coleman/PDX OR
2004-08-24 06:32:44 UTC
Permalink
You can set an environment variable to have a separate library for each
subroutine.

-Bob
Post by Joe
Simon, IIRC, jBASE programs are executables, but subroutines are all
rolled into one or more dlls (BTW, my jBASE experience was on NT;
don't know about *nix).
Creating programs on the fly shouldn't be a problem, but subroutines
may be another issue. IIRC, every time you changed one subroutine in
a dll, the dll had to be recreated. It's an extra step beyond
compiling and cataloging.
Regards,
Joe
Post by Simon Verona
I guess that would be one area where jBase would be slower compared
to D3 - in compile time.. The actual process of generating code on
the fly and compiling it shouldn't be an issue in itself...
Having said that I would have thought that performance would have
been adequate for small programs on a reasonable platform...
Agreed about solutions and not technology... Hence why I was
interested in the "why".
Regards
Simon
Post by Patrick Payne
D3's vme environment in some cases offers features/performance that
the native O/S environment of jbase does not. My app for example
(web app) creates code on the fly, compiles it, and calls it. I
attempted a few years ago to port this to jbase and had numerous
issues with the Jbase compile/catalog environment. Doug at modsoft
mentioned the same issues (probably the reason Coyote is still not
ported to jbase).
This means for me and what I am trying to do D3 is better than
Jbase. Remember we are talking about solutions and not technology.
The end user just cares it works.
- Patrick
Post by Simon Verona
Well I can understand the argument about the VAR having better
knowledge
of
Post by Patrick Payne
Post by Simon Verona
D3 than jBase...
But the suggestion that D3 is technically superior????????? I
can't believe that... Factor in better support, better product
evolution
and a
Post by Patrick Payne
Post by Simon Verona
potentially more secure future and I can't see how anybody who
doesn't
have
Post by Patrick Payne
Post by Simon Verona
a legacy requirement (which I guess a VAR who only knows D3 is!)
would choose D3 over jBase!
This comment is even stranger from somebody who is obviously
using
jBase!!
Post by Patrick Payne
Post by Simon Verona
What in particular do you find "superior" about D3 over jBase?
Just my 2 euros worth
Regards
Simon
Post by CM
Well in my opinion D3 is a superior product (ducking the
flames) To be honest the VAR involved knows D3 and absolutely
nothing about Jbase. So the move is to protect both him & the
customer. I will post comments when doing the conversion.
TA
Post by CM
Hi Folks
Could someone please be so kind as to post some tips
& tricks on converting a Jbase system to D3.
Many Thanks
Chris
BobJ
2004-08-24 08:58:29 UTC
Permalink
Post by Bob Coleman/PDX OR
You can set an environment variable to have a separate library for each
subroutine.
-Bob
But if you do so and the number of librares gets large (how large is
"large"? unspecified by jBase) then the search time could also get large.
Just another listtle niche in DLL Hell. There are ways to avoid the use of
.DLL but trying to use such a technique would make jBase even more "not
Pick".
As for createing "programs" on the fly - there are many good
reasons to create procs on the fly and probably at least some good reasons
to create Basic Programs on the fly. It's all programming, but executing
something that you generated is certainly not using all of the abstraction
layers that are available to you. Someone commented that it is hard to
debug especially when the cataloged items are removed after execution. That
just reinforces one of the earliest thumb rules of progamming - "preset,
don't reset". In other words, leave the audit trail in case you need it. I
"decatalog" the proc by changing the PQ to X but leave it in the MD. And
all that goes into the MD anyway is the two attribute pointer to the file
with the executeable procedure. I used to leave 3 or 4 time and date stamps
after the P but there were a couple of platforms that were influenced by
stuff after the P so we dropped that policy.
Finally, we used to laugh at Windows with its need to reboot after
any change. Now we have the same problem with the need to log off and log
back on after a change. The Alphamicro early version of Pick 64 supported
entering the debugger, recompiling the program, and resuming execution in
the newly compiled version. Obviously led to some very interesting results,
especially if you had fewer lines of code in the new version and some of the
removed lines were being excuted when you entered the debugger.
This thread really wandered from the original topic - but in an
interesting way.
BobJ
Post by Bob Coleman/PDX OR
Post by Joe
Simon, IIRC, jBASE programs are executables, but subroutines are all
rolled into one or more dlls (BTW, my jBASE experience was on NT;
don't know about *nix).
Creating programs on the fly shouldn't be a problem, but subroutines
may be another issue. IIRC, every time you changed one subroutine in
a dll, the dll had to be recreated. It's an extra step beyond
compiling and cataloging.
Regards,
Joe
Luke Webber
2004-08-24 22:07:29 UTC
Permalink
Post by BobJ
Post by Bob Coleman/PDX OR
You can set an environment variable to have a separate library for each
subroutine.
-Bob
But if you do so and the number of librares gets large (how large is
"large"? unspecified by jBase) then the search time could also get large.
Just another listtle niche in DLL Hell. There are ways to avoid the use of
.DLL but trying to use such a technique would make jBase even more "not
Pick".
If you only set the environment variable for your web server process,
and if you control the naming conventions, there's no particular reason
why this should happen. You could also use a separater output folder for
this so as not to pollute the general-use libraries. There's a lot of
flexibility there, provided you know how to use it.
Post by BobJ
As for createing "programs" on the fly - there are many good
reasons to create procs on the fly and probably at least some good reasons
to create Basic Programs on the fly. It's all programming, but executing
something that you generated is certainly not using all of the abstraction
layers that are available to you. Someone commented that it is hard to
debug especially when the cataloged items are removed after execution. That
just reinforces one of the earliest thumb rules of progamming - "preset,
don't reset". In other words, leave the audit trail in case you need it. I
"decatalog" the proc by changing the PQ to X but leave it in the MD. And
all that goes into the MD anyway is the two attribute pointer to the file
with the executeable procedure. I used to leave 3 or 4 time and date stamps
after the P but there were a couple of platforms that were influenced by
stuff after the P so we dropped that policy.
So you're saying that you have code that modifies the MD? I hope you
realise that this sort of thing could cause proc format errors on
releases before D3, and probably still does on certain other MV
versions. Better to always have the pointer in the MD and *just* mess
with the procs in your proc file. And make sure that the proc names and
modulo of your proc file ensure that you have only one proc per group.
Use fixed-length port numbers and a modulo greater than the number of
ports on your system.
Post by BobJ
Finally, we used to laugh at Windows with its need to reboot after
any change. Now we have the same problem with the need to log off and log
back on after a change. The Alphamicro early version of Pick 64 supported
entering the debugger, recompiling the program, and resuming execution in
the newly compiled version. Obviously led to some very interesting results,
especially if you had fewer lines of code in the new version and some of the
removed lines were being excuted when you entered the debugger.
This thread really wandered from the original topic - but in an
interesting way.
Just on the subject of code generation, the Ultimate debugger used to
generate short program stubs and compile them in order to execute its
display commands. I know that Chandru and Dave Rose did some work in
that area to extend its functionality, so that on late releases of the
Ultimate OS it was possible to do things like this in the debugger...

/REC<10,5>

...and...

/BAL-COMMISSION

Nice, no?

Luke
Luke Webber
2004-08-23 21:43:17 UTC
Permalink
Post by Patrick Payne
D3's vme environment in some cases offers features/performance that
the native O/S environment of jbase does not. My app for example (web
app) creates code on the fly, compiles it, and calls it. I attempted
a few years ago to port this to jbase and had numerous issues with the
Jbase compile/catalog environment. Doug at modsoft mentioned the same
issues (probably the reason Coyote is still not ported to jbase).
I think it's more likely that jBASE simply doesn't need Coyote, because
you can write web apps directly in jBASE that will run under Apache or IIS.
Post by Patrick Payne
This means for me and what I am trying to do D3 is better than Jbase.
Remember we are talking about solutions and not technology. The end
user just cares it works.
I'd be very interested to know why you feel you need to do this
online-compilation trick, and especially for a web app. I've only ever
needed to build code as part of a 4GL in the past. I can see that jBASE
would certainly be a lot slower at this trick, but I'll bet there are
alternative, and probably better, solutions to your problem.

Luke
Joe
2004-08-24 00:09:49 UTC
Permalink
Post by Luke Webber
Post by Patrick Payne
D3's vme environment in some cases offers features/performance that
the native O/S environment of jbase does not. My app for example
(web app) creates code on the fly, compiles it, and calls it. I
attempted a few years ago to port this to jbase and had numerous
issues with the Jbase compile/catalog environment. Doug at modsoft
mentioned the same issues (probably the reason Coyote is still not
ported to jbase).
I think it's more likely that jBASE simply doesn't need Coyote,
because you can write web apps directly in jBASE that will run under
Apache or IIS.
Post by Patrick Payne
This means for me and what I am trying to do D3 is better than
Jbase. Remember we are talking about solutions and not technology.
The end user just cares it works.
I'd be very interested to know why you feel you need to do this
online-compilation trick, and especially for a web app. I've only
ever needed to build code as part of a 4GL in the past. I can see
that jBASE would certainly be a lot slower at this trick, but I'll
bet there are alternative, and probably better, solutions to your
problem.
Luke
I've always been amazed by apps that generate their own runtime code.
The word 'dangerous' first comes to mind.

Regards,
Joe
a***@inlandkwpp.com
2004-08-24 00:14:13 UTC
Permalink
Post by Joe
I've always been amazed by apps that generate their own runtime code.
The word 'dangerous' first comes to mind.
I disagree.

Writing an app that generates code is straight forward. Writing an
app that encapsulates all of the functionality you can obtain from a
dynamically created program is a lot more complicated and is probably
subject to a lot more bugs.

-Adam
Joe
2004-08-24 00:24:19 UTC
Permalink
Post by a***@inlandkwpp.com
Post by Joe
I've always been amazed by apps that generate their own runtime code.
The word 'dangerous' first comes to mind.
I disagree.
Writing an app that generates code is straight forward.
Not as straight forward as writing the "generated" code ahead of time
and testing it.
Post by a***@inlandkwpp.com
Writing an
app that encapsulates all of the functionality you can obtain from a
dynamically created program is a lot more complicated and is probably
subject to a lot more bugs.
-Adam
If this functionality is so diverse/complex/whatever so that it couldn't
be written ahead of time, I'd imagine the chances for bugs are far
greater with the generated code than writing static code and testing it.

Regards,
Joe
unknown
2004-08-24 00:39:36 UTC
Permalink
Post by a***@inlandkwpp.com
Post by Joe
I've always been amazed by apps that generate their own runtime code.
The word 'dangerous' first comes to mind.
I disagree.
Writing an app that generates code is straight forward. Writing an
app that encapsulates all of the functionality you can obtain from a
dynamically created program is a lot more complicated and is probably
subject to a lot more bugs.
-Adam
I agree Adam, and at times it can be a very *elegant* solution. With the
proper precautions in place of course. I always read the MD file first
to avoid conflicts (and DECATALOG afterward). But with a *truly* unique
name this should never be an issue (but I still check).

Patrick. <;=)

P.S. And Luke, don't deny you've ever done this. Then I would be
really *amazed*. ;)
unknown
2004-08-24 01:00:12 UTC
Permalink
Post by unknown
Post by a***@inlandkwpp.com
Post by Joe
I've always been amazed by apps that generate their own runtime
code. The word 'dangerous' first comes to mind.
I disagree.
Writing an app that generates code is straight forward. Writing an
app that encapsulates all of the functionality you can obtain from a
dynamically created program is a lot more complicated and is probably
subject to a lot more bugs.
-Adam
I agree Adam, and at times it can be a very *elegant* solution. With the
proper precautions in place of course. I always read the MD file first
to avoid conflicts (and DECATALOG afterward). But with a *truly* unique
name this should never be an issue (but I still check).
Patrick. <;=)
P.S. And Luke, don't deny you've ever done this. Then I would be
really *amazed*. ;)
I guess I disagree with Joe. It does work when the proper care is
taken. That said a logic table will work as well if the time is
put in to test it thoroughly. Remember File names are nothing but
strings that can be opened into file variables. And they can be
grabbed from the MD file. The whole thing can be made pretty
generic. (I was writing a simple report generator today).

Patrick, <;=)

P.S. That said I think most of us have used this *technique*.
Not dangerous in application, just in proper implementation.
Joe
2004-08-24 01:12:53 UTC
Permalink
Post by unknown
Post by unknown
Post by a***@inlandkwpp.com
Post by Joe
I've always been amazed by apps that generate their own runtime
code. The word 'dangerous' first comes to mind.
I disagree.
Writing an app that generates code is straight forward. Writing
an app that encapsulates all of the functionality you can obtain
from a dynamically created program is a lot more complicated and
is probably subject to a lot more bugs.
-Adam
I agree Adam, and at times it can be a very *elegant* solution.
With the proper precautions in place of course. I always read the
MD file first to avoid conflicts (and DECATALOG afterward). But
with a *truly* unique name this should never be an issue (but I
still check).
Patrick. <;=)
P.S. And Luke, don't deny you've ever done this. Then I would be
really *amazed*. ;)
I guess I disagree with Joe. It does work when the proper care is
taken. That said a logic table will work as well if the time is
put in to test it thoroughly. Remember File names are nothing but
strings that can be opened into file variables. And they can be
grabbed from the MD file. The whole thing can be made pretty
generic. (I was writing a simple report generator today).
Patrick, <;=)
P.S. That said I think most of us have used this *technique*.
Not dangerous in application, just in proper implementation.
For one thing, it makes debugging a nightmare, especially if the
routine gets decataloged and deleted after it's run its course. I'll
never forget the first time I saw procs getting written out to the MD
and executed from the app. I almost had a heart attack. I guess I'm
the proverbial old fart, but I was weaned on the concept of staying
away from the MD and keeping it lean and mean.

At any rate, I just don't see a single advantage to having an app
create code on the fly. Enlighten me, perhaps..

Regards,
Joe
unknown
2004-08-24 21:15:26 UTC
Permalink
Post by Joe
Post by unknown
Patrick, <;=)
P.S. That said I think most of us have used this *technique*.
Not dangerous in application, just in proper implementation.
For one thing, it makes debugging a nightmare, especially if the
routine gets decataloged and deleted after it's run its course. I'll
never forget the first time I saw procs getting written out to the MD
and executed from the app. I almost had a heart attack. I guess I'm
the proverbial old fart, but I was weaned on the concept of staying
away from the MD and keeping it lean and mean.
At any rate, I just don't see a single advantage to having an app
create code on the fly. Enlighten me, perhaps..
I don't think I'm going to tell you anything you don't already know
Joe but here goes.
Write a program (PROGRAM1) that selects all the 'D' pointers in an
account and then reads the Dict of the Files for size. Use this data to
create an array in PROGRAM2 (PREC<1> is F.RECS = 'file name array').
PREC<2>='file size of files'
Make PROGRAM2 do the following;
Count and loop through the files doing
EXECUTE "T-FWD"
F.CNT=DCOUNT(PREC<I>,@VM)
for i = 1 to F.CNT
EXECUTE "CREATE-FILE ":F.RECS<1,I>:' ':F.REC<2,I>
T-LOAD <the data of the file>
T-LOAD <the dicts of the file>
next i

write PROGRAM2 to XXBP

Have PROGRAM1 do the following
EXECUTE your T-SELECT & T-REW
T-DUMP XXBP PROGRAM2 to tape
for i=1 to F.CNT
T-DUMP <the data of the file>
T-DUMP <the dicts of the file>

Take the tape to a site
CREATE-ACCOUNT <new account>
set the tape
T-LOAD <a program file>
compile and catalog the program
run it and recreate the account

This assumes no Q-pointers, MD Procs, etc
but the concept will actually work. I have
had great success with this. I will admit
it does have some more complexity, but I'm
sure you know where to put the *don't shoot
yourself in the foot* edits and verification
processes, empty file handling ,etc. etc.

Even a bad shot when he accepts a challange. :)

Patrick, <;=)

P.S. And yes I do this, it is much more accurate
than install instructions.
Post by Joe
Regards,
Joe
Joe
2004-08-24 23:51:59 UTC
Permalink
Post by unknown
Post by Joe
Post by unknown
Patrick, <;=)
P.S. That said I think most of us have used this *technique*.
Not dangerous in application, just in proper implementation.
For one thing, it makes debugging a nightmare, especially if the
routine gets decataloged and deleted after it's run its course.
I'll
Post by unknown
Post by Joe
never forget the first time I saw procs getting written out to the MD
and executed from the app. I almost had a heart attack. I guess I'm
the proverbial old fart, but I was weaned on the concept of staying
away from the MD and keeping it lean and mean.
At any rate, I just don't see a single advantage to having an app
create code on the fly. Enlighten me, perhaps..
I don't think I'm going to tell you anything you don't already know
Joe but here goes.
Write a program (PROGRAM1) that selects all the 'D' pointers in an
account and then reads the Dict of the Files for size. Use this data to
create an array in PROGRAM2 (PREC<1> is F.RECS = 'file name
array').
Post by unknown
PREC<2>='file size of files'
Make PROGRAM2 do the following;
Count and loop through the files doing
EXECUTE "T-FWD"
for i = 1 to F.CNT
EXECUTE "CREATE-FILE ":F.RECS<1,I>:' ':F.REC<2,I>
T-LOAD <the data of the file>
T-LOAD <the dicts of the file>
next i
write PROGRAM2 to XXBP
Have PROGRAM1 do the following
EXECUTE your T-SELECT & T-REW
T-DUMP XXBP PROGRAM2 to tape
for i=1 to F.CNT
T-DUMP <the data of the file>
T-DUMP <the dicts of the file>
Take the tape to a site
CREATE-ACCOUNT <new account>
set the tape
T-LOAD <a program file>
compile and catalog the program
run it and recreate the account
This assumes no Q-pointers, MD Procs, etc
but the concept will actually work. I have
had great success with this. I will admit
it does have some more complexity, but I'm
sure you know where to put the *don't shoot
yourself in the foot* edits and verification
processes, empty file handling ,etc. etc.
Even a bad shot when he accepts a challange. :)
Patrick, <;=)
P.S. And yes I do this, it is much more accurate
than install instructions.
Patrick, that's a great example, and I'm sure it works very well for
what it was intended. However, this type of thing isn't really part
of the app itself (IOW, Johnny User won't necessarily be running this
code in his everyday life), so I'm still wondering what the advantage
of generating code within the standard app would be.

Regards,
Joe
Luke Webber
2004-08-24 02:08:54 UTC
Permalink
Post by unknown
I agree Adam, and at times it can be a very *elegant* solution. With the
proper precautions in place of course. I always read the MD file first
to avoid conflicts (and DECATALOG afterward). But with a *truly* unique
name this should never be an issue (but I still check).
Patrick. <;=)
P.S. And Luke, don't deny you've ever done this. Then I would be
really *amazed*. ;)
Oh, I've done it alright, but just the once in a 4GL tool to generate
data-entry programs.

That is, unless you count the code generator I wrote to build Java
classes to interact with another 4GL. That one didn't have to do very
much, because most of the smarts were embedded in the superclasses.

Oh, and the other tool I wrote to generate jBASE jEDI code in C to map
Oracle tables to MV data files.

OK, so that's three times all up. But only once to build BASIC code. <g>

Luke
Patrick Payne
2004-08-24 17:30:11 UTC
Permalink
Doug's coyote product is more than just a web server. He also has his
own App development tools. What this means is you can write a web
page in the editor and include pick code directly in your html page
the same way you would include code in a PHP, perl, asp page.

The coyote web server then on the fly has to somehow pull this code
out, compile it, run it, and return the result in the page.

Now, in my web server I did not allow actual code, but I did create
insert points that would be actual pick statements.

Example
<html>
<body>
|INREC<1,1>| * pick variable
|OCONV(INREC<2,1>,'MD2-')| * pick variable run thru oconv
|TIMEDATE()| * pick function
|INREC<10,2> + INREC<11,1>| * two pick variables with math
Enter your name <input type=button name="INREC&lt;3&gt;" size=20
</body>
</html>

Now, I could have TRIED to write my own interperter and try to
evaluate what the user was trying to do. Or I could write a pre
routine that would grab each of the insert points and create a
subroutine as such

* SOME SET OF CODE HAS GOTTEN ME
PRE.HTML= *HTML UP TO THE INSERT POINT
AFT.HTML= *HTML AFTER THE INSERT POINT
INSERT.CODE= * MY INSERT CODE PARSED OUT, I.E.
INSERT.CODE="INREC<1,1>"
ROUTINE<-1>='SUBROUTINE GET.INFO(RETURN.DATA)'
ROUTINE<-1>='RETURN.DATA = ':INSERT.CODE
ROUTINE<-1>='RETURN'
WRITE ROUTINE TO BP.FILE, 'GET.INFO'
EXECUTE 'COMPILE BP GET.INFO' CAPTURING RESULT
* EVALUATE RESULT FOR ERRORS
EXECUTE 'CATALOG BP GET.INFO'
CALL GET.INFO(RETURN.DATA)
HTML=PRE.HTML:RETURN.DATA:AFT.HTML
..
..


Now this is overly simplistic of what I am actually doing, and in
reality I only have to do this compile once for a page, that is until
changes are made. But how else is microsoft/php etc doing this? It
seems to me that ASP is pulling code out from the .asmx page and
running it thru its vb compiler. I have seen the compile errors when
you do things wrong.

The bottom line is a VM environment like d3 does this very well and
very fast. This makes D3 a pretty decent web development environment.
Jbase on the other hand is more c++ compiler specific and you run
into all sorts of issues.

#1: The cataloging Dll's - Both a sharing issue (two programs cannot
compile into the same dll at the same time) or (you cannot compile
into a DLL group while a routine is being execute by somebody else)

#2: Compile times are much longer

The bottom line is Jbase really does not lend itself to this type of
work. The vme environment works much better, and I am assuming the
PHP, asp, asp.net, etc all implement a VME style environment for
running web junk and allowing the on the fly interpertation of code.

- Patrick
Post by Luke Webber
Post by Patrick Payne
D3's vme environment in some cases offers features/performance that
the native O/S environment of jbase does not. My app for example (web
app) creates code on the fly, compiles it, and calls it. I attempted
a few years ago to port this to jbase and had numerous issues with the
Jbase compile/catalog environment. Doug at modsoft mentioned the same
issues (probably the reason Coyote is still not ported to jbase).
I think it's more likely that jBASE simply doesn't need Coyote, because
you can write web apps directly in jBASE that will run under Apache or IIS.
Post by Patrick Payne
This means for me and what I am trying to do D3 is better than Jbase.
Remember we are talking about solutions and not technology. The end
user just cares it works.
I'd be very interested to know why you feel you need to do this
online-compilation trick, and especially for a web app. I've only ever
needed to build code as part of a 4GL in the past. I can see that jBASE
would certainly be a lot slower at this trick, but I'll bet there are
alternative, and probably better, solutions to your problem.
Luke
Jeffrey Kaufman
2004-08-24 18:56:17 UTC
Permalink
I guess I don't understand why the program has to be compiled each time.
Can't you just use variables in the program? For example:

...
(get cust.no from the url string)
...
OPEN "CUSTOMER" TO CUSTOMER ELSE do something exciting
READ CUST.REC FROM CUSTOMER, CUST.NO ELSE CUST.REC="UNKNOWN"
CUST.NAME=CUST.REC<1>
...
...
HTML.REC<-1>="<tr><td>":CUST.NO:"</td><td>":CUST.NAME:"</td></tr>"
...
etc.

That way you read the customer record and use the same compiled code each
time. I've written an entire customer service and e-commerce module in html.
The programs are only compiled once per revision using the above technique.
--
Jeffrey Kaufman
Key Data Systems Group
www.keydata.us
559-432-3832
559-432-4657 fax

Western Pacific Supply
www.westpacsupply.com
888-WestPac
Post by Patrick Payne
Doug's coyote product is more than just a web server. He also has his
own App development tools. What this means is you can write a web
page in the editor and include pick code directly in your html page
the same way you would include code in a PHP, perl, asp page.
The coyote web server then on the fly has to somehow pull this code
out, compile it, run it, and return the result in the page.
Now, in my web server I did not allow actual code, but I did create
insert points that would be actual pick statements.
Example
<html>
<body>
|INREC<1,1>| * pick variable
|OCONV(INREC<2,1>,'MD2-')| * pick variable run thru oconv
|TIMEDATE()| * pick function
|INREC<10,2> + INREC<11,1>| * two pick variables with math
</body>
</html>
Now, I could have TRIED to write my own interperter and try to
evaluate what the user was trying to do. Or I could write a pre
routine that would grab each of the insert points and create a
subroutine as such
* SOME SET OF CODE HAS GOTTEN ME
PRE.HTML= *HTML UP TO THE INSERT POINT
AFT.HTML= *HTML AFTER THE INSERT POINT
INSERT.CODE= * MY INSERT CODE PARSED OUT, I.E.
INSERT.CODE="INREC<1,1>"
ROUTINE<-1>='SUBROUTINE GET.INFO(RETURN.DATA)'
ROUTINE<-1>='RETURN.DATA = ':INSERT.CODE
ROUTINE<-1>='RETURN'
WRITE ROUTINE TO BP.FILE, 'GET.INFO'
EXECUTE 'COMPILE BP GET.INFO' CAPTURING RESULT
* EVALUATE RESULT FOR ERRORS
EXECUTE 'CATALOG BP GET.INFO'
CALL GET.INFO(RETURN.DATA)
HTML=PRE.HTML:RETURN.DATA:AFT.HTML
..
..
Now this is overly simplistic of what I am actually doing, and in
reality I only have to do this compile once for a page, that is until
changes are made. But how else is microsoft/php etc doing this? It
seems to me that ASP is pulling code out from the .asmx page and
running it thru its vb compiler. I have seen the compile errors when
you do things wrong.
The bottom line is a VM environment like d3 does this very well and
very fast. This makes D3 a pretty decent web development environment.
Jbase on the other hand is more c++ compiler specific and you run
into all sorts of issues.
#1: The cataloging Dll's - Both a sharing issue (two programs cannot
compile into the same dll at the same time) or (you cannot compile
into a DLL group while a routine is being execute by somebody else)
#2: Compile times are much longer
The bottom line is Jbase really does not lend itself to this type of
work. The vme environment works much better, and I am assuming the
PHP, asp, asp.net, etc all implement a VME style environment for
running web junk and allowing the on the fly interpertation of code.
- Patrick
Post by Luke Webber
Post by Patrick Payne
D3's vme environment in some cases offers features/performance that
the native O/S environment of jbase does not. My app for example (web
app) creates code on the fly, compiles it, and calls it. I attempted
a few years ago to port this to jbase and had numerous issues with the
Jbase compile/catalog environment. Doug at modsoft mentioned the same
issues (probably the reason Coyote is still not ported to jbase).
I think it's more likely that jBASE simply doesn't need Coyote, because
you can write web apps directly in jBASE that will run under Apache or IIS.
Post by Patrick Payne
This means for me and what I am trying to do D3 is better than Jbase.
Remember we are talking about solutions and not technology. The end
user just cares it works.
I'd be very interested to know why you feel you need to do this
online-compilation trick, and especially for a web app. I've only ever
needed to build code as part of a 4GL in the past. I can see that jBASE
would certainly be a lot slower at this trick, but I'll bet there are
alternative, and probably better, solutions to your problem.
Luke
Luke Webber
2004-08-24 22:44:27 UTC
Permalink
Post by Patrick Payne
Doug's coyote product is more than just a web server. He also has his
own App development tools. What this means is you can write a web
page in the editor and include pick code directly in your html page
the same way you would include code in a PHP, perl, asp page.
The coyote web server then on the fly has to somehow pull this code
out, compile it, run it, and return the result in the page.
I admit I'd forgotten this detail.
Post by Patrick Payne
Now, in my web server I did not allow actual code, but I did create
insert points that would be actual pick statements.
Example
<html>
<body>
|INREC<1,1>| * pick variable
|OCONV(INREC<2,1>,'MD2-')| * pick variable run thru oconv
|TIMEDATE()| * pick function
|INREC<10,2> + INREC<11,1>| * two pick variables with math
</body>
</html>
I've done similar things, using custom tags parsed by a Java servlet.
Post by Patrick Payne
Now, I could have TRIED to write my own interperter and try to
evaluate what the user was trying to do. Or I could write a pre
routine that would grab each of the insert points and create a
subroutine as such
* SOME SET OF CODE HAS GOTTEN ME
PRE.HTML= *HTML UP TO THE INSERT POINT
AFT.HTML= *HTML AFTER THE INSERT POINT
INSERT.CODE= * MY INSERT CODE PARSED OUT, I.E.
INSERT.CODE="INREC<1,1>"
ROUTINE<-1>='SUBROUTINE GET.INFO(RETURN.DATA)'
ROUTINE<-1>='RETURN.DATA = ':INSERT.CODE
ROUTINE<-1>='RETURN'
WRITE ROUTINE TO BP.FILE, 'GET.INFO'
EXECUTE 'COMPILE BP GET.INFO' CAPTURING RESULT
* EVALUATE RESULT FOR ERRORS
EXECUTE 'CATALOG BP GET.INFO'
CALL GET.INFO(RETURN.DATA)
HTML=PRE.HTML:RETURN.DATA:AFT.HTML
..
..
Now this is overly simplistic of what I am actually doing, and in
reality I only have to do this compile once for a page, that is until
changes are made. But how else is microsoft/php etc doing this? It
seems to me that ASP is pulling code out from the .asmx page and
running it thru its vb compiler. I have seen the compile errors when
you do things wrong.
Certainly. I suspected from what you were saying that you were
generating code on a per-request basis, which I'd have said was a
distinct problem.

BTW, "old" ASP didn't compile - it was strictly interpreted (yuck). And
I think PHP and Perl are always interpreted as well. JSP pages are
compiled into Java servlets.
Post by Patrick Payne
The bottom line is a VM environment like d3 does this very well and
very fast. This makes D3 a pretty decent web development environment.
Jbase on the other hand is more c++ compiler specific and you run
into all sorts of issues.
Issues, certainly, but surely not insurmountable ones? It seems to me
that you've written code which depends upon very specific types of
behaviour as defined by D3, and now you're complaining that jBASE
doesn't have the same peculiarities as D3.

Let's look at what you expect of the environment here...

1. The ability to compile code even if it's in use.
2. The ability to recognise and load new versions on the fly.

I'm willing to bet that point 2 falls down on systems other than jBASE.
In fact, if you weren't using call by value (CALL @), it would fall down
on D3. You'd have to restart the web server for each change to a
scripted page.

In any case, it's probably a simple thing to get around. Keep a version
number for each page on a file and increment it for each compilation.
You could cache the version numbers to save on file reads, if that
really matters (and it probabyl doesn't).
Post by Patrick Payne
#1: The cataloging Dll's - Both a sharing issue (two programs cannot
compile into the same dll at the same time) or (you cannot compile
into a DLL group while a routine is being execute by somebody else)
#2: Compile times are much longer
#1 is surmountable. Simply set up your environment variables so as to
compile one s/r to a library.

#2 really shouldn't be an issue if compilation is really only taking
place when a page is changed. Hell, if you needed to, you could take the
generation/compilation logic out of the web server and require the pages
to be compiled by the web programmer. Problem solved.
Post by Patrick Payne
The bottom line is Jbase really does not lend itself to this type of
work. The vme environment works much better, and I am assuming the
PHP, asp, asp.net, etc all implement a VME style environment for
running web junk and allowing the on the fly interpertation of code.
I think you're being a trifle unfair here. I could show you tricks that
jBASE can play that make it a far more flexible player in the web world,
but you're focussing on your own problems and ignoring the wider picture.

The bottom line for me is that, if jBASE were to precisely mimic D3 or
any other MV flavour, there would be no good reason for its existence. I
like it *because* it's different, and I think it's mostly different in
just the right ways. Obviously you and I are different as well, so we'll
probably just have to agree to differ. <g>

Luke
Tony Gravagno
2004-08-24 22:24:23 UTC
Permalink
Post by Luke Webber
I'd be very interested to know why you feel you need to do this
online-compilation trick, and especially for a web app. I've only ever
needed to build code as part of a 4GL in the past. I can see that jBASE
would certainly be a lot slower at this trick, but I'll bet there are
alternative, and probably better, solutions to your problem.
Luke and others: I often ask why people are doing something too,
because we often learn that they're approaching a goal using the wrong
tactics. But I also find it interesting that when someone finds that
one platform doesn't do something that people are used to doing
somewhere else, that others will "semi-justify" that deficiency by
questioning the fundamental need for the function.

Almost all modern languages have extensive support for dynamic
creation and execution of code at runtime. I won't cite code
examples, but offhand I know how to do this in Java, .NET languages,
JavaScript, Perl, C++, PHP, oh yeah...and most MV BASIC variants.
(The words Reflection, Emit, and Eval might be useful for anyone who
wants to Google but those keywords aren't too unique either, maybe try
"dynamic runtime code generation" or something similar.) Despite many
MV people not knowing how or why this is done, it's an extremely
popular development technique in the mainstream.

It doesn't really matter why jBASE doesn't do this, it simply doesn't.
But questioning why someone needs the functionality doesn't help
jBASE's position on the matter, or the people looking for the
functionality.

T
Luke Webber
2004-08-24 23:32:41 UTC
Permalink
Post by Tony Gravagno
Post by Luke Webber
I'd be very interested to know why you feel you need to do this
online-compilation trick, and especially for a web app. I've only ever
needed to build code as part of a 4GL in the past. I can see that jBASE
would certainly be a lot slower at this trick, but I'll bet there are
alternative, and probably better, solutions to your problem.
Luke and others: I often ask why people are doing something too,
because we often learn that they're approaching a goal using the wrong
tactics. But I also find it interesting that when someone finds that
one platform doesn't do something that people are used to doing
somewhere else, that others will "semi-justify" that deficiency by
questioning the fundamental need for the function.
I hope it didn't come across that way! I really did want to know what
the purposes of the code generation was. Once Patrick explained it, I
could see what he wanted, and could also see solutions to his problem.
Post by Tony Gravagno
Almost all modern languages have extensive support for dynamic
creation and execution of code at runtime. I won't cite code
examples, but offhand I know how to do this in Java, .NET languages,
JavaScript, Perl, C++, PHP, oh yeah...and most MV BASIC variants.
(The words Reflection, Emit, and Eval might be useful for anyone who
wants to Google but those keywords aren't too unique either, maybe try
"dynamic runtime code generation" or something similar.) Despite many
MV people not knowing how or why this is done, it's an extremely
popular development technique in the mainstream.
It doesn't really matter why jBASE doesn't do this, it simply doesn't.
But questioning why someone needs the functionality doesn't help
jBASE's position on the matter, or the people looking for the
functionality.
As I say, I didn't really want to come across that way. Part of the
problem of Usenet, I guess.

In any case, jBASE certainly *can* do those things, it just doesn't do
them in precisely the same way as D3. In the same way that there are
things which are tricky or virtually impossible to do in D3, jBASE may
sometimes need a bit of specialist knowledge to achieve your ends.

Luke
Joe
2004-08-24 23:55:20 UTC
Permalink
Post by Luke Webber
Post by Tony Gravagno
Post by Luke Webber
I'd be very interested to know why you feel you need to do this
online-compilation trick, and especially for a web app. I've only
ever needed to build code as part of a 4GL in the past. I can see
that jBASE would certainly be a lot slower at this trick, but I'll
bet there are alternative, and probably better, solutions to your
problem.
Luke and others: I often ask why people are doing something too,
because we often learn that they're approaching a goal using the
wrong tactics. But I also find it interesting that when someone
finds that one platform doesn't do something that people are used
to doing somewhere else, that others will "semi-justify" that
deficiency by questioning the fundamental need for the function.
I hope it didn't come across that way! I really did want to know
what the purposes of the code generation was. Once Patrick explained
it, I could see what he wanted, and could also see solutions to his
problem.
Post by Tony Gravagno
Almost all modern languages have extensive support for dynamic
creation and execution of code at runtime. I won't cite code
examples, but offhand I know how to do this in Java, .NET
languages, JavaScript, Perl, C++, PHP, oh yeah...and most MV BASIC
variants. (The words Reflection, Emit, and Eval might be useful for
anyone who wants to Google but those keywords aren't too unique
either, maybe try "dynamic runtime code generation" or something
similar.) Despite many MV people not knowing how or why this is
done, it's an extremely popular development technique in the
mainstream.
It doesn't really matter why jBASE doesn't do this, it simply
doesn't. But questioning why someone needs the functionality
doesn't help jBASE's position on the matter, or the people looking
for the functionality.
As I say, I didn't really want to come across that way. Part of the
problem of Usenet, I guess.
In any case, jBASE certainly *can* do those things, it just doesn't
do them in precisely the same way as D3. In the same way that there
are things which are tricky or virtually impossible to do in D3,
jBASE may sometimes need a bit of specialist knowledge to achieve
your ends.
Luke
What he said. ;)

But I'd still love to know what advantage there is to generating code
on the fly and running it from a standard app, regardless of the
platform or pick flavor.

Regards,
Joe
unknown
2004-08-25 01:15:28 UTC
Permalink
Post by Joe
Post by Luke Webber
Post by Tony Gravagno
Post by Luke Webber
I'd be very interested to know why you feel you need to do this
online-compilation trick, and especially for a web app. I've only
ever needed to build code as part of a 4GL in the past. I can see
that jBASE would certainly be a lot slower at this trick, but I'll
bet there are alternative, and probably better, solutions to your
problem.
Luke and others: I often ask why people are doing something too,
because we often learn that they're approaching a goal using the
wrong tactics. But I also find it interesting that when someone
finds that one platform doesn't do something that people are used
to doing somewhere else, that others will "semi-justify" that
deficiency by questioning the fundamental need for the function.
I hope it didn't come across that way! I really did want to know
what the purposes of the code generation was. Once Patrick explained
it, I could see what he wanted, and could also see solutions to his
problem.
Post by Tony Gravagno
Almost all modern languages have extensive support for dynamic
creation and execution of code at runtime. I won't cite code
examples, but offhand I know how to do this in Java, .NET
languages, JavaScript, Perl, C++, PHP, oh yeah...and most MV BASIC
variants. (The words Reflection, Emit, and Eval might be useful for
anyone who wants to Google but those keywords aren't too unique
either, maybe try "dynamic runtime code generation" or something
similar.) Despite many MV people not knowing how or why this is
done, it's an extremely popular development technique in the
mainstream.
It doesn't really matter why jBASE doesn't do this, it simply
doesn't. But questioning why someone needs the functionality
doesn't help jBASE's position on the matter, or the people looking
for the functionality.
As I say, I didn't really want to come across that way. Part of the
problem of Usenet, I guess.
In any case, jBASE certainly *can* do those things, it just doesn't
do them in precisely the same way as D3. In the same way that there
are things which are tricky or virtually impossible to do in D3,
jBASE may sometimes need a bit of specialist knowledge to achieve
your ends.
Luke
What he said. ;)
But I'd still love to know what advantage there is to generating code
on the fly and running it from a standard app, regardless of the
platform or pick flavor.
Regards,
Joe
Come on now Joe, I always thought instalation was an application ;)
(at least of the technology). If you want a 4GL code generator
talk to Luke <just kidding>. I've used code generators, but as I
said earlier. My application is data driven, and does not require
code generation. (yet)

That said the functionality is a benefit. (it does need to be applied
carefully).

Patrick, <;=)

P.S. Now for a *price* I could integrate it into something. :)
Joe
2004-08-25 02:15:06 UTC
Permalink
"Patrick Latimer" <"Patrick Latimer"> wrote in news:FJ-
Post by unknown
Post by Joe
Post by Luke Webber
Post by Tony Gravagno
Post by Luke Webber
I'd be very interested to know why you feel you need to do this
online-compilation trick, and especially for a web app. I've only
ever needed to build code as part of a 4GL in the past. I can see
that jBASE would certainly be a lot slower at this trick, but I'll
bet there are alternative, and probably better, solutions to your
problem.
Luke and others: I often ask why people are doing something too,
because we often learn that they're approaching a goal using the
wrong tactics. But I also find it interesting that when someone
finds that one platform doesn't do something that people are used
to doing somewhere else, that others will "semi-justify" that
deficiency by questioning the fundamental need for the function.
I hope it didn't come across that way! I really did want to know
what the purposes of the code generation was. Once Patrick
explained
Post by unknown
Post by Joe
Post by Luke Webber
it, I could see what he wanted, and could also see solutions to his
problem.
Post by Tony Gravagno
Almost all modern languages have extensive support for dynamic
creation and execution of code at runtime. I won't cite code
examples, but offhand I know how to do this in Java, .NET
languages, JavaScript, Perl, C++, PHP, oh yeah...and most MV BASIC
variants. (The words Reflection, Emit, and Eval might be useful for
anyone who wants to Google but those keywords aren't too unique
either, maybe try "dynamic runtime code generation" or something
similar.) Despite many MV people not knowing how or why this is
done, it's an extremely popular development technique in the
mainstream.
It doesn't really matter why jBASE doesn't do this, it simply
doesn't. But questioning why someone needs the functionality
doesn't help jBASE's position on the matter, or the people looking
for the functionality.
As I say, I didn't really want to come across that way. Part of the
problem of Usenet, I guess.
In any case, jBASE certainly *can* do those things, it just doesn't
do them in precisely the same way as D3. In the same way that there
are things which are tricky or virtually impossible to do in D3,
jBASE may sometimes need a bit of specialist knowledge to achieve
your ends.
Luke
What he said. ;)
But I'd still love to know what advantage there is to generating code
on the fly and running it from a standard app, regardless of the
platform or pick flavor.
Regards,
Joe
Come on now Joe, I always thought instalation was an application ;)
(at least of the technology).
Now there's another thread entirely! ;)
Post by unknown
If you want a 4GL code generator
talk to Luke <just kidding>. I've used code generators, but as I
said earlier. My application is data driven, and does not require
code generation. (yet)
Do you anticipate arriving at that point in the near future? If so,
why? I'm just trying to gain a new perspective here.
Post by unknown
That said the functionality is a benefit. (it does need to be
applied
Post by unknown
carefully).
Patrick, <;=)
What exactly is the functionaltity that's missing in static code, and
why is said functionality a benefit?
Post by unknown
P.S. Now for a *price* I could integrate it into something. :)
LOL! Now _there's_ the justification! 'Nuff said. ;)

Regards,
Joe
Mark Brown
2004-08-25 01:15:41 UTC
Permalink
System Builder and Symbion are two big examples I can think of.

Beyond that, have you ever written a one-line program to test an idea,
theory or syntax? I wrote a program I called SHOW to take a line and
compile it and run it. Anything I can enter as a single line or multple
lines separated by value marks (a natural fit with the D3 update processor)
will compile and run to whatever end I want.

Dynamic data processing.

<aside> Years ago, Ultimate offered a feature. If you entered an item in
the MD and the first line was the word PROGRAM, when you invoked that word
it would compile and run like a verb.
</aside>

Mark Brown
Post by Joe
But I'd still love to know what advantage there is to generating code
on the fly and running it from a standard app, regardless of the
platform or pick flavor.
Regards,
Joe
Joe
2004-08-25 02:27:16 UTC
Permalink
Post by Mark Brown
System Builder and Symbion are two big examples I can think of.
I'm not too familiar with Symbion, but I wonder what people really
think of System Builder. I've heard both extremes - some love it and
some hate it. Most of the ones I know that don't like it are ones
who've tried to modify/enhance it.
Post by Mark Brown
Beyond that, have you ever written a one-line program to test an
idea, theory or syntax? I wrote a program I called SHOW to take a
line and compile it and run it. Anything I can enter as a single
line or multple lines separated by value marks (a natural fit with
the D3 update processor) will compile and run to whatever end I
want.
All well and good, but I still don't see a place for it in a vertical
app.
Post by Mark Brown
Dynamic data processing.
In order to write good code that generates and runs good code, you
have to know ahead of time what situations you'll encounter in order
to provide for them. Maybe I'm not seeing the forest for the trees,
but to me that fact alone implies that you could've/should've written
static code to handle said situations and called each module
(subroutine) as needed.
Post by Mark Brown
<aside> Years ago, Ultimate offered a feature. If you entered an
item in the MD and the first line was the word PROGRAM, when you
invoked that word it would compile and run like a verb.
</aside>
Mark Brown
I was weaned on an Ultimate (along side a Prime and Microdata, and
later a Pertec). I used to use that feature all the time - very
convenient for testing/developing.

I wonder if there were systems were out there that actually used that
in production. No active compiling or cataloging for an install -
just plop the source down into the MD and it runs! What a concept...
;)

Regards,
Joe
Roger Grosser
2004-08-28 18:49:15 UTC
Permalink
Post by Mark Brown
System Builder and Symbion are two big examples I can think of.
Is Symbion even still around? I worked with the man who developed
Symbion (his name escapes me right now) back in the Chicago area at a
company called Successories (they sell motivational items). We never
actually used the software, at least while I worked there, but he was
training us on it in preparation for use. I remember it being very
similar to the System Builder product.

I know that he was based out of the Denver area, but I don't recall
hearing anything about or from him since the 90's.
Post by Mark Brown
Beyond that, have you ever written a one-line program to test an idea,
theory or syntax? I wrote a program I called SHOW to take a line and
compile it and run it. Anything I can enter as a single line or multple
lines separated by value marks (a natural fit with the D3 update processor)
will compile and run to whatever end I want.
Dynamic data processing.
<aside> Years ago, Ultimate offered a feature. If you entered an item in
the MD and the first line was the word PROGRAM, when you invoked that word
it would compile and run like a verb.
</aside>
Mark Brown
Post by Joe
But I'd still love to know what advantage there is to generating code
on the fly and running it from a standard app, regardless of the
platform or pick flavor.
Regards,
Joe
Bruce Holt
2004-08-28 20:27:52 UTC
Permalink
Gary Huffer.
Post by Roger Grosser
Post by Mark Brown
System Builder and Symbion are two big examples I can think of.
Is Symbion even still around? I worked with the man who developed
Symbion (his name escapes me right now) back in the Chicago area at a
company called Successories (they sell motivational items). We never
actually used the software, at least while I worked there, but he was
training us on it in preparation for use. I remember it being very
similar to the System Builder product.
I know that he was based out of the Denver area, but I don't recall
hearing anything about or from him since the 90's.
Post by Mark Brown
Beyond that, have you ever written a one-line program to test an idea,
theory or syntax? I wrote a program I called SHOW to take a line and
compile it and run it. Anything I can enter as a single line or multple
lines separated by value marks (a natural fit with the D3 update processor)
will compile and run to whatever end I want.
Dynamic data processing.
<aside> Years ago, Ultimate offered a feature. If you entered an item in
the MD and the first line was the word PROGRAM, when you invoked that word
it would compile and run like a verb.
</aside>
Mark Brown
Post by Joe
But I'd still love to know what advantage there is to generating code
on the fly and running it from a standard app, regardless of the
platform or pick flavor.
Regards,
Joe
Tony Gravagno
2004-08-29 01:13:12 UTC
Permalink
Yup. I spent some time with Gary at the March Spectrum in Las Vegas.
I'll tell ya guys, his software is Hot. The latest incarnation is
built with Accuterm GUI, and makes maximum use of the tool. Yes, this
very much like SB+. The same code will render as an update screen or
inquiry, or as GUI or green screen. Building screens is very easy and
he does some neat tricks. I know this isn't entirely unique, but it's
all done very well - and is very MV license friendly. The reporting
is also excellent. It takes some time to figure out what he's doing
in there, but once you get it ... "Oh, I got it - Cool..."

I don't believe Gary is going public with this new version yet, but I
wish he would. He has some great stuff and I think it deserves more
exposure.

HTH,
Tony


(Great to see ya Bruce!)
Post by Bruce Holt
Gary Huffer.
Post by Roger Grosser
Is Symbion even still around?
Roger Grosser
2004-08-29 15:21:39 UTC
Permalink
Ah, yes. Gary Huffer. I knew someone could jog my memory! Thanks, Bruce.
Post by Tony Gravagno
Yup. I spent some time with Gary at the March Spectrum in Las Vegas.
I'll tell ya guys, his software is Hot. The latest incarnation is
built with Accuterm GUI, and makes maximum use of the tool. Yes, this
very much like SB+. The same code will render as an update screen or
inquiry, or as GUI or green screen. Building screens is very easy and
he does some neat tricks. I know this isn't entirely unique, but it's
all done very well - and is very MV license friendly. The reporting
is also excellent. It takes some time to figure out what he's doing
in there, but once you get it ... "Oh, I got it - Cool..."
I don't believe Gary is going public with this new version yet, but I
wish he would. He has some great stuff and I think it deserves more
exposure.
HTH,
Tony
(Great to see ya Bruce!)
Post by Bruce Holt
Gary Huffer.
Post by Roger Grosser
Is Symbion even still around?
Bruce Holt
2004-08-29 22:40:53 UTC
Permalink
Post by Tony Gravagno
Yup. I spent some time with Gary at the March Spectrum in Las Vegas.
I'll tell ya guys, his software is Hot. The latest incarnation is
built with Accuterm GUI, and makes maximum use of the tool. Yes, this
very much like SB+. The same code will render as an update screen or
inquiry, or as GUI or green screen. Building screens is very easy and
he does some neat tricks. I know this isn't entirely unique, but it's
all done very well - and is very MV license friendly. The reporting
is also excellent. It takes some time to figure out what he's doing
in there, but once you get it ... "Oh, I got it - Cool..."
I don't believe Gary is going public with this new version yet, but I
wish he would. He has some great stuff and I think it deserves more
exposure.
HTH,
Tony
(Great to see ya Bruce!)
(Emerging from the shadows)

<FYI>
Gary has a relationship with Rigden, Inc. in Boulder, CO, which uses Symbion
as a front end to their product (direct marketing/catalog sales software).
</FYI>
Mark Brown
2004-08-29 23:03:01 UTC
Permalink
<twopence>
I contracted with Jim Jobson at Rigdon for a few months in 93-4 and used
Symbion. It was a good product then and though I haven't seen this latest
version, I've talked to Gary within the last few months and I have no reason
to believe anything has fallen below his normal high standards.
</twopence>

Mark Brown
Post by Bruce Holt
Post by Tony Gravagno
Yup. I spent some time with Gary at the March Spectrum in Las Vegas.
I'll tell ya guys, his software is Hot. The latest incarnation is
built with Accuterm GUI, and makes maximum use of the tool. Yes, this
very much like SB+. The same code will render as an update screen or
inquiry, or as GUI or green screen. Building screens is very easy and
he does some neat tricks. I know this isn't entirely unique, but it's
all done very well - and is very MV license friendly. The reporting
is also excellent. It takes some time to figure out what he's doing
in there, but once you get it ... "Oh, I got it - Cool..."
I don't believe Gary is going public with this new version yet, but I
wish he would. He has some great stuff and I think it deserves more
exposure.
HTH,
Tony
(Great to see ya Bruce!)
(Emerging from the shadows)
<FYI>
Gary has a relationship with Rigden, Inc. in Boulder, CO, which uses Symbion
as a front end to their product (direct marketing/catalog sales software).
</FYI>
unknown
2004-08-24 19:54:28 UTC
Permalink
Post by CM
Hi Folks
Could someone please be so kind as to post some tips
& tricks on converting a Jbase system to D3.
Many Thanks
Chris
So Chris ...

How's that conversion going?
Loading...