Thank you very much for your explanations.
I know the question I asked was hard to answer, but the sum up you gave was pretty clear. Now I have to learn to live (i.e. to program) with this new reality.
It is new to me, because in the recent years I have been mainly a Java programmer and almost totally forgot the memory handling habits and rules of thumb from my young c/c++ programming childhood (probably i never had none good of them anyways

I was a pretty bad c/c++ programmer, spending days searching for memory leaks in my programs and long hours thinking on how to write my code so that i dont have to search for memory leaks afterwards instead of focusing on the problem domain.
Java relieved me of that burden and I could just program, program, program, focusing on the task to solve.
Now I find myself again tinkering more with the memory than object oriented thinking on the main problem. That is why I opened this thread.
I want to learn to handle memory your way or the ecere way, if there is one. I studied the samples and they look beautiful: simple, effective. When I compare my code with the samples - my code looks awfully heavy and completely different in style and I dont like it. Maybe it is because I am still thinking the Java way and it does not pass to ecere, which offers a slightly different, maybe better style, which I still can not figure out, grasp it for use in my programs.
For example:
1. I totally miss the String class from Java and I am very astonished that such an important and the most, most, most used class is not yet implemented in ecere. After some thinking and looking through samples I have got an idea that maybe there are reasons for that? My suspision is that, when programming ecere way, there really is not much need for it? Direct access to char buffer, some string handling functions and memory handling rules of thumb - are all a good ecere programmer needs? When it is totally clear with the char* access and string handling functions, the memory handling rules cause a problem for me - because I lack them and have to reinvent the wheel every time, instead of learning.
For example:
1.1 when some function returns a string (a char* ) - the string should be allocated on the heap - how to make sure it is freed when it is no longer needed.
1.2 I really hate to use char [] arrays of fixed length - you never know what size of string may pass through it, it is not safe to assume that no buffer overflow will occur. that is why it is a bit akward to use the "c" string functions, because almost none of them will increase the buffer size if needed.
I feel really nervous at this point, remembering the long hours I spent tinkering with the simplest string handling and comparing that with the lightning fast and baby-easy use of strings in Java.
I think I will stop now. It should be enough to begin with. Sorry for the long and wheening question. Just used my chance to complain :=)
Cheers,
Fedor