programming language widely high level general purpose interpreted dynamic programming language design philosophy emphasizes code allows programmers express concepts fewer lines code possible languages java language provides intended enable clear programs small large scale supports multiple programming including object oriented functional programming procedural styles features dynamic type system automatic memory management large comprehensive standard library available operating systems allowing code run wide variety systems party tools code packaged stand programs popular operating systems based software distributed environments need install interpreter reference implementation free open source software community based development model nearly variant managed non profit history conceived late 1980s implementation began december netherlands successor abc language inspired capable exception handling operating system principal author continuing central role deciding direction reflected title given community dictator life origin van wrote years ago december looking hobby programming project occupied week christmas office closed home computer hands decided write interpreter new scripting language thinking descendant abc appeal chose working title project slightly mood big fan flying circus released october major new features including cycle detecting garbage collector support release development process changed transparent community backed early development commonly referred major backwards incompatible release released december long period testing major features backwards compatible version series features philosophy multi programming language object oriented programming structured programming fully supported language features support functional programming aspect oriented programming including magic methods supported extensions including design contract logic programming uses dynamic mix reference counting cycle detecting garbage collector memory management important feature dynamic resolution late binding method variable names program execution design offers support functional programming tradition language map reduce filter functions list sets generator expressions standard library implement functional tools borrowed core philosophy language summarized document includes beautiful better ugly explicit better implicit simple better complex complex better complicated counts requiring desired functionality built language core designed highly embedded existing applications need interface design small core language large standard library easily interpreter intended start abc espoused opposite mindset offering choice philosophy rejects favor grammar describe clever considered compliment culture philosophy rejects way approach language design favor obvious way developers avoid premature reject patches non critical parts offer marginal increase speed cost clarity speed important programmer time critical functions extension written languages try time available translates script makes direct level calls interpreter important goal developers making fun use reflected origin comes occasionally playful approach reference materials examples refer eggs instead standard bar common community wide range meanings related program style code uses natural shows language minimalist philosophy emphasis contrast code difficult understand reads like rough programming language called users especially considered experienced referred intended highly language designed visual layout english languages use fewer exceptions special cases uses blocks feature termed rule increase comes certain statements decrease signifies end current block statements control flow statements include assignment statement token equals sign operates differently traditional programming languages fundamental mechanism including nature version features language assignment translates variable receives copy value right hand value copied allocated storage location left hand variable symbolic address memory allocated variable large potentially large declared type simplest case assignment example translates generic receives reference separate allocated object type value termed binding object storage location doesn contain indicated value improper variable names subsequently rebound time objects greatly varying types including strings procedures complex objects data methods etc successive assignments common value multiple names result storage names object names bound generic reference holder associate fixed data type given time bound object type dynamic statement block code statement object capturing element local variable use attached block statement block code long condition true try statement allows exceptions raised attached code block caught handled clauses ensures clean code finally block run regardless block exits class statement block code local class use object oriented programming statement defines function method statement code block context manager example acquiring lock block code run releasing lock opening file closing allowing behavior pass statement serves needed create code block assert statement check conditions ought apply yield statement returns value generator function yield operator form implement import statement import functions current program print statement changed print function support tail class according better support like functionality provided extending generators generators lazy information passed generator possible pass information generator function information passed multiple stack levels expressions expressions similar languages java addition behavior division differs mathematics details added operator supports matrix directly operator versus java implement library functions earlier versions methods instead operator compares value versus java compares value objects reference value comparisons java objects performed equals method operator compare object identities comparison reference comparisons example uses words operators symbolic java type expression termed list extended list general expression termed generator expression anonymous functions implemented expressions limited body expression expressions written different order operator common languages makes distinction lists lists written keys dictionary keys written keys provided elements optional contexts appear left equal sign statement like swap string format operator functions analogous format strings eggs eggs supplemented format method class eggs kinds string strings single double quote marks unlike shells influenced languages single quote marks double quote marks function kinds string use escape character implicit string triple quoted strings begin end series single double quote marks span multiple lines function like documents shells raw string varieties denoted string literal escape sequences interpreted raw strings useful literal common regular expressions windows style paths compare array index array expressions lists denoted key start stop start stop step zero based negative relative end elements start index including stop index slice called step stride allows elements reversed slice omitted example returns copy entire list element slice shallow copy distinction expressions statements enforced contrast languages scheme leads functionality example list loops expressions blocks built functions statement expressions statements statements expression list expressions expressions contain statements particular case assignment statement form expression statement advantage avoiding classic error assignment operator equality operator conditions valid code causes error methods methods objects functions attached object class argument normal methods functions sugar instance argument methods explicit self access instance data contrast implicit self object oriented programming languages java objective uses duck objects variable names type constraints checked time operations object fail signifying given object suitable type despite strongly forbidding operations defined example adding number string attempting sense allows programmers define types classes object oriented programming new instances classes constructed calling class example classes instances type instance allowing reflection version kinds classes old style new style old style classes eliminated making classes new style versions kinds classes styles difference class object inherited directly indirectly new style classes inherit object instances type mathematics usual operators new matrix operator included version behavior division changed significantly time earlier use division behavior operator division floating point division division rounds changes division round negative infinity floor division operator introduced adding future import division causes module use rules division changes floating point division terms classic division real division floor division rounding negative infinity different languages adds consistency instance means equation true means equation valid positive negative values maintaining validity equation means result expected half open interval positive lie interval negative provides round function rounding float nearest tie breaking versions use round away zero round round uses round round round allows expressions multiple equality relations manner consistent general use mathematics example expression tests derived languages interpret expression differently expression evaluate resulting result compared extensive built support arbitrary precision switched machine supported maximum fixed precision usually bits belonging type arbitrary precision belonging type long needed representation type class module version provides floating point numbers arbitrary precision rounding modes fraction type module version provides arbitrary precision rational numbers extensive mathematics library frequently scientific scripting language aid problems numerical data processing manipulation libraries large standard library commonly cited greatest strengths providing tools suited tasks deliberate described batteries included philosophy internet facing applications standard formats supported creating graphical user connecting number generators arbitrary precision manipulating regular expressions unit testing included parts standard library covered specifications example implementation follows specified code internal documentation test suite supplied standard library cross platform code need altering variant standard library needed run application example standard library january package index official party software contains packages offering wide range functionality including graphical user web networking communications test web documentation tools system administration scientific computing text processing image processing development environments including function command line interpreter user enters statements receives results immediately read print loop short acts command line interface shell shells add abilities basic interpreter including idle generally following visual style shell implement features like auto completion session state retention highlighting addition standard integrated development environments web based sage intended developing science math related programs based hosting environment main implementation named written meeting standard programs intermediate executed virtual machine distributed large standard library written mixture available versions platforms including windows modern like systems intended conception cross platform fast interpreter time brings significant speed improvement version taking advantage multi core software memory created significant fork use memory stack allowing massively concurrent programs version lean fast variant run time developed past google began project named aims speeding interpreter times improving ability scale thousands time transforms machine code emitted code specialised certain data types faster standard code released interpreter series mobile phones named includes added integrate operating system project kept date run variants platform party available supports libraries feature programs written run target device high level object languages restricted language similar source language java code executed java virtual machine implementation enables use java class library functions program follows similar approach order run programs common language language compiled java build interpreter performance comparison non numerical workload presented development development conducted largely process process primary mechanism proposing major new features collecting community input issue documenting design decisions gone outstanding reviewed commented community project dictator life language goes development reference implementation list primary forum discussion language development specific issues discussed bug maintained development takes place self hosted source code running public releases come types distinguished version number backwards incompatible versions code expected break manually ported version number releases happen example version released years major feature releases largely compatible introduce new features second version number releases scheduled occur roughly months major version supported years release releases introduce new features fix bugs final version number releases sufficient number bugs fixed upstream release roughly months security releases alpha beta release candidates released previews testing final releases rough schedule release pushed code ready development team monitors state code running large unit test suite development continuous integration system community developers contributed software january official party libraries major academic conference named special programmes like naming derived television series flying circus common use references example code example literature eggs instead traditional bar official documentation contains obscure references prefix related examples use prefix names applications libraries include binding commonly create games implementation operating system respectively implementation originally written uses consistently ranked popular programming languages measured june fourth popular language ranked year popular language predominantly based objective note java partial similarity use closer similarity study found scripting languages productive conventional languages java programming problem involving string manipulation search dictionary memory consumption better java worse large organizations use include google yahoo nasa smaller ones like social news networking site written entirely serve scripting language web applications web web gateway interface standard evolved facilitate applications web like pyramid tornado bottle support developers design maintenance complex applications develop client based applications data database twisted framework program communications computers example libraries like allow effective use scientific computing specialized libraries providing domain specific functionality sage mathematical software library covers aspects mathematics including numerical mathematics number theory successfully embedded software products scripting language including finite element method software like animation packages 3ds max blender cinema maya visual effects imaging programs like paint shop pro musical program uses pretty printer complex structures containers promotes best choice writing scripts video games adopted available programming languages java artificial intelligence tasks scripting language module architecture simple rich text processing tools natural language processing tasks operating systems include standard component language ships terminal use written uses use uses package management system seen extensive use information security industry including exploit development sugar software developed written single board computer project adopted main user programming language includes intends replace java scripting provider core feature february languages influenced design philosophy influenced programming languages including uses similar similar object model uses static optional duck closely integrated framework cobra uses similar cobra document lists languages influenced cobra directly supports design contract unit tests optional static borrowed generators list described incorporating development speed working dynamic language like motivated desire bring design philosophy java julia designed true usable general programming fast calling julia possible package allows calling direction optional named inspired creator said wanted scripting language powerful object oriented decided design language programming language cross inspired swift programming language invented apple inspired development practices emulated languages practice requiring document describing rationale issues surrounding change language case influence awarded programming language year award twice given language greatest growth popularity course year measured index
Python (programming language)