Pitching use of Racket at work?

88 views
Skip to first unread message

Sage Gerard

unread,
Sep 18, 2019, 6:25:57 PM9/18/19
to users\@racket-lang.org
This question is more for private-sector programmers in firms using well-adopted technologies: How many of you tried to get your team to try Racket at work for smaller tasks? What was their reaction?

I know there are not enough Racket programmers out there to justify many risks in maintaining large Racket projects in large firms, so I emphasize the word "try" in my question. I'm hoping your stories might help me learn how to get more professionals to be at least curious about it.

The more I use Racket the more I wonder why so many other people aren't, even if only to learn more. When I bring it up, people look at me like I'm that crazy guy yammering about veganism or Crossfit (My words, not theirs. As far as I'm concerned, if they show me their baby pictures without me asking then I get to talk about Racket for as long as they just talked about their spawn).

~slg


Neil Van Dyke

unread,
Sep 18, 2019, 10:18:47 PM9/18/19
to Sage Gerard, Racket-Users List
I'll assert that Racket is currently for a subset of the people who are
allowed to choose whatever tools they want: academics, hobbyists, people
developing small tools for individual use (like sysadmins did with
Perl), and... some startups.  Most organizations, you can't choose any
tools you want.

I currently suspect that startup successes are the most likely way
Racket could become permissible for people who can't choose whatever
tools they want, for reasons implied below.

Sage Gerard wrote on 9/18/19 6:25 PM:
> I know there are not enough Racket programmers out there to justify
> many risks in maintaining large Racket projects in large firms,

This is something some people think, and there's some validity to it, if
you want interchangeable commodity developers.  But using a fringe
language with a cult following is arguably an advantage for attracting
better talent than you otherwise could, with your pay or the initial
appeal of your project.

For example, ITA Software wasn't able to hire a fleet of brainiacs and
FAANG-employable fresh MIT grads by saying "uh, we're going to plug into
a musty old mainframe network, and add that to your resume".  The pitch
that attracted many was more like "We're going to use Lisp to do
something big we don't think could be accomplished with mainstream
languages, and you get to use Lisp and get paid for it, and, hey, did we
mention Lisp".

There seem to be many more fringe language programmers than there are
paying jobs for them.

Also, you can make more, rapidly.  I'm pretty sure I can teach a
programmer modified-Pascal-style Racket in a day, and have them start
coding on real product, and then incrementally build them up from there,
in more idiomatic Racket and libraries, in parallel to them churning out
programming work.  It's not difficult.

A related concern is to not want umpteen different languages within an
organization.  More reuse, more flexibility in reassigning human
resources, possibly ease of integrating, etc.

At least as big a concern as staffing is whether a fringe technology
will do what you need.  We know what tools other companies are using
successfully, and different tools tend to be considered unproven or
inadequate.

> so I emphasize the word "try" in my question. I'm hoping your stories
> might help me learn how to get more professionals to be at least
> curious about it.
>
> The more I use Racket the more I wonder why so many other people
> /aren't, /even if only to learn more.[...] When I bring it up, people
> look at me like I'm that crazy guy yammering about veganism or Crossfit

Among Web developers, there seems to be what has the appearance of
vegan/Crossfitter true-believing (and also evangelizing, once you're in
on it), and a lot of it seems directed at constantly adding what you
think is or will be the next big employable thing on your resume.  This
valuable thing to add to your resume can be particular latest Web
frameworks, cloud services and cloud architecture keywords, programming
languages, etc.

I suspect hardly anyone currently thinks Racket will be the next big
thing (as much as we like to use it).

Also remember a lot of developers are intentionally hopping jobs every 2
years, which might've started as pursuit of the most promising dotcom
IPO lottery ticket, but now seems to be institutionalized professional
practice among employees, and, consequently, employers.  Which
intuitively might lead to employees prioritizing resume-distinction,
over their projects working well beyond when they're next hopping (e.g.,
when they hit their vesting cliff, in 5 months and 3 days).

Aside from that, there's also the genuine nerdy techie side among many
developers, and they can get interested if you have something new and
interesting to say, *but* a working adult probably won't be much
interested in pursuing it themselves, unless it's a keyword they think
is currently/imminently in-demand on resumes.

Sometimes genuine nerdy techies will do blog or social media posts on
fringe things, which incidentally promote personal brands as smart
people with breadth, and is something some employers/schools look for,
without investing a funded project on any of the fringe things.

