Page 1 of 1

Some question just for knowledge.

Posted: Fri Aug 07, 2009 11:51 am
by ConvertFromOldNGs
by JADE Kid - Ray Hidayat >> Wed, 12 Apr 2000 6:42:19 GMT

Can someone tell me why JADE 5.0 was called JADE 5.0 and not JADE 4.2? What was the major change in it?

Just like between C and C++ was the object-oriented bit, if you didn't know.

Something tells me that JADE was written in Microsoft Visual C++ as an MFC (Microsoft Foundation Classes) program.Is that true?

--
Ray Hidayat
JADE Kid - 2000
www.jadekids.com

Re: Some question just for knowledge.

Posted: Fri Aug 07, 2009 11:51 am
by ConvertFromOldNGs
by Dean Cooper >> Wed, 12 Apr 2000 7:10:13 GMT
Can someone tell me why JADE 5.0 was called JADE 5.0 and not JADE 4.2?
What was the major change in it?

It was called JADE 5 because it was a major content release. Apart from numerous improvements "under the hood", there was also significant new feature content to warrant a jump from JADE 4 to 5 (eg: thin client, online backup, ActiveX exposure, patch info, global instance visibility, etc).
Something tells me that JADE was written in Microsoft Visual C++ as an MFC (Microsoft Foundation Classes) program.Is that true?

The development environment and painter are written in JADE. The stuff you see in the bin directory (kernel/object manager, database, compiler, interpreter, GUI engine, server, networking/RPC, app server/thin client, etc, etc) is written in MSVC C++ (we switched from Borland to MSVC in JADE 5). A few of the outer modules use MFC, but the vast majority (certainly all of the core modules) don't. Remember, we have to build all of the server-side components on AIX as well.

Dean.

Re: Some question just for knowledge.

Posted: Fri Aug 07, 2009 11:51 am
by ConvertFromOldNGs
by JADE Kid - Ray Hidayat >> Wed, 12 Apr 2000 7:29:18 GMT

Thanks for answering! That is very interesting.
It's sad that I didn't get juice, or a thin client with my free JADE Kit for a JADE Kid.
But overall, I first used JADE 4.0 restricted version. I never saw any difference apart from the background.
Now I know.

It seems quite amazing that you can write JADE in JADE! But one question I have alway wondered about...
If you write JADE in JADE, doesn't it have to load JADE 4 before JADE 5? As far as I can see, there is nothing that shows that two JADE's are loaded. It doesn't get slower or anything. How does it do that, and is there a way I can get my programs to load just as fast as that?

Ray Hidayat
JADE Kid - 2000
www.jadekids.com

Re: Some question just for knowledge.

Posted: Fri Aug 07, 2009 11:51 am
by ConvertFromOldNGs
by Dean Cooper >> Wed, 12 Apr 2000 8:21:35 GMT
If you write JADE in JADE, doesn't it have to load JADE 4 before JADE 5?

No, a previous release of JADE isn't required.

If you have a look in your system directory, you'll see several _sys*.dat files. These files contain the system schema definitions (ie: the objects that define the RootSchema, the development environment, the painter, etc). These files are the system equivalents of the _user*.dat files, which contain the objects that define all of your own (ie: user) schemas.

To run one of your JADE applications, you set up a shortcut to jade.exe and give it command line parameters specifying the path, schema, name, etc of the app that you want to run. When you invoke this shortcut, JADE uses these parameters in conjunction with the schema definition objects in the _user*.dat files to create a process and the appropriate environmental objects, and runs your app.

Running the development environment is similar. If you have a look at the shortcut you use to bring up the development environment, you'll see much the same thing. It's a shortcut to jade.exe (the same program used to initiate your user apps) and has command line parameters specifying that you want to run JADE itself. The difference when you invoke this shortcut is that the kernel recognises that you're starting a system app, and obtains the schema definition objects from the _sys*.dat files.

Apart from where the schema definition objects are located, the mechanism to run systems apps (ie: the development environment) is pretty much the same as it is to run user apps.

The definition of JADE is stored in JADE itself. It's a self-describing system. That's why, for a given JADE environment, we don't need anything outside that environment to be able to run.

Obviously there's a bit more to it than that behind the scenes, but going into too much more detail is difficult without a whiteboard! :-)

Dean.

Re: Some question just for knowledge.

Posted: Fri Aug 07, 2009 11:51 am
by ConvertFromOldNGs
by John Porter >> Fri, 14 Apr 2000 7:38:27 GMT
It seems quite amazing that you can write JADE in JADE! But one question I have alway wondered about...
If you write JADE in JADE, doesn't it have to load JADE 4 before JADE 5? As far as I can see, there is nothing that shows that two JADE's are loaded. It

This is really an interesting concept, which I have been familiar with for years due to my LINC experience. Everyone I mention it to sort of mentally reels for a moment before concluding they're missing something.

It's kind of like taking a picture of a camera. How can you take a picture of a camera when the camera has to be behind the camera to see itself? Imagine producing a product catalog for Ken's Camera Shop - lots of pictures of cameras. If you think about it for a moment it becomes obvious there are at least _two_ cameras involved in each photo - one taking the picture, the other "posing". Of course when it comes to computers, it's very easy to have multiple compilers.

Based on my LINC experience, I'd guess that Jade 5.0.15 was written and compiled with Jade 5.0.14, and when 5.0.15 is ready and tested 5.0.14 is set aside and 5.0.15 is used to start on 5.0.16. Am I right? Or maybe 5.0.11 was used to make 5.0.12 through 5.0.16...

Cheers,
John P