4 ms·
My person vision is lots of tiny languages that work together in such a way that you don't have to get out of their sweet spot. Of course, I'm not sure if its p
by ludamad 12y ago
My person vision is lots of tiny languages that work together in such a way that you don't have to get out of their sweet spot. Of course, I'm not sure if its possible to do this nicely.
- Guthur 12y agoThey are called Domain Specific Languages (DSLs). And it can be done reasonably well today. Lisps are very good for producing DSLs; when you have macros you have very powerful control over the syntax and can therefore produce your own language within the language. The Common Lisp LOOP macro is a great example of power of macros; though in that case it is debatable whether it was used for good or bad.
- ludamad 12y agoSure I know about DSLs in Lisps and such, but I don't think LISP DSLs are quite on the level of SQL. If everyone creates their own DSLs I don't think it has the same impact.
- jared314 12y ago> but I don't think LISP DSLs are quite on the level of SQL I'm curious what you mean by this. Is your definition of a DSL based on the language's syntax, or on the language's paradigm? Clojure's core.logic [1] provides logic programming, as apposed to functional programming, but maintains the syntax of a LISP. [1] https://github.com/clojure/core.logic/wiki/Examples https://github.com/clojure/core.logic/wiki/Examples
- lmm 12y agoI think the reason LISP remains obscure is that syntax is important and LISP syntax is an unpleasant way to express a lot of domain languages. (I work with embedded DSLs quite a lot, but in Scala, where infix and postfix operators are easy)
- sklogic 12y agoSyntax is nothing. It's trivial to build any kind of syntax on top of Lisp, with arbitrary complex DSLs. See an example here: https://github.com/combinatorylogic/mbase https://github.com/combinatorylogic/mbase
- deerpig 12y agoCheck out Pilog which is a query language DSL for working with picolisp's built-in databases.... I'd be interested in hearing from people with more knowledge of SQL than I do to see how they compare.
- webnrrd2k 12y agoI've just started looking at Rebol, and you may find it worth while -- it has a very interesting take on DSLs. http://www.rebol.com/ http://www.rebol.com/
- Dewie 12y agoRebol is one of the few languages where I was actually impressed by the code snippets that the introduction (that I read) had - they had to do with making simple GUIs for somewhat interesting/useful applications, and small, simple code for sending email. With most languages, the introductory code snippets are mostly just for showing the syntax and whatever simple function can be done in 2 lines instead of 5. But Rebol's code examples actually looked useful from the start. I'll have to try it out some day. Alas, one of too many that I have to try out some day.
- jared314 12y ago> My person vision is lots of tiny languages that work together I personally can't work deeply in more than about 4 languages at once. This might be my memory, my experience level, or it could be a human limit, like the short-term memory 7±2 limit.
- ludamad 12y agoWell I was thinking of little things like Protocol Buffers, which can interoperate with many parent languages, but are so close to data they don't require deep thinking. Edit: RE "Not same level as SQL", I meant in standardization. People can learn about SQL in isolation, too.
- pakled_engineer 12y agoThere is an interview with Don Knuth somewhere where he talks about having to work in numerous low level languages simultaneously to write compilers for different machines in the 1960s. He added that learning MIXAL/MMIX is no big deal compared to the days when every computer had a different architecture you had to learn, sometimes with little documentation.
- pwr22 12y agoApparently the average is five chunks now