JEQL Frequently Asked Questions

Last Updated: January 23, 2008

A. General
1. What Java versions does JEQL work with?

B. Design
1. What is the difference between JEQL and SQL?
2. What is the difference between JEQL and SQL?
3. Why use JEQL rather than a general-purpose programming language?
4. Why is the JEQL engine written in Java?
5. Doesn't this make it slow?

C. Functionality
1. Can JEQL access databases?


General


1. What Java versions does JEQL work with?

JEQL is developed using Java 1.4.2. It should work with all newer versions.

Design


1. Why is JEQL modelled after SQL?

For the following reasons:


2. What is the difference between JEQL and SQL?

Comparing JEQL directly to SQL, JEQL implements a large (and growing) subset of SQL. It includes the SQL constructs that are most commonly used for data processing. Of course, there's no such thing as a single "SQL" - there are numerous versions and dialects. The dialect implemented by JEQL cherry-picks some of the better, cleaner features of various existing SQL dialects. JEQL also includes some extensions which make it easier to express complex processing using SELECT statements (such as the ability to define named subexpressions in a selected expression list)

But a direct comparison to SQL isn't really the right question. To run SQL you need an engine which can process SQL statements. This usually means running a database of some kind. Also, you need some sort of programming language to "glue" together SQL statements. Some databases have an embedded programming language, some don't. External languages tend to be verbose and complex to interface to databases (as do some embedded ones!). Finally, data import and export is not a strong point of database systems, so that usually means adding some kind of ETL tool to the mix.

Once you have this set of tools, you have to:

With JEQL, you just write a script.

There are lots of things that the database environment will do which JEQL doesn't do. But for simply performing a small processing task, all the extra overhead and complexity is a burden. Another advantage is that if all processing is specified in a single script, it's much easier to automate the task, archive the code, and share the logic with others.


3. Why use JEQL rather than a general-purpose programming language?

You might decide to use JEQL rather than a general-purpose programming language for the following reasons:


4. Why is the JEQL engine written in Java?

For the following reasons:


5. Doesn't this make it slow?

No. The JVM offers very fast performance. The bottlenecks in JEQL processing tend to be in data access, not computation. Also, if a particular computation is found to be slow, it is straightforward to code it as a Java extension, which will then provide fully-native JVM performance.

Functionality


1. Can JEQL access databases?

Yes, as long as the appropriate Reader/Writer is available. It is intended that JEQL should provide Readers/Writers for a variety of popular database systems.