Their comment was entirely on brand.
Comparing to current-day stuff is kinda like comparing battery-powered bathtub toys to jetskis.
Software in the 80s showed what's possible when you really care about doing it. Software in the last 15 years feels like an exercise on what happens when you don't.
If there is any positive progress to be made, the rethinking necessary must go much, much deeper than the superficial flesh of the problem, but there it’s bound to hit upon the sinews and bones of vested interests.
In all, as I’m growing older and see the world trudge along the same lines it did centuries ago, I’m more and more pessimistic about the possibility of people agreeing that the sacrifices necessary will be made.
Short-term stakeholder interests seem to trump any notions of longer-term greater good.
which one is which?
That said i never finished that and ended up making another one (using tvchat as a base since it had largely working communication and session management) that acts as a server/daemon inside the container is meant to run in the background and provides a web-based UI instead.
http://runtimeterror.com/pages/iv/images/25b1d4b43bb3467e392...
However the language extensions that were the reason for the lawsuit did indeed transition from J++ into C#, with J# being J++ on top of .NET for easing code porting.
The features were events, J/Direct (later P/Invoke on .NET), COM interop (later RCW/CCW on .NET), and Windows Foundation Classes (later Windows Forms on .NET).
In the absence of that, Pascal’s creators and commercializers invented follow-on languages, including the most successful thread via Hejlsberg as we’re discussing here: Object Pascal -> Delphi -> C#/.NET—with a brief detour to J++, which I don’t know enough about to understand if it belongs in this sequence.
As for your sequence, from someone that was around back then, .NET and C# only exist as you know it thanks to Sun's lawsuit regarding Java language and runtime extensions introduced in J++.
Then an internal research language originally named Cool, became C#, the language extensions in J++ were made into C# features (events, J/Direct, COM interop), Windows Foundation Classes became Windows Forms, and J# was released in .NET 1.0 as transiton technology.
Had it not been for the lawsuit, Ext-VOS (.NET codename) would have been released with J++ instead.
https://web.archive.org/web/20190111203733/https://blogs.msd...
Follow the linked paper for Ext-VOS, aka COM+ Runtime, aka .NET.
Microsoft would revisit this COM+ Runtime a decade later with WinRT,
https://arstechnica.com/features/2012/10/windows-8-and-winrt...
So it wasn't for lack of standard per se.
Though Borland had some commercial success, I remember Pascal mainly as a teaching language.
Ada also was widely used in aerospace/military applications, though not sure it's still used for anything new today.
Really it could have been go-lang before go-lang and I'm not sure why it wasn't other than that it wouldn't have been controllable by the folks at Google.
https://entwickler-konferenz.de/en
Then there is still FreePascal, Mikroe Pascal and RemObjects Pascal to chose from.
And now also Micron, which re-added Pascal features to Oberon (https://github.com/rochus-keller/micron/).
Here's a page from the book I was reading in 1993: https://imgur.com/a/7UWdGgS
For reference, ZX-Spectrum has 48Kb of RAM out of which 8Kb is video memory, so unusable.
Then you have to load the Pascal compiler into the remaining 40k of RAM. Allocate some RAM for stack and environment variables for the editor where you write your program, plus space for the actual program. Then compile your program into the same 40k of space. And run it, using heap and stack memory from which memory space? You guessed right, same 40k.
To recap, on 40k of RAM you had back then:
- The Pascal compiler
- The Pascal source code in text form
- The Pascal executable form in machine code
- The Pascal data/memory. Of which, recently in a "tech demo" of automated tests, one colleague said "unfortunately we only have a very limited amount of RAM to be able to do basically anything [that's why the product is a mess with no tests]. Only 32Gb per [virtual] machine".
One of my first programs was a Tetris clone, because ZX-Spectrum BASIC was slow as molasses. All on top of only having tape for storage so if I fucked up a pointer (I don't think Pascal had the concept of access violation back then but I sure discovered it on my own skin), it would take 5 minutes to load the Pascal compiler + some backup copy of my Tetris game, hopefully not from a month ago and hopefully I remember what I changed. Lots to discover and have "fun" with.
About a year later I did find a compiler for BASIC and it turned the unplayable BASIC code for Tetris I wrote in the 9th grade into a totally playable Tetris game, without the need to learn another language and paradigm (pointers!) but the damage was done. Ignoring a year of databases, in 12th grade of high school computer science class (elite class, found there basically all the Math olympics I was competing with in gymnasium), I got introduced to C and from then on, here I am, 30 years later, doing C++ in finance for an S&P 500 company.
> zlib.h in the Mac OS X Lion SDK (80,504 bytes).
What a stupid comparison. zlib.h is probably 99% comments.Bytes have history, meaning, context of creation, different utilities and different cost associated with creation/transfer/storage/manipulation
We could also use those comparisons to praise how complicated our current world has become and how good we are at managing such complexity
There's no reason (other than laziness) why that should take more than 2k.
On the other hand, a lot of boilerplace code is repeated in each and every command. When I first learned as a kid about UNIX commands being ordinary programs, I was intrigued (there is nothing "special" about them, you can also write your own!) but also shocked about the overhead compared to an architecture in which e.g. the shell contained all (at least core) commands compiled into a single binary, which could share all the error handing, startup code, command line parsing code and so on.
GNU coreutils touch does a lot more than that. My local copy is about 95k; it allows for choosing from multiple different timestamps to update; suppressing the (default) creation of an empty file if it doesn't already exist; operating on symlinks directly rather than following them (if the system supports it); specifying a custom timestamp rather than "now" (including by parsing a date string), and of course outputting a help message and a version.
> DATE STRING
> The --date=STRING is a mostly free format human readable date string such as "Sun, 29 Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next Thursday". A date string may contain items indicating calendar date, time of day, time zone, day of week, relative time, relative date, and numbers. An empty string indicates the beginning of the day. The date string format is more complex than is easily documented here but is fully described in the info documentation.
There it is.
Zabbix also confuses operators at this point. I recently had to increase a cache. I chose to go from a solid 4MB to a luxurious 256MB.
I know high-performance Java, so just a little jab there, but you don't size JVM parameters like that, except maybe code caches. And before Rust comes in, we also have a Rust application running without good resource control and it wouldn't like those resource constraints.
There is truth to this article.
Sure, I mean it had a turbo whereas Microsoft only ever had quick things. A shame no one thought of swift back then.
Fundamentally, many inefficiencies were justified for developer productivity, and I'm not sure that makes sense anymore, and the cost of larger projects with clear abstraction boundaries has plummetted.
The next few years are going to be fun.
Having lived through this period, I would disagree, quite the opposite we tended to develop in C and assembly specifically for runtime efficiency because we had to.
For developer productivity you could opt for Lisp or SmallTalk or some such, which ran much slower until high quality compilers for these became available, and even then your target machine might only have a C compiler.
Now, developer productivity is becoming less important as developers are factored out entirely.
It's the lack of clear abstraction boundaries that causes decreased developer productivity.
A code generator will not save you from Conway's law.