Q: How fast is JSINQ?

A: JSINQ's "Enumerable" implementation is not optimized for speed, but it is still reasonably fast, i.e. for the kind of datasets you deal with in a typical JavaScript application, the performance of JSINQs "Enumerable" implementation should be more than adequate. JSINQs query-compiler on the other hand is relatively slow, but since queries are generally compiled once and then never again, the impact of the query compilation on the overall performance of a JavaScript application should again be negligible. If you run into performance problems when using JSINQ, make sure your queries are defined in a scope where they are not compiled over and over again.

Q: Is JSINQ ready for production use?

A: Yes, for the most part! The "Enumerable" part of JSINQ is reasonably well-tested and is generally considered to be "safe" but the query compiler is still in a rather "experimental" stage. What you should note though is that if the query compiler produces correct output for a specific query, it is very likely to continue to do so in the future. In other words: bugs in the query compiler are likely to show up early and if a query compiles without errors once, it will not fail the second time (barring the influence of cosmic rays).

Q: Is JSINQ prone to "SQL injections"?

A: You mean JSINQ-injections? Yes it is, but only if you are doing it wrong! Since you specify your queries as strings, they are theoretically prone to the same kind of injection-type attacks that you get with SQL, but only if you are piecing together your queries with unvalidated strings that you somehow obtain from the user. Of course that is absolutely not how you should write your queries. If you have to get variables into your query, use placeholders! Placeholders are not replaced textually, i.e. you can't hijack a JSINQ query using a bad string passed in via a placeholder. Also, since JSINQ runs on the client, even if it was prone to injection-type attacks, it wouldn't really matter because you should never trust anything that comes from the client, ever.

Q: Is JSINQ better than jQuery, Prototype,...?

A: No. JSINQ is not a general-purpose JavaScript framework, it is not a widget library, it is not an Ajax framework and it doesn't try to be any of those things. You can easily combine JSINQ with those frameworks though.

Q: Does JSINQ support nested queries?

A: Theoretically: yes. You can assign query objects to placeholders or you can even define nested queries inline using anonymous functions.

Q: What does JSINQ stand for?

A: JavaScript INtegrated Query. And yes, it's a misnomer because JSINQ isn't really integrated into JavaScript at all.

Q: Is there a "JSINQ to XML"?

A: If by that you mean a JavaScript equivalent of LINQ to XML, then no. But there should be and you should probably be the one to write it (let me know if you do).

Q: How do you pronounce JSINQ?

A: I pronounce it Jay-Sink, but you may also pronounce it Jay-Ess-Ink or Ja-Zink (the sound a broken cash register makes).

Last edited Aug 4, 2010 at 6:50 AM by kaijaeger, version 3


No comments yet.