Hacker News

New stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Raku Koans (hankache.github.io)
    —discuss
  2. Jupyter Ipywidget for Editable Tables (pypi.org)
    1comments
  3. Newcomb's Problem and Two Principles of Choice (1969) [pdf] (danielhoek.com)
    —discuss
  4. Predictable Swarm Scaling (wenhaochai.com)
    —discuss
  5. Show HN: Fusor – Like Vue, but the logic is Rust (fusor.build)
    —discuss
  6. Newcomb's Problem and Two Principles of Choice (springer.com)
    —discuss
  7. Functional Decision Theory: A New Theory of Instrumental Rationality (2018) (arxiv.org)
    —discuss
  8. Ask HN: What are people doing with their OpenClaw set ups now?
    —discuss
  9. Rene-1: Open-weight classifier sets SOTA on Decision Index (+9 over Jev) (huggingface.co)
    —discuss
  10. What archaeology reveals about the rise of all-powerful rulers (knowablemagazine.org)
    1comments
  11. Cloudflare's 2026 Annual Founders' Letter (cloudflare.com)
    —discuss
  12. Parametrised tests in Rust with named parameters (alexwlchan.net)
    —discuss
  13. Bookmarks, done right: Give your bookmarks a shape worth keeping (chromewebstore.google.com)
    —discuss
  14. Being a Doctor Will Never Be the Same After A.I (nytimes.com)
    3comments
  15. OpenAI to Halt Training of Some Models (gizmodo.com)
    —discuss
  16. US power companies scramble to secure equipment (reuters.com)
    —discuss
  17. A Quick Guide on Creating a Design System (andrewcoyle.com)
    1comments
  18. Free Space Bunny Model playground, no signup (spacebunnymodel.com)
    1comments
  19. Locked out: Why young Europeans can't afford to buy homes (euronews.com)
    —discuss
  20. Washington Challenges Brussels' Authority over X (reclaimthenet.org)
    —discuss
  21. Five Million Robots Now Operate in Factories Globally (ifr.org)
    —discuss
  22. Advice to a Beginning Software Engineer (seangoedecke.com)
    —discuss
  23. SpaceX Pivots Away from Space (ft.com)
    3comments
  24. Diagnosing and Mitigating Tool-Call Repetition in MiMo-v2.6 (xiaomi.com)
    1comments
  25. 3D necroprinting: Leveraging biotic material as the nozzle for 3D printing (science.org)
    —discuss
  26. How many strings can you create per second? (lemire.me)
    —discuss
  27. VevDB (vevdb.com)
    1comments
  28. Show HN: Vanish moves heavy computation off your laptop (vanishcompute.com)
    2comments
  29. Machine Learning Systems (mlsysbook.ai)
    —discuss
  30. Eyes on Asteroids (NASA) (nasa.gov)
    —discuss

A Programmable Programming Language (2018)

5 pointsby 1h agocacm.acm.org
1 comments
1h agoHN ↗

In the ideal world, software developers would analyze each problem in the language of its domain and then articulate solutions in matching terms. They could thus easily communicate with domain experts and separate problem-specific ideas from the details of general-purpose languages and specific program design decisions.

In the real world, however, programmers use a mainstream programming language someone else picked for them. To address this conflict, they resort to—and on occasion build their own—domain-specific languages embedded in the chosen language (embedded domain-specific languages, or eDSLs). For example, JavaScript programmers employ jQuery for interacting with the Document Object Model and React for dealing with events and concurrency. As developers solve their problems in appropriate eDSLs, they compose these solutions into one system; that is, they effectively write multilingual software in a common host language.

Sadly, multilingual eDSL programming is done today on an ad hoc basis and is rather cumbersome. To create and deploy a language, programmers usually must step outside the chosen language to set up configuration files and run compilation tools and link-in the resulting object-code files. Worse, the host languages fail to support the proper and sound integration of components in different eDSLs. Moreover, most available integrated development environments (IDEs) do not even understand eDSLs or perceive the presence of code written in eDSLs.

The goal of the Racket project is to explore this emerging idea of language-oriented programming, or LOP, at two different levels. At the practical level, the goal is to build a programming language that enables language-oriented software design. This language must facilitate easy creation of eDSLs, immediate development of components in these newly created languages, and integration of components in distinct eDSLs; Racket is available at http://racket-lang.org/