Mozna se pletu, ale neni DSL nahodou jenom buzzword pro neco co se uz desitky let bezne pouziva? Snad kazdy komplikovanejsi software ma nejaky svuj vnitrni jazyk/makrojazyk a jejich pouzivani zvlast ve svete opensource je vic nez bezny... takze CO je na tom novyho? to ze to nejakej blbecek kterej se vcera naucil ruby nove pojmenoval? To ze se tomu najednou rika zkratkou?
..nehlede na to ze mam dojem (nebo to aspon ja delam) ze treba programovani v common lispu je prave o tom ze vlastne upravuju jazyk tak aby odpovidal resenymu problemu... takze "dsl" je vlastne asi tak 50 let stara vec...
V zásadě si taky myslím, že to je další buzzword. V zásadě jde o zvýšení úrovně abstrakce a obvykle i o nahrazení imperativního paradigmatu deklarativním. Jinými slovy, imperativní jazyky ze své podstaty omezují úroveň abstrakce tím, že jsou syntakticky poměrně složité a mají snahu uchylovat se k popisu toho "jak něco udělat", namísto toho, aby se omezily na popis "co se má udělat".
Dále tvrdím, že "interní DSL" a "externí DSL" jsou v zásadě hodně odlišné kategorie. Dva příklady, které autor článku, ukazují extrémy, které mají spolu jenom málo společného.
"Venti half-caf, non-fat, extra hot, no foam, no whip latte" je příklad, jak deklarativně vyjádřit určitou věc nejpřirozenějším možným způsobem a s použitím vlastního jazyka. Příklad z RoR (mimochodem s tiskovou chybou v prvním řádku definice třídy) je poměrně typické dělání velblouda z komára. Je pěkné, že tvůrci API umožnili programátorovi použít deklarativní způsob zápisu a že má k dispozici nějaký syntaktický cukr. Ve skutečnosti ale podobné věci jdou udělat v podstatě v kterémkoliv jazyce a je jenom otázka, nakolik bude daný způsob zápisu úsporný a elegantní. Věci jako podpora klíčových parametrů, hashů, lambd apod. je samozřejmě výhodou. Ale pokud nemá jazyk možnost rozšiřovat syntaxi (makra apod.), je směšné mluvit o nějakém DSL. Je to furt ten samý GPL.
..nehlede na to ze mam dojem (nebo to aspon ja delam) ze treba programovani v common lispu je prave o tom ze vlastne upravuju jazyk tak aby odpovidal resenymu problemu... takze "dsl" je vlastne asi tak 50 let stara vec...
Uplny suhlas... ale nove pomenovanie mozno oslovi novu generaciu...
Hadajte odkial je toto? :)
Ordinarily technology changes fast. But programming languages are different: programming languages are not just technology, but what programmers think in. They're half technology and half religion. And so the median language, meaning whatever language the median programmer uses, moves as slow as an iceberg. Garbage collection, introduced by Lisp in about 1960, is now widely considered to be a good thing. Runtime typing, ditto, is growing in popularity. Lexical closures, introduced by Lisp in the early 1970s, are now, just barely, on the radar screen. Macros, introduced by Lisp in the mid 1960s, are still terra incognita.
Ze by http://www.paulgraham.com/avg.html , z "Beating the Averages" od Paula Grahama? Pridam se take se svym polenem do mlyna, tentokrat s od Philipa Greenspuna:
Philip Greenspun's Tenth Rule of Programming:
Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp.
ano, jedna se o pojmenovani stare veci, aby se to mohlo psat do marketingovych kecu: "nase firma / produkt podporuje / vuziva nejnovejsi technologie jako BFLM , PSVZ, "