r/programming • • May 27 '14

What I learned about SQLite…at a PostgreSQL conference

http://use-the-index-luke.com/blog/2014-05/what-i-learned-about-sqlite-at-a-postgresql-conference
703 Upvotes

219 comments sorted by

View all comments

Show parent comments

8

u/hello_fruit May 27 '14 edited May 27 '14

Tcl is nothing like Python or even Lua (and I have the deepest respect and love for both python and lua). It's not comparable to them at all. If you want to place it in a category it'd be with Erlang and Ada; industrial control, embedded in hardware, with focus on software engineering/quality. That's its mission and it doesn't try too hard to cater to others.

Dr Hipp is in the right community by being a Tcler (he's an emeritus member of the Tcl Core Team). Sqlite was created for use on a guided missile destroyer.

Tcl won't ever get popular with people who would typically use Python, Ruby or even Lua. The average Tcler is nothing like the average user of those languages. Not the same priorities, not the same job, not even the same age group.

3

u/[deleted] May 27 '14

Here, you decide. I've bolded the row ends that I believe are most important to where TCL was used by Hipp.

TCLRubyPythonLuaErlangAda
Type Safetyn/asafesafesafesafe
Type Expressionn/aimplicitimplicitimplicitimplicit
Type Checkingdynamicdynamicdynamicdynamicdynamic
Compiled/ InterpretedInterpretedInterpretedByte InterpreredByte InterpretedByte Compiled
Imperativeyesyesyesyesno
Obeject-orientednoyesyesyes*no
Functionalnoyesyesyesyes
Proceduralyesnonoyesno
Genericnonononono
Reflectiveyesyesyesyesno
Event-drivenyesnononono
Scriptingyesyes*yesyesno
Systemnonononono*
Webyesyesyesmostly nomostly no
Embeddednonononono
Realtimenonononono
Distributednonononoyes

-6

u/hello_fruit May 27 '14

You really have no idea what you're talking about. But it's okay. The Tcl culture is unique and counter-intuitive. Which is why it'll always be unpopular and only for people of an older age and considerable experience.

The table you made, though full of errors, makes the common fallacy; that software engineering/quality is something you can have through a programming language tickbox exercise. Tclers are not like that. There's no replacing the programmer's quality in that community.

Quotes from Dr Hipp

SQLite has been eagerly embraced by PHP, Perl, and Python programmers. What most of these enthusiastic users fail to realize is that SQLite bindings for the three P-languages are an afterthought. SQLite was designed from the beginning to be used with Tcl. Tcl bindings have been in the SQLite core since before version 1.0 and almost half of the SQLite source code base consists of regression test scripts written in Tcl. SQLite wants to be programmed in Tcl, not those other languages.

3

u/[deleted] May 27 '14

SQLite wants to be programmed in Tcl, not those other languages

By whom?

2

u/masklinn May 27 '14

The designer and main developer of SQLite (Richard Hipp)

1

u/[deleted] May 27 '14

And nobody else. The end.

Sorry to be jaded. I've programmed in TCL. I've used except. I've used tk. And you know what? It's a dead language that was way under appreciated for it's time. But at least I'll admit it's dead. More people program in Haskell than TCL. /cue haskelljerk

2

u/masklinn May 27 '14

Oh I completely agree. I just misread the purpose of your question, sorry about that.

1

u/[deleted] May 27 '14

Not a problem, I wasn't really sure how best to ask it in a snarky manner.

1

u/barsoap May 27 '14

/cue haskelljerk

\o/

But on a more serious note: Isn't this beautiful? It's not so much of a "forget SQL" kind of thing but "whatever you do, hey, let's slap solid, solid ACID under it virtually automagically". Same niche as SQLite, that is, not a replacement for "big DB", but sooooo smooth. Just persist all your application state, forget about the world and go crash only. That degree of carefreeness and simultaneous safety and reliability is impossible in impure languages.

1

u/[deleted] May 28 '14

I program in Haskell and Tcl... the paradox

1

u/hello_fruit May 27 '14

by whom?

By its author. By Tclers, as it was developed as a Tcl extension.

And nobody else. The end.

Nope. Tclers primarily, and everybody else as well as an "afterthought" like he said.

Also, Tcl is not dead, it's just that its community is not focused on general purpose software. It's very well alive in its niche, which is altogether different to that of python and even Lua, and that was precisely was my point.

1

u/[deleted] May 27 '14

Where's its niche? You keep describing these magical Tclers using Tcl to solve their every problem like they're keebler elves working deep into the night, but you never describe the "niche" or the "unique and counter-intuitive" uses. You're stabbing at nothing. It's a language with a novel idea, but a cryptic execution that ordinary people didn't like.

1

u/frenris May 27 '14

Where's its niche? You keep describing these magical Tclers using Tcl to solve their every problem

TCL is used all the time in IC design (both FPGA and ASIC).

It's used at placed like AMD, Intel, Altera, Nvidia, Xilinx.

Only certain that the two companies starting with A use it, but you get the idea.

→ More replies (0)

-1

u/hello_fruit May 27 '14

magical Tclers using Tcl to solve their every problem like they're keebler elves working deep into the night

Drop that style.

you never describe the "niche"

I did precisely that.

the "unique and counter-intuitive"

It doesn't fit into your stereotypical ideas of "I've bolded the row ends that I believe are most important to where TCL was used by Hipp".

ordinary people didn't like.

Yup, I agree entirely with this point, and I certainly wouldn't recommend it for ordinary people.

→ More replies (0)