When is Something Built from Source
-
@scottalanmiller said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
Again - all of that stuff can be scripted - I had no idea XO was made in NodeJS, you can script the install of the compiler, you can script the compilation process.
CAN script it, yes, but you'd have a compiler sitting about. Literally nothing does that. And compilation is not reliable, that's why it is scary to talk about. Basically you never know if it will work across different systems. So you need human intervention. If you were actually able to script compilation reliably, no one would be concerned about using it.
What makes scripting compilation so unreliable? Is it that there are dozens of nix flavors out there, and you have no idea what's on one version from the next? This just adds more fuel to the fire of how much I hate talking about Linux... Linux should almost NEVER be spoken of, but we should only talk about OSes.
-
@scottalanmiller said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
Again - all of that stuff can be scripted - I had no idea XO was made in NodeJS,
The process involved using NPM, the NodeJS Package Manager
I run an install script that one of you guys wrote - so I have no idea that NPM is being used, nor what it was prior to this conversation.
-
@Dashrender said in When is Something Built from Source:
@scottalanmiller said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
Again - all of that stuff can be scripted - I had no idea XO was made in NodeJS, you can script the install of the compiler, you can script the compilation process.
CAN script it, yes, but you'd have a compiler sitting about. Literally nothing does that. And compilation is not reliable, that's why it is scary to talk about. Basically you never know if it will work across different systems. So you need human intervention. If you were actually able to script compilation reliably, no one would be concerned about using it.
What makes scripting compilation so unreliable? Is it that there are dozens of nix flavors out there, and you have no idea what's on one version from the next? This just adds more fuel to the fire of how much I hate talking about Linux... Linux should almost NEVER be spoken of, but we should only talk about OSes.
Yes and no. It's that compiling is literally "building software for your system" and requires loads of support tools and is dependent on the architecture. So you need to know so many things that even two versions of Windows or CentOS might be problematic.
Scripting is certainly unreliable between OSes, or between OS families, or whatever. But it isn't a Linux variation thing, or else it would be used on Windows just as often.
-
@Dashrender said in When is Something Built from Source:
@scottalanmiller said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
Again - all of that stuff can be scripted - I had no idea XO was made in NodeJS,
The process involved using NPM, the NodeJS Package Manager
I run an install script that one of you guys wrote - so I have no idea that NPM is being used, nor what it was prior to this conversation.
That's another tip off, if you install from script, you can pretty safely assume that it's not source code Unless that script creates a million errors that you have to correct by hand.
-
@scottalanmiller said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
@scottalanmiller said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
So I don't see this big tip off you're talking about. I will admit that I'm looking at this through my Windows admin goggles.
Actually use those goggles. Tell me when anyone has snuck a compiler past you on Windows? I bet the answer is... never. You've never downloaded source code and run "commands" and ended up with executables. It just doesn't happen - it's that complex and Windows is much more predictable as a single OS than Linux is as an OS family.
Oh, you're right, I don't believe that has ever happened on Windows, but then again, scripting things like this wouldn't be common on Windows, nor using source to make things work on Windows (for the every-admin/generalist). If I can't find the precompiled version, I move on to something else.
It isn't common on Linux, either. I've done it, but I go years in between doing it and have never done it for production.
Right - OK that makes sense. I recall you talking about this years ago - many years ago - on SW. People were always talking about open source code, this or that... but rarely was it the case that you actually ever touched the actual source code, instead you downloaded the precompiled installer.
-
@Dashrender said in When is Something Built from Source:
@scottalanmiller said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
@scottalanmiller said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
So I don't see this big tip off you're talking about. I will admit that I'm looking at this through my Windows admin goggles.
Actually use those goggles. Tell me when anyone has snuck a compiler past you on Windows? I bet the answer is... never. You've never downloaded source code and run "commands" and ended up with executables. It just doesn't happen - it's that complex and Windows is much more predictable as a single OS than Linux is as an OS family.
Oh, you're right, I don't believe that has ever happened on Windows, but then again, scripting things like this wouldn't be common on Windows, nor using source to make things work on Windows (for the every-admin/generalist). If I can't find the precompiled version, I move on to something else.
It isn't common on Linux, either. I've done it, but I go years in between doing it and have never done it for production.
Right - OK that makes sense. I recall you talking about this years ago - many years ago - on SW. People were always talking about open source code, this or that... but rarely was it the case that you actually ever touched the actual source code, instead you downloaded the precompiled installer.
Right. Let's use top as an example. It is a small, open source, C language, compiled application for Linux.
You can get access to and check the source code any time that you want. That means that you are free to compile it yourself anytime that you want, too. But I've never seen someone do this (outside of those weirdos using Gentoo.)
You use rpm -i top and it downloads the pre-compiled, verified binary from your repo and just puts that in the right place, easy peasy.
But if you wanted to modify the source code and compile it yourself for your own version of top, of course that is totally allowed and completely feasible and actually very simple to do (assuming you know how to program in C.)
-
So @scottalanmiller would you call https://github.com/Jarli01/xenorchestra_installer a "precompiled installer"?
-
@scottalanmiller said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
@scottalanmiller said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
Again - all of that stuff can be scripted - I had no idea XO was made in NodeJS,
The process involved using NPM, the NodeJS Package Manager
I run an install script that one of you guys wrote - so I have no idea that NPM is being used, nor what it was prior to this conversation.
That's another tip off, if you install from script, you can pretty safely assume that it's not source code Unless that script creates a million errors that you have to correct by hand.
How is a noob suppose to know these things? or even learn these things short of running to a conversation like this? Heck, it's easy to see guys with a dozen years of experience never running into this or understanding it.
I feel that you and JB have a leg up because you were both previously software developers.
-
@DustinB3403 said in When is Something Built from Source:
So @scottalanmiller would you call https://github.com/Jarli01/xenorchestra_installer a "precompiled installer"?
No, there is nothing compiled in it, nor anything to compile later. It's a script, so compilation/buiding is out of scope.
-
@scottalanmiller add some tags please.
source, compilers, precompiled installation, script
-
@DustinB3403 said in When is Something Built from Source:
So @scottalanmiller would you call https://github.com/Jarli01/xenorchestra_installer a "precompiled installer"?
I wouldn't, it's an installation script. There's nothing compiled about it.
-
@Dashrender said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
So @scottalanmiller would you call https://github.com/Jarli01/xenorchestra_installer a "precompiled installer"?
I wouldn't, it's an installation script. There's nothing compiled about it.
Why wouldn't you? Think back to when I went through the process of installing XO into Ubuntu 14 (or whatever it was) and posted the process here on ML.
I then compressed the commands down, and @scottalanmiller wrote a script for it. That script pulls in everything you need to install XO.
This is similar to Visual Basic, except you don't have an .exe but a .sh file that does the job.
The end result is an installed application.
-
@DustinB3403 said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
So @scottalanmiller would you call https://github.com/Jarli01/xenorchestra_installer a "precompiled installer"?
I wouldn't, it's an installation script. There's nothing compiled about it.
Why wouldn't you? Think back to when I went through the process of installing XO into Ubuntu 14 (or whatever it was).
I then compressed the commands down, and @scottalanmiller wrote a script for it. That script pulls in everything you need to install XO.
This is similar to Visual Basic, except you don't have an .exe but a .sh file that does the job.
The end result is an installed application.
You're missing the key concept here.
Compilation..sh files are just text files - they are not compiled code.
They require an interpreter of their own to function.
compiled code (normally) doesn't, it runs native on the system. -
@DustinB3403 said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
So @scottalanmiller would you call https://github.com/Jarli01/xenorchestra_installer a "precompiled installer"?
I wouldn't, it's an installation script. There's nothing compiled about it.
Why wouldn't you? Think back to when I went through the process of installing XO into Ubuntu 14 (or whatever it was).
I then compressed the commands down, and @scottalanmiller wrote a script for it. That script pulls in everything you need to install XO.
This is similar to Visual Basic, except you don't have an .exe but a .sh file that does the job.
The end result is an installed application.
Because they aren't similar, at all. One is compiling, one is copying. In one case you start with a script and just move it between two different places, in the other you compile something and have something that can be executed.
Or to look at it another way....
Visual Basic you start with code and end up with an executable.
XO you start with code and end with code and an executable that was already on the system (NodeJS) runs that code. NodeJS is the executable, not XO.
-
So you're saying bash is a compiler?
-
@DustinB3403 said in When is Something Built from Source:
So you're saying bash is a compiler?
No, BASH is an interpreter.
-
@DustinB3403 said in When is Something Built from Source:
The end result is an installed application.
If you want to call them both installers - sure, I'd definitely agree with that. But one is compiled and one is not. Huge difference there.
-
@scottalanmiller said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
So you're saying bash is a compiler?
No, BASH is an interpreter.
Right.
-
@Dashrender said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
The end result is an installed application.
If you want to call them both installers - sure, I'd definitely agree with that. But one is compiled and one is not. Huge difference there.
Compilers are not installers. If you run Visual Basic and get an exe file, you still need to do the installation step. Compilation itself doesn't do the installing.
So we have two completely different things. With VB we compile but don't install. With the XO script we install but don't compile. They actually don't overlap at all.
-
@scottalanmiller said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
So @scottalanmiller would you call https://github.com/Jarli01/xenorchestra_installer a "precompiled installer"?
I wouldn't, it's an installation script. There's nothing compiled about it.
Why wouldn't you? Think back to when I went through the process of installing XO into Ubuntu 14 (or whatever it was).
I then compressed the commands down, and @scottalanmiller wrote a script for it. That script pulls in everything you need to install XO.
This is similar to Visual Basic, except you don't have an .exe but a .sh file that does the job.
The end result is an installed application.
Because they aren't similar, at all. One is compiling, one is copying. In one case you start with a script and just move it between two different places, in the other you compile something and have something that can be executed.
Or to look at it another way....
Visual Basic you start with code and end up with an executable.
XO you start with code and end with code and an executable that was already on the system (NodeJS) runs that code. NodeJS is the executable, not XO.
To really push this further - XO is not an application - at least not in my eyes.. it's customization that runs on top of an application, that application being NodeJS.