From mboxrd@z Thu Jan 1 00:00:00 1970 From: bakul at bitblocks.com (Bakul Shah) Date: Tue, 24 Dec 2019 09:46:18 -0800 Subject: [COFF] Gnu Smalltalk or...? [was: Most Popular Programming Languages 1965 - 2019] In-Reply-To: <20191223230336.GB18919@tau1.ceti.pl> References: <20191223230336.GB18919@tau1.ceti.pl> Message-ID: <6FB1192D-C301-42EF-9EAA-2F839B7777E3@bitblocks.com> My scheme of choice is Gambit Scheme. Gambit is quite portable & fast. You can always compile to a binary if performance is an issue. There is now Gerbil Scheme, that sits on top of Gambit and is geared toward systems programming. It seems to provide a lot of additional features, using Scheme’s extensibility but I haven’t used it yet. https://cons.io/tutorials/ I find scheme code clear and concise (but not as concise as array languages such as k, my other language of choice, where I have to relearn the code every time but then it is only a handful of lines.). These days python has become quite the glue language, used for all sorts of things, from AI to GPIO fiddling. Not my favorite language but a working knowledge in it has been useful. I would have loved to use SmallTalk 30+ years ago. Now not so much. > On Dec 23, 2019, at 3:13 PM, Tomasz Rola wrote: > > On Mon, Dec 23, 2019 at 08:36:07AM +1100, Dave Horsfall wrote: >>> On Sun, 22 Dec 2019, Arthur Krewat wrote: >>> >>> Define "popular" - what's actually in use, versus what people want >>> to use. And job listings versus research. Both of those would lead >>> to different results ;) >> >> I've been keeping a list of all the languages that I've ever used >> since I was a stripling; it's up to 48, and that's counting all >> assembly languages as one etc. That's about one language for every >> year that I've been a >> programmer :-) >> >> Yes, I try and teach myself a new language whenever possible; I'm >> currently looking at Ruby as a lightweight replacement for Perl (I >> run screaming from Python and its silly indentation), and Perl/Tk >> for a GUI for some scripts that I wrote (mostly puzzle solvers). > > This question is not addressed to you only: I am considering Gnu > Smalltalk for such role (Perl & Python replacement). I knew Python 1 > and 2 once, but since they made a (what appears to me as) botched[1] > move to Python3 I decided I wanted to try something else. This > includes rewriting few scripts I had made in Python into this newly > choosed language, as I am also moving into new OS installation > (perhaps OpenBSD) and I guess there will be no Python2 when I finally > make the move. Or if there is Python2 now, it is going to go during > one of upgrades which is scheduled (by design) to happen twice a > year or so. > > The scripts are nothing hard, stuff like filtering lines of input > etc. Sometimes filtering bytes. > > Python is nice as long as one stays inside the "batteries included" > limits, i.e. as long as one makes use of libraries provided as part of > the language. I was rather happy with those standard libraries. > > As of Perl, I have to relearn it every time I make attempt to use it > and it just cannot stick. > > AWK does not have things like built-in stat function and checking exit > status of command in child sh process seems to be a bit cumbersome. I > wrote few simple scripts with it after I finally learned I should not > write those in Perl. But it is far from perfect for overall scripting. > > I am yet to teach myself GSmalltalk, but after skimming the > docs it seems to have the right classes for such scripting which I > would like to do - UNIX/Posix type of environment, text files, maybe > some bin<->uuencode mingling. This kind of things could be also done > in sh, but I deteste starting thousands of processes just to grep > stuff in files and then do something to thousand(s) of matched files > (or process a mailbox of 10000 messages and do something to 40% of > them). I guess it could be a bit faster to do it all inside one process > (and a bit less stressing for sys accounting database). Some of those > use cases might be nicely addressed with AWK, but some of them would > be better written in Perl (which cannot stick in my head) or Python > (which I would rather not use too much). > > Another nice choice for me is some Scheme dialect with extensions for > systems programming - Chicken and Gauche seem to fit (but I have to > read the manual). Surprisingly, Elisp is quite well equipped with > plethora of nice functions (calling external command, finding files in > dir etc) but the need to parse output in buffers and inability to read > files in chunks disqualifies Emacs as (standalone) scripting engine. I > consider using Common Lisp (no need to learn it, so one problem off my > head), but I would not say it is perfect for scripting. Albeit some > scripts I wrote in it (sbcl) and I liked the experience. > > As I am changing my default scripting language and OS, I would like to > kill one more bird. I would like to be able to compile it from sources > on a system which had been just installed from CD. In case of *BSD, it > means I choose a pack/set with sources and compiler (dev tools), the > installer unpacks it onto empty disk, there is no net connection. Then > I put a pendrive with my stuff, unpack a source code of said scripting > interpreter, call make; make install and only after this I go online > (or not). > > So in this last case, if, for example, I chose sbcl, I would have to: > > 1. install base system > 2. compile+install clisp (should compile with "any C") > 3. compile+install sbcl (it wants a CL already installed to compile from > source) > > A bit strange, but should be doable. I did 2+3 on my current system > more than once. > > I am yet to try to compile GSmalltalk from sources and see how it goes. > > So the language should be compilable with as little external > dependecies as possible, and with just the tools which either can be > found on bare install, or can be recompiled from USB with my sources - > the sources need not be the newest and glamourest ones, just usable > for my purposes. I can easily make a sh script to automate such > "compilation chain", and it can take an hour or a week, no problem. > > I would appreciate any words of wisdom from those who went > this/similar path and could comment or hint a different choice. > > [1] Overally, maybe my sentiment against Python as such grew over a > decade and it was not really related to the 2->3 transition. Maybe > rewriting some parts of the code is not that big deal really, but I > feel aversion to rewriting which is not linked to introducing new > features or bugs. > > -- > 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_rola at bigfoot.com ** > _______________________________________________ > COFF mailing list > COFF at minnie.tuhs.org > https://minnie.tuhs.org/cgi-bin/mailman/listinfo/coff -------------- next part -------------- An HTML attachment was scrubbed... URL: