hackernews

1163 views
Skip to first unread message

Neil Van Dyke

unread,
Dec 13, 2018, 6:53:41 PM12/13/18
to Racket-Users List
This might be a bad idea, and normally I disapprove of this sort of
thing, but... does anyone want to take on the job of RACKET EVANGELISM
STRIKE FORCE, among a concentration of startup-types and other software
practitioners?

Specifically, you'd participate regularly in Y Combinator's popular
"Hacker News" Web forum, "https://news.ycombinator.com/", and, when the
not-unusual occasion to mention/show a strength of Racket presents
itself, do so.

I occasionally see Racket mentioned on HN, but not nearly as often as it
legitimately could be.

(There are also other strategic targets for the RACKET EVANGELISM STRIKE
FORCE operator or cell, and I recall Eli Barzilay and others active on a
lot of them years ago, but HN might be first priority right now.)

Jason Stewart

unread,
Dec 14, 2018, 12:40:23 PM12/14/18
to Racket Users
Probably counterproductive.  I've still got a bad taste about Rust from all of their people bombing the C and embedded threads--everywhere.

Hard to top HN itself for Racket evangelism.  It's written in Arc, which is written in Racket.

Neil Van Dyke

unread,
Dec 14, 2018, 8:55:16 PM12/14/18
to Racket Users
Jason Stewart wrote on 12/14/18 12:40 PM:
> Probably counterproductive.  I've still got a bad taste about Rust
> from all of their people bombing the C and embedded threads--everywhere.

The name is actually adapted affectionately from what I heard called the
"Rust Evangelism Strike Force". :)  (I'm not criticizing Rust; it has a
special appeal to me personally, and there's a lot of great work in Rust.)

I agree wholeheartedly that RACKET EVANGELISM STRIKE FORCE needs to have
a sense of decorum, though I'm not the best person to ask about the
subtleties of that. :)  Some suggestions...

If an HN thread is itemizing tools for DSLs, and Racket isn't mentioned,
or whomever mentioned it missed the biggest selling points, maybe you
should speak up.  Similarly, if someone is talking about trying to add
syntax extension to a language, you can mention what Racket has learned
about that.

If the topic is an unusual neat feature from some language, and there's
a neat Racket package for that, or you can post an interesting small
`syntax-parse` implementation ("this is one way it can be reduced to
more traditional code"), maybe without the riskiness of showing off your
Redex formal semantics skillz, *maybe* that's helpful and good PR.

But you don't want to be "Racket, too, is a computer programming
language".  And, if an HN thread is talking about something someone did
in Foobar Scheme, you probably don't want to say "Racket can run that
code, and we are more popular and better-looking".  Maybe avoid
religious battles, especially ones that have been done to death decades
ago (e.g., hygienic macros).  Don't pick fights about type theory,
because most of us who are not named Matthias would get our butts kicked
if certain other language gangs showed up.

And countless tactical judgment calls you have to make, based on your
RACKET EVANGELISM STRIKE FORCE boots-on-the-ground situational awareness.

Despite the tongue-in-cheek name, you're a fellow enthusiastic and
thoughtful practitioner, who wants to learn what others have to share,
and who wants to share stuff you've already learned.

> Hard to top HN itself for Racket evangelism.  It's written in Arc,
> which is written in Racket.

I think Racket also deserves additional, newer HN claims to fame. :)

(As always, should you or any of your RACKET EVANGELISM STRIKE FORCE be
discovered behaving boorishly, the Professors will disavow any knowledge
of your actions.)

Jens Axel Søgaard

unread,
Dec 15, 2018, 10:45:11 AM12/15/18
to Neil Van Dyke, Racket-Users List
Den fre. 14. dec. 2018 kl. 00.53 skrev Neil Van Dyke <ne...@neilvandyke.org>:
This might be a bad idea, and normally I disapprove of this sort of
thing, but... does anyone want to take on the job of RACKET EVANGELISM
STRIKE FORCE, among a concentration of startup-types and other software
practitioners?

Specifically, you'd participate regularly in Y Combinator's popular
"Hacker News" Web forum, "https://news.ycombinator.com/", and, when the
not-unusual occasion to mention/show a strength of Racket presents
itself, do so.

I occasionally see Racket mentioned on HN, but not nearly as often as it
legitimately could be.

FWIW - here is my bookmark for "Has Racket been mentioned lately?"


Peter Schmiedeskamp

unread,
Dec 15, 2018, 11:48:09 AM12/15/18
to Racket Users
I’m probably guilty of already being part of this task-force. To add, I wonder if there’d be value in some longer, blog-form replies to interesting HackerNews queries.

For example, someone was extolling the virtues of some new system for building and packaging simple GUI apps for Linux using Python. I’ve poked around with the GUI and packaging facilities of Racket enough to feel like Racket has a pretty good story to tell, at least for smaller cross-platform apps. A short blog showing the end-to-end creation of a small GUI app, with emphasis on showing the symbiosis of the GUI library and the excellent raco packaging and distribution facilities would be a great “reply” to such an article on HN.

