|
|
Thanks for that, it's been bookmarked and I'll go over it closely.
The very first response (upvoted 1096 times) starts with:
"Asynchronous programming does "grow" through the code base. It has been compared to a zombie virus. The best solution is to allow it to grow"
...which is exactly what I'm complaining about. You start polluting your libraries with those keywords, and then suddenly you have to modify everything that requires it, going completely against the very concept of encapsulation.
|
|
|
|
|
Mainly it grows because every async method has a state machine created by the compiler. Yes, partial async is a contradiction and at best leads to the same thread-blocking as fully synchronous code, while the usually worst outcome is deadlock. The fact that async is an all-or-nothing commitment is IMO the main reason for developers not embracing it, but there's no excuse to not use it for greenfield projects. If you do it right, you also pass a CancellationToken with every call; increasingly, I'm also becoming convinced of passing IProgress<t>, at least for certain public members.
There was recent interest in replicating the Go concept of green threads, which I think would have been a game changer had it been used instead of async/await. Green Thread Experiment Results · Issue #2398 · dotnet/runtimelab · GitHub[^]
|
|
|
|
|
They keep adding layers of lipstick, but it's still a pig!
A home without books is a body without soul. Marcus Tullius Cicero
PartsBin an Electronics Part Organizer - Release Version 1.4.0 (Many new features) JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
Surely you don't think of computers as pigs, do you?
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
I admit to having never developed anything in C# or anything else managed. I admit that the .net ecosystem is nice, but I just wish Microsoft would stop renaming stuff to make it look new. That was the gist of my rant.
I've done a good bit of Unix development in the past - device drivers, graphics subsystems, applications, likely a few years before Linux became a twinkle in someone's eye. Tinkering, it's a bit of a shock to step back into that environment - much closer to the base system. I'm looking forward to relearning make files .
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
To be honest, I'm floating the idea of switching to Linux for personal use. I make my living with Microsoft technologies, but for personal use, I'm considering what would be involved in switching.
I'll be interested to see how you make out.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Richard Andrew x64 wrote: I'm floating the idea of switching to Linux for personal use. I make my living with Microsoft technologies
I'm in the same boat. Can't abandon MS because of work (I've always worked for full-on MS shops), but given where MS is clearly headed, I'd rather not follow.
I like tinkering with Linux in a VM, and have an old laptop or two running it directly on the hardware, but dedicating myself to it would be a tough transition.
modified 25-Jun-24 9:48am.
|
|
|
|
|
There's one or two programs that won't work, but I switched a few years back (to Linux Mint) and never looked back.
By one or two programs, just about everything mainstream has a native version, or will run in Wine. Even most games (some still limited by flakey DRM). Some even run faster. The things I've not been able to get working are Samsung phone backup software and that kind of thing.
And it's so fast (comparatively). I needed 16GB ram for Windows, on Linux I could make do with 8GB. That said, I have a feeling that on a laptop it's not as frugal with battery use. I don't have a laptop, but people who I know that do are telling me battery use is not as good. . . those same people are not ones that will have optimised anything though.
Hope that helps.
|
|
|
|
|
I haven't developed in C# or anything managed either. Some things about C# are appealing, but it's not a fit for what I've focused on so far. Besides, you can't kiss all the girls.
Renaming in large corporations sometimes occurs when a new group takes something over and rebrands it, even to the point of inventing new terminology. It's often at the behest of the new VP, much like an animal engaging in scent marking. My former boss described it as "Same lady, new dress."
I'd heard so many horror stories about makefiles that I kept delaying porting my code from Windows to Linux. And one day I discovered CMake, which even this dinosaur learned with relative ease. If it's a fit for what you doing (building a large C++ code base in my case), take a look at it.
|
|
|
|
|
I think Micro$oft's Delegate system to be quite hokey. Just give me regular function pointers to work with!
|
|
|
|
|
Exactly what I was thinking. But my C++ work tends to be relatively close to hardware with some desktop code mixed in, so I rarely if ever use the higher end stuff of C++. Need to read the next comment.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
swampwiz wrote: Micro$oft's
How 1990's of you. Coming straight for Slashdot?
(Sorry, it's just a pet peeve of mine. My perspective is, get over it, everybody does what they do for $ and if you're not, you're either lying or I don't know what part of the world you're from where everything is free).
|
|
|
|
|
|
All my personal stuff ( a lot ) is on Linux
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
My first plan is to see how much I can do on a raspberry pi. Plug in a 1TB usb drive, and I think it will do everything I need it to do.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
Take a look at the new NVME hat for the 5. I am now also using macro pads on the Pi and Debian. Lazy man’s tool.
>64
It’s weird being the same age as old people. Live every day like it is your last; one day, it will be.
|
|
|
|
|
"Starting next week, I'm moving to linux." Welcome to the club.
PS I still have to deal with Winders quite often, But not for my own stuff.
To err is human to really elephant it up you need a computer
|
|
|
|
|
charlieg wrote: Starting next week, I'm moving to linux.
Linux is fine, I just hope you don't go in thinking it's not without problems of its own.
|
|
|
|
|
By what you have said you must have started your career or at least invested some time of it to MS and MS technologies. So you are where you are today because of that experience. Something, I think, to be grateful for rather than just knocking MS.
MS are not perfect by any means and have made mistakes. I'm a long term desktop dev and I am frustrated by how MS seems to be turning it's back on us desktop developers, but none of that would force me into abandoning a technology (that I make my living from) for another just because they don't do things the way I like.
I too have thought about Linux, but only for fun and learning it's not a platform that I could make a living from as it's just not mainstream enough (do correct me if that's not the case). I'm pretty sure that using Linux and C++ is going to have it's issues too. The difference is that you are an intelligent guy and you will enjoy the intellectual load of learning something new, so you'll think it's better.
To your point of changing terminology, specifically, of COM, DCOM, COM+ and ActiveX. Well that's not strictly speaking true, it's more than a change in terminology while they are all based on the original COM, DCOM is distributed (so COM over the network), COM+ added security and performance enhancements and ActiveX added OLE to COM I believe (to support ActiveX controls, but still have COM interfaces). So you could think of it as COMv1, COMv2, COMv3 and then ActiveX, (this in a time before MS versioning by year!) so more than just renaming.
|
|
|
|
|
Yes, I suffered. Yes, my customer paid. Yes, I came from a pristine Unix development environment where everything made sense. I also did VMS where there were no idiots allowed to f*** with the OS, and the documentation made sense.
Do I appreciate what the developers have done at MS? Sure. But clearly, Microsoft is run by marketing idiots and have thrown developers under the bus for decades. Is MS perfect? I'm not, and they are not. But I don't make evil decisions to f&&* with their developer or user base.
I happen to run my own consultancy. There are times when I need to run soak tests for MONTHS. I have a high end server running multiple machines. I need to talk to it over the network. Microsoft decides to force a reboot at 1am Sunday morning to install updates that I don't need. And I have to restart all of my tests. I run professional so I expect a bit less stupidity from MS. Do you know how old it gets when I have to say to a customer, "Sorry, Microsoft forced a reboot and killed the soak test." ?
Vitriol is not directed at you, I just disagree mostly with what you posted.
Have I made money? Sure. But I'm not giving Microsoft a pass.
As for ActiveX, yes it was based on com whatever, but the entire thing was an abortion. Or a train wreck, or a "hey what are goats doing up here in a cloud?" look up the last reference. When I got into it a long time ago, MS had already abandoned activeX as web tech moved on, and they left us poor embedded developers to suck air. What I should have done is rip it all out, but I was never given permission.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
All big companies are run by marketing idiots. A certain fruit company being a great case in point as they treat all their customers as idiots by convincing them they're spending 2 * as much on the equivalent PC, just to get the fruit logo.
I don't disagree with what you have said, I know MS can be a PITA but they do create mainstream OSs, so if there is a security vulnerability found, should they not patch it? (they'd certainly get serious backlash if they didn't), unfortunately that could mean a reboot. AFAIK servers don't automatically reboot, they just nag. If you have a Linux security issue first you have to know which one of the thousand or so distros that it affects. I'd like to use Linux but the sheer number of distros is bewildering. If I did use Linux for my development, I could give away my software or I could try and sell it to the 5 users that use Linux in a business environment (OK, I'm being flippant, but compared to a MS OS user base it's a no brainer really).
Anyway, besides the point, I was merely pointing out your comments on COM, DCOM etc. were technically incorrect and that everything has it's flaws. I make my living, and have done for the past 25years, using MS products. I agree they're not perfect and yes they're frustrating and yes they f&*k up sometimes (well often). What mainstream alternative is better and flawless?
FYI (not that you would be interested) but from memory there is (or was) a version of Windows called LTSB (Long Term Service Branch) or something like that, that didn't do updates (other than security updates I think) for 18 months. So no forced reboots. Never used it, I wanted to in a previous workplace but would have been a massive upheaval for their existing customers. That may help you if you're still stuck on some of your VMs.
|
|
|
|
|
All big companies make mistakes. Microsoft triples down on them. I concur with your assessment of COM, DCOM, etc. I agree it was a natural development progression. But my anger and bitterness comes from the embedded world where NOTHING EVER DIES. Meanwhile, Microsoft routinely makes decisions that had huge consequences for customers, and they just don't care. I've lived through one - the abandonment of WinCE and .NET and associated development tools. Don't even get me started on their latest offering.
The second is their anal retentive insistence on forced reboots. Sure, I want to fix security issues - AT MY DISCRETION. As a developer, nag me, but to reboot a test environment? That's criminal.
I'll tell you a story from 20 years back. I was having an early morning discussion with the buildings IT manager. The issue of OS updates came up (we were on Windows 2000, so the current lunacy wasn't there). We mainly used our PCs to run an X-Windows client to access all of the Unix machines we supported. This manager happily explained that he could break into any of my team's Pcs. I said, please explain. He says, oh, we just cycle power.... I explained to him that was not business acceptable, he was going to get beaten and then fired after a trip to the VPs office.
Power cycling on machines is what MS routinely does. This is not marketing (going back to my original grip of function pointers being relabeled by MS), this is sheer stupidity.
I agree to disagree with some of your comments, but MS is another issue, and I won't give them a break.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
"Meanwhile, Microsoft routinely makes decisions that had huge consequences for customers, and they just don't care" - agreed.
|
|
|
|
|
But backwards it's even more stupid.
Yeah I'll get my coat...
|
|
|
|
|