33 points

Yep, MS is basically stuck between a rock and a hard place. They can’t innovate very fast because they’re dragging a 30-year legacy code ball&chain around, but they can’t even start to make something from scratch, because people would just use linux if there’s no backwards compatibility.

permalink
report
reply
26 points

As they point out at the end, this wasn’t about the old control panel, but the new settings panel. It’s all brand new code.

permalink
report
parent
reply
27 points

Yes I read it. It’s brand new legacy code 😅

permalink
report
parent
reply
1 point

Sounds like they are developing win32 code. The resource id nonsense is very win32.

So yes: instant legacy code. Win32 is dead.

permalink
report
parent
reply
27 points

For the first part, I was like, yeah, that’s pretty much how all C++ GUIs work: a markup file describes the structure, a source file controls the behavior, and a special compiler generates more C++ code based on the markup file to act as glue.

That’s all pretty standard, and it’s annoying, but I didn’t really get why they were making such a big deal out of it.

Missing documentation is also annoying but not uncommon for internal widgets.

What really elevates this from simply annoying to transcendentally bad, is the lack of error messages, the undocumented requirements that resource IDs be sequential, and the mandatory IDE plugin. That’s all unforgivable.

permalink
report
reply
2 points
*

So you’re saying all C++ GUIs are shit. I concur.

Anti Commercial-AI license

permalink
report
parent
reply
5 points

Thats how every GUI which is not immediate mode works. Are there any examples where it works different?

permalink
report
parent
reply
5 points

I mean, you don’t need a markup file. Qt, Gtk, and others don’t require a markup file, but it’s optional. And neither generate “glue”. They load the markup, render it, and you can reference the elements by ID. Netbeans allowed (allows? I do think it’s dead), a WYSIWYG editor for Java interfaces and it straight up generates Java with comments. You can modify the Java and as long as the comments stay put, it can still load the Java - by far the best GUI editing experience I’ve ever had.

Rust has stuff like makepad that has a DSL using proc macros, slint also has a DSL that is loaded but also allows defining new components in rust that can be used in the DSL.

So no, not everything is as shit as in Microsoft’s C++.

Anti Commercial-AI license

permalink
report
parent
reply
23 points

Is there a transcript with word wrap enabled anywhere?

permalink
report
reply
31 points
*

Lifted from the photo and not error checked in any way.

[7:52:18 PM] … impressive

[7:52:22 PM]

[7:52:26 PM]

[7:52:30 PM]

the windows 10 Ul development was the most enormous shitstorm i’ve seen in a while how hard is it to move some fucking settings menus many people have pointed out that the Ul is upgraded piecemeal

7:52:34 PMJ … oh god

[7:52:36 PM] … you have no idea

[7:52:37 PM] … it’s so hard

[7:52:41 PM]

[7:52:43 PM]

i tried to ADD A DROPDOWN

[7:52:56 PM] … DO YOU WANT ME TO DESCRIBE IN EXCRUCIATING DETAIL WHAT IT TAKES TO ADD A DROPDOWN TO THE CONTROL PANEL?

[7:53:08 PM]|

I find myself overcome with morbid curiosity

[7:53:09 PM]|

is it like javafx and fxml?

[7:53:14 PM]

hahahahahahaha

[7:53:15 PM] … hahahahahahahaha

[7:53:17 PM] … NO

[7:53:42 PM]

describe to me what it takes to add a dropdown to the control panel.

[7:53:47 PM]

grabs a pillow and brown paper bag

[7:54:10 PM

control panel or settings?

|7:54:14 PM]

probably some ancient mayan rites

[7:54:18 PM] … lots of goats

7:54:33 PM

and registry entries

[7:56:54 PM]

see, first you find the folder that contains the code files for the control panel, and there will be like, 5 of them, each with something like 2000 lines of code, except for one that had 15000

lines of code and I never found out why. Once you find the C++ code file for the specific subsection of the control panel, you must then find the appropriate XAML file that is matched up to this code file, and then search through it to find another dropdown box element you can copy and paste because no one actually knows how any of this works. Then you have to go into a resource file and find a very specific resource ID for your control panel string, and create a new resource ID to tie it to. Then, you must find all the relevent C++ code tying the dropdown you copied, and copy and paste all that code, but this time, modify the hooks so it gets tied to your new dropdown. Then you have to run through 2 seperate specialized compilers to compile the resource files, and if ANYTHING GOES WRONG, literally ANYTHING, the ONLY ERROR YOU GET BACK is this:

