

Some great examples of what Language Oriented Programming can do so people can craft solutions in a language that suits their use cases, as opposed to always starting on the ground floor: • https://docs.racket-lang.org/pollen/ ◦ https://beautifulracket.com/ • https://lang.video/ ◦ https://www.youtube.com/watch?v=OZXslNVaCOQ • https://docs.racket-lang.org/slideshow/index.html ◦ https://www.asumu.xyz/blog/2018/03/31/making-the-most-of-lang-slideshow/ • https://docs.racket-lang.org/scribble/

FWIW I have four versions of “listit” that shows how to write a simple web application.
https://github.com/soegaard/web-tutorial
The “listit” project eventually became http://racket-stories.com\|racket-stories.com . The source for Racket Stories is also available.

I don’t believe there is any one ideal language for software engineering. Different problem domains have different needs, and it’s not possible to be the best at everything all at once.
For a trivial example, for some of the things I am doing at work, I can’t be allowing a garbage collector anywhere near my code. But automatic memory management is essential to Racket’s ability to be good at what it does best.

Check also Bogdan’s Youtube videos on Koyo.

@cperivol has joined the channel

I guess out-of-band would be fine for at least some usecases. I guess it’s hard at the moment because you can’t tell the base reader to keep the comments, right?

I put together a simple Todo web app for RacketCon 2020 you might find useful: https://github.com/lojic/RacketCon2020

You asked a simple question, so I’ll give a simple answer: “Yes!” :) I decided to base all of my company’s development on Racket a few years ago, and in hindsight, it was a great decision. In my case, it has little to do with “language oriented programming” thus far, but I will likely incorporate more of that in the future. My specific reasons would require a lengthy blog post, and I think I’ll queue up that task.

I do not feel that writing interpreters & compilers is the ultimate way to conquer complexity, but it may be a piece of the puzzle sometimes.

I’m curious if any of you have (started to) read <https://mitpress.mit.edu/books/software-design-flexibility|Software Design for Flexibility> by Hanson & Sussman, and if so, how Racket-friendly is the code?

Muchas gracias compañeros! Estaré revisando el material que me han recomendado.

I’ve not read it yet


is there a #lang
definition for going up the bsl language? or do you have to use the dropdown menu to select

There was someone else asking about this a couple of months ago. I think the outcome was you can do it but the drop down is better.

nevermind, someone on discord answered: htdp/bsl, htdp/bsl+, htdp/isl, htdp/isl+, htdp/asl
and they’re all hdtp2 i presume

why is it better?

I can’t remember sorry

There are bugs in the #lang
versions, and it’s not what anyone teaches with, so it’s not been a high priority to make everything perfect there yet, and it’s less tested.

ahhh, thought they were the same thing. interestingly #lang htdp/bsl
hovers in big text when you’re in the definitions or interactions which is a nice touch to make sure students dont write in the wrong box but im sure this isnt a huge problem

the underlying infrastructure is pretty different between them, although they obviously share a lot of code

@jestarray I’m curious why the #lang
teaching languages are desirable ? Or is the intent to teach in an editor/ide other than DrRacket? and if that is the intent which editor and why?

mainly so i can switch to racket quickly without going to the dropdown menu, and also i was thinking vscode because it has autocompletion features now with magick racket and hopefully soon i can get around to implmenting inlay hints for function parms and structs (ghost text of func param names and struct fields so you dont have to guess or look up what param is what) https://i.stack.imgur.com/Sjdx5.png

Wow. That looks really cool!

Is the Vs-code autocomplete better than the DrRacket autocomplete?

much better

While I agree with some issues in Lisp Curse, I don’t think
> it require a lot of maintenance and documentation for users is warranted. Especially on the documentation issue, if you don’t write documentation, your users won’t understand your code whether the language has macro.

it’s on everytime you type unlike racket where i think you have to hit some hotkey , and pops up the signature

drcomplete
implements the feature that you want.

does it work with bsl ? do you think i should have students install it?

Just tried it with BSL and it seems to work just fine

alrirght sweet

I don’t personally find a twisty maze of poorly documented Lisp macros to be any more difficult to follow than a twisty maze of poorly documented custom Haskell operators or a twisty maze of poorly documented Java annotation magic.

wasnt there a gui for selecting packages to install?

I’m not aware of one, but there’s a gui that prompts a textbox that you can put a package name in

Yes the package install gui is in DrRacket

Or am I missing the point?

ahh file->install package

i think thats what i need, since racket doesnt add itself to windows path so you cant run raco
until you add it in

Jerry has always been very partial to MIT/GNU Scheme, and of the brevity of its specification. Given that people have successfully gone through SICP using Racket, and created SICP language(s) for doing so, I think at worst that’s the kind of thing that would be involved in using Racket for SDF. Looks like @jeffhhk has created a mirror https://github.com/jeffhhk/SoftwareDesignForFlexibility of http://groups.csail.mit.edu/mac/users/gjs/6.945/sdf.tgz

There is a menu option in DrRacket to set the path too. :smile:

@jestarray There is a gui for the package manager. Look in the file menu of DrRacket. I think, it can be started from the terminal too, but I can’t remember the name.

is there a built in that choses a random element from a list? currently writing this: (define (ran-pick options)
(list-ref options (random (length options))))

Maybe random-ref?

ahhh there we go, thanks

I have made decent headway into this book, and so far I have not run across anything that looks like it would introduce big issues. I haven’t attempted the exercises in Racket but I don’t think it would be too bad. My biggest surprise is that it is not written in #lang sicp but instead is a much larger MIT Scheme with quite a bit more built in. From one perspective that makes the book less portable to Racket, as it’s a bigger language. From another perspective it’s more portable as higher level abstractions are available in both dialects. Writing this out, I am tempted to start the book over in Racket.