Řešení popsané v tom PDF mi připadá jako utopie bez ohledu na jazyk (Java/C++). Jde mi o ten rozpor mezi procedurálním a deklarativním. Podmínka definovaná v metodě match() v predikátu je procedurální (mj. do ní můžu napsat libovolně složitý kód a volat kde co), což implikuje „full table scan“ – projdu všechny objekty/záznamy a na každém zavolám metodu a vyhodnotím true nebo false. Sice se tam píše, že by se bajtkód dal optimalizovat – ale detekovat v něm, že se volají ty správné metody, jsou spojeny pomocí správných logických operátorů a pak použít indexy… mi přijde hodně složité na implementaci a z hlediska uživatele příliš velké zatemnění a magie.
Přijde mi lepší používat DSL a ne psát všechno v jednom univerzálním jazyce – ono SQL/OQL (nebo podobný dotazovací jazyk) není jediný případ – totéž platí pro XPath, regulární výrazy atd. A věnovat se spíš frameworkům a IDE, které s tím umožní efektivně pracovat (kontrola/validace, napovídání, refaktoring).
Autor se zabývá vývojem kompilátorů a knihoven pro objektově-orientované programovací jazyky.
Přečteno 30 507×
Přečteno 19 497×
Přečteno 17 095×
Přečteno 16 935×
Přečteno 13 926×
Internet Info Root.cz (www.root.cz)
Informace nejen ze světa Linuxu. ISSN 1212-8309
Copyright © 1998 – 2021 Internet Info, s.r.o. Všechna práva vyhrazena.