Why do people call an executable file (.exe) a binary file? - Page 1
Forum section: electronics / general

author: LeoTech
author_rank: Regular Contributor
timestamp: April 25, 2020, 10:47:11 am
content: Hello everybody,This has been very confusing to me at times, and to be honest I do not get it.Almost everywhere you go to download something - especially in the open source community - the .exe file is often referred to as a binary file.This makes zero sense to me, every file on a computer is binary based, and solely calling a .exe file for binary is just stupid and uninformed.Even wikipedia has the following to say about binary files: "A binary file is a computer file that is not a text file." (https://en.wikipedia.org/wiki/Binary_file)AFAIK, a text file is as binary as the browser in which I am typing right now.As great as the internet is, this is just a stupid mistake that somebody once made and now everybody keeps repeating that.Do any of you guys know a compelling argument for refering to these files as binary? Because if not, let's try to stop that misconception. And just call the exectables, which in my mind is a far more correct and usefull name.Leo

author: greenpossum
author_rank: Frequent Contributor
timestamp: April 25, 2020, 10:57:40 am
content: Quote from: LeoTech on April 25, 2020, 10:47:11 amGood luck with that. There are lots of terms which are slightly wrong now but you'll never correct the usage.Besides calling them executable is also slightly wrong because they are only executable wrt a particular processor. An executable for an Intel processor would just be binary to an ARM processor. Even within families a Pentium executable would be meaningless on a 8086.So as long as it's not text, it's not wrong to call them binary. But feel free to call them executables, nobody will correct you.Edit: The thing with categories is there will always be exceptions to them, such is human creativity. Here's something to think about: a BASIC program file, that's readable text right? So not binary, right? But what if I told you that the BASIC file is stored tokenised as Microsoft Basic for CP/M used to do. If you look at it in a hex display program it's binary. But if you list it inside the BASIC interpreter it's text. Categories are slippery. By all means be as precise as you can but accept that human communication will always be less than 100% precise.

author: cgroen
author_rank: Unknown
timestamp: April 25, 2020, 11:27:26 am
content: Quote from: LeoTech on April 25, 2020, 10:47:11 amNot sure how old you are, but we called files binary and non-binary long before the internet (as we know it today) conquered the worldCalling a file "binary" is as common now as it were 40 years ago from where I'm from.

author: Bicurico
author_rank: Super Contributor
timestamp: April 25, 2020, 11:36:59 am
content: A binary file is a file where the meaning of each byte is not human readable.A text or ASCII file is a file which is human readable in a text editor, because each byte is meant to be interpreted as an ASCII code.A binary file can contain executable code or data - the data is just not readable in an text editor, in other words it does not represent ASCII data.Regards,Vitor

author: jpanhalt
author_rank: Super Contributor
timestamp: April 25, 2020, 11:42:51 am
content: Here's something to ponder...Here are a few lines from a .hex file::100000002F0000EA24F0A0E340F0A0E32CF0A0E3EE:1000100034F0A0E30000A0E1F0FF1FE5BA00A0E388:10002000070000EAA800A0E3050000EAAE00A0E394:10003000030000EAB400A0E304E04EE2000000EA9E:10004000BF00A0E304E04EE280119FE50120D0E470:10005000143091E5200013E3FCFFFF0A000052E397:1000600000208115F8FFFF1A0850A0E39840A0E394:100070002E0EA0E1002094E7143091E5200013E358But what you are actually seeing on your monitor is ascii. Does that make it "stupid" to call it a "hex" file?

author: Brumby
author_rank: Unknown
timestamp: April 25, 2020, 11:54:14 am
content: With a 'text file' if you look at the binary data in groups of however many bits are in the relevant character set (eg ASCII, Unicode and UTF-8) you see information that is readablein that form.The term 'binary file' is used becauseno matter howyou look at the content, it's just a bunch of 1's and 0's.Calling such files 'executables' is also incorrect when you use it as a blanket term - because theymaynotbeexecutable!!! There is nothing stopping you having a data file containing binary data!As for getting all twisted about this use of the term 'binary file' - all I can say is this: STOP BEING SO PRECIOUS! This term came about as a result of the development of the information age culture. So, no matter how 'incorrect' you may think it is, just get with the idea that it has become common practice and everyone who has used it in anything past the experience level of kindergarten, knows exactly what is meant.Just take this on board and move on. Don't push this or you will set yourself up as a snowflake - and your credibility will go down the toilet.

author: Siwastaja
author_rank: Super Contributor
timestamp: April 25, 2020, 12:18:48 pm
content: Binary file = catch-all term for everything that is not human-readable text. Slang, if you wish, but at least 40 years old, if not older, so nobody except you have any problem with it.Yes, from the definition of binary ("relating to, composed of, or involving two things") not a pedantic term, but if this is a problem for you, you are going to have some horrible time doing anything, communicating with anybody. This isn't even bad.You know, human language works that way that if you put two words together, their combined meaning doesn't need to be an exact logical combination of the words alone.And yes, .exe (Windows/DOS executables) files are "binary files", but not all "binary files" are executables.In some contexts, an ASCII text file might be called "binary file" as well - sometimes it just doesn't matter, and then we default to everything just being a file, in which case all files, as you correctly note, contain similar "binary" data, and in this sense, are all "binary files".But, when we speak, we only use the term "binary file" in contexts where itdoesmatter, and when we need to make a distinction between the human-readable textual representation and the native, efficient form of computer data. Example discussion: "Binary log files offer disk space savings and performance benefits; text log files are readable without special tools".

author: ogden
author_rank: Super Contributor
timestamp: April 25, 2020, 12:19:19 pm
content: Quote from: LeoTech on April 25, 2020, 10:47:11 amStupid and uninformed is claim that every file onyoura computer is binary. Just do some further research aboutplain text filesand you will hopefully find a peace.

author: LeoTech
author_rank: Regular Contributor
timestamp: April 25, 2020, 12:27:00 pm
content: Well, the generel consensus here appears to be the fact, that I am appearently to young to comment on this, where as you - the veterans - have used this term for ages, which makes it right. Just think about that statement, doesn't seem right, does it?Quote from: greenpossum on April 25, 2020, 10:57:40 amYeah, I know that, an executable is not executble on every platform and categories are unprecise, but my point is still valid, calling it an executable is more helpful desciption of the file than simply binary, because it could literally be everything.Quote from: Brumby on April 25, 2020, 11:54:14 amYes I know, some files are jsut simple data, but if you are going to download a program, set file will be one you expect to execute to run the program, hence the name. And not everybody past the experience level of kindergarten knows what is meant, as you yourself stated, there are several forms of binary data - some can be exeuted and others not.As far as I care, my credibility can go all the way down to the sewer pipe, because I you seem farly close minded about this, I am not saying that binary files are stupid, but rather that calling executables binary is stupid in the way that it may and can be misleading and confusing when having to download a program.When talking about a program, the term executable is far more helpful.PS: If any mod reads this, just close the topic, otherwise we will just go on with everybody explaining how data can be represented in different ways, which we all know, and in the meantime completely missing the point. While I just become a bigger and bigger snowflake.

author: SimonR
author_rank: Regular Contributor
timestamp: April 25, 2020, 12:31:54 pm
content: Don't forget that even in pure text form a BASIC file is executable because its interpreted.Quote from: Siwastaja on April 25, 2020, 12:18:48 pmI'd generally go along with this, over the years I've tended to call anything that has no specific named format a binary file.

author: jpanhalt
author_rank: Super Contributor
timestamp: April 25, 2020, 12:36:23 pm
content: Quote from: LeoTech on April 25, 2020, 12:27:00 pmDidn't take long for you to play that card. Fact is, you seem to have a hard time understanding an abstraction, so you call it "stupid."So far as I know, a file cannot be stupid. That's purely an animal trait and mostly applied to humans.

author: LeoTech
author_rank: Regular Contributor
timestamp: April 25, 2020, 12:46:15 pm
content: Quote from: jpanhalt on April 25, 2020, 12:36:23 pmConsidering people where questioning my age and told me that it had been so for a long time, it was a valid card, but I could counter, with it didn't took you long to point it out.AFAIK I never called a file stupid, but rather what one might call that file for stupid. In other words, your point is completely irrelevant and doesn't bring anything to the table except implaying that I as a human may/could be stupid. Next time, don't start discussing semantics about something I never said. That's pointless.(Which could imply, that you have a hard time understand what I mean.)

author: BravoV
author_rank: Super Contributor
timestamp: April 25, 2020, 12:52:25 pm
content: Quote from: LeoTech on April 25, 2020, 12:46:15 pmJust wait few decades, that probably JPEG (.JPG) format is obsolete, and acockyproud youngster shout out loud that why elders keep saying .JPG file is an image file, instead of a blob of binary file that needs extra trouble/effort to decode/view it at that time.

author: Brumby
author_rank: Unknown
timestamp: April 25, 2020, 01:37:06 pm
content: To the OP:Pick one (or more) of the following:* Troll* Snowflake* Pedant* Childish* EntitledPlease note: "Right" or any flavour thereof isnotone of the options.(I'd hate to see you on a discussion of current flow.)

author: rsjsouza
author_rank: Super Contributor
timestamp: April 25, 2020, 01:38:13 pm
content: Quote from: LeoTech on April 25, 2020, 12:46:15 pmIn my eyes the question about your age, which can at times be translated to inexperience on naïveté, came with the following assertive:Quote from: LeoTech on April 25, 2020, 10:47:11 amThey way I read the first answers were people imparting their knowledge in a jokingly way. If you look around this forum, you will see lots of other similar threads with similar jokes and pokes.

author: Siwastaja
author_rank: Super Contributor
timestamp: April 25, 2020, 01:42:37 pm
content: Plain-text scripts (.sh, for example), are also executable. Heck, on Unix-like systems, they areliterally"executable", because the flag called "executable" ('x') needs to be set. So here, "executable" is an actual technical term so your "solution" may actually add confusion instead of clearing something up."Binaries" can be driver modules, which arenotexecutable files, you can't run thefiles, but they include binary, i.e. non-human-interpretable machine code that can be executed as a part of larger system.Programmers and developers talk about "binaries" to make a clear distinction tosource code.Computer systems are complex; words and human language are even more complex. Drop the arrogance and pick your fights wisely, and you may actuallylearna thing or two.Especially damaging to your learning is getting fixated on small language details. Language is always sub-optimal because it carries a legacy of being developed by people discussing with each other. It's a system which has no designer.I'm not against improving the language, but, are youreallyimproving things here?There are literally tens of thousands of suboptimal terms in use, you can't "fix" them all. Pick those which areactuallyvery confusing, and pay close attention how to fix themproperly, be careful not toincreasethe level of confusion. Replacing expressions with better ones is harder than you think.I see absolutely no problem with word "binary" and how it is used. You will find much more problematic expressions that areactuallyconfusing. When faced with such expressions, lead with example by coming up with a really intuitive substitute.

author: Brumby
author_rank: Unknown
timestamp: April 25, 2020, 01:44:05 pm
content: Quote from: LeoTech on April 25, 2020, 10:47:11 amThe key phrase: "in my mind".The world has grown with the current usage for decades. It is not going to change for you. Doing so would add confusion of a magnitude you could not imagine. The easiest way to proceed is foryouto "get with the programme". The only problem being whether you are able to accept that.

author: BravoV
author_rank: Super Contributor
timestamp: April 25, 2020, 01:55:41 pm
content: Quote from: Brumby on April 25, 2020, 01:44:05 pmC'mon, we had experienced young age as I believe most posters here, its all about the annoying period (sometimes) of desperately getting recognition or at least approval from someones on own ego.Once this thread sinks into the abyss and forgotten, should someday in the long future when the OP reads or remembers this topic again, probably that will be a blushing moment for self.

author: LeoTech
author_rank: Regular Contributor
timestamp: April 25, 2020, 02:10:55 pm
content: To bad we ain't a group of pshycoogists. This would be one hell of a case study in human behavior. From both sides I might add. You guys might be veterans filled with experiences, but are very narrow minded and quick to jump to conclusions about others - especially stereotypes and prejudies - as am I.Just one last remark, stop the name-calling for crying out loud, stop calling me a child, entitled and attention-seeking while at the same time conducting a discussion like someone half my age.Close the thread, nobody is gaining anything from this except lots of self-validation by putting down others and verifying their own tunnel-vision. Which admittedly goes for me as well.

author: SiliconWizard
author_rank: Super Contributor
timestamp: April 25, 2020, 02:13:22 pm
content: Looks like confinement may have some bad psychological consequences for some of us...

author: Syntax Error
author_rank: Frequent Contributor
timestamp: April 25, 2020, 02:21:41 pm
content: Leo, historically over 50 years ago, when a human readable computer program was compiled into machine readable code, the compiler output was termed "The Binary". A computer programmer might ask the computer operator to "load and run the binary." This binary file was often held on magnetic tape or even punched paper tape. Even today, our devices still 'load' the binary file into a process to run.The term binary has kind of stuck around, even if the file endings are not .bin Some other common executable binaries to mind include .sys .dll .elf and .hex files.It's just historic, rather like how we use the term 'cloud' for the internet. Anyone care to explain why we say "the cloud"?

author: IanB
author_rank: Super Contributor
timestamp: April 25, 2020, 02:30:30 pm
content: Quote from: LeoTech on April 25, 2020, 10:47:11 amObject files and library files are binaries, but they are not executables. And as has been pointed out above, shell files and script files are executable, but they are not binaries. So there isn't a one to one correspondence between binary and executable.A binary is a file that when opened in a text editor is not human readable.

author: rsjsouza
author_rank: Super Contributor
timestamp: April 25, 2020, 02:30:33 pm
content: Quote from: Syntax Error on April 25, 2020, 02:21:41 pmJust like another term that confused me in my early days of computing: print. To me it made no sense to tell the computer to "print" something on the screen - "show" or "display" made more sense in my mind, even after I was told about how the early computers used paper printers (line printers). Eventually I got over this feeling.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: April 25, 2020, 02:40:02 pm
content: Alternate view:It's not what it is, it's what you do with it.Text is expected to be formatted in device-specific ways. Excess whitespace may be omitted entirely (e.g., HTML, C, etc.), expanded (e.g., typesetting?), or translated (e.g., utilizing Unicode spaces and joiners, or stripping them as the case may be). Control characters have specified purposes, and also may be translated or removed as needed (e.g., *nix family CR vs. DOS family CR-LF sequences). Everything else is given specific textual representation -- i.e., the graphic letters I am presently typing.Most of these features are implemented by operating systems, sometimes transparently (e.g., opening the CON device as a text file). If you're writing your own, say, serial terminal / emulator, you must implement these as well (the whole point of a terminal is at least basic text formatting and control, if not full ANSI or VT100 or whatever operating modes).Whereas, "binary" must be inscrutable and untouchable. Any accidental change of bits or bytes in the file will likely corrupt it for its intended purpose, and it must always be transferred wholly intact.Now, it might well be that there's a great many ways a particular binary file could be changed, while remaining equivalent in some useful way to the original. Examples: EXIF data in JPEG and various other formats; the number and size of chunks in a PNG file; the headers and memory mapping in an EXE file; etc. But there are so many formats out there that assuming any one of them is a bad idea. So we just call it "binary" and keep our hands off it.You wouldn't want your OS going in and recompressing your images willy-nilly, would you? (Mind, a lot of hosting servers do this for you, and much more -- beware!)So -- text can always be treated as binary, but the converse is not true. Text implies a format so standard (i.e., ASCII) that everyone can make the same assumptions about it (printable characters, variable space, meaningful control characters, etc.).As noted above, these definitions don't need to be exclusive. A hex file isn't hex as such (i.e., digits restricted to 0-15, in packed or unpacked bytes say), but it's ASCII coded. Guess I'd say hex is a subset of text, and text is a subset of general binary files. Don't forget there's always polyglot formats -- someone's devised a plain text version of x86 machine code, what might be considered simultaneously both binary and ASCII. (Emphasis on binary though, as almost any change in the file will likely corrupt the executable part.)Tim

author: bingo600
author_rank: Super Contributor
timestamp: April 25, 2020, 03:22:38 pm
content: Quote from: jpanhalt on April 25, 2020, 11:42:51 amI'd say this is an iHEX file (Intel hex format) , but as DOS alowed 3 letters for the file suffix ... What should they do ?And some of us even know what a.COMfile is ..Edit: And a.S19file/Bingo

author: donotdespisethesnake
author_rank: Super Contributor
timestamp: April 25, 2020, 06:22:45 pm
content: Usually people are not very old when they realise that language is not very precise, and not to worry too much about it.But if you are worried about the use of "binary file", I don't know how your brain will cope when you discover auto-antonymshttps://en.wikipedia.org/wiki/Auto-antonym

author: magic
author_rank: Super Contributor
timestamp: April 25, 2020, 06:36:46 pm
content: Unix binaries have atextsection which holds the actual executable code as opposed to data, constants etc. Deal with thatI suppose "binary" originates from the fact that it's the binary machine code spat out by the compiler/assembler as opposed to the source. No deeper meaning to it.Quote from: IanB on April 25, 2020, 02:30:30 pmNo, that's a "binary file". Simply "a binary" is used almost exclusively for whatever forms of machine code.

author: Alex Eisenhut
author_rank: Super Contributor
timestamp: April 25, 2020, 06:51:15 pm
content: Quote from: Brumby on April 25, 2020, 01:37:06 pmhttps://en.wikipedia.org/wiki/Asperger_syndrome"literal interpretations and miscomprehension of nuance"etc etc

author: Alex Eisenhut
author_rank: Super Contributor
timestamp: April 25, 2020, 08:07:57 pm
content: Quote from: donotdespisethesnake on April 25, 2020, 06:22:45 pmOr that kilo means 1024 in computers? Like wtf? I bought a kilo of strawberries and only got 1000 grams so I went back to the store and demanded my 24 grams because LOL why not

author: bluey
author_rank: Regular Contributor
timestamp: April 25, 2020, 08:09:48 pm
content: Way back when, humans wrote and understood text and machines wrote and understood binary.

author: jpanhalt
author_rank: Super Contributor
timestamp: April 25, 2020, 08:36:19 pm
content: Quote from: Alex Eisenhut on April 25, 2020, 06:51:15 pmOf course, Asperger's is the diagnosis de jour for any child with behavior problems. "Hey, it's not a behavior problem, it's a disability."

author: m98
author_rank: Frequent Contributor
timestamp: April 25, 2020, 09:16:37 pm
content: Quote from: Alex Eisenhut on April 25, 2020, 08:07:57 pmThat's kibi, not kilo. But asking for one kibigram of strawberries would probably be an interesting experiment.

author: rsjsouza
author_rank: Super Contributor
timestamp: April 26, 2020, 01:04:07 am
content: Quote from: m98 on April 25, 2020, 09:16:37 pmPlease don't restart this discussion... There's already a lot at:https://www.eevblog.com/forum/microcontrollers/kilobyte/

author: Brumby
author_rank: Unknown
timestamp: April 26, 2020, 04:48:09 am
content: Quote from: LeoTech on April 25, 2020, 02:10:55 pm* You made a point.* Your position is based on aliteralinterpretation, not the common usage.* Responses were given that explain that the usage is well matured and that changing that usage (which is what you were advocating) would result in utter chaos.* You still maintain your position regardless.The normal approach that has been taken by countless people working in the software and related industries is to understand the usage, accept it and thus expand their comprehension of a long established environment. (I don't see how pointing this out is being 'narrow-minded' in any way.)You have indicated this is not howyouthink things should be.Hmmm...Tell me what you would think of someone coming into an industry in which you have experience and telling you a term used globally for more than 50 years is wrong.QuoteThis is the sort of response I would expect from someone too embarrassed to openly accept a lesson from those trying to help - which, by the way, only got terse when you did not exhibit any appreciation for the answers.QuoteThat's a response which will serve you well. I, too, try to observe that principle.

author: Nusa
author_rank: Super Contributor
timestamp: April 26, 2020, 06:20:09 am
content: In common usage:An "executable" is a file that's meant to be executed in a particular environment. If the environment is an interpreted language, the executable and the source may literally be the same file. A human-readable text file. Not a binary. So no, even the idea that an executable is always a binary is a non-starter, terminology-wise.In the mathematical sense, "binary" has been around for centuries.In the computer sense, "binary" was certainly around in the mainframe days, well before Apple and Microsoft even existed, to my personal knowledge. Like all non-specific words, context matters. In some contexts it might be better translated as "binary code" rather than "binary file".

author: magic
author_rank: Super Contributor
timestamp: April 26, 2020, 06:44:20 am
content: Quote from: m98 on April 25, 2020, 09:16:37 pmI gather the number in your nick is your year of birthThis made up word didn't even exist when most of us started using computers

author: Zero999
author_rank: Super Contributor
timestamp: April 26, 2020, 07:48:20 am
content: Quote from: magic on April 26, 2020, 06:44:20 amYes, I remember the controversy and I think legal action was taken against hard drive manufactures. I've just looked on Wikipedia and I was a student when this was in the process of being standardised. At the time we were just told to accept that kB was taken to mean 1024, when referring to memory, but hard drives, CDs etc. were specified in 1000s of bytes. If I remember rightly Windows at the time listed file sizes in 1024 bytes. I don't know if it still does this. The Linux ls command just lists everything in bytes with options to change from 1024 and 1000.https://en.wikipedia.org/wiki/Binary_prefix#kibi

author: Fred27
author_rank: Unknown
timestamp: April 26, 2020, 08:51:35 am
content: It's hilarious that the OP doesn't know something, but starts from the position that everyone else must be "stupid and uninformed".

author: Zero999
author_rank: Super Contributor
timestamp: April 26, 2020, 09:26:31 am
content: Quote from: Bicurico on April 25, 2020, 11:36:59 amOriginally ASCII was just 7-bits so all bytes in a plain text file must range between 0 to 127 decimal, although only a few or the control codes, below 32, were accepted for plain text files, normally just tab, new line/cartridge return, depending on the system. Many systems used the 128 to 255 values for symbols, but they were never standardised and could mean a file created using one system wouldn't read properly on another.A binary file is just any file which can't be opened in a text editor. It will just produce seemingly random characters and might not completely load, since the text editor might stop reading the file, as soon as it encounters a zero byte or end of transmission control code. Saving the file will most likely corrupt it, since the text editor might substitute the cartridge return and line feed control codes, with either one or the other, or both, depending on the system.I remember the MS-DOS 7 (Windows 95 to ME) DOS text editor could safely load and edit binary files, if the option was selected. It would just display the whole file, with the new line control codes displayed as symbols, rather than new lines. If you opened a plain text file with it, the ASCII text would show, but there would be symbols, where there should be new lines and the whole would just wrap round. It wasn't as good as a proper text editor, but could be used to edit strings in some .exe files which weren't protected against it and the program would normally run, as long as the length of the strings weren't changed.

author: TomS_
author_rank: Frequent Contributor
timestamp: April 26, 2020, 09:33:50 am
content: Well, on a personal level, I use the term "binary" to refer to the compiled "source code" version of an application.If you write software you would be more familiar with your application as a bunch of files containing source code in some high level language. Text files more or less.This could then be translated to a machine specific intermediate language, usually some form of assembly language. Also text files, but could also be some other intermediate binary format.That intermediate representation is then assembled to the machine code form that typically is represented by a .exe on Windows, or what ever other format for *nix.The contents of this file will be in binary format as the contents would usually quite literally be the raw instructions to be executed by the CPU, in their native format e.g. where certain bits represent the opcode of the instruction, others the source/destination registers, etc. Plus other data for constants, initialised variables etc.So as far as I'm concerned, binary is completely acceptable and appropriate. My interpretation is that Microsoft simply chose the extension .exe, short for executable, as a way to identify the contents of a file as being "code". For the user it makes it easy to identify which file they should double click to launch the application. Perhaps the OS relies on that extension to know that it should load and execute the code contained within, if it doesn't have any other metadata to describe what the file is and what to do with it (e.g. if you rename it to .txt it would open in Notepad instead).

author: Zero999
author_rank: Super Contributor
timestamp: April 26, 2020, 10:34:32 am
content: Quote from: TomS_ on April 26, 2020, 09:33:50 amExecutables are also denoted by magic numbers, normally at the start of the file, followed by other information, the CPU architecture and where the code and data are found in the file. MS starts every file with MZ and Linux the hex code 7F (the delete* control code in ASCII), followed by the ASCII characters ELF. Linux doesn't worry about extension so much as Windows and will run an executable file, if it starts with the aforementioned magic number and is compatible with the machine's architecture.*Because delete isn't an accepted control code in a text file, there's no telling what a text editor will do when it encounters the delete control code. It might display it as a symbol or it could simply stop reading the file.

author: HobGoblyn
author_rank: Unknown
timestamp: April 26, 2020, 10:41:13 am
content: Quote from: Brumby on April 25, 2020, 11:54:14 amYou could look at some binary files using the right disassembly program

author: m98
author_rank: Frequent Contributor
timestamp: April 26, 2020, 12:30:53 pm
content: Quote from: magic on April 26, 2020, 06:44:20 amWell, you could protest the change using your senior citizen bonus, or simply accept that it has become an international standard.Seriously, what kind of an discussion is this.

author: Brumby
author_rank: Unknown
timestamp: April 26, 2020, 01:50:51 pm
content: Quote from: HobGoblyn on April 26, 2020, 10:41:13 amDisassembly programs .... Hah!Be a real programmer. Write in assembler. You soon learn to read a hex dump one-to-one with your program source.I was reading the IBM S/370 Principles Of Operations manual in 1976. Writing application software in assembler kept me employed for more than 8 years before I stretched out into other languages.But, I will admit that in today's bloatware such an approach has its issues.

author: jmsc_02
author_rank: Regular Contributor
timestamp: April 26, 2020, 04:42:45 pm
content: Quote from: Syntax Error on April 25, 2020, 02:21:41 pmHahahah... This made me laugh because I think the term "cloud" comes from many 2000 age presentations where the internet was always shown as a cloud to abstract the complexity of connect two remote points and managers start to refer it as "cloud". example:https://en.m.wikipedia.org/wiki/Virtual_private_network#/media/File%3AVPN_overview-en.svgRegarding the topic: always i keep something as an absolute truth, the experience is always the thing that tells me I was absolutelly wrong.Other: why the save button is shown as a floppy disk? Last time I used one was 15 years ago and was to use a 20 years old computer

author: Masa
author_rank: Contributor
timestamp: April 26, 2020, 05:21:22 pm
content: Think about analog vs digital. All digital signals by nature are also analog signals. But it makes it much easier, when you can think on a higher level and ignore the details and the analog nature of the signal when it is not needed.Usually on a computer it is important to know the file structure, because most files must be parsed / decoded to access and use the contents of the file. For this purpose, it is important to know precisely the structure of the file. By other words, you need to know more precisely than "it's a binary file", what file type it is, so that you know how to decode and parse it.Executable files are one of the few files that rarely need to be parsed by other user programs. They are files that can be directly executed, hence it is not usually necessary to know the exact format of the file.You usually can get away by calling them with such a general term as "a binary file".You are correct, executable file is a much more informative name. Although there is also libraries which are not executable alone, there is executable's that are not executable on the same machine, there is "executable's" that are not directly executable, instead they are some kind of byte code that is compiled at the run time. Sometimes when you don't care about these details, you can generalize these as binary files as opposed to your source code, project and make files that are most likely text files.

author: james_s
author_rank: Super Contributor
timestamp: April 26, 2020, 06:06:59 pm
content: Quote from: m98 on April 26, 2020, 12:30:53 pmYou brought it up.I'd never heard "kibi" before until this thread, I've never heard anyone mention "kibibytes", IMHO it sounds stupid and pedantic. Everyone knows that a kilobyte is 1024 bytes, it's only the stupid hard drive marketing that has ever claimed otherwise.

author: magic
author_rank: Super Contributor
timestamp: April 26, 2020, 06:58:10 pm
content: Quote from: m98 on April 26, 2020, 12:30:53 pmIn this thread we rant about widely accepted confusing terminology and about those who rant about widely accepted confusing terminology.Quote from: james_s on April 26, 2020, 06:06:59 pmNo. As the guy points out, this pedantry has made its way into various standards and the UI of at least one notable operating system, one catering primarily to people who would never figure out the old kilobyteIt may have been adopted by the other operating system too by now.HDDflash manufacturers won

author: DimitriP
author_rank: Super Contributor
timestamp: April 26, 2020, 07:29:07 pm
content: QuoteSo we shouldn't talk about monitor sizing then ...

author: NivagSwerdna
author_rank: Super Contributor
timestamp: April 26, 2020, 07:48:21 pm
content: Quote from: LeoTech on April 25, 2020, 10:47:11 amThis thread is long and I haven't read it... but to the OPs original point...My interpretation is this terminology comes from the classification of files in the context of systems that manipulate files... e.g. Version Control Systems. A "source" file is some human generated content that is used as an input into some build system and typically would have lines which are terminated with an O/S dependent line ending and a character encoding either explicit or implied. These source files are held in a version control system (sccs, vcs, git whatever) in a potentially O/S agnostic way and returned to the user with an interpretation they require. On the other hand there are files that are not interpret-able in that sense and should be held in a bit for bit representation with no jiggery pokery. Examples of binary files would be images, executables, libraries etc.So executables are binaries. Binaries are executables, images, etc...

author: IanB
author_rank: Super Contributor
timestamp: April 26, 2020, 09:26:47 pm
content: I thinkT3sl4co1lhad the best answer, which is that a binary file is one where the exact order and value of the bytes is critical and must not be changed. If you copy a binary file, the copy must have exactly the same bytes in exactly the same order with no additions, removals, or replacements, or the file will be corrupted. With a text file this is not necessarily the case, for example a line end marker of LF on one system may be replaced by CR+LF on another system without changing the meaning of the file.This was important in the old days with file transfer programs like Kermit, where copying a binary file in text mode might damage the file. It is less important these days in the era of networking, where all files tend to be copied byte for byte and the application tools are more tolerant of different line ending conventions.We then have whatmagicsaid, which is that "a binary" tends to be a colloquialism for a binary file containing executable code in one form or another, e.g. *.obj, *.lib, lib*.a, *.dll, *.exe, etc.A .jpg may be a binary file, but it is not commonly referred to as "a binary".In an earlier post I nearly said that opening a binary file in a text editor may produce a display that looks like line noise, but then I thought that many readers may not have even seen line noise and may not know where the term comes from. Lucky are those that never had to connect over a dial up line with an acoustic modem

author: rsjsouza
author_rank: Super Contributor
timestamp: April 27, 2020, 01:17:52 am
content: Quote from: IanB on April 26, 2020, 09:26:47 pmIf only the world was so simple...A XML file is not a binary file, but it can't also have the order of text changed or removed. A batch or shell script falls into the same category and, to top it off, is an executable. These have more lax restrictions than a binary, but not as much as a composed text.The definition has to be related to the human readability.

author: amyk
author_rank: Super Contributor
timestamp: April 27, 2020, 01:31:39 am
content: Quote from: jpanhalt on April 25, 2020, 11:42:51 amWhat I'm actually seeing on my monitor is pixels. Or rather, the photons emitted by said pixels.

author: IanB
author_rank: Super Contributor
timestamp: April 27, 2020, 01:53:13 am
content: Quote from: rsjsouza on April 27, 2020, 01:17:52 amI agree with you. An XML file is not a binary file, it is a text file.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: April 27, 2020, 02:02:18 am
content: He did say "not necessarily the case"...XML, batch, script -- none should care about the order of whitespace, AFAIK. Whitespace is text, therefore they can be reordered to some extent.Tim

author: Brumby
author_rank: Unknown
timestamp: April 27, 2020, 02:24:36 am
content: Hey, slow down. I've run out of popcorn.

author: rsjsouza
author_rank: Super Contributor
timestamp: April 27, 2020, 02:50:35 am
content: All files are binary and text files are a subset; if the order of the bits of the ASCII characters of a text file is changed, it becomes unreadable.Thinking a bit more about that, I think a possible "definition" (or just one more element to try and define it) is that text files can be created and interpreted by a human without aids other than a text input device (e.g. keyboard, optical pointer) and a display device (printer, character display, graphical display, etc.).Or maybe not. It is getting late here... Good evening y'all!

author: Back2Volts
author_rank: Unknown
timestamp: April 27, 2020, 03:22:33 am
content: Quote from: cgroen on April 25, 2020, 11:27:26 amYes, this question goes right along with "Did phones really have a round disk with holes?"

author: Nerull
author_rank: Frequent Contributor
timestamp: April 27, 2020, 05:05:02 am
content: Quote from: rsjsouza on April 27, 2020, 01:17:52 amSure it can. Changing the line endings will not break an XML file, generally.That's why FTP has 'ASCII' and 'BINARY' transmission modes. Binary mode preserves a file byte for byte, precisely. ASCII does translations between different operating system text encoding standards. The sending host is responsible for transforming the text file into a standard NVT-ASCII format from whatever its native format is, and the receiving host is responsible for doing the reverse.

author: james_s
author_rank: Super Contributor
timestamp: April 27, 2020, 05:11:46 am
content: The key to all of this is that language is an imprecise art form, certainly English is notorious, I can't comment on the nature of other languages.I think it's pretty clear that the origin of the term comes from the fact that human readable source code goes into a compiler/linker/assembler and a non-human-readable binary file comes out. The term "binary" differentiates the compiled code from human-readable source.Beyond that we're back to the fact that language is imprecise and has many nuances. There are binary files that are neither human readable nor are they compiled from source or executable, deciding what to call a given file is not always clear cut and there are multiple correct answers in many cases. It's not sufficient in many cases to simply read the words and interpret them literally, I could go on all day listing examples of common phrases that are nonsensical if interpreted absolutely literally.

author: NivagSwerdna
author_rank: Super Contributor
timestamp: April 27, 2020, 08:53:53 am
content: Quote from: james_s on April 27, 2020, 05:11:46 amWhich leads to the great cryptic crosswords.

author: tooki
author_rank: Super Contributor
timestamp: April 27, 2020, 04:00:31 pm
content: Quote from: LeoTech on April 25, 2020, 10:47:11 amAs others have said, not every executable is a binary, and not every binary is an executable. Your confusion/anger is coming from a place where you’re assuming they’re equivalents, but they’re not!I mean, I get what your thought process is, but it’s just not a sensible approach in practice.Yes, all text on a computer is ultimately encoded as binary. So think of it like this: if all files are binaries, then we can still give more specific names to particular subtypes. In that case, “binary” becomes the catch-all for everything, especially for everything that doesn’t neatly fall into a named subtype. This approach can be nested.For example, an HTML file is just a text file. And a text file is just a bunch of binary. But awareness of the content gives us a special name for it, because by knowing this, we can interpret it in a certain way. It’s not just binary, it’s not just text, it’s HTML.Computing is all about abstraction: wrapping one thing in another layer that shields you from the nitty-gritty details of the layers within. Without this onion of layer after layer after layer, modern computing plain and simply would not be distantly possible. As such, a lot of the terminology deals with naming the layer that’s most useful for a particular context.We call binary files “binaries” because there’s no human-readable form. With a text file, there’s an abstraction layer that is human-readable, so we refer to that when we can.Or like Masa said in the excellent example of digital actually being a subset of analog (ALL signals are analog at some level), yet nonetheless the analog/digital terms make a beautiful contrasting pair for almost all situations.I completely agree with everyone telling you to lose the arrogance and simply learn and accept the terminology as it exists. You will NOT gain anything from your approach.

author: ogden
author_rank: Super Contributor
timestamp: April 27, 2020, 05:51:10 pm
content: Quote from: tooki on April 27, 2020, 04:00:31 pmWhy do you add to confusion by introducing "human readability"? HEX files are not that much "human readable", many word processor files that are binary, can contain human-readable information.Wikipedia says "A binary file is a computer file that is not a text file.". That's it. All you want to know. Well, besides knowing what text file ishttps://en.wikipedia.org/wiki/Binary_filehttps://en.wikipedia.org/wiki/Text_file

author: Alex Eisenhut
author_rank: Super Contributor
timestamp: April 27, 2020, 06:51:13 pm
content: Quote from: tooki on April 27, 2020, 04:00:31 pmEven if stored on ahttps://en.wikipedia.org/wiki/Multi-level_cell??

author: tooki
author_rank: Super Contributor
timestamp: April 28, 2020, 08:12:36 am
content: Quote from: ogden on April 27, 2020, 05:51:10 pmActually, that phrasing had already been introduced by others in this thread.But your point is well taken. We meant “human readable” in that you can read the characters, even if they aren’t immediately understandable.Hex, FWIW, is simply a convenient way to display binary data, instead of displaying long strings of 1s and 0s. They’re definitelynottext files.Quote from: ogden on April 27, 2020, 05:51:10 pmWell, it’s all you need to know unless you’re a cocky teenager who thinks he’s outsmarted the entirety of the computer industry!

author: ogden
author_rank: Super Contributor
timestamp: April 28, 2020, 04:24:13 pm
content: Quote from: tooki on April 28, 2020, 08:12:36 amYes, I got it that saying so people did mean plain text files. I just wanted to point out problem with term "human readable" because there aremachine-readabletext files, like (surprise surprise) HEX files.QuotePlease do not confuse display with fileHEX files, other nameIntel HEX filesare definitely text files:https://en.wikipedia.org/wiki/Intel_HEXQuoteIt is fine to be young and "think different". Hopefully OP will take file format lesson for good and proceed further.