Thanks for that man, I had lost track of those two articles, was a nice re-read!
@Andrew - I'd pretty much have to concur with everyone else, in that if you are looking to use Lc like you would use C/C++ outside of generic rules of programming, you are very likely to have a very frustrating and often times ugly trip. You've been around long enough to remember, I'm sure, how programs were written in a pre-gui environment where your program worked at the CLI. There was no OOP then in the strictest sense of the word, and there is none (again, in the strictest sense of the word) in Lc outside the objects you see in the IDE as was mentioned earlier.
If you try to approach programming in Lc like you listed for C/C++, your also going to be severely frustrated in most cases (not all, since for many of my own projects I tend to code to solve the problems first, then add the gui after), however the cases where I do that now are far more rare than when I started with Lc.
Some of the things you wrote that jump out at me -
You can certainly take this approach in Lc or any RAD language, but you are almost always going to do it the reverse way to this when developing in a RAD environment, i.e. you are going to need to visualize what your program should look like in it's sparse state, what controls you are going to want your end user to have, and then lay out the program visually.My normal mode of development is build the data handlers and functionality, as divorced from the environment as possible, both operating system and UI, and then add in the dependencies of the operating system vendors and UI around the core functionality.
For one thing, unlike C/C++, you are not trying to tie your program to some framework outside of the language, in almost ALL RAD languages, the buttons, fields, and other gui elements are already there.
So I have a library of C++ classes that handle a lot of that core functionality. Now the trick is to layer a UI on top, as well as data collection that delivers data down to the core C++.
What it sounds like is, you don't want to have to re-write functionality you've already written in Cpp, you just want a frame work that you can tie it to so it will be x-platform. I really don't think this is going to work out for you if that is the goal you have in mind.
The part in bold is all that I saw that was important to a discussion on Lc in particular. Lc can do databases, and certainly can do sqlite dbs. If you have a db already existing, you can build a program around it quite easily in Lc, and you can replicate your "best not messed around with" stuff as it applies to db's, without re-using Cpp. Lc has a lot of functionality built into it specifically for dbs, but, you can also use the db's native calls couched in Lc statements.My application is based around a database. I have a number of similar tables that have common fields, with common functionality. So I have base classes that implement core Sqlite access functionality, subclasses that drive sets of more subclasses for tables with similar structures and so on.
I don't see the problem here, either. If you don't want them to see it, don't show it, the parts you want shown, design the layout you want shown, and show it.There is lots down there that the user really wants to avoid seeing or even knowing it exists. But for those parts of the records in particular tables that they do need to see and interact with, that is where I would need to map certain fields of those database tables to be displayed in tables for the user to interact with.
All of this is already built into Lc, joins from dbs are already built into db languages.In some cases a record that is displayed to the user has fields from multiple database tables that are related. I do have a mechanism for describing these meta-tables so that data can be delivered to the UI and collected from the UI.
At that point, I don't see how you are going to interface your db classes with Lc. I sure wouldn't suggest trying to use them with Lc, although Mark may know better as he pointed out some options I wouldn't even try (or need).My core C++ database Class library is probably best not fooled with,
IF you are seriously contemplating switching this type of project *to* Lc, I would suggest taking a look at the functionality those core classes you absolutely don't want to touch provide, and see how to get that functionality out of what Lc can provide. I'd find it very hard to believe the functionality isn't reproducible, but that is up to the one trying to do the work to determine or ask about.