<div dir="ltr"><div class="gmail_quote">On Sun, May 15, 2011 at 21:22, Joerg Schuelke <span dir="ltr"><<a href="mailto:joerg.schuelke@gmx.de">joerg.schuelke@gmx.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Am Sun, 15 May 2011 20:06:02 +0200<br>
<div class="im">schrieb Jonas Maebe <<a href="mailto:jonas.maebe@elis.ugent.be">jonas.maebe@elis.ugent.be</a>>:<br>
<br>
</div><div class="im">> Those three ways also have data overhead, because you have to store<br>
> the string representation somewhere. Whether this initialised data is<br>
> part of a predefined format called "RTTI" or not does not change that.<br>
<br>
</div>Good point, but sorry, this is an proof that the macro approach is more<br>
general!<br>
<br>
The RTTI feature can the data only give in one format, say it delivers<br>
them as pchar to you. And I have shortstrings in my list.<br>
The format the data is retrieved by the rtti decides how I have to<br>
store it if you want to prevent the double storage of the data.<br></blockquote><div><br>Using Macro or even RTTI for the debug example is actually not a good idea or example.<br>Most programming libraries that offer logging tools, provide you with several type of section <br>

to log things, and only display the level you wish to display. You can easily create a <br>TEventLog decedent with more debug sections and tell what level of that debug (if any at all)<br>to be saved.<br><br>One of the thing that I really hate about C is that it's way too low level. You have to take care of<br>

so many irrelevant things, that instead of fixing the ideas, you have so many features to help you<br>hack them.<br><br>C does not support returning content of a variable, so they passes the whole variable content instead.<br>

They do not have strings, so you have pointers of char, or array of chars.<br>You can not know if the declaration of char is for "bytes" or for literal (as real) chars. <br>You do not have "inline" support, or override of functions, so macros are the way they do it.<br>

You can take a symbol in C and make it part of a macro. That's an ugly hack that makes more problems<br>then solve them.<br><br>I'm unfortunately wrie also in C when I need (and try not to need to do it), and I find it hard to work on code<br>

that others create. You find many callbacks decelerations inside the function that use them instead of typeof<br>deceleration and you find a lot of hacks to do stuff. <br><br>I also program in languages such as PHP, and Ruby, and I find that the Pascal way of variable deceleration<br>

much better in understanding, because I know that the variable is declared. <br>On Ruby for example, even if you created the variable inside an if statement, it will be viewable to the entire <br>function unlike C and others. <br>

Why do I mention it ? because on C and PHP you see many bugs because of that "inline variable" feature.<br>On PHP if you write once "tomatow" and once "tomato" they both valid, even though that the original variable is <br>

tomatow, so you will have null content for it and a big headack on it.<br>On C, the preprocessor will stop you at time.<br>On Ruby, it will be like with Pascal and C, the interpretor will not allow you to work.<br>The Go language of Google for example decided that the Pascal way is more safe then the C way on this.<br>

<br>So what that I'm trying to say is that Macro in C and C++ are there as a hack to do things you can not do properly<br>in any other way. And I can not find any real reason for using it in Pascal. <br><br>Remember that it's way too easy to missus a feature, you see it all of the time on most programming languages.<br>

Pascal is better because it takes readability over hacks. You can still create unreadable with Pascal, but it's harder<br>to do it.<br><br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">


<br>
        Jörg<br></blockquote><div><br>Ido<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div></div><div class="h5">_______________________________________________<br>
fpc-devel maillist  -  <a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a><br>
<a href="http://lists.freepascal.org/mailman/listinfo/fpc-devel" target="_blank">http://lists.freepascal.org/mailman/listinfo/fpc-devel</a><br>
</div></div></blockquote></div><br></div>