-1

So after you run around screaming for a DAY because there is no explanation for what the fuck is going on, you give it to your coworker, who discovers that every single number in the resource file must increase by exactly 1, and if there are any holes in those numbers, everything fails completely. Then you can actually finish compiling the special compiler stuff and start building the actual codebase through a specialized plugin built for visual studio for the sole purpose of dealing with this fucking codebase, and then you might actually get something to compile.

[7:57:42 PM]

WHAT

[7:57:43 PM] … THE

7:57:46 PM] … FUCKING

[7:57:47 PM] … FUCK

[7:57:59 PM]

THAT

7:58:04 PM] … is how you add a dropdown

Smiernesirke

7:58:07 PM1

to the control panel

7:58:08 PM] … in windows

7:58:20 PM] … and people ask me why I quit that job

7:58:36 PM]|

how old is this “specialized plugin”

7:58:39 PM1

how do they live?

7:58:46 PM]

from what i can tell about 7-8 years, i think

7:58:59 PM]

do you have to be dead inside to write code for Windows?

7:59:02 PM1

Can we just compile this kind of shit into a doc to then send to zefrank so he can do a vid on True Facts About Microsoft

7:59:04 PM]

think it was based on an even older IDE they were using so it gets complicated

7:59:14 PM] …

Yes.

7:59:22 PM]

rip

7:59:36 PM]

again it is hard for me to even explain how any of his works, because most people there don’t even know how it works

7:59:39 PM]

microsoft needs to make like mojang and just haul ass to an entirely new codebase

7:59:43 PM]

they’re bootstrapping shit on more shit

7:59:44 PM1

if mojang can say “fuck the modders”

7:59:51 PM] … then microsoft can say “fuck the software devs” just as well.

7:59:55 PM]

See, you don’t understand, they keep trying and failing miserably

8:00:02 PM] … For example, lets take the build system

8:00:04 PM]|

Isn’t the legacy control panel codebase deprecated tho?

8:00:09 PM] … Because of Settings.appx

8:00:21 PM]

“deprecated” is just a fucking label basically

8:00:27 PM] … shit still uh

8:00:30 PM]

Yes, that was the new control panel

8:00:30 PM]

well it doesn’t “work”

8:00:34 PM] … and it’s not “usable”

8:00:34 PM]

that was the “new” codebase

8:00:35 PM]

but it’s

8:00:36 PM]

Oh my

8:00:37 PM]

that’s why it was in XAML

8:00:37 PM1

means “you shouldnt use it but if you do it’s all k”

8:00:38 PM]

accessible…?

8:00:45 PM]

you think i’m describing legacy code here

8:00:46 PM] … i’m not

8:00:53 PM] … this is me trying to add a dropdown to the windows 10 NEW CONTROL PANEL

permalink
report
parent
reply
4 points

I was able to read the image but thank you for your efforts for those who could not, transcribers always appreciated

permalink
report
parent
reply
17 points

see, first you find the folder that contains the code files for the control panel, and there will be like, 5 of them, each with something like 2000 lines of code, except for one that had 15000

lines of code and I never found out why. Once you find the C++ code file for the specific subsection of the control panel, you must then find the appropriate XAML file that is matched up to this code file, and then search through it to find another dropdown box element you can copy and paste because no one actually knows how any of this works. Then you have to go into a resource file and find a very specific resource ID for your control panel string, and create a new resource ID to tie it to. Then, you must find all the relevent C++ code tying the dropdown you copied, and copy and paste all that code, but this time, modify the hooks so it gets tied to your new dropdown. Then you have to run through 2 seperate specialized compilers to compile the resource files, and if ANYTHING GOES WRONG, literally ANYTHING, the ONLY ERROR YOU GET BACK is this:

-1

So after you run around screaming for a DAY because there is no explanation for what the fuck is going on, you give it to your coworker, who discovers that every single number in the resource file must increase by exactly 1, and if there are any holes in those numbers, everything fails completely.

Sounds like people need to pray to the Omnissah for guidance on how the code works.

permalink
report
reply
8 points

probably some ancient mayan rites…lots of goats

My favorite part LMAO

permalink
report
parent
reply
15 points

Thus demonstrating that when you combine XML and C++, you truly get the best of both worlds!

permalink
report
reply

Programmer Humor

!programmer_humor@programming.dev

Create post

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics

Community stats

  • 8K

    Monthly active users

  • 1.2K

    Posts

  • 41K

    Comments