Agreed. Two points. 1. Andl can never replace SQL in one step. The challenge is to find some useful niche and demonstrate an end-to-end solution to a problem, and show that as a total solution it's better than could be done with SQL. It should have a cross-platform front end UI/UX (say JavaScript, Java or Ruby but NOT C#/.NET) and (for now at least) a backend on SQLite, with Andl in the middle and NO ORM.
2. Despite what you might think, Andl is an easy language to learn. However, using it to do real work is a major challenge because the theoretic underpinnings are unfamiliar to most people. Actually solving problems using relations and operations on relations is new, even to very expert SQL users. There are many interesting problems that can be solved in just a few lines, but mentally constructing the steps to those few lines is tough. The time taken to write the Sudoku solver on the web site is way out of proportion to the length. Regards David M Bennett FACS Andl - A New Database Language - andl.org -----Original Message----- From: sqlite-users-boun...@mailinglists.sqlite.org [mailto:sqlite-users-bounces at mailinglists.sqlite.org] On Behalf Of James K. Lowden Sent: Friday, 19 June 2015 7:11 AM To: sqlite-users at mailinglists.sqlite.org Subject: Re: [sqlite] Mozilla wiki 'avoid SQLite' On Wed, 17 Jun 2015 22:05:12 -0700 Darren Duncan <darren at darrenduncan.net> wrote: > I also believe the world is ripe to have SQL alternatives, its just a > matter of ones appearing that are compelling to users for real work > and not just an academic exercise. The fact we're still generally with > SQL means this hasn't happened yet, but that doesn't mean it won't. Yes, I've been keeping track of TTM-inspired projects, and tried to convince Ingres to commercialize its D implementation. What makes David's andl unusual is that it's a new language atop a DBMS that is used in production. Still, I'm not so sure the world is ready for a better SQL. The evidence stands against, certainly. We already discarded one -- QUEL -- which hardly anyone remembers. A great deal of effort has gone into replacing SQL with less powerful constructs with no theoretical foundation, and into neutering the DBMS with ORM toys. Do not underestimate SQL's enormous inertia and network effect. Recognize that even if the syntax is better, engineering challenges remain if the promise of fidelity to the relational model is to be realized. The inertia stems from laziness and ignorance, never in short supply. A fraction of those who write SQL understand the math and logic underlying it. Forums like Stack Overflow are rife with questions that demonstrate as much; the answers are often not much better. If you're not thinking in terms of relational algebra and are unaware of the benefits of using logic to accomplish your task, changing syntaxes will only compound your problems. If you *are* thinking in those terms, it's still work to learn a new language. It's not clear that a better syntax -- if that's all you get -- would be seen as a worthwhile effort for very many people. The network effect is important, too. The market recognizes knowledge of SQL as a skill (even if it underestimates its value). That skill is portable across jobs and DBMS implementations. It is a way that programmers communicate to each other across the organization and time. A new language has to clear a threshold of "better" to be accepted. There are two engineering challenges that come to mind: performance and set-theory semantics. As David outlines in his blog, it's no mean feat to swap out SQL from any DBMS, including SQLite. Because the query language is assumed/known to be SQL, query planning, rewriting, transformation, and optimization is bound up in the grammar of SQL itself. Readers of this list appreciate how much work goes into that. Set-theory touches on the implementation, too. DISTINCT is implied in andl. It was left out of SQL because it requires a sort. The ramifications are nontrivial; consider joining on a nonkey and counting the results. Also remember that SQLite violates even SQL's set-theoretic features, such as when update T set X = X + 1 fails if X is declared unique. So I would say replacing SQL with andl or similar is in fact not analogous to replacing Perl with Python or C++ with Go. The requisite knowledge in the user community to appreciate the improvement is greater (and relatively nonexistent). And the engineering effort to build a DBMS is far more than to build a compiler. There's a reason Larry Ellison can affort a yacht almost 500 feet long. --jkl _______________________________________________ sqlite-users mailing list sqlite-users at mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users