History of software

However, the mathematician's efforts remained theoretical only, as the technology of Lovelace and Babbage's day proved insufficient to build his computer.Software requires the concept of a general-purpose processor - what is now described as a Turing machine - as well as computer memory in which reusable sets of routines and mathematical functions comprising programs can be stored, started, and stopped individually, and only appears recently in human history.The first known computer algorithm was written by Ada Lovelace in the 19th century for the Analytical Engine, to translate Luigi Menabrea's work on Bernoulli numbers for machine instruction.The first modern theory of software was proposed by Alan Turing in his 1935 essay Computable numbers with an application to the Entscheidungsproblem (decision problem).[8] [9][10] Kathleen Booth developed Assembly Language in 1950 to make it easier to program the computers she worked on at Birkbeck College.[14] Frances E. Holberton, also working at UNIVAC, developed a code[clarification needed], C-10, which let programmers use keyboard inputs and created the Sort-Merge Generator in 1951.[16] In his manuscript "A Mathematical Theory of Communication", Claude Shannon (1916–2001) provided an outline for how binary logic could be implemented to program a computer.[18][19] COBOL was first conceived of when Mary K. Hawes convened a meeting (which included Grace Hopper) in 1959 to discuss how to create a computer language to be shared between businesses.[29] While using the simulators to test the programming, Hamilton discovered ways that code could produce dangerous errors when human mistakes were made while using it."[23] However, exactly what Hamilton predicted would happen occurred on the Apollo 8 flight, when human error caused the computer to wipe out all of the navigational data.[31] Data General also encountered legal problems related to bundling – although in this case, it was due to a civil suit from a would-be competitor.The US Supreme Court set a precedent called Digidyne v. Data General in 1985 by letting a 9th circuit appeal court decision on the case stand, and Data General was eventually forced into licensing the operating system because it was ruled that restricting the license to only DG hardware was an illegal tying arrangement.Alsup's judgement also noted that the surprising Data General precedent that tying of copyrighted products was always illegal had since been "implicitly overruled" by the verdict in the Illinois Tool Works Inc. v. Independent Ink, Inc.It was an inconvenient and slow process to type in source code from a computer magazine, and a single mistyped – or worse, misprinted – character could render the program inoperable, yet people still did so.FOSS promotes collaboration and transparency, enabling developers and users worldwide to contribute to the software's improvement, tailor it to their needs, and share enhancements without legal or financial barriers.Popular examples of FOSS include operating systems like Linux, web browsers like Mozilla Firefox, and programming languages like Python.The philosophy behind FOSS not only drives technological innovation but also fosters a global community committed to creating accessible and adaptable software for diverse needs.Applications for mobile devices (cellphones and tablets) have been termed "apps" in recent years.The Android platform, by contrast, has multiple app stores available for it, and users can generally select which to use (although Google Play requires a compatible or rooted device).
Grace Hopper and UNIVAC
Margaret Hamilton next to a stack of code she and her team wrote for the Apollo Mission computers.
History of computingHardwareHardware 1960s to presentSoftwareSoftware configuration managementFree software and open-source softwareComputer scienceArtificial intelligenceCompiler constructionEarly computer scienceOperating systemsProgramming languagesProminent pioneersSoftware engineeringGeneral-purpose CPUsGraphical user interfaceInternetLaptopsPersonal computersVideo gamesWorld Wide WebQuantumBulgariaEastern BlocPolandRomaniaSouth AmericaSoviet UnionYugoslaviaTimeline of computingbefore 19501950–19791980–19891990–19992000–20092010–20192020–presentGlossary of computer sciencecomputersInformation AgeAda LovelaceCharles BabbageAnalytical EngineAlan Turingbinary codemainframe computershome computerassembly languagefunctional programmingobject-oriented programmingHistory of computer scienceabacusAntikythera mechanismAstronomical clocksMechanical Calculators.Turing machinecomputer memoryalgorithmLuigi MenabreaBernoulli numbersengineeringstored-program digital computershuman computersKathleen BoothBirkbeck CollegeGrace HopperHarvard Mark IdebuggingUNIVACFLOW-MATICFrances E. HolbertonSort-Merge GeneratorAdele Mildred Kossreport generatorClaude Shannonpunched cardsManchester BabyTom KilburnFORTRANJohn BackusMary K. HawesGovernment Printing OfficeFORMACJean E. SammetApollo Guidance ComputerApollo Missioninterpreteroperating systemHal LaningMargaret HamiltonHoneywellRaytheonApollo 12Apollo 8bundledoriginal equipment manufacturersData GeneralDigital Equipmentminicomputerpre-installed softwareData General Novahardware clonelicense their softwareSupreme CourtPsystar CorporationApple Inc.Macintosh clonesWilliam AlsupIllinois Tool Works Inc. v. Independent Ink, Inc.History of UnixMicro Instrumentation and Telemetry SystemsAltair 8800MicrosoftAltair BASICTiny BASICtype-in programDr. Dobb's JournalPeter R. JenningsMicrochessMOS TechnologySargon (chess)programOptical character recognitionscan incartridgescassette tapesfloppy discspiratedBill GatesOpen Letter to HobbyistsMicroProLotus DevelopmentlocalizedIBM Personal ComputerPhilip Don EstridgeMS-DOSMicrosoft WindowsHistory of free and open-source softwareApp storeiPhoneAndroidGoogle PlayMac App StoreWindows Storegold rushStructuredObject OrientedData structuresAnalysis of AlgorithmsFormal languagesComputer Graphics AlgorithmsSortingNumerical MethodsOptimizationMachine LearningMoore's lawgraphics processing unitssoftmodemsmicrocodeprinted circuit boardHigh level languagesNetworking softwareSpreadsheetsWord processingComputer aided designINTERCALPrologSmalltalkRSTS-11ALGOL 68DOS-11Wozniak'sBob MetcalfeEthernetNewell & Sancha visiblesurface algorithmCatmull & Straberdevelop z-bufferTektronix 4014ModulaSchemeRatforBourne ShellCommodore BASICStandard MUMPSC shellMATLABRPG IIIVisiCalcCambridge CAPApple DOSTelenetAntialiasingWordprocessorsElectric PencilAppleWriterSolid modelingUnigraphicsRaster graphicsModula-2Ada 80C with classesCBASICBBC BASICIBM BASICAPostScriptSpeakeasyAtari DOS86-DOSAcorn MOSCommodore DOSUsenetTCP/IPSilicon GraphicsWordstarWordPerfectSpreadsheetLotus 1-2-3Dassault SystèmesAutodeskAda 83GW-BASICKorn ShellObjective-CTrue BASICTurbo PascalCLIPPERCommon LispGood Old MADRedcodeStandard MLFramework FREDParadoxQuickBASICFramework II FREDCorVisionEiffelGFA BASICInformix-4GLLabVIEWMirandaObject PascalPROMALSystem SoftwareWindows 1.0Atari TOSAmigaOSMILNETNovell NetWareResearch In MotionNSFNETAutoCADBentley SystemsParametric TechnologyAutoLISPErlangHyperTalkMathematicaOberonoccam 2Turbo BasicHamilton C shellObject REXXSTOS BASICFramework III FREDModula-3PowerBASICVisSimAMOS BASICEuLispHaskellObject OberonZ ShellWindows 2.0Windows 2.1xWindows 3.0Morris wormTin ToyMicrosoft WorksPC MagazineWord for WindowsMicrosoft OfficeQuattro ProCanvas XParametricOberon-2Visual BasicPythonFramework IV FREDAppleScriptBrainfuckNewtonScriptTranscriptANS ForthClaireWindows 3.1x386BSDNewton OSSolarisMosaic web browserNetWare 4Netscape NavigatorOpenGLNvidiaSimple VectorAda 95ColdFusionDelphiJavaScriptLiveScriptNetRexxPerl Data LanguageWebDNAComponent PascalECMAScriptSqueak SmalltalkPureBasicREALbasicUnrealScriptWindows 95Digital UNIXWindows NT 4.0Palm OSInfernoMac OS 7.6Mac OS 8Windows 98Solaris 7GoogleInter@ctive PagerToy Story3Dfx VoodooATI Rage ProVoodoo BansheeNovellMicroStationISO 13567HarbourActionScriptJoin JavaVisual Basic .NETAspectJProcessingRPG IVMac OS X Server 1.0Mac OS 9Windows 2000Windows MEMac OS X Public Betav10.0 Cheetahv10.1 PumaWindows XPWindows XP 64-bit Edition10.2 JaguarS3 SavageGeForce 256RadeonGeForce 3Star DivisionPro/EngineerAutoCAD 2000FactorNemerleSquirrelAlma-0GroovyLittle bAda 2005OptimJWindows PowerShellv10.3 PantherRed HatEnterprise LinuxWindows Server 2003v10.4 TigerUbuntu 5Windows XP Professional x64 Edition802.11gApple SafariFacebookMozilla FirefoxBlackBerry Pearl 8100ClojureFantomLOLCODECoffeeScriptParasailChapelWindows Vistav10.5 LeopardWindows 7v10.6 Snow LeopardAndroid 1.5 "Cupcake"Android 1.6 "Donut"Android 2.0–2.1 "Eclair"Android 2.2 "Froyo"Android 2.3 "Gingerbread"Google ChromeChromium802.11nAssassin's CreedAvatarOpenOfficeApache Software FoundationAda 2012ElixirTypeScriptBeamNG.drivev10.7 LionAndroid 3.x "Honeycomb"Android 4.0 "Ice Cream Sandwich"Windows 8v10.8 Mountain LionAndroid 4.1.x–4.2.x "Jelly Bean"v10.9 MavericksWindows 8.1Android 4.3 "Jelly Bean"Android 4.4 "KitKat"v10.10 YosemiteAndroid 5.0 "Lollipop"802.11acForensic software engineeringHistory of computing hardwareHistory of operating systemsHistory of software engineeringList of failed and overbudget custom software projectsList of pioneers in computer scienceWomen in computingTimeline of women in computingHistory ChannelBibcodeBooch, GradyCormen, Thomas H.Leiserson, Charles E.Rivest, Ronald L.Stein, CliffordIntroduction to AlgorithmsHopcroft, John E.Jeffrey D. UllmanIntroduction to Automata Theory, Languages, and ComputationAho, Alfred V.Sethi, RaviShirley, PeterKnuth, DonaldThe Art of Computer ProgrammingPress, William H.Saul A. TeukolskyWilliam T. VetterlingBrian P. FlanneryNumerical Recipes 3rd Edition: The Art of Scientific ComputingRussell, Stuart J.Peter NorvigMitchell, Tom