Promotion-wise, for a fringe technology, I see such posts and tutorials
as messages put in bottles, tossed into the ocean, in the hopes that the
bottle will be picked up by a passing boat halfway across the ocean, and
it will be a happen to be a boat of a funded startup team, and they
decide to use Racket, and plot a course for our pretty little island.

We've been tossing bottles after other people's distant boats that we
couldn't even see, for well over a decade.  In that time, we hardly
built any of our own boats and airplanes, which, in hindsight, might've
been a more expedient way to reach those other people's boats.

I said nothing above about parentheses, which used to be a common thing
for people to raise as objections to Lisps.  Today, other languages have
captured a lot of the selling points of Lisp, and we're mainly down to
strength for DSLs.  And I think you might get more negative reaction
today by talking about DSLs than by showing parentheses -- because it
seems a lot of people now have negative impressions of DSLs, from
attempts they've seen elsewhere, and you now have to show bigger wins to
get past prior judgments.  (At this point, when some people are buying
Polaroid film and vinyl records, and searching for nebulous qualities
like authenticity, parentheses could even become fashionable, but I
suspect they won't get used for much paid work until they're already
perceived as good for paid work, and come with a resume boost.)

'Richard Cleis' via users-redirect

unread,
Sep 19, 2019, 3:28:15 AM9/19/19
to Sage Gerard, users\@racket-lang.org

On Sep 18, 2019, at 12:25 PM, Sage Gerard <sa...@sagegerard.com> wrote:

This question is more for private-sector programmers in firms using well-adopted technologies: How many of you tried to get your team to try Racket at work for smaller tasks? What was their reaction?

Three of them use it because they want to.
Several others because they were required.

They reacted with curiosity, but didn’t truly learn the usefulness of functional programming or the capabilities of Racket in particular (extendable documentation, DrRacket environment, macros, modules, etc.)

I know there are not enough Racket programmers out there to justify many risks in maintaining large Racket projects in large firms, so I emphasize the word "try" in my question. I'm hoping your stories might help me learn how to get more professionals to be at least curious about it.

