
Racket News – Issue 7 - soegaard
https://racket-news.com/2019/05/racket-news-issue-7.html
======
lunchladydoris
I love how personal this feels. This is written by a person for people, not an
organization for consumers.

Also, if any of the RacketCon organizers are reading, can you please try to
get better video this year? There's no way I can attend the conference but I
do watch the videos. Last year the quality seemed like a noticeable step down.

But, thank you for doing what you do! Racket is one of those languages that I
wish I had more reason to use on a day-to-day basis.

~~~
neilv
The author of the newsletter is Paulo Matos, who, in addition to having a
friendly and down-to-earth manner, is also a very serious and accomplished
engineer. The Racket community has more than its share of people like that.
When I was recently looking for someone to take over administering one of the
Racket email lists, I was glad one of those people (Paulo) volunteered.

------
mark_l_watson
I am going to try to get to Salt Lake City for RacketCon this July. My wife
just agreed to make it a fun road trip with me. I planned on going last year
in St Louis but something came up.

I have been using Common Lisp since 1982, and feel more comfortable with it,
but 2 or 3 times a year I will write some small thing in Racket and enjoy it.
The Racket ecosystem is fantastic.

~~~
velcrovan
See you there!

------
mruts
The only thing that has stopped me from using racket more are the performance
issues. Hopefully Racket-CS will make racket competitive performance-wise with
CL.

In regards to expressiveness, Racket is definately the most powerful lisp on
the market, maybe even of any language, lisp or not.

Great GUI library, the most powerful metaprogramming the world has ever seen,
FP, static typing (still a little rough around the edges), libraries for
xml/json/http and a ton of other stuff, nice OOP libraries, contracts, and a
truly awesome IDE.

Is there any other language that is as flexible, powerful, and elegant?

The only thing missing from the equation is a high performance optimizing
compiler and industrial GC. If Racket could get JVM-like performance and a GC
that could manage terabytes of heap, it would be the _ideal_ language for me.

I used to program Racket professionally in academia, and it works really well
for desktop applications. You can whip up complex single user apps very very
quickly, with generally acceptable performance. Great for research and data
science applications.

I now use Scala at work on a computation heavy multi-user finance application
and Racket would be unteniable for this use case. High-load servers need the
best GC (or no GC) and there are very few languages that work well in this use
case. Pretty much just JVM languages, C/C++, Rust, and maybe Go or OCaml.

If Racket could get competitive in these areas, it might open the door for
commercial adoption. Though, on the otherhand, both Python and Ruby have worse
implementations and worse GC and that doesn’t stop everyone from using them
for servers.

This is a tangent I suppose, but it’s a mystery to me why Racket isn’t more
popular compared to Ruby/Python. For data science and ML the network effects
of Python are strong, but the networking libraries for Python aren’t any
better than those for Racket. Maybe people just think parens are scary?

Anyways, Racket is seriously awesome and developed by some great people
(professors). If you haven’t tried it, I would highly recommend it. Very easy
to get started because of the great IDE.

PS: Also HN is written in Racket (essentially), so I guess you can wrangle for
high-load servers.

~~~
lispm
> a truly awesome IDE.

That's a lot of hyperbole for a not so great IDE. It's even sluggish on my Mac
- there are basic GUI functions, like resizing windows, which are poorly
implemented (run something in a loop, then the UI stops responding properly).
There is a huge amount of UI glitches.

For example start DrRacket, click on the green button in the window bar to
enlarge the window. Instead of smoothly expanding, it jumps to full screen.
When we again click into the green button, a strange animation happens with
some window drawings in the upper left screen area... There is lots of that...

It's also from the past. The last time I want to see the amount of RAM
something uses or how much GC activity there is, was in the end 80s. The UI
also does not 'awesome'...

~~~
neilv
DrRacket is a pedagogic IDE, originally intended to be simple for new students
and non-majors.

Some people like DrRacket for real development work.