I wonder if there's a way that these use cases could at least be collected... maybe as an RFB—Request For Blog. Time is always at a premium, but I could imagine picking off a blog post here and there even though I’m a decidedly rank novice Racketeer.

Maybe there’s already a list somewhere? Maybe RFBs could be a section of the Racket Blog?

Best,
Peter

Jason Stewart

unread,
Dec 15, 2018, 12:25:03 PM12/15/18
to Racket Users
RFB is a wonderful idea.  Aside from the main site, there is a lot of catching-up to do (quantity-wise anyway) compared to something like JavaScript or Ruby.

I'm not sure if HN even matters if there are enough good blog posts out there.  Search does a decent job of getting people to those sorts of post.

Biggest obstacles I see to filling the web with Racket articles would be the high quality of existing documentation, and the straight-forward nature of the language itself.  When it comes to things like C++, PHP, and JavaScript, there is so much room for comment because they are all so full of arbitrary / strange / questionable choices that demand further explanation, and once explained, open the field to debate over which (necessary) defensive strategies are best.

George Neuner

unread,
Dec 15, 2018, 4:53:06 PM12/15/18
to racket...@googlegroups.com

This hit the news yesterday:  SQLite contained a remote code execution bug.  According to the ZDNet article the bug has been fixed as  of  v3.26.0 released December 1st.  If your application uses SQLite, you probably should update it.   Hopefully the Racket maintainers will update the library (where appropriate) in the next Racket release.

George

John Clements

unread,
Dec 15, 2018, 6:32:30 PM12/15/18
to George Neuner, racket...@googlegroups.com
cf. Relevant tweet from Patrick Walton (I worked with Patrick on Rust at Mozilla):

https://twitter.com/pcwalton/status/1073755208558100480
> --
> You received this message because you are subscribed to the Google Groups "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to racket-users...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



Neil Van Dyke

unread,
Dec 15, 2018, 10:38:43 PM12/15/18
to Racket Users
This piece by Danny Hillis (which I just happened to cite on a very
different topic) is an easy read, and perhaps inspirational on the value
of explanation and cross-pollination, such as one might do when bridging
communities of interest, with popular forum participation and blogs:

http://longnow.org/essays/richard-feynman-connection-machine/

If you like it, other writings and videos by/with/about Feynman have a
lot more.

