Jump to content

Emergent Coding

From Wikipedia, the free encyclopedia
Emergent Coding
Emergent Coding Official Logo
ParadigmComponents based, Distributed Decentralized Development, Software Components Market
Designed byNoel Lovisa
DeveloperCode Valley
First appeared2000; 24 years ago (2000)
Stable release
G29 / TBD
Typing disciplineNA
ScopeNA
OSMac OS, Linux
LicenseEmergent Coding License
Filename extensions.ap, .elf
Websitewww.codevalley.com

Emergent Coding is a decentralized software development paradigm employing a type of software component[1] that cannot be copied or reused with the objective of achieving both workable developer specialization, and a practical software components market.[2]

Description

[edit]

Emergent Coding is a decentralized software development paradigm employing a new type of software component that cannot be copied or reused.[1] The method ensures developers can safely list their software components for public sale without endangering prospects for repeat business, a feature essential for both workable developer specialization, and realizing Douglas McIlroy's 1968 vision of a software components market.[2]

History

[edit]

Douglas McIlroy at a NATO conference in 1968, observed: "The Software Industry is Not Industrialized"[2] and proposed a software components market with component "distribution by communication link” whereby “even very small components might be profitably marketed". McIlroy imagined a "Sears-Roebuck" style catalogue "to have for [his] own were [he] purchasing components." McIlroy's proposal did not address how viable developer specialization might come about if we are to turn our "crofters" into "industrialists". Specifically, while it is easy for a developer to specialize, it is virtually impossible for them to build a viable business as a specialist.

In late 1994, Noel Lovisa proposed reversing the integration responsibility as a means of shielding supplier intellectual property, thereby preserving prospects for repeat business, and establishing a workable basis for developer specialization. Lovisa founded Code Valley Corp Pty Ltd[3] in May 2000 to create and field a practical software components market based on the principal, releasing a white paper in 2016,[1] and conducting trials of a centralized software components market that same year. In June 2018, Lovisa delivered a keynote address at ICSE 2018 in Gothenburg, Sweden[4][5] which, being the 50th anniversary of the 1968 NATO Software Engineering Conference,[2] was attended by McIlroy and other industry leaders in software development. In September 2023, McIlroy extended an invitation to Lovisa to present Emergent Coding at Dartmouth College, New Hampshire.[6]

In late 2023, Code Valley began trials of a decentralized and fully non-custodial software components market featuring a custom Integrated Development Environment (IDE), over 5000 software components occupying 4 levels of abstraction (Behaviour, Systems, Data, Byte), a Distributed Fault Tracing System (DFT), a peer-to-peer electronic cash payment system, and an interactive catalogue of component prices, data sheets, contract specifications, and reference designs.

The implementation, itself built with emergent coding, is expected to publicly launch in 2024.

Component Based Software Development

[edit]

Component Based Software development starts with first drafting an expression containing a series of contract statements for engaging the desired component suppliers assisted by the contract specifications published in the component catalogue. As all components in the catalogue have a listed price, the total cost of the project can be reliably determined from the expression before committing to construction. When the expression is deemed in order and the costs acceptable, the project can be built. During the build process, the IDE will parse the expression and engage the contractors by forwarding contracts and payments to each. These contractors will receive a portion of their requirements via the contract specification directly with the rest determined via collaborations between suppliers as authorized by the contract details. Each component contract will return a fragment of code and data that are concatenated together to form the resultant project binary.[1]

When receiving a contract, each supplier would verify payment and allocate a job against the contract, being sure to return the job number to the client so they may forward communication authorizations for the collaborations between job/suppliers as detailed in the expression. Each supplier then collaborates with project peers to determine the remaining project requirements. Once in possession of project requirements, each will sub-contract smaller components as directed by their special knowledge, which do likewise.[1]

See also

[edit]

Notes

[edit]

References

[edit]
  1. ^ a b c d e "Emergent Coding Whitepaper, available on website". Code Valley. Retrieved 6 August 2024.
  2. ^ a b c d McIlroy, Douglas (11 October 1968). "MASS PRODUCED SOFTWARE COMPONENTS". Software Engineering, Report on a conference sponsored by the NATO Science Committee, Garmisch, Germany. Retrieved 6 August 2024.
  3. ^ "Australian Business Register".
  4. ^ "Live from ICSE: Industry Forum - Noel Lovisa". Retrieved 19 September 2024.
  5. ^ "ICSE 2018". 40th International Conference on Software Engineering, May 27–3 June 2018, Gothenburg, Sweden.
  6. ^ "Emergent coding – a radical model of software development". 15 September 2023. Retrieved 19 September 2024.