Hard coding: Difference between revisions

Content deleted Content added
Yegoryuli (talk | contribs)
mNo edit summary
Tags: Mobile edit Mobile app edit iOS app edit
more specific links
Line 3:
 
{{More citations needed|date=May 2021}}
'''Hard coding''' (also '''hard-coding''' or '''hardcoding''') is the software development practice of embedding data directly into the [[source code]] of a [[computer program|program]] or other executable object, as opposed to obtaining the data from external sources or generating it at [[Run time (program lifecycle phase)|runtime]]. Hard-coded data typically can only be modified by editing the source code and [[Compiling|recompiling]] the executable, although it can be changed in [[Volatile memory|memory]] or on disk using a [[debugger]] or [[hex editor]]. Data that are hard-coded is best for unchanging pieces of information, such as [[physical constant|physical constants]], [[Version number|version numbers]] and static text elements. [[Softcoding|Softcoded data]], on the other hand, encode arbitrary information through [[user input]], [[text files]], [[INI file]]s, HTTP server responses, configuration files, preprocessor macros, external constants, databases, [[command-line argumentsargument]]s, and are determined at runtime.
 
==Overview==
Line 11:
 
The term "hard-coded" was initially used as an analogy to hardwiring circuits - and was meant to convey the inflexibility which results from its usage within software design and implementation.
In the context of run-time extensible [[collaborative development environment]]s such as [[Multi-user dungeon|MUD]]s, '''hardcoding''' also refers to developing the core engine of the system responsible for low-level tasks and executing [[Scripting language|scripts]], as opposed to '''softcoding''' which is developing the high-level scripts that get interpreted by the system at [[Execution (computing)|runtime]], with values from external sources, such as [[text files]], [[INI file]]s, preprocessor [[Macro (computer science)|macro]]s, external constants, [[database]]s, [[command-line argument]] argumentss, [[HTTP]] [[Server (computing)|server]] responses, [[configuration file]]s, and [[user input]]. In this case, the term is not pejorative and refers to general development, rather than specifically embedding output data.
 
== Hardcoding and backdoors ==