Much sympathy for your life situation.
Most of the Smalltalk code I personally develop is developed using a classic text
editor, is batch compiled, and runs headless.�� Smalltalk is *STILL* an amazing language
without the "addictive" IDE.�� (In fact the more "conventional" Smalltalk systems I use
have sufficiently different IDEs that I experience considerable friction using the IDE.)
I'm on the fringes of the High Performance Computing world.�� This is quite dramatically
different from most programming, and in some interesting ways.�� The dominant languages
are Fortran, C, and C++ with extensions such as OpenMP and OpenACC and of course "transport"
layers like MPI.�� These languages have *serious* optimising compilers working hard to get
the best out of vectorised instructions, GPUs, even FPGAs, and clusters.�� There are also
dialects like SYCL and Cilk.�� As an example of the kind of application, consider the
COVID epidemiological model developed by Neil Ferguson's team in the UK, which was very
influential in setting UK government policy (lockdowns).�� This is about 10 000 SLOC of
C++ with much use of OpenMP for parallelism.�� This isn't "bet your business" software;
this is "bet your whole ECONOMY" software.�� It is, in the 1970s sense, "structured".�� It
is, in the peculiarly C++ sense, "object oriented".�� And it is very hard for me to
figure out what is going on (despite having tracked C++ since cfront days).
What does this have to do with Smalltalk?
First, Smalltalk is not an HPC language.�� If you want to develop computationally
demanding code, you might prototype it in Smalltalk, but you are not going to deploy.
Second, that doesn't necessarily preclude the use of Smalltalk in HPC environments.
People seriously use Python (despite Python's single-thread slowness), Matlab, and
R for HPC problems.�� What they do is wrap Fortran/C/C++ data structures and call
Fortran/C/C++ code to manipulate them, basically using Python or Matlab or whatever
to direct the low level code.
Third, just imagine the fun of debugging code like this.�� You don't really want to
write Fortran (even Fortran'08) or C++ (even C++17) by hand; it's ok as "portable
parallel assembler".
Fourth, in order to configure and customise software like this, you really want
a decent interactive modelling language.�� (For example, the CovidSim program uses
data loaded *once* from WorldPop.�� I haven't yet found anything in the distribution
to update this.)
Fifth, there's the whole "Embedded Domain-Specific Language" thing.�� There has been
some impressive work done on generating low level code inside functinoal programming
languages.
Thus I hypothesise that there is room for Smalltalk as a tool for *generating* and
configuring HPC code.
My main worry is that when it comes to "bet your whole economy" software and
worse still, "bet the entire global economy and human happiness for centuries"
software like climate models, it's appropriate to use the very highest quality
assurance tools practical, including *serious* verification.�� That's not common
practice.�� CovidSim has 'assert' statements in just two files.�� Generation via
Smalltalk wouldn't be *worse*.�� But could it be *better* ?
What is the state of the art in verification tools
��- written in Smalltalk?
��- available (via FFI or otherwise) *through* Smalltalk?
��- available in any form *for* Smalltalk?
(I should probably be looking at MOOSE but am too stupid to know how to start.)