It's great news that this is now available for Linux, but the better news for me is that I can now build it on Lazarus / FreePascal. Even if it doesn't support all the features (eg MSSQL), at least I can now contribute fixes for some UI issues that have been bothering me.
I can successfully build the FreePascal version on Windows and it runs... fine. Feels a little less snappy than the Delphi version and there are some UI padding issues. But it's a massive step in the right direction.
If you can, please support this project, either financially or through code. contributions. IHMO what is dearly needed is for the different SQL dialects to be abstracted out properly. It's currently done in a bit of a crude way (no disrespect to the author) and it will require a big refactoring to get it right, but will open doors to more dialects.
https://c3-lang.org/faq/compare-languages/
One would argue that the best C/C++ alternative/evolution language to use would be D. D also has its own cross-platform GUI library and an IDE.
I wonder for which reasons D doesn't have a large base adoption.
Since some days it is finally available in a native Linux version. The code has been ported from Delphi to FreePascal / Lazarus.
I'm not confident I understand how it works from the site though. A video of how it works would be helpful.
1. It is possible to create different types of items: books, ideas, projects, tasks, etc.
2. Every item can have its own custom fields, such as author for a book or priority for a task.
3. All items are stored in a single SQLite table, so you can search through all items and edit them if necessary.
4. Fourth, it is possible to establish relations between items: parent, child, or simple link.
5. There is a space called "Quickbox" where you can quickly register a link or a note to read later and transform it into an item.
6. Items can be part of one or more notebooks, such as Personal, Work, or Family.
I have many ideas to make it more useful, but some basic features are still missing, such as:
1. Attach images or documents to each item and access all the attachments as a separate library.
2. Multi-user support
3. Multilingual support
4. Kanban support for tasks.
The most interesting part for me is adding systems/structures that can help me analyze problems and find proper solutions.
This idea is still vague, but I'd like to implement workflows that can help me become a better thinker, improve my creativity, and enhance my ability to make rational decisions. I'd like to integrate also logic programming in the process, probabily using Prolog.
I don't want to lose the manual aspect of thinking, so I'm considering creating prefilled documents to help study problems and find solutions.
I have used Golang and SQlite on backend and PWA and HTMX on frontend.
Have you done this for any complex system? I'd love to see you do this for the AzerothCore: it has 298 tables, 3,010,875 rows across those tables, and one table (quest_template) has 105 columns.
Instead I've thrown SQLAlchemy in front of it and now I can query it without writing a single line of SQL.
I think tools are tools, and using the right tool at the right time is an important skill I think you've yet to develop.
1. you have no control over the generated SQL and because it has to be generic and db agnostic, might not be the best option depending on the database you are currently using
2. when something doesn't work as expected, and it happens, they are difficult to debug (too many layers) and find the issue
3. they are extremely inefficient, because they have to dynamically build every time the code is run the corresponding SQL code : I'm sure most would implement some caching mechanism to prevent this , but in any case it's a waste of resources.
This is just anecdotal, but I remember trying SQLAlchemy many years ago for a small Python program I was writing for a RaspberryPi 3 : it was extremely slow. So, I removed the library and used instead the native database binding for MariaDB instead, and the speed improved a lot.
For PHP, the situation is the worst because there is no application server (they exist, but not very widely used), but the code is regenerated every time. This is the main problem in any large PHP project, such as Nextcloud. If they would adopt FrankenPHP or RoadRunner, they could improve the performance of the applications a lot.