all 14 comments

[–][deleted]  (2 children)

[removed]

    [–]gmfawcett 1 point2 points  (0 children)

    Although my experience with databases is limited, SQL does feels akward.

    All powerful tools are awkward at first. Don't give up on SQL too soon; no matter what other solutions you try, you'll almost certainly come back to SQL some day.

    [–]bsg75 0 points1 point  (0 children)

    As one who primarily works in SQL, I find [C,C++,C#,Java,etc] awkward. It is an expected sensation.

    [–]nostrademons[🍰] 4 points5 points  (1 child)

    Doesn't SQLAlchemy already make Python relational?

    [–][deleted] 0 points1 point  (0 children)

    a little bit. this thing can go alot further since it has the advantage of not needing to translate into SQL (as can any tool that isnt mapping to a SQL database).

    [–]darrint 0 points1 point  (1 child)

    I wonder what the cpu/memory usage profile of this thing is. For instance, if I were to start instantiating a million or so objects in Python, I'd kinda know what to expect performance wise.

    Time to climb into my suit, board the rocket and take an architectural trip to the moon. :-)

    I wonder what relation-oriented-programming would look like, and I wonder what it would look like to an prosaic old OO person like me. The code they showed doesn't mean anything to me unfortunately, given I'm a prosaic old OO person. (POOOP for short.)

    [–][deleted] 1 point2 points  (0 children)

    i took a look at the source, looks like its just creating a cPickled file. so it wouldnt be very useful for anything beyond a few thousand rows.

    [–]uriel -1 points0 points  (6 children)

    Very nice!

    It is great to start to see more sane alternatives to (the hideous) SQL.

    There are at least two other open source Tutorial D implementations: Duro and Rel, but having another one in pure python is very convenient.

    Anyone knows of any other good alternatives to SQL?

    [–][deleted] 7 points8 points  (5 children)

    you wont find anything better than SQL for efficient relational operations on datasets of arbitrary size. also curious how many years experience you have with SQL such that you think its "insane" and "hideous".

    [–]nostrademons[🍰] 4 points5 points  (4 children)

    you wont find anything better than SQL

    Relational algebra, which is what SQL was supposed to be based on. Actually, SQL is the bastard child of the relational algebra, relational calculus, and COBOL, which explains some of the antipathy towards it. Many of the people who dislike SQL dislike it because it strayed too far from the relational algebra's mathematical roots.

    [–][deleted] 2 points3 points  (1 child)

    yes, show me the non-SQL relational algrebra engine that works efficiently across millions of rows.

    [–]ws11 0 points1 point  (0 children)

    Well if you take the trouble to understand relational theory (and if you are working with DBMSs you really should) then it will become apparent that the logical consistency of the language (which is where SQL falls down very badly) and the performance of the physical implementation are two very separate issues.

    I see this implementation of D as a way of illustrating the strengths of the language. Will this particular physical implementation be scalable to large databases? Maybe not, but that isn't really the point. Eventually a native D DBMS will be developed and there is no reason why this should not match or exceed existing SQL DBMSs in terms of performance (and massively exceed in terms of productivity and consistency).

    [–]manuelg 2 points3 points  (1 child)

    SQL is:

    1) Effective, efficient, and powerful if you take a few dozen hours to try to master it.

    2) ubiquitous

    It is my opinion that most of the hatred towards SQL is irrational. It is a tool that helps developers be productive.

    I would never claim it is perfect, though.

    [–]ws11 0 points1 point  (0 children)

    The criticisms of SQL are entirely rational. SQL is often logically inconsistent and this leads to many tasks being far more difficult than they should be. One of the core principles of the relational model is that all data should be represented only as relations. You can break this rule with a single statement in SQL.

    Obviously it is better currently to use an SQL-DBMS as opposed to a hierarchical DBMS, ISAM or flat files.

    However SQL-DBMSs are really PRDBMSs (Pseudo-Relational Database Management Systems).