Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Domain-Specific Languages

    Domain-Specific Languages

    Martin Fowler · 2010

    When carefully selected and used, Domain-Specific Languages (DSLs) may simplify complex code, promote effective communication with customers, improve productivity, and unclog development bottlenecks. In Domain-Specific Languages, noted software development expert Martin Fowler first provides the information software professionals need to decide if and when to utilize DSLs. Then, where DSLs prove suitable, Fowler presents effective techniques for building them, and guides software engineers in choosing the right approaches for their applications. This book’s techniques may be utilized with most modern object-oriented languages; the author provides numerous examples in Java and C#, as well as selected examples in Ruby. Wherever possible, chapters are organized to be self-standing, and most reference topics are presented in a familiar patterns format. Armed with this wide-ranging book, developers will have the knowledge they need to make important decisions about DSLs—and, where appropriate, gain the significant technical and business benefits they offer. The topics covered include: • How DSLs compare to frameworks and libraries, and when those alternatives are sufficient • Using parsers and parser generators, and parsing external DSLs • Understanding, comparing, and choosing DSL language constructs • Determining whether to use code generation, and comparing code generation strategies • Previewing new language workbench tools for creating DSLs

    Computer ScienceProgramming
    Open LibraryAmazon
    Stats for nerds
    2recommend
    5mentions
    5people
    2010–2024years
    40% recommend60% neutral

    Mentions per year

    20102012201420162018202020222024

    What Hacker News says

    1. johndoe0815Dec 2024
      "Domain-Specific Languages" by Martin Fowler and Rebecca Parson might be interesting: https://martinfowler.com/books/dsl.html
      thread
    2. radicalbyteMay 2014
      They're called Embedded Domain-Specific Languages, Ruby is used quite often for the same purposes.

      If you're interested in the subject, then I'd recommend Martin Fowler's excellent book: http://martinfowler.com/books/dsl.html

      thread
    3. DonHopkinsMay 2020
      Hey, how about throwing in a perverted, fetishistic, masochistic programming language like FORTH, too? ;)

      Where do you think Logo and Snap fit into the three basic mental structures of psychosis, perversion, and neurosis, as W Watson describes in "The Pervert's Guide to Programming Languages"?

      https://news.ycombinator.com/item?id=22910702

      https://www.youtube.com/watch?v=mZyvIHYn2zk

      https://s3-us-west-2.amazonaws.com/vulk-blog/ThePervertsGuid...

      I have hope that Snap! has transcended the self-indulgent Turing Tarpit of Melancholy Languages like Scheme, Lisp (which spawned Scheme during a hysterical event), Smalltalk, and languages that never were, as described on the penultimate page. ;)

      Snap! strikes me more as a Hysterical language, frantically pursuing the object of desire, in pursuit of the perfect syntax.

      >Hysterical Languages: Hysterical development lends itself to languages that facilitate endless refinements in the code base. The delivered code is never good enough, not merely because of pragmatic reasons but often because of ascetic reasons. The final goal of capturing the elusive domain jargon [59] seems just around the corner, where just one refinement may perfectly represent the domain. Within the hysterical languages there can be two extremes. One extreme is to work towards the capability to easily represent any aesthetic. In this extreme the work and enjoyment are in the development of the language itself [60]. The other extreme is to consciously implement the aesthetic using the language as is [61]. This extreme bends the language to look more aesthetically pleasing. Somewhere in between are refinements to extremely large code bases that must stay available.

      >[59] “The overhead cost of all the translation, plus the risk of misunderstanding, is just too high. A project needs a common language that is more robust than the lowest common denominator. With a conscious effort by the team, the domain model can provide the backbone for that common language, while connecting team communication to the software implementation. That language can be ubiquitous in the team’s work.”, Evans, Eric (2003-08-22). Domain-Driven Design: Tackling Complexity in the Heart of Software (Kindle Locations 829-832). Pearson Education. Kindle Edition.

      >[60] “Also, I’m a great fan of evolving as opposed to just starting out new. You might fall in love with one particular idea, and then in order to implement it, you go create a brand-new language that’s great at this new thing. Then, by the way, the 90% that every language must have, it kind of sucks at. There’s just so much of that, whereas if you can evolve an existing language — for example, with C# most recently we’ve really evolved it a lot toward functional programming — it’s all gravy at that point, I feel.”, Biancuzzi, Federico; Chromatic (2009-03-21). Masterminds of Programming: Conversations with the Creators of Major Programming Languages (Theory in Practice (O'Reilly)) (Kindle Locations 7017-7021). O'Reilly Media. Kindle Edition.

      >[61] “A big part of the modus operandi of the Ruby community is a more fluent approach— trying to make interacting with a library feel like programming in a specialized language. This is a strand of thinking that goes back to one of oldest programming languages, Lisp.”, Fowler, Martin (2010-09-23). Domain-Specific Languages (Addison-Wesley Signature Series (Fowler)) (Kindle Locations 473-475). Pearson Education (USA). Kindle Edition.

      thread
    4. dj-wonkFeb 2017
      The results from the "Compiler-Construction" are not good. You'll find better results from a search engine, Q&A site, or bookseller:

      Here are the top 10:

          #1 Design Patterns - Ralph Johnson, Erich Gamma, John Vlissides, Richard Helm
          #2 Clean Code - Robert C. Martin
          #3 The C Programming Language - Brian W. Kernighan, Dennis M. Ritchie
          #4 CLR Via C# - Jeffrey Richter 
          #5 Modern C++ Design - Andrei Alexandrescu
          #6 Large-scale C++ Software Design - John Lakos
          #7 Inside the Microsoft Build Engine - Sayed Ibrahim Hashimi, William Bartholomew
          #8 Programming Microsoft ASP.NET 2.0 core reference - Dino Esposito
          #9 Compilers - Alfred V. Aho
          #10 Accelerated C++ - Andrew Koenig, Barbara E. Moo
      
      Ok, #9 is a sensible choice. The rest are not about compiler construction.

      Now, the top 20:

          #11 Hacker's Delight - Henry S. Warren
          #12 Nos camarades Français - Elida Maria Szarota (actually The C++ Programming Language by Stroustrup)
          #13 Compilers - Alfred V. Aho, Ravi Sethi
          #14 Inside the C++ Object Model
          #15 Code - Charles Petzold
          #16 Hacking, 2nd Edition - Jon Erickson
          #17 C Plus Plus Primer - Stanley B. Lippman, Josée Lajoie, Barbara E. Moo
          #18 C Interfaces and Implementations - David R. Hanson
          #19 Language Implementation Patterns - Terence Parr
          #20 LISP in Small Pieces - Christian Queinnec
      
      Ok, #13 and #19 look relevant. The rest... not so much, at least by a quick skim.

      Here are the top 30:

          #21 Linkers and Loaders - John R. Levine
          #22 Assembly Language Step-by-Step - Jeff Duntemann
          #23 The Garbage Collection Handbook - Richard Jones, Antony Hosking, Eliot Moss
          #24 Game Scripting Mastery - Alex Varanese
          #25 Domain-specific Languages - Martin Fowler, Rebecca Parsons
          #26 Computer Architecture - John L. Hennessy, David A. Patterson
          #27 The Elements of Computing Systems - Noam Nisan, Shimon Schocken
          #28 The ACE Programmer's Guide - Stephen D. Huston, James C. E. Johnson, Umar Syyid
          #29 Modern Compiler Implementation in C - Andrew W. Appel, Maia Ginsburg
          #30 Algorithms + Data Structures - Niklaus Wirth
      
      Caveat: I am not a compiler writer, though I have read many of these books. Still, my point stands, a good search engine gives more convincing results. Let me know if I'm missing something.
      thread
    5. tjpickOct 2010
      on amazon: http://www.amazon.com/Domain-Specific-Languages-Addison-Wesl...
      thread

    Related

    Cover of Domain-Driven Design
    2007–2026

    Domain-Driven Design

    Eric Evans
    104 recommend · 252
    Cover of Types and Programming Languages
    2008–2026

    Types and Programming Languages

    Benjamin C. Pierce
    132 recommend · 321
    Cover of Essentials of programming languages
    2008–2026

    Essentials of programming languages

    Daniel P. Friedman
    43 recommend · 76
    Cover of The C Programming Language
    2007–2026

    The C Programming Language

    Brian W. Kernighan
    246 recommend · 604
    Cover of Structure and Interpretation of Computer Programs
    2007–2026

    Structure and Interpretation of Computer Programs

    Harold Abelson
    347 recommend · 761
    Cover of Practical Foundations for Programming Languages
    2013–2026

    Practical Foundations for Programming Languages

    Robert Harper
    17 recommend · 34
    Cover of Programming Language Concepts
    2011–2018

    Programming Language Concepts

    Peter Sestoft
    4 recommend · 6
    Cover of Code Complete
    2007–2026

    Code Complete

    Steve McConnell
    393 recommend · 894