(Also, if you ever have an opportunity to start an article as "One day
when I was having lunch with Richard Feynman", you must take it.)

Will Jukes

unread,
Dec 16, 2018, 5:35:38 PM12/16/18
to Racket Users
Oh but that place just seems so awful.

Alex Harsanyi

unread,
Dec 16, 2018, 8:30:55 PM12/16/18
to Racket Users
I have written a few blog posts on Racket GUI topics and I have a few more planned.  They cover some more advanced uses of the GUI library -- I think the basics are already well documented. You can find them here:


Alex.

Jérôme Martin

unread,
Dec 17, 2018, 9:11:09 AM12/17/18
to Racket Users
I'm also occasionally writing posts about Racket on my blog. Only one is public for now, and is a multi-parts tutorial about writing DSLs in Racket.

I'm trying to summarize and reformulate some of the things I learned by making small languages in Racket. If you already read Beautiful Racket, I guess there's nothing new to learn, because I'm mostly targeting developers not aware of lisp languages.

Feel free to contact me if you want to share some advice and feedback!

I'm not confident the article is worth a post on HN for now, and I don't know if my Racket server will sustain a mention on HN anyway, but if you feel it's worth posting, feel free to do so.

Gustavo Massaccesi

unread,
Dec 17, 2018, 9:32:56 AM12/17/18
to Peter Schmiedeskamp, Neil Van Dyke, Racket Users
I agree that it would be much better to write good blog posts about Racket. They don't need to be fantastic, they don't need to be better than the documentation, they only has to be interesting. I usually prefer post with one or two big relevant graph (or photos when there is hardware involve), I like images. (It doesn't have to be very interesting, sometimes an article is more interesting than what you expect)

Have you recently solved some interesting problem (using Racket)? It's better if it's a real life problem, but a nice toy problem can be interesting too.

Sometimes translating an interesting article to Racket can be a good idea, if the translation shows some unique feature, like a smart use of macros or a library that are not available in other languages.

(Don't post too often. Unless you are very good writing, you can't write more than one interesting article per week(/month(/year)).)

---

The problem of going to HN to write comments about Racket is that the community has a lot of unwritten rules. (No jokes. No kittens. No astroturfing/sockpupet/meatpupets. No onliners. [1] . No voting rings. No asking for votes in other platforms.)

There is no problem if an article gets popular and the author goes to the site to answer the questions. The unwritten rules are not too strict and they don't apply if the author can give some interesting relevant answers and more information. Don't be afraid of answering questions there.

Some types of bad comments:

* photobomb unrelated threads with a reference to Racket. (For example, in an article about regular expression in PHP, posting "Racket has two types of regular expressions").

* astroturfing comments (For example in an article about something in Racket, posting "I use it too and it is fantastic!!!!" [there is also an unwritten rule about too many exclamation marks].)

* fake questions in unrelated articles (like "I wonder if it possible to write this in Racket?")

* "Why didn't they use Racket instead?" "Why don't they rewrite this in Racket?" ([bonus negative points if it is another Scheme-like language])

Gustavo


[1] You can write onliners in HN, but it's very difficult to write good onliners. It's much easier to add more information and more context. Jokes are also legal, but it must be a very good original joke, so better avoid jokes.




--
You received this message because you are subscribed to the Google Groups "Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to racket-users...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Hendrik Boom

unread,
Dec 17, 2018, 1:40:25 PM12/17/18
to Jérôme Martin, Hendrik Boom
On Mon, Dec 17, 2018 at 06:11:09AM -0800, Jérôme Martin wrote:
> I'm also occasionally writing posts about Racket on my blog. Only one is
> public for now, and is a multi-parts tutorial about writing DSLs in Racket.
>
> I'm trying to summarize and reformulate some of the things I learned by
> making small languages in Racket. If you already read Beautiful Racket, I
> guess there's nothing new to learn, because I'm mostly targeting developers
> not aware of lisp languages.
>
> You can find the first part here:
> http://rilouw.eu/article/the-programming-language-of-your-dreams-part-1
> Feel free to contact me if you want to share some advice and feedback!

Definitely not ready yet. You've written a start to an exposition on
how write a #lang module, and actually showed how to do it in an
incremental way, testing and checking what you do while you do it. An
exposition I'd very much like to read the rest of. I too have racket
tweaks I'd like to implement.

(1) You start out with an imaginary UI language (which hapens to look
like XML; I noticed that!) and you seem to indicate that you're going
to show how Racket can choke that down.

(2) But all you do is show how you can, via your (incomplete)
ui-lang.rkt module, get Racket to behave like Racket. This isn't
likely to impress.

Since I already know about Racket and appreciate it, I can appreciate
what you've accomplished, and how this is a reasonable base for further
development. But the non-Racket-initiate isn't going to get that. And
he's likely not to get around to episode #2 of your exposition.

(3) In the end, you present a different language from the one at the
beginning -- something that's not XML. It might have been better not
even to mention the XML version at the start, but instead mention the
one you are actually going to implement. XML, for the reader you are
targetting, is old-hat anyway.

I'm not at all sure how to rewrite this in a style that is likely to
grab and maintain the interest of the reader you are aiming for.

Writing is *hard*.

Maybe you need to use the textual freedom the web gives you and, early
on, have links to the actual implementation details. Or mention the
translation of this special-purpose language is. Or how it's executed.
Or what the menus look like (a screen-shot, maybe?)

Anywaay, I'd like to see the rest of what you're doing. Perhaps just
email me the actual implementation code so I can look it over before
you rewrite your short series of article.

I'll be happy to provide prepublication critique of what you write --
what works for me, what doesn't work, and what I do and don't think
will work for the intended audience.

-- hendrik

Stephen De Gabrielle

unread,
Dec 26, 2018, 7:40:55 AM12/26/18
to Neil Van Dyke, Racket-Users List
Maybe a high profile social media patron - I’m sure JA is doing wonders for TiddlyWiki:

How did other languages grow their audience? e.g. Ruby-on-Rails, Perl, Python, PHP, C++, Rust ?
(All fine languages with  many strengths - but there are many fine languages with the same strengths that are not objectively worse. Some may be better e.g. Haskell, ML family, Lisp family, prolog family)

happy Boxing Day
Stephen

--
You received this message because you are subscribed to the Google Groups "Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to racket-users...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
----

Neil Van Dyke

unread,
Dec 26, 2018, 9:51:21 AM12/26/18
to Stephen De Gabrielle, Racket-Users List
Stephen De Gabrielle wrote on 12/26/18 7:40 AM:
> How did other languages grow their audience? e.g. Ruby-on-Rails, Perl,
> Python, PHP, C++, Rust ?

All of those had merits, were right place and at right time, and (except
Rust) really spread when there was *a lot* less noise and sheer mass of
stuff.  Also, some of those had very long ramps to their ultimate
popularity (which could give some hope to Racketeers).

Ruby with Rails was a decent language that pushed a good model and
automagical conveniences for Web developer productivity, and they seemed
to have a good community (e.g., when I was shopping around for my new
research platform language, and I don't think I'd even heard of Ruby at
that time, one of the nice Ruby people happened to hear about my quest,
and emailed me, suggesting Ruby).

We talked about Perl growth spikes here recently.

Python started out as some guy on Usenet with a reusable extension
language (Tcl was another, and some RnRS implementations were another)
-- all 3 of them had interesting innovations and merits. (Tcl got
popular because of Tk GUIs, and then it has some moments in the sun for
earlier database-backed Web servers (as opposed to manually-edited HTML)
while a lot more readable than Perl, and was pushed commercially by
Philip Greenspun, before Sun hired Tcl creator Ousterhout, and Tcl
disappeared, in favor of Java and then LiveScript/JS.)

PHP was in the early Web gold rush, when template-ish approaches were
attractive alternative to CGI scripts that started as Perl (or, less
likely, other imperative language) code that spat out HTML strings.  You
could also do HTML templates various other ways, including in Perl, but
the Web was so new, and the tools so not figured out, and everyone was
racing to do neat stuff (or to get VC funding, then Herman Miller office
furniture and launch party, and then IPO), that there was a lot of
random going on, and we aren't in that kind of environment anymore. 
Well, unless you were pitching a "blockchain" startup during the BTC:USD
run-up a year ago -- it didn't much matter what tools you grabbed, so
long as you told the VCs you were doing "blockchain" (you didn't even
have to madlibs pitch "Our startup is like _Uber_, for _cats_!  (Can you
handle the sheer force of our raw innovation, unleashed!)").

C++ had the funding and promotional/endorsement backing of the people
who brought us C and Unix, and (again) there was a lot less stuff, and a
lot fewer programmers.  The people using C were some of the most
technically-skilled programmers: OS-level systems programmers (who also
used assembler), Unix workstation technical application/research
programmers, PC shrinkwrap software developers, and EEs doing software
bits of embedded systems.  (The corporate MIS programmers were a
separate group -- they mostly did database forms and reports and
business logic, and there seemed to be subgroups for different
platforms.  Much of the MIS seemed to be analogous to today's Web
programmers, and I'm not sure how MIS platform adoption decisions were
made in various kinds of organizations then.)

Anyway, besides the Bell Labs / AT&T backing, I recall one thing that
helped push C++ was the people doing GUI and hearing about OO (with
references to Smalltalk), at a time when people were just reasoning
low-level code and ad hoc formalisms, or using pre-OO analysis and
design methods (structured SA and SD, ERDs, etc.), and it was really
easy to sell generalization/polymorphism to those people.  Plus AT&T was
saying C++ would help with mission-critical and performance-critical
large and complex systems, and you had workstation developers like
Mentor Graphics endorsing it.  Also, again, the amount of stuff and the
number of programmers was a lot smaller then; one anecdote: by the time
there was a Usenix C++ conference, it was small enough that, while
Stroustrup was talking during a Q&A in the hotel conference room (maybe
around the scale of current RacketCon), some toddler goes running up the
aisle from the back of the room, saying something like "daddy!", and
everyone laughs.

Early Rust had some really thoughtful and language careful design, and
it tackled one of the hardest challenges of working in C, which is
allocation management (which not enough C programmers take seriously
enough).  Now they have the funding investment and high-profile
endorsement (sound familiar?) of Mozilla and a few other
credibility-lending companies, and might be driven now in part by
pragmatic needs of projects.  (Early Racket pragmatics also seemed
driven by pragmatic needs, like getting DrScheme to work, and
cross-platform.)  Rust has also attracted a ton of volunteer effort,
including a large number of high-quality and innovative reusable
packages.  (Innovative, not unlike you'd see from Lisp-family people,
because their platform gives them an advantage, and because the
programmer is likely to be high-skilled.  Racket was doing some of this
early on, but the numbers of such contributions didn't ramp up as
quickly as they did for Rust.)  I missed part of history of how Rust
evolved, while I was focused on Racket and paying bills, so maybe
someone can fill in the gaps here of how they bootstrapped popularity,
and what Racket can learn from that.

(BTW, it's good to see Racket's secret research lab doing more work on
DSLs and other things.  We can't rest on our laurels, and other
languages are improving their DSL support, though they have syntax
handicaps and are starting way later than us, Bell Labs and older Lisps
excepted.)

Why I suggested focusing outreach on Hacker News (and maybe I've talked
about it more recently on "racket-money" than "racket-users") was... I
want to see more people making a living working with/on Racket (outside
of professorships, and grad student slave stipends), and I think that
means a lot more companies using it for substantial projects, and I
suspect the best bet is startups who can choose their tools (and are
funded as gambles), and I suspect the best bet for that is getting HN
startup success stories like: "we got to launch and ___ funding round,
with Racket, because DSLs, and Racket is the best for that".  Then other
HN people will see a success story, a couple might be inspired to think
about DSLs for their own startup idea, and then somehow this becomes
RACKET EXPONENTIAL EXPLOSION.  Or at least more people making a living
working with/on Racket.

BTW, maybe jobs using Racket will also encourage a lot more quality
contributions of packages, when there's the additional motivation of
open source "auditioning" for jobs, in addition to the current community
participation, platform promotion, and love of craft.

Matthew Butterick

unread,
Dec 26, 2018, 1:50:20 PM12/26/18
to Neil Van Dyke, Racket-Users List
I agree that success stories are helpful. I'll go one better — I think it would be great to have a section of the main Racket website devoted to these stories that show who uses Racket and how / why (inside & outside academia). This could be done in an interview-style format, like Jesse Alama's recent book about language-making in Racket [1]. Photos also. I would be happy to contribute design & layout if a sufficiently motivated collaborator — you, Neil? — wanted to conduct the interviews & gather the material.

I find the idea of doing language advocacy *on* Hacker News (or Stack Overflow, or Quora, etc.) to be weird. Not because I'm a curmudgeon. But rather because it's inherently low-leverage, and misses a lot of the people who are persuadable.

Neil Van Dyke

unread,
Dec 26, 2018, 4:20:00 PM12/26/18
to Matthew Butterick, Racket-Users List
Matthew Butterick wrote on 12/26/18 1:50 PM:
> I agree that success stories are helpful. I'll go one better — I think
> it would be great to have a section of the main Racket website devoted
> to these stories that show who uses Racket and how / why (inside &
> outside academia). This could be done in an interview-style format,
> like Jesse Alama's recent book about language-making in Racket [1].
> Photos also.

These success stories on the Racket Web site sound like a good idea.

Or, even short testimonials, or even movie poster blurb one-liners, on
the Racket Web site, could also be good.

If one did these success stories on the Racket Web site, you could
promote them with post(s) to Hacker News and somewhere on Reddit (not
"/r/racket", unless you can get it cross-posted to where startup-types
are, or somehow to the default front page).

One caution: careful not to damn oneself with faint praise.  The
interviewer/editor would need to find noteworthy and reasonably
current/big stories.  It's pretty common (and I've done it myself) in
promotion of things with low adoption thus far to milk a few uses way
too much, and way past their freshness date.

> I would be happy to contribute design & layout if a sufficiently
> motivated collaborator — you, Neil? — wanted to conduct the interviews
> & gather the material.

I'm maxed out on pro bono actual-work right now.  ('My TED talk'
explains my role now: "https://www.youtube.com/watch?v=DkGMY63FF3Q&t=4s")

