.. I feel nostalgic about old days of spaghetti code in Assembler. Sure, I can't decipher some of my own sources from 1990 but I remember it was really fun to try to figure out how to solve a problem purely by using your brain....
For me assembler is different from any other higher level language. We're talking right down to the nuts and bolts, direct access to the hardware, no API, nothing like that at all, just mnemonics and a lot of addresses, numbers, logical operands of various complexity.
I've programmed in Basic, Pascal, C, C#, some Java, Python, HTML/CSS... and it's not comparable to classic assembler which gives you absolute and direct control of every aspect of the hardware (and thus have to save the source file after every compile and test-run in case it crashes).
With modern managed languages you have several layers of abstraction from the computer and hardware. Programmers today doesn't have to know anything about the hardware itself (which is obviously great for programmers that have a task to do and use existing API's to do things for you instead of doing it yourself, a time-consuming process).
It's about "fun".
Assembler = you're driving a rally car, taking turns that may throw you rolling into trees. <- fast code, decoding ideas to abstract assembler code, having fun when you get something in particular to work, a thrill (which can end in "fuuuuuuu..." or "whoaaaa").
Modern high level languages = you sit on a train and write a paper. <- effective but somewhat "boring". you know what your goal is and you have a pretty good idea how to get there with the IDE telling you which lines are wrong and what is wrong.
I'm obviously talking about hobby programming, not commercial or work.
it's mostly just crosschecking with function and registry tables
dem damn registries
asm is basically this:
load up values to registries
push button
receive bacon
i like asm as an intellectual exercise since it's so pure and cold
closest to hardware short of doing solder work
but there's no way in hell i would ever actually code anything with it
Assembler = you're driving a rally car, taking turns that may throw you rolling into trees. <- fast code, decoding ideas to abstract assembler code, having fun when you get something in particular to work, a thrill (which can end in "fuuuuuuu..." or "whoaaaa").
Modern high level languages = you sit on a train and write a paper. <- effective but somewhat "boring". you know what your goal is and you have a pretty good idea how to get there with the IDE telling you which lines are wrong and what is wrong.
If you're gonna draw a car analogy at least do it properly
ASM is like having all the wires sticking out right in front of you, with only very basic labelling on them and little to no guidance on which wires you can or can't cross. To steer left you'll need to cross specific cables in a specific order, all whilst doing the same to have some forward movement. Want to get some sound out of the speakers? Sure, generate a sinus signal yourself over the wires related to that subsystem*.
A high level language gives you the pedals, wheel, shifter and properly labelled buttons and knobs for all the other wires. They'll generate that sinus signal for the heater properly too.
I think every programmer should have some experience in both ASM and C as it teaches them how shit actually works, but more fun? Meh.
I was pretty good at asm in uni but I prefer hacking my stuff together in a high level language (such as the very sophisticated javascript no honestly, I love that fugly language ) to see the result, which I find more interesting than to try and debug some obfuscated shit that is holding me back from achieving my set goal
I wouldn't program in ASM because it's not practical anymore, but I love my C++, especially optimizing code and squeezing out the last bit of performance. It offers a nice compromise between being an actually practical language for larger programs while still being pretty damn close to the hardware.
On the other hand when I just need something to work and don't care much about how fast it works, C# (or other very high level languages) are a dream to work with.
At work we still regularly have to deal with assembler (we sell security software). Last month spent a week debugging compiler bugs in ARM64 compiler (clang for iOS). It can be quite challenging, but rewarding when you find the bug
I guess no one understood the point due to me not explaining:
I started coding assembler on the C64 and managed to get so far that I could create raster bars, sprite scrolls in the border and other effect. It was a blast. Then I bought my Amiga 500 in September 1987 and I started coding assembler in January/February 1988 after I got in contact with an early intro/demo coder who was very helpful and sent me an assembler (SEKA) and a few example sources. From that I started making my own intros and demos, joining groups etc. and was in the middle of the "scene" at that time. I had contacts all over Europe and some in US (the groups BBSes usually sat in the US).
Nobody coded demos in C, you had to write fast assembler to save and utilize the raster time. Doing something in C took 3+ times as much raster, CPU, blitter etc. time and things wouldn't be smooth (everything including music choppy and utterly incompetent).
In other words I'm writing about specific purpose programming on the Motorola 68K-architecture. I'd never bother with ASM on x86, there's no point. I guess the top demo groups today do some specialty routines in ASM and the rest in C/C++ and know how to make the code extremely efficient but that's an entirely different world.
ps. there are still Amiga demos (and even C64 demos) being made every year, many competing on big demo hacks/gatherings.
This one was made to run @ 50fps on a stock Amiga 500 (512KB, a 7.14MHz MC68000.. There was never any kind of texturing, filtering, hardware chunky pixel conversion etc. so everything was made withing very narrow limits and groups pushed the limits constantly just like they had with the C64.
..and just for kicks, a C64 demo from 2014 by Fairlight, Prosonix and Offence!!!
...and to end we go with a modern advanced demo that requires a CPU accelerator (68060, the last of the 68K-series made) to run properly. Choose 720p50. Still no texturing or filtering hardware, just an updated GFX-chip with more colors but unfortunately limited to 4x signal speed (Commodore was saving on everything) so it's an amazing product with great music that runs on hardware from 1992 with a faster CPU. Very clever programmers and most of it impossible to do in high level languages.
Signature/Avatar nuking: none (can be changed in your profile)
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum