On Wed, Dec 26, 2018 at 09:51:17AM -0500, Neil Van Dyke wrote: > 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). [...] > Why I suggested focusing outreach on Hacker News (and maybe I've > talked about it more recently on "racket-money" than "racket-users")
What follows are just my thoughts, not a critique of Racket (I am unwilling to criticize without suggesting how to improve things and it always irritates me when someone just says "you wrong" and never explains, so I am not saying "you wrong", ok?). More like, summary of my position with regard to R* and some loose thoughts about improving its adoption. Very subjective. And, being short on time, as usually, I may write here about something already mentioned in this thread, so if yes sorry for that. I guess the kind of people on HN (and https://lobste.rs/ , another place I regurarly attend) take their time and do a research by themselves. Evangelism would do nothing to them (judging by myself, at least), but interesting story tagged as "Show", a project using Racket, that is another thing. But it is "the story, a project, what is it" first, and only then "written in Racket". Another places I frequent are various types of aggegators under the name "Planet": http://planet.emacsen.org/ http://www.planeterlang.com/ http://planet.haskell.org/ http://ocaml.org/community/planet/ and last but not least, http://scheme.dk/planet/ http://planet.lisp.org/ Where does Racket belong? I understand Racket community no longer considers themselves as part of Scheme landscape, but I am unable to say where I get this impression from. If I am wrong, then the first thing for anybody willing to contribute to R* success would be to make their blog being displayed on Scheme Planet (IMHO). If I am right (R* not Scheme), then this is a pity. I will cope just fine, but consider the fate of Lush, a very interesting Lisp dialect. A very capable, if I can judge without really trying it. And their latest-latest news is from 2009: http://lush.sourceforge.net/ Right now I am willing to write some scripts, with intention to run them both on Linux and OpenBSD. A kind of stuff that is normally written in Perl. But to be frank, two months ago I tried again writing some smaller utility in Perl and ended up writing said util in gawk. I know I am not stupid, but I have to avoid Perl. So the plan is to write those utils in Gauche, because it seems to have what I need and can take R5RS (for a while). This means I will have to have source at my hand, just install *BSD, compile Gauche, install my scripts, ready to go, before any network is up I mean. Does Racket match such a use case? I can compile it from sources (actually, living on a very dated Debian I have no other way to stay current, so I not only can but actually do) but I wonder if it will compile in a very limited, rugged environment - no network connection, just what was there in base install (with C compiler, of course). I might try one day, but it seems Gauche has less dependency on outside packages than R*. See, while I appreciate Racket a lot there is no actual case where I myself would want to rely on it (also, Lush). Like, I write a program and hope it will keep working for the next few years without much work (other than bug fixing). Thus, language stability is important to me. Or backwards compatibility. Or at least knowing I can switch to alternative implementation, should I ever feel such necessity. As far as I can see it, Racket contributes to fragmentation of Scheme scene (which is already a "everybody tends for oneself" kind, AFAICT). There is no clear message if there is way to run in R* a code developed with other Schemes or vice versa and a very minimalistic effort to portability in a form of slib library is not going to work in R*, am I right? Common Lispers have a dated language (and boy sometimes it shows) but at least they work together (or make good impression). And look at their planet (mentioned above). I would be happy to write my utils in CLISP - nice, small, conforming CL, but there is a small complication in form of requiring certain library in just exact version matching the exact version of CLISP and this certainly can be mitigated but I have not so much time to tinker with other people's code. And another "small problem" was that last time I tried writing such system util in CL, certain file names were "transparent" for CL (because they looked like regular expression) and I could not find way to open them (hint from the web did not work, time ran out). So I will tinker with Scheme and see how I fare. Yes it is time consuming, and yes, I would rather learn R7RS than try again and fail again to use Perl. And yes, I might become trapped with Gauche, and unable to switch to alternative, but I may be able to compile it from src for long enough to devise way out of it. If nothing else, I had a look into src and chances are I might maintain a working version for a short while, just for myself, and by myself. I do not see such chance with Racket. Another nice choice for my goals might have been Chicken, but again, not sure if I have a chance to maintain, probably not. (Yes, I am abitextremalistic when it comes to choosing prog lang for myself and I consider scenarios involving all real maintainers driven over by selfdriving lorries and github+gitlab busted by idiot CEOs - if I am good in such case, I should be good with world ruled by Windows11 too). Another niche for which I would like to consider R* is mobile apps (i.e. for smartphone). But, is it possible to do such thing, actually? >From what I have read, Free Pascal Compiler has tools for this and more, so chances are that for my first Android app (the one which is for learning it) I would turn my attention there. If nothing else, having to use different language for each platform is unacceptable (or else I would have to write same app twice or more, in Java and in Swing and in something, too). So, to sum up, Racket is interesting, well written, has an excellent docs and stuff but is not convincing. At least for me. I cannot say if there is one clear use case. I mean, in real life. In theory, one can write anything in it. In practice, however, what has been written actually? [...] > 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. For this, Racket has to be more interoperable. Can it replace Java? Can it work with Java libraries? I guess no. Not now, at least. Not a big problem, but might be nice to have. It can replace Perl, possibly. And is probably faster than Perl. It should try to cater to people using Python and Ruby. Python has an excellent "batteries included" motto. There is plenty of nice programs one can write with just standard set of Python. And their packages reside in nice hierarchy (os, sys, tk - one can have a pointer as to where to look for function returning directory contents). Placing itself as a new, better glue language? Is that a position for Racket? Something which can talk to and make use of existing Python, Perl, Ruby code? Open up a spreadsheet, read data, feed it to Python library, write back results. This kind of stuff would be a seller, IMHO. Thanks to ongoing changes to various languages I used to rub myself with, I am unwilling to write new code in them but I would really appreciate having a way to use this Python3 code in a future, when Python5 will make "3" obsolete and incompatible. > 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. Forget it. I think this is standing a problem on its head. I think jobs will come if R* provides a way to solve the kind of problems that go with jobs. From my point of view, it is either utilities/system programming and/or stuff like reading and manipulating data in files, databases and spreadsheets (this one being most important, because people are using them for everything, poorly and it will probably start showing up and become obvious to everybody as source of nasty problems). And showing some controls for mouse. Or, if that is present already, then spreading the news via blogs and planets. Well, enough for today. -- Regards, Tomasz Rola -- ** A C programmer asked whether computer had Buddha's nature. ** ** As the answer, master did "rm -rif" on the programmer's home ** ** directory. And then the C programmer became enlightened... ** ** ** ** Tomasz Rola mailto:tomasz_r...@bigfoot.com ** -- 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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.