Windows 10 - Convince me.

Well, regarding Microsoft's operating systems at least, it seems more prudent to skip every other version. You really don't have to follow every trend if it's kind of obvious it will be a dud. Windows 95, Windows ME, Windows Vista, Windows 8 - all of these versions were half-baked affairs that either went too far in the wrong directions or not far enough.

Windows 10 is kinda different because it's supposed to be the last version of Windows we'll ever see - Well, we'll see ;) Personally, I'm 100% sure, there'll be a new version eventually. It's just a question of how many years it will take. The problem is that 'living' software doesn't age well: Adding more and more features to a software, changing and fixing code in several iterations will inevitably lead to clunky code that is hard to comprehend and maintain until you reach a point where it's simply better to start from scratch..
But I think pretty much no Windows Version was made from scratch. I think pretty much all modern Windows Version can probably be dated back as least as far as Windows NT 3.1.
There are certainly parts that were rewritten over time, but throwing out everything and rebuildng from there is unlikely, and unneccessary, and most definitely hasn't happened so far.

"Living" software can age poorly if the development team is not taking steps to avoid it, but it is possible to take such steps. Good architectural design, regular refactoring, strict coding guidelines, reviews, automated testing...

The version number we hear - Windows 7, Windows 8.1, Windows 10 -that's mostly a marketing thing. It has little do with the underlying software.
 

log in or register to remove this ad

Ryujin

Legend
But I think pretty much no Windows Version was made from scratch. I think pretty much all modern Windows Version can probably be dated back as least as far as Windows NT 3.1.
There are certainly parts that were rewritten over time, but throwing out everything and rebuildng from there is unlikely, and unneccessary, and most definitely hasn't happened so far.

"Living" software can age poorly if the development team is not taking steps to avoid it, but it is possible to take such steps. Good architectural design, regular refactoring, strict coding guidelines, reviews, automated testing...

The version number we hear - Windows 7, Windows 8.1, Windows 10 -that's mostly a marketing thing. It has little do with the underlying software.

The modular style of programming results in significant bloat, if you never go back to rationalize the processes in your modules. My hope is that they did just that in Win10. I wouldn't expect them to start from scratch, but at least verifying that you still use everything in your existing code is not a bad thing.
 

I had a lot of awkward problems, but so far I'm liking Windows 10. The search feature makes hunting for things easy, it's easy to disable programs from launching at start-up, and like being able to pick the size of icon for the start menu. The libraries in the sidebar of the file explorer are easier to manage and redirect. The quick access option in the sidebar is proving useful as well. And I love not having to hit "yes" every time I delete something; it just goes bye-bye.

The start menu itself seems to be an interesting combo of the Windows sidebar, smart tiles, and the standard start menu.

For the total price of "free" it was worth it.
 


The modular style of programming results in significant bloat, if you never go back to rationalize the processes in your modules. My hope is that they did just that in Win10. I wouldn't expect them to start from scratch, but at least verifying that you still use everything in your existing code is not a bad thing.

That prettty much seems to fall under the umbrella of refactoring your software. Dead code elimination should even have tooling support to some extent.

But the entirety of the Windows public API, as bloated as it may seem sometimes, is unlikely to change, since it must maintain backwards compatibility.


Any complex software without modularizaton will be impossible to maintain in the long run. We're talking an Operating System here, not a Hello World Program.

is windows 10 free forever?

No. IIRC, the free upgrade offer is limited, but I don't remember when it runs out.
 

Ryujin

Legend
That prettty much seems to fall under the umbrella of refactoring your software. Dead code elimination should even have tooling support to some extent.

But the entirety of the Windows public API, as bloated as it may seem sometimes, is unlikely to change, since it must maintain backwards compatibility.


Any complex software without modularizaton will be impossible to maintain in the long run. We're talking an Operating System here, not a Hello World Program.

Of course such complex software has to be handled modularly. That's not what I was saying. The question is are the modules efficient? Is there a large amount of redundant code? Are they making proper use of new processor and chipset features, since the older processors will no longer even run your O/S?

No. IIRC, the free upgrade offer is limited, but I don't remember when it runs out.

A year from release, if I remember correctly.
 

Janx