If no Racketeer with journalistic inclinations can make these success
story writeups happen, maybe one of the university Communications
offices wants to do a piece on some of the Racket research and the "open
science" aspects of it, including getting "technology transfer" quotes
from commercial users.  And the Racket Web site could reproduce the
article, with permission.  And then promote that URL on HN and wherever,
and followup with the grassroots evangelizing.  (NEU PR people, for
example, have this and some Racket-related prestigious awards and
spreading international academic influence to brag about.)

> I find the idea of doing language advocacy *on* Hacker News (or Stack
> Overflow, or Quora, etc.) to be weird. Not because I'm a curmudgeon.
> But rather because it's inherently low-leverage, and misses a lot of
> the people who are persuadable.

You could be right.  I was only thinking of how to reach people who'll
do startups, with low-investment grassroots effort that every Racketeer
could do.

(Reaching academics through research publications and prior Scheme/Lisp
awareness, and undergrads through HtDP, for about two decades now, has
not been converting to significant numbers of startups and other
companies that use Racket.  I'm having flashbacks to earlier in Racket
history, when I was surprised that every MIT Course VI (CS & EE) ugrad
alum I encountered, despite having been taught Scheme in their
CS-formative years, thought Scheme was only a pedagogic language for
SICP problem sets.  It's like Scheme made an unholy bargain, to let it
produce top intro CS textbooks, and we're foolishly fighting against the
curse side of that. :)

