What Are You Downloading Exactly When You Download Software?

chrstrbrts

Senior member
Aug 12, 2014
522
3
81
Hello,

When you download software online, what are you downloading exactly?

Are you downloading pre-compiled source code?

Are you downloading post-compiled machine code?

What about after you finish installing the software? Is it then machine code?

Thanks.
 

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,621
4,539
75
When you download software online, what are you downloading exactly?

Are you downloading pre-compiled source code?

Are you downloading post-compiled machine code?
It varies. I use Linux, so I do the former (if you meant pre-compilation source code) a lot more than most people. ;)

But it varies with languages too, to some extent. If you're running a "web app" inside a browser, chances are it's using JavaScript source code that's interpreted by the browser. Some interpreted languages have "compilers" that actually bundle a binary of the interpreter with the source code. Others, like Java and MS .NET apps, compile to a machine code, but for a "virtual machine". A separate binary runs the virtual machine with the app. Though in the .NET case there's usually just enough true machine code to start up the virtual machine which is in a DLL.

In most cases, when you download a binary, it is pre-compiled, post-compilation machine code - for your real machine or the Java or .NET virtual machine. And in most cases when you install software it's pre-compiled, post-compilation machine code - for your real machine or the Java or .NET virtual machine.
 

chrstrbrts

Senior member
Aug 12, 2014
522
3
81
In most cases, when you download a binary, it is pre-compiled, post-compilation machine code - for your real machine or the Java or .NET virtual machine. And in most cases when you install software it's pre-compiled, post-compilation machine code - for your real machine or the Java or .NET virtual machine.

Thanks for your reply, but I'm a bit confused. What exactly is "pre-compiled, post-compilation" machine code? How can it be both ways?

Thanks.
 

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,621
4,539
75
Your notation was just confusing. A binary, after it's been compiled is pre(viously)-compiled and post-compilation.
 

Graze

Senior member
Nov 27, 2012
468
1
0
I would think you have need playing around with and reading up on programming languages to know know that unless you are downloading the source code for a program then what you are doing is downloading the compiled binaries.
 

chrstrbrts

Senior member
Aug 12, 2014
522
3
81
I would think you have need playing around with and reading up on programming languages to know know that unless you are downloading the source code for a program then what you are doing is downloading the compiled binaries.

OK. So, after a downloaded program is installed, it is stored on your hard drive in a binary, machine code format?
 

Merad

Platinum Member
May 31, 2010
2,586
19
81
OK. So, after a downloaded program is installed, it is stored on your hard drive in a binary, machine code format?

Usually. Java and .NET programs are a compiled bytecode that is translated by their runtime environment. On *nix you often have small utility "programs" that are actually just scripts (Bash, Perl, Python, etc) and they are actually distributed as source code. That isn't very common on Windows IME.