The more I use Racket the more I wonder why so many other people aren't, even if only to learn more. When I bring it up, people look at me like I'm that crazy guy yammering about veganism or Crossfit (My words, not theirs. As far as I'm concerned, if they show me their baby pictures without me asking then I get to talk about Racket for as long as they just talked about their spawn).

In my world (telescope laboratory), most of the software is written by engineers and scientists; they have no sensitivity to alternative software development possibilities and generally are annoyed by such matters.

rac

~slg


--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/faTFpGrSPLFdjpqNCiOAHFGA4azHmOPASFUpuiHLiVHl5tzP23rfzyaa6N6VP83R-qTti8R2NLnipLZ1xpDUuPnoijAXhkG3vbONKpOPRYY%3D%40sagegerard.com.

Sage Gerard

unread,
Sep 19, 2019, 10:47:40 AM9/19/19
to Neil Van Dyke, Racket-Users List
> different tools tend to be considered unproven or inadequate.


To add color: A prior supervisor said  "if it's famous, we should use it." Adoption is often confused with maturity. Corporate politics follows high school rules more than we'd like to admit.


> there seems to be what has the appearance of vegan/Crossfitter true-believing (and also evangelizing [...]


I'll agree to the point of hardening your language: There are evangelists in web development.


If you pay close attention at An Event Apart conferences (for example), you can see the genesis of some of that since web development leaders tend to speak there. If you want high search rankings, drop a key phrase that sounds like a new CS concept that others don't know, but should. The phrase is just a string of words that currently appear only on the speakers' channels and blogs. Evangelism is an adaptation to not knowing how search engine ranking algorithms work: If you want to appear among the first results, just present your work using language that matches nothing else.


All you have to do then is frame your content under the narrative of "always learning" and people will become dependent on your content and supplemental materials--that is, the majority of people who do not think to derive what they just heard from what they already know. This is why we have so many new definitions for common words referencing old concepts. It's also one reason why the resulting links/comments create the appearance of maturity. It's a powerful cycle.


> In that time, we hardly built any of our own boats and airplanes, which, in hindsight, might've been a more expedient way to reach those other people's boats. [...]
> a working adult probably won't be much interested in pursuing it themselves, unless it's a keyword they think is currently/imminently in-demand on resumes.


I agree, but don't entirely relate.


I'm a working adult, and I am taking a self-funded sabbatical primarily to learn Racket and experiment with ways to make money with it. To your point, I do include AWS/InfoSec study as a contingency plan if I need to earn more money than I am earning with Racket and do something other than front-end development for the rest of my life.


But to be clear: I started using Racket because I was tired and stagnant. I was fine working with the messy code that defined the software rat race, but I was not fine with my education dwindling away to make room for hyper-specialized knowledge that made me more useful for fewer things. Racket's ecosystem and community made my degree matter. There are ways to write programs to handle the gaps I saw form in well-adopted tools. I'm surrounded by people who are smarter than me. I'm wrong about things again. It's wonderful. Part of me knows that if Racket gets famous a lot of this experience is likely to go away, so I want to maximize my time being one of the dumb ones. It's good for me, and I prefer working to earn my own growth than a stockholder's growth.


All this to say that yes, as a working adult I always have to entertain enough of the market's interests to stay viable for a job. But that does not mean I equate my viability for bigger jobs as career satisfaction. If I'm not growing as a person--except in my midsection at a desk--it's hard for me to commit to a job. This is why I consider learning Racket as part of my career, even if I don't make nearly as much money with it. I just can't be happy with a routine where I learn nothing interesting.


Now, by "our own boats and airplanes" Are you referring to Racket2? If it counts for anything, nothing about Racket2 I've seen so far appeals to why I'm here. Maybe I'm just not in the target audience, but I'd like to hear more about what other means of outreach are in the cards that can speak to the intellectual habits of the average programmer/decision maker.


~slg

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> interesting to say, but a working adult probably won't be much

Neil Van Dyke

unread,
Sep 19, 2019, 5:31:29 PM9/19/19
to Sage Gerard, Racket-Users List
Sage Gerard wrote on 9/19/19 10:47 AM:
> To add color: A prior supervisor said  "if it's famous, we should use it."
[...]
> If you want to appear among the first results, just present your work using language that matches nothing else.

If I could briefly return the favor of color, by connecting the above
two:  At one interdisciplinary lab, the stated tenure criteria was "be
famous in your field", and one of the dominant strategies was... name a
new field (and you'd automatically be famous in it). :)

> Now, by "our own boats and airplanes" Are you referring to Racket2?

I was thinking instead that we haven't built much startups
(boats/airplanes), ourselves.  Rather than almost cargo-culting,
figuratively in the original sense of the term, to try to get other
people to bring their boat/airplane of goodies here.

Early on, there was one really positive public-sector-ish Web data
science startup, that a couple of superhumanly-productive PhD ancient
astronauts managed to build (which I think wouldn't have been doable
initially, had they not used a Lisp, and one of them happened to choose
Scheme), and which I understand has been able to keep evolving, over the
years.  There's currently a few smaller Racket-using startups emerging,
and maybe some of them will have experience report writeups on HN, and
be considered successes in that tough audience.  And of course, we have
core Racket itself, which in many ways is a successful startup.

I don't suspect that things I've seen mentioned about Racket2 will have
any net effect on adoption by other startups.  I'd like to see Honu
tried for some things, maybe starting with dogfooding it for HtDP.  And
Honu might incidentally, also be part of a larger DSL solution (e.g.,
alternative way, to the boring lex&yacc-like modules, as a better way to
make some non-sexp DSLs for non-developer domain experts).  But I'd
stick with leaving `#lang racket/base` as the canonical language for
developers, and let people build upon that the things they find they
need -- for core's research/teaching, and third-parties' work and hobby
projects.

I hope we didn't lose any additional people/projects, over the recent
commotion and uncertainty, besides what we already sadly know about.

Today, I *don't* recommend that people ask "What do we need to attract
other developers?", but rather, "Do I want to do a startup/project, and
if so, should I use Racket, and then what do I have to do, to launch my
own minimum-viable-product, and then later grow it?"

My own top-level requirements are to do things that benefit society, do
technically/craft-wise rewarding programming/engineering/research, have
some sense of community/collaboration with good people, and make good
money. (Money, so that I can continue to live in my HCOLA town, and
focus my energy on the first three things.)  The next levels of my
requirements might well involve Racket, and so might also involve
contributing requirements like other people doing startups that use
Racket.  We have yet to see what are the top-level and supporting
requirements that will drive core Racket, and then individual people and
organizations can try to see how that fits with their own respective
requirements graphs.

Reply all
Reply to author
Forward
0 new messages