Hero
The modular style of programming results in significant bloat, if you never go back to rationalize the processes in your modules. My hope is that they did just that in Win10. I wouldn't expect them to start from scratch, but at least verifying that you still use everything in your existing code is not a bad thing.

um, modular style programming is what results in code-reuse, which is reduction of bloat.

copy-pasta is the spaghetti code you get from old procedural programmers who just copy blocks of code from one area over to another area, thus doubling the amount of code that does "the same thing"

Note, I use the term modular loosely, in the sense of a variety of languages support using multiple files to store common code, use of functions or objects that can be referenced from multiple code blocks, etc. As compared to writing the majority of your code in the single main() function as an extreme example.

Ultimately, many of the advances in programming style today can be ascribed to "how to organize the code." Some of those styles, like Onion Architecture can create a different kind of bloat as its rules for where to put stuff arbitrarily means making more structures and places than might actually be needed for a smaller problem.
 

Janx

Hero
But I think pretty much no Windows Version was made from scratch. I think pretty much all modern Windows Version can probably be dated back as least as far as Windows NT 3.1.
There are certainly parts that were rewritten over time, but throwing out everything and rebuildng from there is unlikely, and unneccessary, and most definitely hasn't happened so far.

"Living" software can age poorly if the development team is not taking steps to avoid it, but it is possible to take such steps. Good architectural design, regular refactoring, strict coding guidelines, reviews, automated testing...

The version number we hear - Windows 7, Windows 8.1, Windows 10 -that's mostly a marketing thing. It has little do with the underlying software.

That's likely one of the problems WIndows has, all that backward compatibility means carrying bloat so all the old kernel32 and HAL calls still work, etc. Heck, there was a demo where MS ran Office95 on a Windows10 machine just to prove it could be done.

As I understood it, back when the Mac's OSX came out, they dropped all compatibility with previous versions of software. Partly because Apple changed processors from Motorola to Intel (so I recall), but with the side effect of they could rewrite their OS from the ground up (and it was, it was Unix based, where the old one was whatever they cobbled together back in 1983).

Windows10 might have benefited further from a radical dropping of "everything but our current API". Perhaps using a virtual machine model for the legacy support (not as a full VM with Windows 7 desktop, just a backed handling of the code and the Window of the application running). This kind of trickery is doable with Remote Desktop services as well, where instead of remoting in to see the desktop of the other machine, you see just the window for the app you are running, which is really running on the other host.
 

Ryujin

Legend
um, modular style programming is what results in code-reuse, which is reduction of bloat.

copy-pasta is the spaghetti code you get from old procedural programmers who just copy blocks of code from one area over to another area, thus doubling the amount of code that does "the same thing"

Note, I use the term modular loosely, in the sense of a variety of languages support using multiple files to store common code, use of functions or objects that can be referenced from multiple code blocks, etc. As compared to writing the majority of your code in the single main() function as an extreme example.

Ultimately, many of the advances in programming style today can be ascribed to "how to organize the code." Some of those styles, like Onion Architecture can create a different kind of bloat as its rules for where to put stuff arbitrarily means making more structures and places than might actually be needed for a smaller problem.

Let's change that reference to "should." Microsoft seems to assign different sections of an O/S to different teams. These different teams may reinvent the wheel for their portions of the project, when everything could reference back to a single set of code. I understand that splitting things up by teams is the most cost effective and quick method of producing the final product, but it would seem to me to be guaranteed to produce inefficient code.

*NOTE* I'm a network hardware/geek, not a programmer.
 

Janx

Hero
Let's change that reference to "should." Microsoft seems to assign different sections of an O/S to different teams. These different teams may reinvent the wheel for their portions of the project, when everything could reference back to a single set of code. I understand that splitting things up by teams is the most cost effective and quick method of producing the final product, but it would seem to me to be guaranteed to produce inefficient code.

*NOTE* I'm a network hardware/geek, not a programmer.

in theory (and Microsoft is generally the king of defining APIs, etc), MS would have specified all the APIs they would need before development would begin. Then that work would be divided up by teams, with each team knowing what the other team built (and you build the stubs for all the functions before you build the meat).

the .NET framework is an example of that, as they found a place for everything a programmer would need to do everything, and generally speaking, there's not redundancy in that one sub-section repeats the same functionality as another. System.IO does not supply string manipulation functions because that's what System.Text was in charge of.
 

Remove ads

Top