[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Biggest shortcoming of AFL scripting language



PureBytes Links

Trading Reference Links

Hello,

I would not call it "shortcoming" at all. It would be shortcoming if there was NO static variables,
but they *are* available.
Sure you can complain that you need to type few more letters to read/store static variable,
but the functionality is there and  what you call "shortcoming" is rather (in)convenience.

As to the suggestion - actually I was thinking about it BUT... there is one rather important issue:

in contrast to C/C++ where static variables are INVISIBLE to other object code blocks (non-shared, private variables),
in AFL static variables are in fact GLOBAL SHARED variables. The only common thing is than in both C/C++ and AFL
the static variables "keep" their values as long as program runs.

Implementing what you are suggesting will lead to confusion and misunderstandings because
same syntax would have different semantics for C/C++ coders coming to AFL.

If static keyword was introduced it would need to be private, non-shared.
For strict equivalence to StaticVarSet/Get one would need to introduce completely different keyword,
such as "shared" or "shared static". Otherwise there would be endless problems with misunderstandings
of visibility and scope of variables.

Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: "scourt2000" <stevehite@xxxxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Thursday, November 05, 2009 9:14 PM
Subject: [amibroker] Biggest shortcoming of AFL scripting language


>
> AFL needs something like:
>
> static {
> a = 1;
> b = 2.3;
> c = "hello world"
> }
>
> The first time the script is read into a chart, the variables within the static{} clause would be created and initialized. 
> Their values would be GLOBAL and REMEMBERED from run-to-run of the script.
>
> I know what you're thinking....
>
> "Well, you can use StaticVarGet(), StaticVarSet(), StaticVarGetText() and StaticVarSetText() and do the same thing you're trying 
> to show here so what's your point?".
>
> My reaction to that kind of question is...HUH?!
>
> Oh, you mean you would rather say:
>
> "StaticVarSet("a", 3)" or "a = StaticVarGet("a")"
>
> rather than:
>
> "a = 3" or "a"
>
> to have values set/get and remembered between runs of the script (global, yet private to that particular script)?
>
> Now, tell me honestly, which one makes YOUR programming life easier and your scripts easier to be read by others?
>
>
>
>
>
>
>
>
>
>
> ------------------------------------
>
> **** IMPORTANT PLEASE READ ****
> This group is for the discussion between users only.
> This is *NOT* technical support channel.
>
> TO GET TECHNICAL SUPPORT send an e-mail directly to
> SUPPORT {at} amibroker.com
>
> TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
> http://www.amibroker.com/feedback/
> (submissions sent via other channels won't be considered)
>
> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
>
> Yahoo! Groups Links
>
>
>



------------------------------------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    amibroker-digest@xxxxxxxxxxxxxxx 
    amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/