Stephen De Gabrielle

unread,
Dec 26, 2018, 4:51:03 PM12/26/18
to Matthew Butterick, Neil Van Dyke, Racket-Users List
Hi Matthew, Neil,

> the people who are persuadable.
So who are the ‘persuadable’? And where to find them if not on hn? 

I’m one of the ‘corporate MIS programmers’, but in the public sector(health), and I get to interact with a variety of software vendors as well as and build forms, worklists, reports and business logic on their platforms. I certainly don’t get to choose.

My role does put me in the lucky position to ask ISV’s what languages their systems are written in;
Example include (from older to newer)
* COBOL 
* VB.6 (two vendors)
* ASP.net, C# & JavaScript (more recent vendor)
* PHP w/Symfony & Python
* Ruby on Rails 
* Java
* Perl 
* Cache/MUMPS (two vendors - one is actually the customer of the other)
[ these are all ‘single product vendors’ - I don’t know if that is unusual in industry ]

In all the cases it seems the language is determined by the founder, and has not changed for the life of the product & company, in some cases for many years (the cobol and VB products have been around for 20+ years)

I’ve even met some of the founders - 3 out of 4 are specialty doctors.

I will have to ask next time I meet a founder, but at this stage I don’t think any ‘choosing a language’ was involved - I think the founders I have met just chose whatever was available at the time. (if you a meet a potential founder please say ‘have you looked at Racket?’)

