1. Sep 19th, 2006

    Rounded Corners – 26

    Critical but helpful. Speaking of being critical: Awful Users mean Great Product. Your worst critics may be your best help. Original article here.

    Get disorganized. Another good article from Vagueware: Too Much to Do, Too Little Time? It’s Probably OK.

    To DSL or not to DSL. Floyd Marinescu gives his on-the-fence opinion on DSL. Now, personally, I think purebred DSLs are recipes for disaster masquarading as good ideas. As evidence I’d like to present the court with XSLT and Maven. I have more examples, but these two will do well to illustrate what happens when your problem requires more than 50 lines of code, and some simple data handling. On the other hand, DSLs written in generic languages just work. You get the simplicity of the high level language with the ability to extend it as far as computers can compute. But don’t trust me on this one, try it yourself.

    The meaning of things. ApochPiQ’s write up on DSLs is a great read, specifically because he’s talking about a domain I know nothing about: games. It’s easier to read his arguments without getting bogged down by details.

    And speaking of details and meaning, the first part of this article reminds me of something. A conversation I had the other day about static vs dynamic languages. The person I talked to had such strong convictions in the truth of statically typed languages, he forgot why those types exist to begin with. And by types I mean classes and objects. Objects were controversial just two decades ago — remember “average Joe can’t get objects, blah, blah”? — we embraced objects because after all the difficulty, they save us from redundant code. They let us work at a higher level of abstraction, do less and innovate more. How easily we forget the meaning of things.

    Hotel bed jumping.

    1. Sep 19th, 2006

      ryan king

      To be fair, the external DSLs you cite as bad examples share common trait – XML. Maybe it’s the XML that should be blamed?

    2. Sep 19th, 2006

      Assaf

      I think those are good examples because the resulting language suffers from attention to tags over attention to features.

      XML makes a stronger point.

      But I’ve seen the same problem with any language that can’t move outside it’s domain. ABAP, Access Basic, ActionScript, Apple’s what-were-they-thinking Automator.

      Think of it from an economic sense. Developing a good language takes a lot of work. You need feedback, you need libraries, you need optimization, an eco-system, there’s a lot of work that goes into making a language useful.

      If a language is only good for one specific problem, it never gets that much attention to evolve into a great language.

    Your comment, here ⇓