Much as I loved Perl when I started with it back in 2000 CGI.pm was pretty hacky with new vulns popping up every week. It's creator, Lincoln Stein was, however, one of the stable of Perl Jedi and he did a sterling job of keeping it patched with the help, if I remember, of Randall Schwartz. Them were th' days. CGI::Application was an improvement and my mainstay until the arrival of PSGI and Plack which paved the way for frameworks such as Dancer and Mojolicious.
I gave up on C# and .Net after realising Microsoft is still the same old Microsoft I loathed back in the 90s and 00s when IE ruled the world. The emperor's new clothing is cross-platform .Net. The reality is that whilst .Net may well run on Linux and OS X the culture surrounding .Net hasn't changed. Case in point, I recently assessed .Net's leading CMS - Umbraco - for a project. Yes, it runs on Linux and OS X but can you use standard open source databases such as MySQL and PostgreSQL with it? Sorry, not supported. You have to cough up for a MS SQL Server licence to get your open source CMS up and running. As if to rub salt in the wound Umbraco does support SQLite but wtf!? M$ culture will never change. Their lip service to Linux and open source only happened because their hand was forced after decades of pursuing the likes of Red Hat and SuSe with bogus patent lawsuits and secretly funding the notorious SCO in their Unix patent litigation.
It's totally different. The R in REPL retains its original reference to the Lisp READer which is special when your code is structured as an AST as in all Lisps. Only in Lisps can you select the left paren of a deeply nested function and hit Eval. Other language REPLs are really just shells by comparison.
Tbh I would much rather write utilities in Go. The advantages of Rust are minimal here and the disadvantages are an obstacle. Last time I wrote a CLI in Rust it was a search index builder you could pipe CSV to. Awful DX. Go is almost too easy for that kind of thing.
If anything I’ve actually seen people using the OS’s virtual memory as a garbage collector in C and C++. Not really portable everywhere, but close enough for most people. For short-lived executables that can’t really allocate unlimited memory, it’s perfectly fine.
reply