|
|
A lot of people are sad about this but I'm not. By my reckoning he lived a blessed life, lived to an old age, and died peacefully. We should all be so lucky.
I'm not saying he doesn't deserve people to mourn him. I'm sure his family does, and I'm sorry for them, but he was 72 and he died in his sleep. That's not a bad end to a good run. Just my $0.02.
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: We should all be so lucky. More than true!
|
|
|
|
|
Can we all agree that the death of Ron Popeil is really, really sad, and if you call in the next 30 minutes, we will ship you not one, not two, but three boxes of tissues at a low cost of 5 paiements of $19.99 and money back garanteeeee.
He also lived his life to its fullest.
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
I saw the news about Ron, too. very sad indeed. most of us here in the States (not sure about Europe) grew up with this guy on our TVs.
"set it, and forget it"
|
|
|
|
|
72 sounds old.. until you are 71.
>64
If you can keep your head while those about you are losing theirs, perhaps you don't understand the situation.
|
|
|
|
|
It sounds young if you are 82
Repo Man
|
|
|
|
|
Yes, it is all relative. I am well past it as well. My wife's aunt passed away last year at 96. She used to talk about living to be 90. When she hit 89, I told her she was going to have to move the target.
>64
If you can keep your head while those about you are losing theirs, perhaps you don't understand the situation.
|
|
|
|
|
Oh sure - he died in his sleep...
What about his passengers?
(In my world it’s never too soon!)
If you can't laugh at yourself - ask me and I will do it for you.
|
|
|
|
|
|
Damn.
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
ZZTop used to play at the Warehouse in New Orleans before they got "Big".
One of my biggest regrets is that I never went to see them.
Repo Man
|
|
|
|
|
New Orleans? Did you spell Warehouse correctly?
|
|
|
|
|
As I am starting my new job at EA, working on the Frostbite Editor, which is easily a 1000 man years job if I were to hazard guess... The codebase is very large!
And the parts I am working on are very messy... Trying to study one little bit of functionality... the code ping pong between many different classes which all work on the same data at the same time, it's very challenging to grasping it all. One might call it some sort of spaghetti code.
Now.. it might seems inevitable on large project with large team... But, at the risk of being blind folded by fanboyism, I think Microsoft.NET API code looks quite neat and simple. And this is a large project API too, 20 years in the making! By a large corporation!
So.. how did they do it? How does one push back against the growing complexity?
|
|
|
|
|
Regular review, and long design cycles. Lots of dogfooding by other developers. All of which is expensive.
Also, actually having a documentation and technical writing team working *with* the development team helps both parties make better stuff.
And then in terms of implementation I think they had an eye toward creating a "reference implementation" from the jump so there was some feeling that your code was going to be looked over by the public to keep people honest.
This is all just feels and vibes I got working from working on .NET and Visual Studio teams at Microsoft at points, nothing concrete.
But I will say this: Microsoft threw a ton of money at implementing the .NET BCL precisely because it was public facing. I don't know how public facing and broadly distributed the Frostbite editor source code is, but I do know EA is a big company and *can* produce clean code if they want to. It just costs more in terms of time (and thus money) - and trust me when I say that it's a hassle to have to code to standards that such necessarily requires - as well it should be since it's almost always harder to do the Right Thing(TM)
Real programmers use butterflies
|
|
|
|
|
I guess you nailed it.
It's possible, but it must be a real additional effort (as in a lot more time and money).
I guess I will have to suck it up, and contribute as much as I could to reduce complexity when I can...
|
|
|
|
|
Maybe look at it this way? there's a sort of knack to this sort of forensic(ish) code analysis and it's valuable as all heck. This is an opportunity to get some practice at it and hone the ability.
Plus I've found that when I'm looking at Other People's Code(TM) it doesn't click until I understand their thought process. Once I do, I can get through code that would curl your hair.
My point is, you'll get through this mess, and be better for it.
Also, I'd add - I wouldn't try too hard to kill complexity - not that this isn't valuable. It's just that if you have to make the choice, there's more value in being able to continue the code using the model you were handed, if you can. Otherwise you're looking at a rewrite sooner than you otherwise would. Just my experience.
Real programmers use butterflies
|
|
|
|
|
Writing good code is a bloody pain. By which I mean that it is easy to understand what it wants to achieve, easy to find stuff where you expect it to be, and relatively easy to expand. No matter which pattern I use I always end up with a mess.
Like with MVVM pattern, which seems to me to be only a pattern for splitting up the GUI in separate code snippets. It does that job very well, but that's about all you get from that. I have yet to find a pattern that helps me split up code into sections so that I don't have to revisit/reorganize at a later stage. Any thoughts or tips?
|
|
|
|
|
In C#/.NET I've found the use of partial classes to be fantastic for that.
For example, I'll have
MyList.IEnumerable.cs
MyList.ICollection.cs
MyList.IList.cs
And each file implements the named interface.
In C++ your options are ... messier. There's no way to split code up in C++ that I know of that doesn't add to complexity.
Real programmers use butterflies
|
|
|
|
|
Don't C++ allow implementation of multiple abstract classes?
|
|
|
|
|
Yes, but multiple inheritance comes with its own complexities. I wouldn't recommend it if your goal is to reduce complexity. This is triply true when templates are also involved.
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: But I will say this: Microsoft threw a ton of money at implementing the .NET BCL precisely because it was public facing. This is the key point. Friends who worked in the gaming industry mostly burned out due to the insane time-to-market "schedules". The entire point was to get the programs working so they could be published, and it didn't matter how programs worked as long as they worked.
Once a version was published, and sometimes before a version was published, it was on to the next version. There was no time to fix the errors of rushed coding unless something conflicted with something else in the next version.
Sure, this happens in other industries, but gaming is IMO the poster child for propagating and maintaining bad code.
|
|
|
|
|
That makes total sense to me. I mean, not that it works that way, but that gaming would be the one to do it.
The pressure to market is just overwhelming with games. It's a constant race against competitors, against newer hardware, against major shopping holidays - it's ridiculous.
I don't think there's a way to fix the code without fixing the above.
Real programmers use butterflies
|
|
|
|
|
nah, they cold like hell, get the game released and move on to another job.
I deal with it every day. If I could get chuckleheads to follow the design concept, but no, no one wants to hurt anyone's feelings. I deal with so much $hit code every day, some days I think my head is going to explode.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Super Lloyd wrote: How does one push back against the growing complexity?
If I may venture an opinion: sometimes you don’t. Sometimes that complexity reflects what I call “battle-scarred code”. Old code that has seen many battles is rarely clean but it contains that protection against a divide by 0, and can handle that weird situation we encountered 5 years ago and so on.
Really great companies, like Microsoft, might also have someone like Raymond Chen to maintain some kind of oral history project but in most places you just have to find yourself all the good stories hidden inside the code. And the bad ones too.
Anyway, I learned to respect the battle-scarred code.
Mircea
modified 29-Jul-21 10:16am.
|
|
|
|