Ich werde Ihre Garbage Query-Sprache nicht lernen

Ursprünglicher Autor: https://twitter.com/fulhack
  • Übersetzung

Es wird ein wenig hektisch sein, aber ich ärgere mich wirklich über Software, in der Leute versuchen, ihre eigene Abfragesprache zu erfinden. Wir haben bereits eine Billion verschiedener ORMs, eine weitere Billion Datenbanken mit jeweils einer eigenen Abfragesprache und eine weitere Billion SaaS-Produkte, für deren Zugriff Sie einige von ihnen erfundene reguläre DSLs beherrschen müssen.


Gib mir mein SQL zurück. Diese Sprache ist für jedermann verständlich, existiert bereits seit den 70er Jahren und hat sich in dieser Zeit zum Standard entwickelt. Es ist einfach zu lesen und kann von jedem verwendet werden, von Unternehmen bis zu Ingenieuren.


Stattdessen muss ich jedoch eine ganze Reihe verschiedener "Müllabfragesprachen" lernen, weil die Leute immer noch versuchen, das Rad neu zu erfinden.


Fangen wir mit ORM an. Ihr Hauptmerkmal ist eine Verkürzung der Entwicklungszeit. Aber anstatt verständliches SQL für alle zu schreiben, muss ich die Dokumentation eines bestimmten ORM studieren, um herauszufinden, wie meine Abfragen dafür geschrieben werden. Außerdem muss ich einige Zeit mit dem Debuggen verbringen, um herauszufinden, warum dieser ORM meine Abfrage in monströses SQL übersetzt hat, das 17 Tabellen mit ihrem vollständigen Scan verknüpft. Anstatt mich an Standard-SQL zu halten, bei dem es einfach genug ist, über Effizienz zu sprechen ("Versuchen Sie, indizierte Spalten in Prädikaten zu verwenden", "Übertreiben Sie es nicht mit Verknüpfungen in einer Abfrage" usw.), muss ich mich mit einer zusätzlichen matschigen Ebene befassen, die verbirgt die ursprüngliche SQL-Abfrage. Sie werden am Ende übergeordnete geschwollene Datenklassen haben,


Ganz zu schweigen davon, dass es ungefähr fünftausend ORMs gibt. Anstatt also SQL zu lernen, muss ich erst einmal 34 verschiedene ORMs lernen. Das bedeutet nicht, dass die Leute ORM lernen, sondern, dass sie einfach nicht SQL lernen.


Und all diese SaaS-Produkte. Ich habe nur ein paar aus meinem Firmenstapel herausgesucht:



Was könnte schlimmer sein als ein Daten-Dump? Ein Daten-Dump, der eine eigene Abfragesprache erfindet.


Der Fairness halber sollte gesagt werden, dass einige dieser Abfragen immer noch SQL-ähnlich sind oder zumindest diese Rolle beanspruchen, aber mit ihren eigenen Macken, die mich dazu bringen, alles zu verwerfen, was ich zuvor über SQL wusste. Manchmal so weit, dass dieses bisherige Wissen praktisch wertlos ist.


Darüber hinaus versucht jede Datenbank, die Abfragesprache neu zu erfinden. Mongo hat eine eigene schreckliche Abfragesprache , die ich nie verstanden habe, Lucene hat eine eigene usw.


Wonach bitte ich? Eigentlich nicht viel:


  1. Jedes SaaS-Produkt sollte die Möglichkeit bieten, alle Daten in meine eigene SQL-Datenbank zu kopieren (in meinem Fall Postgresql / Redshift). Ich möchte ihr DSL nicht nutzen. Vielleicht wird die Europäische Union in der Lage sein, dies als nächste Anforderung nach der Annahme der Richtlinie über offene Bankdienstleistungen PSD2 festzulegen .
  2. Ein 30-jähriges Moratorium für die Erfindung neuer Abfragesprachen ist erforderlich.
  3. Wir müssen den Mythos zerstreuen, dass ORMs den Code sauberer machen. Gehen Sie auf die Seite von Pure SQL und Sie erhalten eine viel einfachere und transparentere Interaktion mit Ihrer Datenbank.

Das ist alles Ich verstehe, dass ich wie ein alter Nörgler bin, aber ich gehe dieses Risiko auf mich selbst ein.


PS


Dieser Beitrag hat eine ausreichende Anzahl von Ansichten erhalten, so dass er großes Interesse bei der Öffentlichkeit hervorrufen sollte. Folgen Sie der Diskussion auf Hacker News und den Kommentaren zu Reddit r / programming .


Jetzt auch beliebt: