Or is it all just the stubbornness to get the desired result?
Arthur Schopenhauer wrote:
A man can be himself only so long as he is alone; and if he does not love solitude, he will not love freedom; for it is only when he is alone that he is really free.
I've loved programming since I first "met" a computer (mid 1970s, IBM 360 mainframe)
I've always been obsessed with "building stuff" and software make it so much easier to build interesting and "cool" stuff than carpentry, metal and electrical work etc.
I started (and still am) big into assembly language (wasn't really much else available for microcontrollers in late 70s early 80s) and during that time I heard about a new "language" suitable for smaller systems called 'C' - I had not written a compiler before and being somewhat anal about not being able to use something until I know exactly how it works - I decided to write my own...
I was always very into little microprocessor based "embedded" systems (constantly put them it more tech. stuff I built). and before long I ported my compiler to over a dozen little processors, it became favorably known among embedded developers and I formed DDS which sold Micro-C (and various other embedded development tools I made along the way), and it become my main "job" for many years. I even designed my own processor architecture (C-FLEA) to be a super efficient target for my compiler!
I'm retired now, but I still build and program stuff all the time - I truly love creating new things, and programming can make them so much "cooler"!
https://dunfield.themindfactory.com ; "Daves Old Computers" ; SW dev addict best known:
ImageDisk: rd/wr ANY floppy PChw can ; Micro-C: compiler for DOS+ManySmallCPU ; DDLINK: simple/small filecopy(w/o netSW)via Lan/Lpt/Com
"You know, when you have a program that does something really cool, and you wrote it from scratch, and it took a significant part of your life, you grow fond of it. When it's finished, it feels like some kind of amorphous sculpture that you've created. It has an abstract shape in your head that's completely independent of its actual purpose. Elegant, simple, beautiful. Then, only a year later, after making dozens of pragmatic alterations to suit the people who use it, not only has your Venus- de-Milo lost both arms, she also has a giraffe's head sticking out of her chest and a cherubic penis that squirts colored water into a plastic bucket. The romance has become so painful that each day you struggle with an overwhelming urge to smash the fucking thing to pieces with a hammer." - Nick Foster ("Life as a programmer")
Somehow a week just went by optimizing application installers and the building process. Bloated installers installing unnecessary cruft, some files not being digitally signed, some software projects not being signed at all. Something that should be banal, but oh my, the number of things that can go wrong. One project wants /t:Publish on msbuild command-line, other /p:DeployOnBuild=true, one wants /PublishDir=path, other wants /PublishUrl=path. Miss one line in Inno Setup script (despite going through scripts numerous times), now the EXE is missing, copy-paste another and forget to adjust the path, now it's installing a file from another program. Notice a function calling dotnet.exe, thinking, maybe this should be changed to use full-path rather than relying on PATH, change it and realize you broke the function completely, rewrite it and now it doesn't compile on build server because Inno Setup on it is outdated and you used a newer function.
Notice something odd, a missing DLL from the console output of the batch file doing the signing which you're sure you saw in its rightful place. Then realize the DLL's name is misspelled in few of places throughout the repo.
At some point, you were sure these commits were fine, you went through them hundred times. Send them to SVN and then be horrified at number of things you still missed. I use git to interact with company's SVN because I don't know how people manage with SVN alone. I'd make history in SVN even uglier if I used it alone.
That basically summarizes the past week. Some say this is "normal" and that's why many people don't like programming.
If it can still be called that, I'm apparently cursed with trying to fix other people's mistakes.
Arthur Schopenhauer wrote:
A man can be himself only so long as he is alone; and if he does not love solitude, he will not love freedom; for it is only when he is alone that he is really free.
I love programming, but unfortunately it does not pay the bills anymore. It is really hard to find work in this field nowadays, and I feel quite outdated.
I still love programming in my free time; most of the time, it is practically the only thing I do when I sit in front of a computer.
I turn on my 286, open Turbo Pascal, BASIC, Borland C, or just Edit with TASM, and suddenly the whole day is gone. I also have a soft spot for COBOL, a language I worked with professionally for many years. I do not know if I can call it love, but it is definitely affection, haha.
I'm sure this is true for every hobby. It ceases to be fun when you start relying on it to pay bills.
"This all reminds me when i took the windows vista sticker thingy off my old laptop, and on my washing machine as a joke. A few days later said washing machine stopped working. I still think this cannot be a coincidence."
... It ceases to be fun when you start relying on it to pay bills.
If you love doing something - chances are you really truly love certain parts/aspects of it.
When that "something" becomes what you do for a living, lots of other aspects creep in... and it does become less fun because you are forced to concentrate more on the parts/aspects which aren't the ones you truly love - but unless you really screw-up, the parts you do love will still be in there, and making a living this way will still be preferable to ways involving nothing you truly love.
At least that's how I would describe how I felt about how my software-engineering career developed.
But there IS good news - when you retire, you no longer need that paycheck, and you can much more concentrate on the parts you truly love and less and less on all the other "more annoying" bits!
https://dunfield.themindfactory.com ; "Daves Old Computers" ; SW dev addict best known:
ImageDisk: rd/wr ANY floppy PChw can ; Micro-C: compiler for DOS+ManySmallCPU ; DDLINK: simple/small filecopy(w/o netSW)via Lan/Lpt/Com
If you need to ask, the answer is no. If you love it, you don't ask. Like any pursuit, there are frustrations. The only frustration I find unbearable is when management conspires to make progress impossible. Then it's time to put on your shoes.
It's just that the amount of specifics and gotchas is insane. And it takes forever to get anywhere. Plus my brain has limits. I'm not sure where I stand personally, I somehow ended up contributing to software at work. I have too much commits for someone for whom this was supposed to be the side thing when time permits xD.
Who knows how many months some things would still remain untackled. And still some nasty problems remain. But it's easier to ignore problems customers complain about. Then what are you supposed to tell them?
Regarding this craft in general, I also got the sense that it's underappreciated.
Arthur Schopenhauer wrote:
A man can be himself only so long as he is alone; and if he does not love solitude, he will not love freedom; for it is only when he is alone that he is really free.
Game programming yes (Assembly, C/C++, C#)... other fields... bleh... I do other fields if I have to but I don't like them (backend, websites, python, business, databases, mobile).
Game programming has excellent feedback to your work compared to other types of applications. It is really rewarding when you see the visual results interatively responding to your code and inputs.
Turbo XT 12MHz, EGA, MFM HDD
Intel 386 DX-33, Speedstar 24X, SB 1.5, 1x CD
Intel 486 DX2-66, CL5428 VLB, SBPro 2, 2x CD
IBM BlueLightning 100MHz, CL5428, SB16, 4x CD
Intel Pentium 90, Matrox Millenium 2, SB16, 4x CD
HP Z400, Xeon 3.46GHz, YMF-744, RTX2060
I like doing programming for creative reasons moreso than just to achieve some goal; when I do it creatively I do genuinely enjoy it!
...Maybe that's why game development appeals to me so much, especially where I'm intentionally avoiding using pre-made stuff to make things myself instead, since there I get to be the most creative when programming.
(I guess it also makes sense why I haven't done programming as much after getting into drawing, too.)
I am the same, with a smattering of regular old C thrown in. Those were fun languages. ASM was elegant and every program you write in ASM is its own succinct work of art. It blows the others out of the water when it comes to sheer satisfaction of working the raw hardware at its most basic and fastest without all the bloat, crap, and abstraction layers of the modern stuff (dare I say crap?). A 100 mb "Hello, World" is not for me - it's a disgrace and a travesty..
(dare I say crap?). A 100 mb "Hello, World" is not for me - it's a disgrace and a travesty..
You put it very mildly.
I am in the mode of if a program cannot work on a pentium, it’s not worth it. It might work better on something faster, yes, but it has to be able to at least work.
Personally I have only scratched the surface of Basic programming and then stopped due to lack of education and interest.
If I could I’d market a new OS based mostly on assembly code that would show the true value of modern CPU's without relying on the stupid CPU extensions that are really gimmicks.
It would rival Microsoft because it would actually be micro and be supplied with computers not downloaded like Linux.
(dare I say crap?). A 100 mb "Hello, World" is not for me - it's a disgrace and a travesty..
You put it very mildly.
I am in the mode of if a program cannot work on a pentium, it’s not worth it. It might work better on something faster, yes, but it has to be able to at least work.
Modern programmers don't care about performance and elegance it seems.
I didn't know what to think when conversing with another co-worker at some point and his apparent enthusiasm over web-based stuff.
I'd never use Photoshop in a web browser. That's just disgusting. Why would you prefer web-based for which you need bloated buggy web browser and have software in (someone else's) cloud rather than locally as proper desktop application where it would work better?
Arthur Schopenhauer wrote:
A man can be himself only so long as he is alone; and if he does not love solitude, he will not love freedom; for it is only when he is alone that he is really free.
You're never going to get the "near perfect" efficiency of a dedicated .ASM written by a talented programmer in any "higher level" language - and this is generally worth it because you get much more ease of programming by "average" programmers (and a lot more speed by talented ones)
But high level languages have to be more general - much of what they do is via libraries which sometimes "drag" in thing not needed in a specific program
(eg: my low-level I/O libs often have READ and WRITE code in one module)
But - I always tried to keep this on the order of a few% - I just can't believe what I've seen coming out in this industry over the years (and it seems to be getting worse - likely because "modern" systems require so much more overhead code to interface with)
-- Sorry -- always been a bit of a touchy subject for me!
https://dunfield.themindfactory.com ; "Daves Old Computers" ; SW dev addict best known:
ImageDisk: rd/wr ANY floppy PChw can ; Micro-C: compiler for DOS+ManySmallCPU ; DDLINK: simple/small filecopy(w/o netSW)via Lan/Lpt/Com
I generally agree and wouldn't say it's all bad that the barrier of entry is lower. But it seems even higher level libraries are often misused. Ever since I touched that code at work, the complaints "Our server runs out of memory when we do PDF reports" pretty much disappeared.
The internal translation tool needed anywhere from 20 to 30 seconds to save the file, depending on the performance of the machine. Maybe it was a bit faster on the company's hosting provider's server, it slipped out of memory as I don't use it often, those numbers do come from my work laptop (about 10 years old) and my trusty 17 years old desktop. Now it's done in under a second.
Arthur Schopenhauer wrote:
A man can be himself only so long as he is alone; and if he does not love solitude, he will not love freedom; for it is only when he is alone that he is really free.
Modern programmers don't care about performance and elegance it seems.
Very true - I think a lot of it has to do with computers becoming so much more "powerful" that modern programmers don't realize how much is actually going on because of some arbitrary decision they made along the way.
We "old guys" who "grew up" on very limited systems(*) understood that in a way "young pups" can't - and it still resides in our intellect when we "put thoughts to code".
https://dunfield.themindfactory.com ; "Daves Old Computers" ; SW dev addict best known:
ImageDisk: rd/wr ANY floppy PChw can ; Micro-C: compiler for DOS+ManySmallCPU ; DDLINK: simple/small filecopy(w/o netSW)via Lan/Lpt/Com