I had to type this to put it together in my head - maybe I shouldn’t have sent it and bored you with my thought processes.

So who are the ‘persuadable’? And where to find them? 

Kind regards,

Stephen

PS in my workplace the biggest competitor isn’t other languages, it is the spreadsheet; sometimes stand alone, sometimes linked or shared, but mostly with no VBA.

PPS I think the Jupyter enhanced REPL idea is worth pursuing and extending as this might be a way generate interest in the Racket runtime and associated languages.




--
You received this message because you are subscribed to the Google Groups "Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to racket-users...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
----

Neil Van Dyke

unread,
Dec 26, 2018, 5:09:14 PM12/26/18
to Stephen De Gabrielle, Racket-Users List
Stephen, thanks for the useful info on adoption in health sector MIS.

Stephen De Gabrielle wrote on 12/26/18 4:50 PM:
> PPS I think the Jupyter enhanced REPL idea is worth pursuing and
> extending as this might be a way generate interest in the Racket
> runtime and associated languages.

BTW, to be clear (since it took me a while to unravel the vague and
changing meanings of Jupyter and IPython the other day)...

What I proposed in another thread here was adding an user interface to
DrRacket that's inspired by Jupyter Notebook and other notebook
metaphors from stats tools.

There's also a different possible Jupyter angle for Racket, in which
Racket is a backend for the Jupyter frontends (in lieu of DrRacket).  I
think that approach would also be useful for some people, and Ryan
Culpepper is already tackling that one (and I wanted to let him
publicize it on his schedule).

These two different approaches might interoperate, if the first approach
also saves a Jupyter ".ipynb" file, and then notebooks files could be
moved back and forth between DrRacket and Jupyter, and run in both.

Jason Stewart

unread,
Dec 26, 2018, 5:25:31 PM12/26/18
to Racket Users
Even for blue-sky projects without any legacy lock-in, I don't fancy our chances with the enterprise/MIS crowd.  They tend to favor straight-jacket languages, and for good reason!

For some guy running a two-man startup, something like Racket is a super weapon.  For a large organization--with any staff turnaround at all--metaprogramming is cancer.  They need a "paper trail" for the next guy to follow.

Neil Van Dyke

unread,
Dec 26, 2018, 6:05:01 PM12/26/18
to Jason Stewart, Racket Users
Jason Stewart wrote on 12/26/18 5:25 PM:
> Even for blue-sky projects without any legacy lock-in, I don't fancy
> our chances with the enterprise/MIS crowd.  They tend to favor
> straight-jacket languages, and for good reason!

Agreed.  (A big-corporate exception being R&D and "startup-like" units,
not necessarily under MIS, like some might have in, e.g., fintech.)

> For some guy running a two-man startup, something like Racket is a
> super weapon.  For a large organization--with any staff turnaround at
> all--metaprogramming is cancer.  They need a "paper trail" for the
> next guy to follow.

Them's fightin' words. :)  For a counterexample, consider a programmer
inheriting a project with an LALR or LR(1) parser written voluminously
by hand, and a programmer inheriting a project instead using a parser
generator DSL.  The non-DSL-using code might never be understood enough
to find the bugs or extend it correctly.  The new programmer might not
even recognize the model that the non-DSL-using one is supposed to be
implementing, nor stick to a documented model in what changes they do. 
And then a third programmer comes along, and then a fourth...

In an organization with good software engineering, judicious use of
DSLs, and having them well-documented, tested, and maintainable, seems a
win.

I think bigger barriers to enterprise adoption of Racket than "I heard
that 'metaprogramming' eats your babies" are:
(1) Wanting employees to be interchangeable cheap commodities.
(2) Wanting someone to blame/sue/consult if anything goes wrong.

I'm happy to let "the enterprise" wait to adopt Racket until after
everyone else has had years of success stories.

I think we agree that startups are a much more likely path for Racket
commercial uptake.

Hendrik Boom

unread,
Dec 27, 2018, 9:44:58 AM12/27/18
to Racket-Users List
On Wed, Dec 26, 2018 at 09:51:17AM -0500, Neil Van Dyke wrote:
>
> Python started out as some guy on Usenet with a reusable extension
> language (Tcl was another, and some RnRS implementations were another)
> -- all 3 of them had interesting innovations and merits. (Tcl got
> popular because of Tk GUIs, and then it has some moments in the sun
> for earlier database-backed Web servers (as opposed to manually-edited
> HTML) while a lot more readable than Perl, and was pushed commercially
> by Philip Greenspun, before Sun hired Tcl creator Ousterhout, and Tcl
> disappeared, in favor of Java and then LiveScript/JS.)

I seem to remember hearing that Scheme was one of the
inspirations for Python. That and another language.

-- hendrik

Brett Gilio

unread,
Dec 27, 2018, 11:24:19 AM12/27/18
to Hendrik Boom, Racket-Users List
That other language is Dylan, which is also inspired by Scheme.

