Club 4D de Montréal




Qu'est-ce que 4D?


Adresses des membres



Site officiel de 4D


Notes on Jean-Pierre Ribreau's presentation to the Club 4D de Montréal on October 27th 1998.

I'll start with a bit of a warning: these are notes taken on the fly during the presentation. Although I've tried to be as accurate as possible, it's very likely that I've made a few mistakes during my note taking. Please don't use this document as a source of great insight in order to help you make any sort of business decision. And if ACI or ACI US or Agoratech deny any of the stuff found in here, than it's my fault and no one else's for not taking better notes. So, now that I've properly tried to cover my ass, let the fun begin!

Opening word from René Ricard: thank you to Agoratech and JPR for taking the time to do the presentation.

4D v6.5
Will be in beta around mid November.
It's already very stable.
Final in Q1 de 1999 (probably February)
350 new features were planned for 6.5, 200 have been implemented.
They've been debugging since end of June (so no new features since then)
After 6.5, there should be a 6.6.
The engine hasn't been changed, features have been added on top of what exists.
The optimisation is based on the available memory. There's a new part of the engine which is used when there's enough memory. If the memory is too low, than the old engine is used.
Giving 12MB to 4D could be enough to activate the new engine.

4D v7
The development team was split in two: one works on 6.5 and the other on 7.
6.5 also contains the new framework developed for v7, independently of Altura(?)
7 was programmed from scratch. Everything is object oriented.
V7 is planned for around Q1 2000 (so around the first 250 years, joked JPR).
As good as the 6.5 speeds are, the speeds for 7 are much better.
In v7 there is the notion of processes and contexts instead of just processes. For example, a process could have two records being currently modified for the same file.
Will be able to programatically add new tables and new fields.
At first(?) the limit will be of 32000 tables and 32000 fields, but the real limits should settle around 2 billion.

Performance demo of 4D v6.5
We can go back and forth between 4D 6.5 and 6.0.5, the structure isn't affected.
The demo was done on an old G3 PowerBook with a debugging version of 4D v6.5, so the final speeds should be better than what we were shown.
The database used holds 100000 records.
4D v6.0.5
- approx. 30 to 40 seconds for a sequential searching, indexing or joining
- Sort on two fields too long to show (17 minutes said JPR)
4D v6.5
- Sequential search: 10 seconds. The other examples were also much faster.
- Sort on two fields: 20 seconds
Overall, much much faster than before.

New commands
Query with Array: uses an array (32000 items) to do a search
On Before Keystroke and On After Keystroke events
Get Index Key: gives access to the index without changing the current selection
Possible to create a kind of set that will hilite the selected records (works on sorted selections) when used.
It is now possible to have buttons in the header for, for example, sorting
A new "splitter" lets you resize columns like with ALP.
On Click now returned when clicking on a record in a list.
On timer: lets you call a layout procedure automatically every X ticks.

Interface elements
New commands now let us move objects around on the screen and we can also calculate an object's position with a helpful new On Resize event.
A speed (in ticks) value can now be added to an animated button.
Splitters can also be used in editor (no code needed)
Proportional positioning of objects can be done with a bit of code.

In the database properties there is now an automatic comments feature with colours for certain words and contextual menus. These are for comments like the ones we can add with Insider.
6.5's web server can handle multi homing and uses JavaScript to implement some of the entry controls found in 4D (minimum value, maximum, etc.)
JPR said there was much much more new web stuff.
There are now contextual menus for the layout editor
New ways of moving markers in a layout: instead of using the triangles in the rulers, you can now directly drag the marker's line when it is shown.
New tools pallet with pop-up menus of choices. The second pallet can now be popped open at the end of the first one.
There is a new property list to see the settings of the layout or it's objects
Form properties dialog now contains menu information.
Explorer lets you scroll through a method's comments and even type it in. these comments can be used in Insider.
Breaks can be set directly in the form editor (which should mean the end of the need of the Trace command one of these days).
Some syntaxic analysis done in the method editor (tells you about missing parenthesis, etc.)
The syntax of a command now shows up at the top of the editor's window.
The help file is now available in the Explorer and you can drag a command from he explorer to a method and have it show up with all it's needed parameters.
Mini insider integrated into 4D (stuff is pre-parsed). No replace, just find.
Picture library is also a mini paint program with helpers for animated buttons
Dragging a picture creates a new picture button with some preset parameters
Number 33 in button with animation changes the look of the button when mouse goes over it.
Passwords: we can now create a new plugin that handles the password management (ex: on Windows, you could use the NT passwords scheme for 4D)
We'll be seeing new password plugins from companies like Foresight, etc.
Don't forget your password anymore, because 4D will pass the encryption to the external
4D Tools for 6.5 will do some form of defragmentation on the datafile.
Execute on client (like execute on server but on client machines)
Demoed a game that works on 4D (space invader like)
4D open for Java (seems to be a few new plans for 4D Open). This should open a lot of possibilities.
JPR mentioned the possibility of 4D Open for Windows CE.
Thinking about 4D Open for Unix (Linux) but nothing decided yet.
Server v7 should be usable in Unix, network components transferred to Unix already.
Working on 4D for MacOS X with the Carbon APIs.
New long comments in the method editor(?)
Hierarchical list can now hold 256 characters
New import and export editor give better control and preview capabilities

