Hacker News new | ask | show | jobs
by iNerdier 1081 days ago
I’m slightly confused by the aim of this article. It goes out if it’s way to state in the first few paragraphs how approachable it is to newcomers, then dives into talking about how good it is at making, other programming languages.

How big a desire of the average neophyte is to make themselves another language?

9 comments

There’s an elegance to a language that works great for beginners but also scales to very sophisticated use cases.
Indeed, Racket is a platform for active academic research in both computer science education and programming language theory.
I don't think both aspects are to be analyzed at once. Or unless maybe through the lens of minimization.

In most mainstream languages you have a large syntax, lots of idiosyncracies, and limited ability to hack with the innards of your tool. Scheme is small, regular and freeing.

Now personally, after my first year of college, I asked why on earth can't we access the methods in an object (java4 at the time) to generate a UI to dispatch / interact with it. Teacher rapidly walked me off the room while mumbling "but that would be metaprogramming!". I left confused about his annoyed tone.

Not until year 4 we had the chance to see reflection/intercession, lisps, macros.. I wish someone showed that to me when I was 12.

ps: it might not be obvious, and maybe I'm wrong but I see adhoc DSL's everywhere I work. ORM, build tools, they're all pseudolanguages.. and people keep reinventing them. Scheme/lisp offers it on a silver plater for you.

There are a lot of problems where people struggle to simply put the problem into meaningful terms, so they can think about it.

If you deal with the same problem space a lot, having a Domain-Specific Language (DSL) can let you execute that vocabulary and work at the level of the terms that fit the problem space best.

This is a lot smaller in scope than designing a whole programming language, think of it like a unique vocabulary for solving specific problems and automating specific kinds of work you do!

Seems pretty common to claim <technology X is both easy to learn yet extremely powerful>.
It’s taking about “little languages” (DSLs), somewhat in the spirit of what one thinks of as libraries/APIs (on a continuum, all the way to something with its own syntax… Like regular expressions).

https://chreke.com/little-languages.html

Is this any different than a beginner musician who learns to play their favorite songs but also write their own?
A neophyte wants to make a thing that -does- something, but part of the idea of Racket's Language Oriented Programming thing is to increase the subset of somethings for which throwing together a quick DSL makes for easier/nicer code.

I've not watched a relative neophyte try and actually -do- that so I can't comment on how far they've got with it, but making "creating DSLs" approachable seems like a really interesting thing to be aiming for.

The first series of courses in my CS program introduced us to building a pascal interpreter using scheme. It all depends on the pedagogical needs, I suppose.
New comers 5 years experience systems engineering. Just like your typical entry level job listing.