Which programming language is used for making Windows 10?
quora.com
quora.com
Decades ago someone as insignificant as you wrote this code. I find it especially interesting to come across comments in code, which allow developers to express themselves outside the confines of the language. I feel like a historian in this context, analyzing this person's thoughts and state of mind. Perhaps the author included elements of emotion or humour. Who was this person? An insignificant developer, as I am -- did they ever become something of themselves?
I think the developer's story is rarely told, but it's a story worth telling!
* reading the 0-10V or 4-20mA signals from sensors.
* AD converters convert the values into a digital representation in field devices.
* move the data to real-time controllers that run control algorithms and send outputs back to motors/valves/pumps/etc.
* those controllers move the data often via raw Ethernet packets to other real-time controllers and Windows stations used for operator visualization.
* some Windows workstations gather data into databases for historical usage. Sometimes this is a SQL type database, sometimes a flat database used to get better storage performance.
* then data is moved to local databases that can be used by the onsite teams to analyze it in an office environment.
* then that data is then moved into big data offsite/remote storage for analysis of how the medium and long term performance of the industrial installation and comparison to other installations in other parts of the world.
* from that reports are made with key performance indicators and graphs.
And each time the data is passed up a layer the format of the data and timestamps may be adjusted to match operating system that the data is passed to.
See this page on "digital archaeology" describing research that studies developers and software through their "digital remains": http://digitalarchaeology.info/
It is ran by a professor at the University of Tennessee: http://web.eecs.utk.edu/~audris/
Here's a paper of theirs where they dig into a 'first edition Unix': https://www.tuhs.org/Archive/Documentation/Papers/1eUnix_cre...
Also I'm a little shocked their using GIT instead of source depot in their workflow, apparently they switched in 2017. Who knew. [https://www.theregister.co.uk/2017/05/25/windows_is_now_buil...]
...oh it was me.
// absolve previously implemented anti-pattern by recursive reversion of the abstraction inversion
... ok, yeah that was an awkward time in my life now that I remembering it, this is exactly why I stopped listening to Enya while writing code.
https://www.usenix.org/legacy/events/usenix-win2000/invitedt...
What do you mean did they ever become something?
https://devblogs.microsoft.com/oldnewthing/20031015-00/?p=42...
If you compare it to the entire Ubuntu project, you will se a project of similar dimensions.
When I say "sources" I am talking about kernel, user land and desktop applications too.
However that would be compressed tarballs and doesn't include git history - the latter being where I suspect most of the disk space is being used in that screen shot.
https://cdimage.debian.org/mirror/cdimage/archive/9.7.0/sour...
Source code compresses quite well, so uncompressed, this may be somewhere between 200-250 GiB.
Unfortunately without access to that source directory all of this is all just going to be speculation anyway.
I did also make the point about compression too by the way :)
I think the real proof of the pudding is the footprint of a default desktop in Windows vs Ubuntu+. There was a time when Windows would literally consume one order of magnitude more disk space than Linux after a fresh install however I think things have since converged in the middle somewhat.
Going back on topic though, that looked a dev directory for Windows so would likely have contained a .git directory too. That would easily balloon the disk space used by any (mature) project's source.
+ I know you were talking about Debian, but I'm going with Ubuntu now because it's more of a desktop orientated distro and frankly it works better in Windows favour anyway due to it installing more software by default than Debian would.
However this is all moot because the point I was making was about the centralised source repositories; those will contain not just the sources of the base Linux / BSD system (kernel + user land) but also any other source that are offered as binary packages as well (ie all the stuff that's part of the platforms build system)
This makes me really want to know how they manage to document everything to make such a huge project easy to work with.
https://en.wikipedia.org/wiki/Dave_Cutler
Lots of great stories about him. One is recounted here:
https://capitalandgrowth.org/articles/930/xbox-co-founder-my...
Other well known kernels were also written by very small teams. The first Unix kernel was written by two people and the first Linux kernel was written by one person.
[1] https://en.wikipedia.org/wiki/Windows_NT#Development
[2] https://en.wikipedia.org/wiki/Windows_NT#Hardware_requiremen...
That's not how NT was seen at the time. It was quite bloated relative to other PC OSs. Of course modern OS features required a bit more overhead than the crazy world of windows 3.0.
My first experience with NT was NT 3.51 on a 32 MB machine. If I remember well, it didn't feel much slower than Windows 3.1. But finally having a PC operating system that didn't crash all the time really made development much more pleasant and productive.
32M was insane, probably out of reach of all but rich homes.
Only a few years later (1 or 2) a classmate told us he had a computer with 128M. That sounded so ridiculous that we thought he was a mythomaniac or something. Turns out his dad was able to get a powerful workstation from work, and the first time we visited him we saw that mythical beast, and our mind were blown.
And right now the private working set of my start menu process is 27M...
It focuses on Dave Cutler, the father of NT
I think it is because in the book Dave Cutler comes off as an asshole.
Using Prolog in Windows NT Network Configuration
http://web.archive.org/web/20040603192757/research.microsoft...
Still, it’s a mammoth project, which makes it all the more impressive that it works (most of the time).
I don't think he copied the structure without the git files to make the count, nor deleted/moved elsewhere the .git directory for that. Neither that is just source code there, (versioned) bitmaps, third party drivers blobs and more probably it's there too.
https://devblogs.microsoft.com/devops/optimizing-git-beyond-...:
”GVFS allows our developers to simply not download most of those 3.5 million files during a clone, and instead simply page in the (comparatively) small portion of the source tree that a developer is working with.”
Having said that, the linked https://docs.microsoft.com/en-us/azure/devops/learn/git/gvfs... claims Windows gives a size about half that 500GB for the Windows source code:
”the Windows repo, which has over 3 million files in the working directory, totalling 270GB of source files. That’s 270GB in the working directory, at the tip of master. To clone this repo, you would have to download a packfile that is about 100GB in size, which would take hours. And once you’ve succeeded in cloning it, local git operations like checkout (3 hours), status (8 minutes), and commit (30 minutes) would still take way too long to run”.
In C89 you can declare variables in the middle of the function, as long as they're at the beginning of a { block }. The beginning of a function is somewhat of a special-case of this.
Here's a community wiki answer on SO: https://stackoverflow.com/posts/47526708/revisions
Extracted portion of relevance:
> The following C99 features are not supported by C++:
>
> * restricted pointers
> * variable length arrays
> * flexible array members
> * static and type qualifiers in parameter array declarators
> * compound literals
> * designated initializersSince Visual C++ 2013 it's no longer true.
ISO C support has been improved to the extent required by ISO C++ compatibility requirements to ISO C.
Let's rewind to 2001, courtesy of The Register:
Microsoft CEO and incontinent over-stater of facts Steve Ballmer said that "Linux is a cancer that attaches itself in an intellectual property sense to everything it touches," during a commercial spot masquerading as a interview with the Chicago Sun-Times on June 1, 2001.
I am personally pleased they have thrown in the towel with Internet Explorer/Edge to just use the same browser as everyone else. Okay, bad for diversity, good for getting your web page to render.
Next they will be emulating Windows in Linux.
Not a bad idea.
A few years ago I was curious as to why programs worked quicklier in Virtualbox running Windows on Ubuntu than when I booted the machine into Windows 7 mode and tried to run them natively. Plus why bother with installing driver disks and having a subsystem when the Virtualbox provided defaults were doing a better job?
Then there is the file system. The Windows one might do special Windows things like animating folders flying through the air but it is always slower given the same hardware and same task. And normally you just want to copy files or rsync them.
Plus there is that matter of anti-virus. That is never a problem on Linux but you need that on Windows, another little watchdog program to double check every byte for you. Can't see how that helps. The unix/linux/ChromeOS idea of considering everything to be hostile with file permissions has always worked.
So I look forward to a future where Windows is just a set of UX guidelines and any 'Windows program' is secretly run in some proprietary blob that is running in some white-labelled Virtualbox clone. Maybe they end up doing that thing Apple did to move off the legacy code base where it recompiles itself.
I have written pure Win32 and I know that...
I wonder if it helped shrinking the code base too
It would be certainty a very interested side project I guess.
https://kennykerr.ca/2019/01/25/the-state-of-cpp-on-windows/
As note, Midori did power part of Bing during its existence.
And Microsoft security is now advising to move new development into a mix of C#, Rust and constrained C++ (Core Guidelines).
Check DoD security assement of Multics versus UNIX regarding ease of security exploits, and how using PL/I prevented the large majority of them. On the mobile now, the document is accessible at the Multics history site.
Or any deployment of High Integrity Computing OSes for that matter.
Except for the graphics team, as they were managed by someone else. They decided to go with C++, and they were pretty much always late because everyone was learning and building the tooling around C++.
Err....it's been NT all along.
I would be more inclined to switch to Windows if its source tree were smaller.
My guess is that a big reason I prefer MacOS over Windows is that Apple has been much more willing to drop support for legacy hardware and old applications to keep the source code more manageable.
It is difficult for humans to estimate how they spend their time, but my guess is that I've spent at least 35 hours recently exploring Windows 10: Changing various settings, installing software, asking Windows-specific questions of Google Search.
And I'm writing this on Windows. (Except for the Windows-specific questions, I'm not counting web use in the estimated 35 hours because of course the web mostly works the same way across the desktop OSes.)
I think computer users vary drastically in how much they value predictability in the software-based systems (or "environments") they use, and that I value predictability much more than the average user does.
I realize that it is unreasonable to hope never to be surprised at the response the system makes to an action of mine. But my response to being surprised is to try to understand how I could correctly predict similar responses in the future. For example, I might try to understand the reasoning of the designer of the part of the system in question. Or I might search for ways that I might have misinterpreted the situation. And I don't like it when I never reach an understanding of the surprising response.
Its source code's having half a million folders is a sign that Windows will never stop surprising me, which, all other things being equal, makes me less hopeful that spending time getting to know Windows will pay off for me.
Life of course will never stop surprising me. But to have any hope of getting anywhere in life or achieving any goal whatsoever, my brain must be sufficiently reliable and predictable. I see my computer as an extension of my brain that helps my brain be more reliable in the ways that will help me to succeed.
If you see your computer or the web site you are interacting with as a potential friend with agency of its own, then I can see where you might be offended by my original comment. I see computers and web sites as tools. Levers, if you will.
With all the changes that Microsoft is making lately I really wonder how long until Windows becomes free as in beer. With their revenue from services growing, they don't need the Windows licensing revenue as much. Making Windows free would also allow them to making Windows cloud servers cheaper. Allowing them to grow the ecosystem.
I even used to be an Apple employee.
Windows 10 is just fine. With a tiny amount of care to choose hardware that is all "happy path" (I run dual Intel Xeons, with a SuperMicro MoBo, and now dual Nvidia 2080 Ti for scientific processing), everything works fine. (Also, don't run third-party virus scanners. Just use what's built in to Windows!)
And things that don't quite work right on Macs, like 30-bit color, etc, work great.
I run Linux and FreeBSD in VMs. I don't use WSL much, I just build many things on Windows under Powershell if I don't need Centos or FreeBSD. I find that a lot of FOSS stuff works great on Linux and native Windows and not so well on MacOS because of "non-standard" choices about directory locations, etc.
It's best to give up your prejudices and give Windows 10 a try. Microsoft really did solve almost everything.
So long as the OS is stable, performant and has a pleasant GUI that you can interact with (or cmdline if that's your thing), was does it matter?
I'm pretty sure no user in the history of users ever cared about such a thing.