On Fri, Aug 30, 2013 at 1:37 PM, Simon Slavin <[email protected]> wrote:

>
> On 30 Aug 2013, at 4:46pm, Jay A. Kreibich <[email protected]> wrote:
>
> > On Fri, Aug 30, 2013 at 03:41:18PM +0100, Simon Slavin scratched on the
> wall:
> >
> >> The arguments against DLLs are not the normal arguments you see,
> >> they're governed by an unusual combination of four characteristics of
> SQLite:
> >>
> >> A) SQLite is very much liked, and a huge number of programs use it.
> >> B) SQLite is tiny.  You don't waste much disk space by having lots of
> copies.
> >> C) There are frequent version updates to SQLite which introduce new
> >>   facilities.
> >> D) SQLite is detailed and complicated, so updates sometimes break
> >>   assumptions made by programmers.
> >
> >  I'm not sure that last one is fair.  Generally, the SQLite team makes
> >  a huge effort to avoid breaking backwards compatibility, both documented
> >  and assumed.  There are a whole list of known bugs that will never get
> >  fixed because they might break existing applications.  While there
> >  are some changes to the query optimizer that sometimes do odd things,
> >  overall this is a pretty poor reason.
>
> While I take your point there have been numerous examples in the last year
> of what I would call 'assumptions made by programmers' which aren't obvious
> bugs.  For example the user who had a SELECT where a calculation was named
> the same as a column which actually existed in the table, and one version
> of SQLite did one thing, and another did the other.  It was only possible
> to identify one of them as a bug by detailed examination of a late version
> of the SQL standard.  Without that they were both arguably acceptable SQL.
>
> >  For me, the biggest issue is A and B, combined with the fact that
> >  many applications that very heavily use and integrate SQLite often
> >  have a custom compile with specific extensions, default values, and
> >  features turned on or off.
>
> That's one I missed.  Yes: very many compilation options, with none
> obviously better than others.  Therefore different people want different
> object code.
>
> For me the biggest argument is that the SQLite dev team go to the effort
> of making amalgamation source code available, which I think is wonderful.
>  But I wasn't brought up in the world of Windows programming where you
> expect everything to be a DLL, and I can understand someone who was
> wondering why anyone ever did anything but use the a 'standard' DLL.
>
>
It's not that "everyone in Windows programming expects everything to be a
DLL"; this is an overgeneralisation.  After all, Java isn't exactly
Windows-only code and we're not dealing with Win32, but with IBM zOS.
However, think a bit on the problem of how you could compile in a native
code object file into a program which runs inside a virtual machine.

This is a problem with Python, Lua and Ruby, as well, although in Python
and Lua's case we could create a C executable hosting the Python or Lua VM
inside it and expose the SQLite API to it via extension methods.  I don't
know how embeddable Ruby is.

At any rate, one cannot generally embed a JVM or CLR into a C program, so
you're left with one mechanism, which is the very Unix-y
dlopen()/dlclose()/dlsym() interface, or its Windows analogue,
LoadLibrary()/FreeLibrary()/GetProcAddress()...


> Simon.
> _______________________________________________
> sqlite-users mailing list
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>



-- 
In those days, in those distant days, in those nights, in those remote
nights, in those years, in those distant years...
          - Gilgamesh, Enkidu and the Underworld
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to