Brett Gilio

Matthew Butterick

unread,
Dec 27, 2018, 12:00:33 PM12/27/18
to Brett Gilio, Hendrik Boom, Racket-Users List
According to Brendan Eich, "The good parts of [JavaScript] go back to Scheme and Self" [1] combined with "a lot of stupid". [2]

Neil Van Dyke

unread,
Dec 27, 2018, 1:46:48 PM12/27/18
to Racket-Users List
Matthew Butterick wrote on 12/27/18 12:00 PM:
> According to Brendan Eich, "The good parts of [JavaScript] go back to
> Scheme and Self" [1] combined with "a lot of stupid". [2]

I appreciate Eich's candor and thoughtfulness there.

From Self, I think JavaScript initially got the prototype object model,
and possibly whatever slot access/dispatch optimizations Self used.

Self did some even more novel/noteworthy things, which PL enthusiasts
would want to know about: JIT or runtime incremental optimization,
visual/concrete programming active morphs worlds, and (I include this)
the morphs world object editors.

Self was very neat and exotic at the time I used it.  And the set of
innovations suggests such a pleasing causal chain of necessity being the
mother of invention, that I don't want to know if it's not the truth: 
morphs world => loose prototype-delegation concurrent objects => runtime
optimization.

Regarding Scheme, I suppose Eich might've just used a simple Scheme with
a prototype object model (it's very simple to implement).  But Java was
already out there, the original purpose of LS/JS (IIRC) was merely glue
to load Java applets (not full-GUI-application DOM manipulation and
logic like today), and Sun had made Java have a C++/C syntax, because
that's the kind of programmer they thought would be developing in it.  I
suppose, as soon as I was whipping up a "Java-ish light scripting
language" back then, even if Scheme was my inspiration, as soon as I was
figuring out the different syntax anyway, I probably would've simplified
semantics (e.g., free tail calls and first-class continuations would
seem unnecessary).

Stephen De Gabrielle

unread,
Dec 27, 2018, 4:47:29 PM12/27/18
to Neil Van Dyke, Racket-Users List
I always wanted to ask if the prototype object model is a good idea or bad idea?

The same question applies to Morphic User Interface Construction Environment - good idea or bad idea?

Given neither idea seems to have caught on I’m assuming both are dead ends?

Kind regards,

Stephen

Andrew Gwozdziewycz

unread,
Dec 27, 2018, 5:06:36 PM12/27/18
to Brett Gilio, Hendrik Boom, Racket-Users List
Sometime in the 2000s, I heard Guido talk at Google NYC about the
history of Python. In the 80s he was working for / with librarians who
used a language called "ABC." Python was meant to be a better version
of that. The History of Python wiki page suggests it was meant as a
"better verson of ABC with exceptions and better integration with the
Amoeba Operating System."[1] The exceptions originally were inspired
by Modula-3, apparently. Any influence of Lisp, and Scheme came later,
is my guess. That same page cites a quote from Guido suggesting "some
Lisp hacker" implemented map, filter, and lambda for version 1.


[1]: https://en.wikipedia.org/wiki/History_of_Python


--
http://www.apgwoz.com

Hendrik Boom

unread,
Dec 27, 2018, 5:15:42 PM12/27/18
to Racket-Users List
On Thu, Dec 27, 2018 at 02:06:22PM -0800, Andrew Gwozdziewycz wrote:
> On Thu, Dec 27, 2018 at 8:24 AM Brett Gilio <bre...@posteo.net> wrote:
> >
> >
> > Hendrik Boom writes:
> >
> > > On Wed, Dec 26, 2018 at 09:51:17AM -0500, Neil Van Dyke wrote:
> > >>
> > >> Python started out as some guy on Usenet with a reusable extension
> > >> language (Tcl was another, and some RnRS implementations were another)
> > >> -- all 3 of them had interesting innovations and merits. (Tcl got
> > >> popular because of Tk GUIs, and then it has some moments in the sun
> > >> for earlier database-backed Web servers (as opposed to manually-edited
> > >> HTML) while a lot more readable than Perl, and was pushed commercially
> > >> by Philip Greenspun, before Sun hired Tcl creator Ousterhout, and Tcl
> > >> disappeared, in favor of Java and then LiveScript/JS.)
> > >
> > > I seem to remember hearing that Scheme was one of the
> > > inspirations for Python. That and another language.
> > >
> > > -- hendrik
> >
> > That other language is Dylan, which is also inspired by Scheme.
>
> Sometime in the 2000s, I heard Guido talk at Google NYC about the
> history of Python. In the 80s he was working for / with librarians who
> used a language called "ABC."

Is that the ABC pioneered by Lambert Meertens? I was familiar
with it in its early days. It was meant to be a better language
for beginners than BASIC.

> Python was meant to be a better version
> of that. The History of Python wiki page suggests it was meant as a
> "better verson of ABC with exceptions and better integration with the
> Amoeba Operating System."[1] The exceptions originally were inspired
> by Modula-3, apparently.

Yeah. That was the other language I couldn't think of. One
of my favorites for a long time, and implementations still
available online. An elegant language, except for its Pascal
syntax.

-- hendrik

Neil Van Dyke

unread,
Dec 27, 2018, 9:27:07 PM12/27/18
to Stephen De Gabrielle, Racket-Users List
Stephen De Gabrielle wrote on 12/27/18 4:47 PM:
> I always wanted to ask if the prototype object model is a good idea or bad idea?

I think it's not a bad idea, but I think you probably wouldn't use it
for general-purpose OOA, OOD, or OOP right now.  For a long time, OO
overwhelmingly embraced mostly the same class-instance-inheritance
model.  Recently, we're seeing some newly popular languages back off
from that very familiar model, including dusting off some ideas like
traits/interfaces and mixins/composition.

I currently suspect that prototype models might be most useful for
*not-very-programmer-ish end user* HCI models, when you don't want to
deal in conventional types, or you can't.  My most recent example, the
last few weeks, is finding a usable end-user semi-natural language DSL
for nutrition tracking.  Consider that you want to very rapidly capture
information about what you cook and eat.  You have concepts of
ingredients and quantities.  You might also have concepts like how you
usually make your coffee, or a few sandwiches and soups you often make
the same.  You also have dishes that you make less-often or are
one-offs.  You have leftovers, and the leftovers can evolve.  And you
always want your nutritional intake tracked.  It's looking like the
conceptual model backing a quick semi-natural language for this might
indeed be a prototype object model, in which there's a lot of
like-that-but-different-and-distinct.

Maybe (just speculating, off the cuff) it turns out there's also a place
for prototype object models in symbolic machine learning, in acquiring
some variation on frame-based representations of knowledge.

Obligatory Racket: You can make your own prototype object model in
Racket pretty easily, a number of ways.  You can do some ways in an
hour, or spend a day on linguistic tweaking, or spend a week or more
making it faster or working through some ideas you thought of while you
were working through it.

> The same question applies to Morphic User Interface Construction Environment - good idea or bad idea?

I haven't had a chance to play with the latest work in this space, and
maybe someone else here can talk about how the latest work conceptualizes.

It might be a coherent basket of things that you already see many
places, and will increasingly see even more (direct manipulation user
interfaces, composing/decomposing systems as interacting concurrent
objects and aggregations/assemblies, maybe adapt to augmented reality
interfaces for ubiquitous programmable things/materials in real space,
etc.).

Also, who knows what happens, if large numbers of kids can build with
this and other complex models during early developmental years?  Maybe
we start seeing new HCI that takes advantage of a facility with those
models.  Or we see new perspectives/understandings, due to the popularly
expanded mental machinery.  (They'll need the new powers, to deal with
everything the last 20 years of CS did through dotcoms.)

Jesse Alama

unread,
Dec 28, 2018, 12:18:37 AM12/28/18
to Neil Van Dyke, Jason Stewart, Racket Users
I've had some moderate success in established, non-Racket companies by
working around -- rather than taking on and trying to replace -- the
main language & toolchain. For the PHP shop where I work, I made a DSL
called Riposte [1] for testing HTTP APIs. It has become, in time, the de
facto tool for such things. Thanks to Riposte, all developers have
Racket installed on their workstations, even though I'm the only one who
knows Racket and can fix problems with the tool.

I made a tool (1) whose benefits to my boss and teammates are obvious,
(2) which is clearly hard to do in the main language, but (3) which
would not kill the main line of development if I were to go away. A boss
who respects his employee's skills and their need to "do his own thing"
while still helping the company may indeed welcome Racket, in limited
ways, on these grounds.

I might advocate for just making great tools/languages privately, then
trying to make the argument for them later. The opposite is trying to
get permission up-front to do something in Racket. That's less likely to
succeed, I think, than just making something great and explaining its
benefits, over time, at opportune moments. In my case, that meant
talking with co-workers about their work and asking: "How can we model
the proposed change in the API and be sure that we've really succeeded?"
The implied answer being: "Write a Riposte script." That's the moment
where it becomes clear that what I made has real benefits. I don't even
"push" Racket. I just introduce the DSL and show them how it helps them.

Jesse

[1]: https://riposte.in

Thomas F. Burdick

unread,
Dec 28, 2018, 5:13:18 AM12/28/18
to racket...@googlegroups.com, Stephen De Gabrielle, Neil Van Dyke, Racket-Users List


On December 27, 2018 10:47:24 PM GMT+01:00, Stephen De Gabrielle <spdega...@gmail.com> wrote:
>I always wanted to ask if the prototype object model is a good idea or
>bad idea?

The most fun I ever had making GUIs was in Garnet, a library for CMU CL which combined prototype objects and a system where slots we're computed from formulas (a forerunner to FRP). The combination was just fantastic, productive, and made the code very easy to follow.