I'm an Emacs person, but I use DrRacket when I want to use the Macro Stepper,
or see how the arrows work in my syntax extension, or use the renaming
feature, or put each process of a client/server system in a separate IDE that
fits in one window.

I find I also fire up DrRacket when I want to very quickly make a running code
example for someone, since it it somehow seems easier to iterate than Emacs
sometimes.

I prefer Emacs for the bulk of code I write, though.

P.S., Thank goodness programming students are still being shown things like
RAM usage (DrRacket can enforce limits) and that GC is happening. :)

~~~
lispm
> DrRacket is a pedagogic IDE, originally intended to be simple for new
> students and non-majors.

I know that. But it's far from being generally 'awesome', when the look & feel
is actually below average.

> P.S., Thank goodness programming students are still being shown things like
> RAM usage (DrRacket can enforce limits) and that GC is happening. :)

GC happens. Then students see it all the time and start to worry. No of the
current IDEs I can remember still show GC activity in the GUI. I would also
not know why I need a constant updating view of program memory size.

~~~
neilv
I won't blame someone for preferences and enthusiasm. :)

IMHO, at some point in a student's programming education, I'd definitely want
them to be aware of program size and GC. But I couldn't say exactly when they
need to start seeing it, and when it's OK if they don't see it. Of course, the
professors are the ones with all the teaching experience, and one can always
ask them on `racket-users`.

~~~
neilv
[https://groups.google.com/forum/#!forum/racket-
users](https://groups.google.com/forum/#!forum/racket-users)

(`racket-users` is where most of the action in Racket is, and the community
members, including the core developers, actively answer&discuss questions. The
other venues are mostly outposts for discovering Racket.)

------
59nadir
It might just be my soft spot for Racket, but I find this delightful. Elixir
Radar is somewhat the same thing via e-mail but it's not as neat and tidy as
this. You can skim this and get so much value out of it immediately.

------
baldfat
Racket is still my preferred language based on how fun it is to use and the
community is just awesome.

~~~
neilv
Same here. I have professional experience with various languages, but Racket
is my personal preference. It's one of those platforms that many programmers
_want_ to use, which is a good quality for a platform to have.

I can do almost everything in Racket (except for things like OS kernel, and
easy slick smartphone apps), and Racket also gives me better metalanguage
features than anything else.

The main downsides I see are: you end up doing more things from scratch than
you would in many other languages (which occasionally is an advantage), it's
not as proven like something like Java (in a "nobody ever got fired for buying
IBM" kind of way), and there are only a few non-academic jobs in the world
right now.

I originally moved to Racket as a super-productive platform for R&D, and a lot
of that could also apply to creative startups trying to get demos and beta
rapidly. (For startups, consider using Racket for the sprint to significant
funding, at which time you might be rewriting/pivoting regardless of what
language you use, and at that time you can decide whether to stick with
Racket.)

If you're already an experienced programmer, you can get started with Racket
quickly, and soon be productive and see some boosts, though you'll need some
experience with it before you'll get all the benefits (it's not just Python
with parentheses), and you will probably have to do some things from scratch.

~~~
baldfat
The greatest thing is that Racket is fun the worst thing is Racket is fun,
because everyone does their own thing. You can do your own thing faster then
finding something and implementing it. It is funny how that is an issue.

------
default-kramer
I found the Featured Paper this issue to be very approachable - only 13 pages
including code and not excessively academic:
[https://cs.brown.edu/~sk/Publications/Papers/Published/sk-
au...](https://cs.brown.edu/~sk/Publications/Papers/Published/sk-automata-
macros/paper.pdf)

------
complex1314
Makes me want to try Racket out!

------
chriswarbo
The video DSL looks like quite a nice idea. I could see myself using it to
keep videos in git: add all the raw source clips once as immutable blobs, then
do all of the editing with text. (The same could be done with shell scripts
and ffmpeg, but urgh).

I wonder how it fits with the ideas of FRAN (functional reactive animation)?