Runtime Explorer
Runtime explorer lets you see and change data like the debugger, but it's not the debugger.
Contains cache statistics: gives details on all sort of cache stuff
Also works from the compiler (but you can't change variables when compiled)
Shows the breaks.
Shows process info with statistics.

4D Web Server
HTML 3.2
Background pictures.
Attributes for a field translated for Javascript
Two modes for the web server: with and without context. No context mode has it's advantage because 4D doesn't check the number of connected users vs. the nb of licenses.
Pentium 200 serves around 12 page a second
Send Blob - HTML: page contained in a blob and sent (and created dynamically). Non contextual so you can use the BACK button.
4D now acts like a real web server.
Should work with plugins (only had a Windows plugin so couldn't be showed). 4D sends the image of the plugin and the plugin gets back the location where the user clicked, etc.
Frames are supported.
4D Handles statistics on it's web server for the administrator.
4D now also keeps a log of everything in a text file.
SMTP will be included as a plugin for 6.5 and later integrated (PIT?)
SSL: later use smart cards to handle encryption. Other encryptions methods could also be implemented later on.
KLELINE will be recommended as a purchase method for merchant web site

4D Write
Uses the new "framework".
Show a document with 702 pages.
Has fast live scrolling.
Multiple undo and redo (levels depend on memory).
Paste picture lets you paste in on all pages automatically (ex: background image).
Print preview like 4D with a zoom.
Handles tables (kind of like Word) with ruler management for cells.
Colours for underlines.
Colours for the Shadow style.
Can do a find on colours in the text (with style combinations).
Find on paragraph types.
Find on borders.
Multiple columns with separator options.
Can split views of the text (thanks to the new "framework").
Document statistics can be accessed procedurally.
Exchanging documents with Word must be done through RTF.

Shows detailed information on tables and fields.
Mentioned that contrary to what we may have heard, there aren't really any ghost indexes and the record sizes have always worked OK. Those "ghosts" are actually indexes that were interrupted before they could be completed which 4D says is still being used even though it isn't. [Ed. Don't quote me on this last item, all this really went by quickly!]
Mentioned that he considered DatAnalyser to be a better analysis tool than DataCheck because of all the tools it offers.
Shows statistics on file fragmentation.

Finally, he showed:
After reading an article that didn't like 4D's speed, he wrote a prime number generator that can scan 10 000 000 numbers in 6 seconds (found 664 580 primes). It does 70 000 000 loops in 6 seconds and says it's faster than C++ for this specific function.

Says that it's developers that sell 4D.
ACI has to have a powerful tech support. ACI France can offer this.
There is a TECHNICAL INTEREST GROUP(?). It's a link between all tech support, sort of like the NUG. If they can't solve a problem, they post it there. It the list can't solve it than it goes up the expertise ladder.
It used to be only for ACI shops but is now also available to distributors (like Agoratech).

An ACI Service available in France (cast cost up to 3000$ a day) looks into the analysis and/or the code to reassure big/important clients. This guarantees that analysis is good and that if developer can't do it (for what ever reason), some other will be able to. They will also help with development problems.
In Europe, there are 4 people trained to handle this. If they can't find a solution, they talk to JPR. They would even consider changing 4D if anything couldn't be done within the existing functionality.

They'll be making evangelist groups (who work for free): developers that help other developers (for presentations, for example). They'll be compensated with the products they purchase and by their notoriety.

He also mentioned that he was happy to hear about how the Club 4D de Montréal operated. That is that the members not only help each other out but even pass along contracts to one another that they're either too busy to handle or aren't technically comfortable with. He said this reminds him of the situation in Japan and that he hoped he would one day see the same thing in France.

Also said that documentation and support for creating externals would now be handled by a third party. [Ed.: I won't mention the name, but think of a big plugin developer and you're probably right.]