I'm looking at custom constants again and have put together some thoughts.
I wanted to post them here for the sake of the archives, and to solicit
expansions, corrections, tips and the like. If you've got anything to add,
please contribute!

Here goes:

* Right now, not that many people are using thread-safe processes in V16,
but that will change. One of the limits of preemptive mode is that you
cannot use IP variables. For a lot of existing 4D systems, IP variables
have been used instead of custom constants. So, going forward, making
custom constants easier to love is a Very Good Thing.

* Custom constants are great, but they can be a bit of a pain...so they
aren't used as universally as they could be. (Should be?)

* One of the pains is that you have to reopen the database to see custom
constant modifications. *This makes sense.* Constants are values that
cannot change at runtime, so 4D loads them once at startup before our code.
*But this is a pain.* If you agree, please vote in favor of this feature
request:

  Please add a 'Reload constants' command
  http://forums.4d.fr/Post/EN/19514761/1/19514762

* 4D supports custom constants of the simple types Longint, Real, and
String.

* Boolean would be a big help, please vote in favor of this idea here:

  Please add support for custom constants of type Boolean
  http://forums.4d.fr/Post/EN/19514786/1/19514787

* Constants are better than static variables because no lookup,
initialization, etc. needs to be done. The value is set once and that's it.
In a compiled application, the value of the constant is baked right into
the code. So, you can throw away a constants file from a deployed component
or application.

* Duplicate constants are a Very Bad Thing. With that in mind:
-- Remove constants from compiled components. Helpful.
-- Consider a naming starting constants like K_ or your initials, a module
prefix, or a program-specific prefix.


* 4D Pop works fine, but then the constants definition is not in your code.
Alternatively, Jim Dorrance has posted some constants management code here
and Cannon Smith includes custom constants code in some of his (free)
modules. I'm using Cannon's code at the moment and it has made my life a
*lot* better. No criticism of 4D Pop (none! I'm grateful), but I find it
easier (a lot easier) to have everything in the code.

* Sigh. Constant names/labels are limited to 31 characters. Why? No idea.
If you agree that this limit is too low, please vote in favor of this
request:

Raise the 31 character name limit on methods
http://forums.4d.fr/Post/EN/18946884/1/18946885

It's on 4 stars with 56 votes. Four more and it hits 60 votes!

P.S. If you don't think 31 characters is too low a limit for names, you are
a monster. Just saying.


What have I missed? Been misleading about? Been wrong about? Please post
tips, corrections, suggestions, etc.
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to