Hello,
I have been experimenting for some time now with your very exciting language. I have to say that it offers great flexibility for developers and in addition produces very good execution speed, which is not really something one associates with interpreted languages but obviously much work has been done to address this during the design phase.
There are however some rather major concerns, at least from a user/developer perspective. I'm not going to stress these because I understand the difficulties of development with limited resources and do not wish to dampen enthusiasm. Another reason for not detailing concerns (with one exception) is that while reading the posts in this list I can see that most issues have been brought to your attention and one must have faith that these will be addressed when the time and resources become available.
The exception I will make is on the subject of documentation. Another list subscriber
(iMe) described those concerns rather eloquently and with considerable respect and compassion. Among the many good points made in that post, there is one stand-out and I re-iterate here because I really do feel that the importance cannot be understated and I see little evidence that such importance has been accepted by those steering the language forward. iMe's post was made almost year ago, and yet the documentation remains in a very sad state. In some cases it more closely resembles misinformation than it does documentation, yet almost all discussion in recent times centres around 'the engine' and other low level programmatic and design issues.
Falcon needs help! It needs to attract developers/programmers who can assist in making Falcon all that it deserves to be. A really great language! But it will actually turn more developers away than it will attract because no one likes to feel like an idiot. That is how one feels when you spend hours experimenting (often on quite trivial test programs) only to find that the docs have led you in completely the wrong direction, due to them being out-of-date, ambiguous or inexplicably missing large chunks of vital information. I include the WiKi in this too. Links offering information, but delivering either very scant detail or in some cases a blank page. There is even one which mentions a project and no such project code exists within the repo, as far as I can see .The frustration is rather overpowering at times and one needs a great deal of resolve and belief in the language to plot a path forward. By all means get your engine in order and your alpha release finalised, but if you do so with documentation in it's current state then I fear you will have wasted much of your considerable efforts. It really is that bad........seriously!
Ok, well I do apologise for the negativity above but it really needed to be said. That done I'd like to move on and ask a question about one of the modules i.e. 'dbi'. Contrary to the class reference documentation (which actually whets one's appetite only to dump you firmly in the sewage) recordsets DO NOT do tables. There is a subtle hint that all is not well when the class detail contradicts the overview text and does not mention a falcon table as a return type for the recordset.fetch() function, only arrays and dictionaries. When I read about (in the overview) tables being filled with data by a single fetch rather than the more mundane loop fandangle, I got excited! But it did not work as described and I wrestled with it for quite some time, feeling I was losing my touch, or just being thick. Imagine my frustration (after much frustration already) when I dived into the C++ source only to find that the code enabling tables as a fetch() target was simply commented out!!! No explanation, not even in the commented out source.
So, frustration aside, what is going on here? I kind of like the idea of tables as fetch() targets, as advertised in the documentation. I at least would like to experiment, and will likely do so. If I fix it I will happily pass that on and would likely offer future support in areas where I feel my experience (30+ years) offers something to the cause. However, some accurate information would assist any effort in addressing the above mentioned issue.
1. Why was the table code commented out in dbi_ext.cpp? i.e. What issue or problem necessitated the commenting out?
2. Is this indeed fixable? Or have changes in the underlying VM engine made this either extremely difficult to implement or just about impossible?
3. Has this perhaps been addressed and not yet made it into repository code?
FYI - I'm using version 0.9.6.9 (Chimera), from the git repository.
PS: Please people, don't take to heart my criticism, it is aimed at underlining the importance of the documentation issues and not intended to demean your efforts in any way. I actually believe that developers do not usually make great documenters, but they are better than no docs. As a developer with considerable experience (team leadership and also training) I will even offer my assistance in this documentary context. It would be wrong of me to stress this importance and not be prepared to get involved......