Wpis z mikrobloga

Wiecie jakie są różnice między DSL(językami dziedzinowymi) a DSML(językami modelowania dziedzinowego)? Ja jeszcze niedawno nie miałem pojęcia, dlatego sprawdziłem co i jak, a teraz przybywam z nowym artykułem -> DSL vs DSML: czym są języki dziedzinowe i języki modelowania dziedzinowego?

Jeżeli macie jakieś doświadczenia związane z tymi tematami, to zachęcam do podzielenia się tu lub w komentarzach pod postem. :)

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #informatyka #naukaprogramowania #dsl #dsml #jezykiprogramowania #modelowanie
informatyk - Wiecie jakie są różnice między DSL(językami dziedzinowymi) a DSML(języka...

źródło: comment_15961960780VlU1Ip44ZybamW3uf1Omd.jpg

Pobierz
  • 12
@dRyOP: bo DSL zależy od kontekstu. Np. Lua może być językiem ogólnego zastosowania (Love3D), ale może być również eDSLem (jako język skryptowy, np. WoW). Np. w SQLu można zaprogramować wszystko, bo jest kompletny w sensie Turinga (jeśli mamy CTE, nawet bez procedur). Więc w ogólnym rozrachunku to czy język jest DSLem czy nie decyduje jego użycie, a nie "to do czego został zaprojektowany".
@informatyk: ja bym powiedział jak wyżej - można, bo to użycie decyduje o tym, nie "język". Tak samo jak "język" nie ma szybkości, więc C czy assembler nie są "szybsze" niż Ruby, bo to wszystko zależy od implementacji. Jeśli napiszę interpreter C w Ruby, to czy będzie on mniej C? Czy będzie szybszy niż C? Raczej wątpię.
@informatyk: imo samo twierdzenie czy dany język jest DSLem czy nie jest słabe, bo jest bezcelowe a wnosi dużo zamieszania takich jak ten post. Dla mnie DSL to taki sposób zapisu kodu, który podnosi czytelność/latwość użycia w danym zastosowaniu mając jednocześnie małą wadę, że taki kod nie jest oczywisty i trzeba się go jakoś nauczyć. To stwierdzenie zupełnie nie odnosi się do języka tylko to sposobu projektowania API
@Hauleth: Spotkałem się już z takim podejściem o jakim piszesz, tzn. że bycie DSLem zależy od kontekstu, jednak osobiście skłaniałbym się do nazywania w ten sposób tylko tych języków, których jedyny kontekst to jakaś konkretna dziedzina. Jeżeli zastosowania danego języka poszerzają się, to przestaje on być DSLem.
@Saly: Masz rację, określanie poszczególnych technologii jako DSLe i debatowanie nad tym wprowadza sporo zamieszania, ale rzeczywistość jest taka, że DSL i DSML to pojęcia które można spotkać w rozmaitych miejscach w odniesieniach do różnych języków.

Dlatego, opierając się na różnych źródłach (linkowanych w artykule), postarałem się zebrać najważniejsze informacje na ten temat, by ktoś, kto pierwszy raz spotyka się z takim okresleniem, rozumiał mniej więcej o co chodzi. Nie wgłębiałem
@informatyk: to bym powiedział, że z taką definicją to DSLe można policzyć na palcach jednej ręki. Bo jak tylko okaże się, że język jest kompletny w sensie Turinga, to znajdzie się geniusz, który spróbuje to wykorzystać i zgodnie z Twoją definicją taki język przestanie być DSLem.
@Hauleth: Akurat nie popadałbym w przesadę by brać pod uwagę jakieś pojedyncze eksperymenty. Jeśli ktoś zrobi performance w postaci zagrania melodii na ekspresie do kawy, to jednak cały czas będziemy mówili, że jest to ekspres do kawy, a nie instrument muzyczny. Mimo, że w tym jednym kontekście był to instrument muzyczny. ;)

A swoją drogą punktem wyjścia było dla mnie poznanie różnicy między DSL a DSML, a nie samo zdefiniowanie DSL