On Oct 11, 2018, at 9:37 AM, Peter Jakobsson wrote:

> I think I might happily pay the price of recreating the variable table for 
> every process (since I never noticed any adverse effect of that) and use 
> naming conventions to avoid conflicts to get those features ! ;)
> 
> The original selling point of 4D was that it was stateful and that 
> statefullness is what gave us massive productivity gains. Lower level 
> languages like the Microsoft developer platforms, Delphi and even 
> Javascript/Python type environments had the versatility but you had to pay 
> the price in coding according to the classic, stateless styles. 4D is now 
> allowing us to do stuff you could do in these languages but there’s a great 
> big banana skin potentially associated with that transition which is 
> productivity. For example when I started building widgets in 4D, they could 
> be “very nice” but my productivity absolutely plummeted since you need to 
> spend most of the time on designing plumbing systems, event models and custom 
> data structures instead of solving business problems which have traditionally 
> been the 4D developer’s domain.
> 
> Just a thought.
> 
> Sometimes it’s difficult to tell novelty value and practical value apart. 
> (Well it is for me at least :-) )

I agree with Peter that sometimes it just makes sense and is much less of a 
hassle to use a process variable, or an interprocess variable. I know exactly 
how they work and their limitations. And I know the benefits of using them and 
when it could cause “issues” in what I’m building. Taking all those 
considerations into account I make the decision to use them or not. No regrets. 
Do the work and move on.

I know some developers will say “yeah, but them damn process variables use 
memory, precious memory”. Or they might say “it takes time, precious micro 
seconds of time, to instantiate the process variable table for each new 
process”. OK. 

So you are in an environment where you have to worry about a few megabytes of 
extra memory being used? You sure about that? Every machine any of my 4D 
databases currently run on has at least 8,000MB of memory to use. I really 
don’t care if I were to “waste” even 20MB. So I disregard the wasting memory 
argument in most situations.

And as for wasting time, we don’t even need to go there with the massive power 
current hardware has. 

If you want to talk about wasting time and memory, consider the “hard core” 
developer that believes in “functionalizing” their code and keeping methods 
very small and with limited scope. So they literally have 10,000+ methods to 
work with. And the call stack to perform an operation may be 10+ levels deep. 
That’s 10 stack frames of memory and 10 method calls to build up and tear down 
and memory movement to pass parameters, etc. These developers think this is a 
good waste of memory and time. Maybe it is, maybe it isn’t. The point I’m 
making is nobody is noticing that this is faster or slower with today’s 
hardware. 

We ain’t running on 25Mhz 68040 processors with 4MB of RAM any longer. (Thank 
God!) So let’s just focus on getting the work done as efficiently as we can and 
be as productive as we can. Use the tools 4D provides and the ones that make 
you the most productive. That’s my approach. Get the work done, bill the 
customer a very reasonable amount, and move on. For me that has resulted in 
many years of happy clients and repeat business. 

My philosophy on new 4D features is that it is just another tool for my 
toolbox. That is all. The new features are not necessarily “better” than doing 
it the “old way”.

I can remember back in the 4D v2 days when there was only one way to do many 
things in 4D. No choices. I’m so happy that now we have so many choices and 
ways to do things.

Tim

*****************************************
Tim Nevels
Innovative Solutions
785-749-3444
timnev...@mac.com
*****************************************

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to