Back in the day, circa 1980s, Borland started the
Turbo language craze. Their languages and tools were
not overly complicated but good enough to get real work accomplished. One of the projects I worked on was
a long filename filemanager based on DOS written in Turbo Pascal. The simple
COM file could be
integrated into DOS.
Yesterday I watched a presentation comparing and contrasting the ARM and Intel processors. Their design, past
and their future. It essentially comes down to…
- ARM chips are efficient reducing the number of transistors and the number of switches
- Intel adds millions of transistors and every node adds heat
- ARM is positioned for parallel computing clusters (see Japan super computer)
- Intel clusters generate heat
So looking back at my current project load… tiny is the way to go.
- fossil over git
- sqlite3 over SQL Server or just about anything else
- ChromeOS over Mac or PC
- OpenBSD over FreeBSD, and other linux
- ODBC - I’d prefer TDS but it’s just not available everywhere and it seems to be difficult to get right.
- tclsh over bash because i can do a little more than bash, is available on most/all OS by default.
- golang is still at the head of the class but if generics win the day it’ll have to go
- nim - it would be nice if it were a tiny language but the challenge is the documentation is miniscule and the configuration is painful.
- 2FA - it is a single point of failure in the perimeter.
- LUA - man it’s old… the luasql-odbc project has not been updated in 7 years. Could it be that perfect? It has it’s quirks
but there is a micro economy that could benefit from it since it’s embedded in varios systems like Adobe, Cisco, some games and so on.
But what about…
- Rust - It’s the new kid but they violate their own protections.
- Java - The new COBOL
- python - tabs and spaces? Tiny and Micro python are interesting but still no fun.
- perl - perl 6; need I say anymore? The perl fork is not really a fork but the libs are starting to show their age.
- ClearLinux - I love this OS. They offer a server and a edsktop version. They release code 9 times a week… all great things… In my environment
am not always capable of accepting 9 releases a week. Especially if it were a desktop. The best part about CL is that it boots in about 2 seconds.
While it works… the bundles are large. Dependencies are deep. But they have embraced features like
systemd which are not tiny at all.
- Pop!_OS - Also a great linux. But they do not offer a server/headless version. See ClearLinux.
- systemd - it’s not tiny.
- Gitlab, github, bitbucket - are developing features intended to lock the user in.
git is intended for millions of lines of code and many thousands of programmers.
Micro Kernel vs Monolithic Kernel? This has it’s place… but I worked on IBMs Microkernel development and it was a mess. Phds missed a lot
of details which they evenetually implemented… The challenge is that “we” need to be able to trace execution. The idea of adhoc replacing
functions means that the results may never be reproducable. This same issue exists in erlang.
Tiny is not micro.