The Power of Interoperability: Why Objects Are Inevitable

Total Page:16

File Type:pdf, Size:1020Kb

The Power of Interoperability: Why Objects Are Inevitable The Power of Interoperability: Why Objects Are Inevitable Jonathan Aldrich Carnegie Mellon University Pittsburgh, PA, USA [email protected] Abstract 1. Introduction Three years ago in this venue, Cook argued that in Object-oriented programming has been highly suc- their essence, objects are what Reynolds called proce- cessful in practice, and has arguably become the dom- dural data structures. His observation raises a natural inant programming paradigm for writing applications question: if procedural data structures are the essence software in industry. This success can be documented of objects, has this contributed to the empirical success in many ways. For example, of the top ten program- of objects, and if so, how? ming languages at the LangPop.com index, six are pri- This essay attempts to answer that question. After marily object-oriented, and an additional two (PHP reviewing Cook’s definition, I propose the term ser- and Perl) have object-oriented features.1 The equiva- vice abstractions to capture the essential nature of ob- lent numbers for the top ten languages in the TIOBE in- jects. This terminology emphasizes, following Kay, that dex are six and three.2 SourceForge’s most popular lan- objects are not primarily about representing and ma- guages are Java and C++;3 GitHub’s are JavaScript and nipulating data, but are more about providing ser- Ruby.4 Furthermore, objects’ influence is not limited vices in support of higher-level goals. Using examples to object-oriented languages; Cook [8] argues that Mi- taken from object-oriented frameworks, I illustrate the crosoft’s Component Object Model (COM), which has unique design leverage that service abstractions pro- a C language interface, is “one of the most pure object- vide: the ability to define abstractions that can be ex- oriented programming models yet defined.” Academ- tended, and whose extensions are interoperable in a ically, object-oriented programming is a primary focus first-class way. The essay argues that the form of inter- of major conferences such as ECOOP and OOPSLA, operable extension supported by service abstractions and its pioneers Dahl, Nygaard, and Kay were honored is essential to modern software: many modern frame- with two Turing Awards. works and ecosystems could not have been built with- This success raises a natural question: out service abstractions. In this sense, the success of Why has object-oriented programming been success- objects was not a coincidence: it was an inevitable con- ful in practice? sequence of their service abstraction nature. To many, the reason for objects’ success is not obvi- Categories and Subject Descriptors D.1.5 [Program- ous. Indeed, objects have been strongly criticized; for ming Techniques]: Object-Oriented Programming example, in an interview Stepanov explains that his STL C++ library is not object-oriented, because he finds Keywords Object-oriented programming; frame- OO to be technically and philosophically unsound, works; interoperability; service abstractions and methodologically wrong [29]. In addition, popular object-oriented languages are often criticized for their Permission to make digital or hard copies of all or part of this work for flaws; for example, Hoare states that the null references personal or classroom use is granted without fee provided that copies are not most OO languages provide were his “billion dollar made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components 1 of this work owned by others than the author(s) must be honored. Abstracting http://www.langpop.com/ with credit is permitted. To copy otherwise, or republish, to post on servers or 2 http://www.tiobe.com/index.php/content/paperinfo/ to redistribute to lists, requires prior specific permission and/or a fee. Request tpci/index.html permissions from [email protected]. 3 http://sourceforge.net/directory/, click Advanced and Onward! 2013, October 29–31, 2013, Indianapolis, Indiana, USA. Copyright is held by the owner/author(s). Publication rights licensed to ACM. mouse over Programming Language, accessed 4/7/2013 ACM 978-1-4503-2472-4/13/10/13/10. $15.00. 4 https://github.com/languages, accessed 4/7/2013 http://dx.doi.org/10.1145/2509578.2514738 mistake”[13]. These and other criticisms have led some To support this thesis, we need a careful defini- to argue that object-orientation became popular essen- tion of interoperable extension and an analysis of how tially for marketing reasons: because “it was hyped objects provide it—by contrast, we’ll see that obvi- [and] it created a new software industry.”5 ous alternatives such as abstract data types don’t (Sec- While there has unquestionably been some hype tion 3). Alternative mechanisms can provide inter- about objects over the years, I have too much respect operable extension only by using service abstraction for the many brilliant developers I have met in indus- themselves—and thus are equivalent to what we con- try to believe they have been hoodwinked, for decades sider the essence of objects.6 Interoperable extension is now, by a fad. The question therefore arises: might essential to many modern software systems and frame- there be genuine advantages of object-oriented pro- works, in that the core architectural requirements of gramming that could explain its success? these systems cannot be fulfilled without it (Section 4). Some of the advantages of object-oriented program- The rise of objects, therefore, is not a coincidence: it ming may be psychological in nature. For example, is an inevitable response to the needs of modern soft- Schwill argues that “the object-oriented paradigm...is ware. consistent with the natural way of human think- Pieces of the story told here are known, more or less ing” [28]. Such explanations may be important, but formally, within the object-oriented and programming they are out of scope in this inquiry; I am instead in- language communities, but the larger story has not terested in whether there might be significant technical been well told. With that story in place we can begin advantages of object-oriented programming. to explain the success of objects on a purely technical The most natural place to look for such technical basis. advantages is the essential characteristics that define Along the way, we’ll connect Cook’s definition of the object-oriented paradigm. On this question there is objects with Kay’s focus on messaging as a key to some controversy, but I follow Cook’s definition: “an object-orientation; investigate a mystery in the design object is a value exporting a procedural interface to of object-oriented vs. functional module systems; and data or behavior” [8]. In other words, objects are in use the theory sketched here to make predictions both their essence procedural data structures in the sense of about the technical feasibility of statically typed, fully- Reynolds [27]. Cook’s definition essentially identifies parametric modules in object-oriented systems, and dynamic dispatch as the most important characteris- about the effect of adding first-class modules to lan- tic of objects. Each object is self-knowing (autognostic guages that do not support objects. in Cook’s terms), carrying its own behavior with it, I hope that the arguments in this essay will inspire but assuming nothing about other objects beyond their researchers to gather data and build systems that can own procedural interfaces. This autognosis property, properly validate the propositions described here. in turn, enables different implementations of an object- oriented interface to interoperate in ways that are diffi- 2. The Nature of Objects cult when using alternative constructs such as abstract A clear understanding of the nature of objects is essen- data types. tial to my argument. Cook’s definition was intended Could data structure interoperability really be so to distinguish objects from ADTs, with which objects important? It is an excellent question, but too narrow. are often confused. However, his definition extends be- As we will see, to understand the value of objects we yond data abstraction, following Alan Kay’s emphasis must consider service abstractions that go beyond data on objects providing services that support high-level structures, because it is for abstractions of components behavioral goals. As we will see, it is in its ability to ab- and services that interoperability becomes critical. This stract behavior that object-oriented programming pro- leads to the following thesis: vides its greatest benefits. 2.1 Objects and ADTs Object-oriented programming is successful in part because its key technical characteristic—dynamic Once again, Cook’s definition states that “an object dispatch—is essential to supporting independent, in- is a value exporting a procedural interface to data or teroperating extensions; and because interoperable ex- behavior” [8]. His essay uses a simple set example to tension is in turn essential to the reuse of architectural illustrate the distinction between objects and abstract code (as in frameworks), and more broadly to the de- 6 As we will see, “simulated objects” do appear in practice in systems sign of modern software ecosystems. that require interoperable extension, but are not written in object- oriented languages. These examples supports my thesis, which is about object-oriented programming in the most general sense. Of 5 Joe Armstrong, quoted at http://harmful.cat-v.org/ course, when programming with objects in practice, programming software/OO_programming/why_oo_sucks language support is convenient. data types (ADTs). For example, an object-oriented set ADTs can also be defined in Java using classes as type may be abstractly defined as follows: follows: type IntSet = { final class IntSetA { bool contains(int element); bool contains(int element) { ... } bool isSubsetOf(IntSet otherSet); bool isSubsetOf(IntSetA other) { ... } } } Note that different IntSet implementations can in- As with the abstract SetModule1.IntSet de- teroperate.
Recommended publications
  • Fortran Isolates the CSE Community
    Fortran Isolates the CSE Community Roscoe A. Bartlett, Oak Ridge National Laboratory 10/08/2013 Introduction testing and test-driven development (TDD) by Fortran-only developers. While the research and The continued usage of Fortran as a dominant data supporting the effectiveness of unit testing and programming language isolates the computational TDD has been around for many years [10, 3, 12, 7], science & engineering (CSE) community and hinders the usage of these very successful approaches is very the learning and adoption of modern software low in the Fortran CSE development community. engineering methods. The issue is not primarily that This claim is backed up by personal experience, web Fortran is not suitable for developing many different posts, web searches, and observations by other types of software. Indeed, the are many examples of authors. One interesting data point is that a Google quality CSE software written in Fortran that can search of \Fortran Unit Test" (on 10/4/2013) brings legitimately be considered to be \self-sustaining up a limited number of relevant search results but software" (i.e. clean design and code, well tested, the top result is for the FRUIT Fortran Unit Test minimal controlled dependencies, etc., see [1]). framework [5] (written in Ruby). Right on the main The problem is that there are many CSE page for FRUIT is a quote from FRUIT's author development groups and communities that only Andrew Hang Chen which states: know Fortran and are therefore isolated from the broader software development community where Most of the FORTRAN are important Fortran usage is extremely low (ranked 24th in the in nature, used in nuclear and aerospace TIOBE Index from Nov.
    [Show full text]
  • A Nominal Theory of Objects with Dependent Types
    A Nominal Theory of Objects with Dependent Types Martin Odersky, Vincent Cremet, Christine R¨ockl, Matthias Zenger Ecole´ Polytechnique F´ed´eralede Lausanne INR Ecublens 1015 Lausanne, Switzerland Technical Report IC/2002/070 Abstract Simula 67 [DMN70], whereas virtual or abstract types are present in BETA [MMPN93], as well as more recently in We design and study νObj, a calculus and dependent type gbeta [Ern99], Rune [Tor02] and Scala [Ode02]. An es- system for objects and classes which can have types as mem- sential ingredient of these systems are objects with type bers. Type members can be aliases, abstract types, or new members. There is currently much work that explores types. The type system can model the essential concepts the uses of this concept in object-oriented programming of Java’s inner classes as well as virtual types and family [SB98, TT99, Ern01, Ost02]. But its type theoretic foun- polymorphism found in BETA or gbeta. It can also model dations are just beginning to be investigated. most concepts of SML-style module systems, including shar- As is the case for modules, dependent types are a promis- ing constraints and higher-order functors, but excluding ap- ing candidate for a foundation of objects with type mem- plicative functors. The type system can thus be used as a bers. Dependent products can be used to represent functors basis for unifying concepts that so far existed in parallel in in SML module systems as well as classes in object sys- advanced object systems and in module systems. The paper tems with virtual types [IP02].
    [Show full text]
  • Python - the Most Attractive & Fastest-Growing Programming Language for Developers
    Vol-6 Issue-5 2020 IJARIIE-ISSN(O)-2395-4396 Python - The Most Attractive & Fastest-growing Programming Language for Developers Vishwa Prakash (SRKUMTSE1804) M-Tech, Department of Software Engineering, R.K.D.F. Institute of Science & Technology, Bhopal, M.P., India ABSTRACT Python is a very suitable and easy language for both learning and real-world programming. It is a powerful and high-level object-oriented programming language and created by Guido van Rossum. It is a very good choice for those who are learning programming for the first time because of its simple syntax. It has various standard libraries so it using by a developer in vast range and its capacity to integrate with other languages and use their features attract developers too. In this paper, we describe the main characteristics and features of Python programming. We also discuss the reasons behind python being credited as the most fastest-growing high-level object orient language. We collected the contents of the research done over the articles procured from various magazines and popular websites. This paper then discusses applications of Python programming. To end with we will see a few good examples where python programming is being used. Keyword : - Python, programming languages, object-oriented, open-source, interoperability, Real-world. etc… 1. INTRODUCTION In the late 1980s, Python was conceived, while its implementation began in late 1989 by Guido van Rossum in the Netherlands atCWI (Centrum Wiskunde & Informatica). It was implemented as a successor of ABC language and capable of interfacing and exception handling with the operating system Amoeba. Author Van Rossum is Python's principal and his continuing central role in deciding the road to the development of Python.
    [Show full text]
  • Return of Organization Exempt from Income
    OMB No. 1545-0047 Return of Organization Exempt From Income Tax Form 990 Under section 501(c), 527, or 4947(a)(1) of the Internal Revenue Code (except black lung benefit trust or private foundation) Open to Public Department of the Treasury Internal Revenue Service The organization may have to use a copy of this return to satisfy state reporting requirements. Inspection A For the 2011 calendar year, or tax year beginning 5/1/2011 , and ending 4/30/2012 B Check if applicable: C Name of organization The Apache Software Foundation D Employer identification number Address change Doing Business As 47-0825376 Name change Number and street (or P.O. box if mail is not delivered to street address) Room/suite E Telephone number Initial return 1901 Munsey Drive (909) 374-9776 Terminated City or town, state or country, and ZIP + 4 Amended return Forest Hill MD 21050-2747 G Gross receipts $ 554,439 Application pending F Name and address of principal officer: H(a) Is this a group return for affiliates? Yes X No Jim Jagielski 1901 Munsey Drive, Forest Hill, MD 21050-2747 H(b) Are all affiliates included? Yes No I Tax-exempt status: X 501(c)(3) 501(c) ( ) (insert no.) 4947(a)(1) or 527 If "No," attach a list. (see instructions) J Website: http://www.apache.org/ H(c) Group exemption number K Form of organization: X Corporation Trust Association Other L Year of formation: 1999 M State of legal domicile: MD Part I Summary 1 Briefly describe the organization's mission or most significant activities: to provide open source software to the public that we sponsor free of charge 2 Check this box if the organization discontinued its operations or disposed of more than 25% of its net assets.
    [Show full text]
  • The First Programming Language and Freshman Year in Computer Science: Characterization and Tips for Better Decision Making
    The first programming language and freshman year in computer science: characterization and tips for better decision making Sónia Rolland Sobral [0000-0002-5041-3597] 1 REMIT, Universidade Portucalense, Porto, Portugal [email protected] Abstract. The ability to program is the “visible” competency to acquire in an introductory unit in com- puter science. However, before a student is able to write a program, he needs to understand the problem: before formalizing, the student must have to (be able) to think, (be able) to solve and (be able) to define. At an early stage of learning there are no significant differences between programming languages. The discussion of the early programming language continues: probably never will be a consensus among academics. The Association for Computing Machinery (ACM) and Institute of Electrical and Electronics Engineers (IEEE) computer science curriculum recommendations haven't clearly defined which programming language to adopt: it is the course directors and teachers who must make this choice, consciously and not only following the trends. This article presents a set of items that should be considered when you make a programming lan- guage choice for the first programming unit in higher education computer science courses. Keywords: Programming Languages, Undergraduate Studies; Introduction to Programming. 1 Introduction Programmability is the “visible” skill to be acquired in an introductory unit in computer science. Program- ming can be considered an art [1], a science [2], a discipline [3] or even the science of abstraction [4]. However, using a programming language is no more than a method for the programmer can communicate instructions to the computer.
    [Show full text]
  • UMD) Open Source Software Packages
    HNAS Universal Migrator Director (UMD) Open Source Software Packages Contact Information: Project Manager HNAS Universal Migrator Director (UMD) Hitachi Vantara Corporation 2535 Augustine Drive Santa Clara, California 95054 Name of Product/Product Version License Component Launch4j 3.3 BSD & MIT Hibernate Object Relational 4.3.4 LGPL2.1 Mapper H2 Database 1.3.175 MPL1.1 Apache Pivot 2.0.3 BSD Apache PDFbox 1.8.4 BSD Apache Axis2/Java 1.6.2 BSD Apache log4j 1.2 Apache v2.0 Slf4J 1.7.6 MIT WIX toolset 3.8 Ms-RL JfreeCharts 1.0.16 LGPL The text of the open source software licenses listed in this document is provided in the Open Source Software License Terms document on www.hitachivantara.com. Note that the source code for packages licensed under the GNU General Public License or similar type of license that requires the licensor to make the source code publicly available (“GPL Software”) may be available for download as indicated. If the source code for GPL Software is not included in the software or available for download, please send requests for source code for GPL Software to the contact person listed above for this product. The material in this document is provided “AS IS,” without warranty of any kind, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement. Unless specified in an applicable open source license, access to this material grants you no right or license, express or implied, statutorily or otherwise, under any patent, trade secret, copyright, or any other intellectual property right of Hitachi Vantara Corporation (“Hitachi”).
    [Show full text]
  • 2. Enterprise Architecture 2.4 User Interaction Capabilities
    VA Enterprise Design Patterns: 2. Enterprise Architecture 2.4 User Interaction Capabilities Office of Technology Strategies (TS) Architecture, Strategy, and Design (ASD) Office of Information and Technology (OI&T) Version 1.0 Date Issued: October 2015 THIS PAGE INTENTIONALLY LEFT BLANK FOR PRINTING PURPOSES APPROVAL COORDINATION Digitally signed by TIMOTHY L MCGRAIL 111224 TIMOTHY L DN: dc=gov, dc=va, o=internal, ou=people, MCGRAIL 0.9.2342.19200300.100.1.1=tim. [email protected], cn=TIMOTHY L MCGRAIL 111224 Date: 111224 Date: 2015.11.17 08:23:43 -05'00' Tim McGrail Senior Program Analyst ASD Technology Strategies Digitally signed by PAUL A. TIBBITS PAUL A. 116858 DN: dc=gov, dc=va, o=internal, ou=people, TIBBITS 0.9.2342.19200300.100.1.1=paul.tibbits@ va.gov, cn=PAUL A. TIBBITS 116858 Date: Reason: I am approving this document. 116858 Date: 2015.11.30 12:29:02 -05'00' Paul A. Tibbits, M.D. DCIO Architecture, Strategy, and Design REVISION HISTORY Version Date Organization Notes 0.1 2/27/2015 ASD TS Initial Draft Updated draft to reflect additional research and inputs 0.3 5/8/2015 ASD TS from vendor engagements and Stakeholders, with QA provided by TS DP Contractor Team Updated draft to reflect feedback from the Public 0.5 5/22/2015 ASD TS Forum held on 13 May 2015, and QA provided by ASD TS Updated version to align to the latest template for 0.7 10/13/15 ASD TS Enterprise Design Patterns and to account for internal QA review 0.9 REVISION HISTORY APPROVALS Version Date Approver Role 0.1 2/27/2015 Joseph Brooks ASD TS Design Pattern Government Lead 0.3 5/8/2015 Joseph Brooks ASD TS Design Pattern Government Lead 0.5 5/22/2015 Joseph Brooks ASD TS Design Pattern Government Lead 0.7 10/13/15 Joseph Brooks ASD TS Design Pattern Government Lead 1.0 11/17/15 Tim McGrail ASD TS Design Pattern Final Review TABLE OF CONTENTS 1.0 INTRODUCTION ........................................................................................................................................
    [Show full text]
  • Comparing Languages for Engineering Server Software: Erlang, Go, and Scala with Akka
    Comparing Languages for Engineering Server Software: Erlang, Go, and Scala with Akka Ivan Valkov, Natalia Chechina, and Phil Trinder School of Computing Science, University of Glasgow G12 8RZ, United Kingdom [email protected], {Natalia.Chechina, Phil.Trinder}@glasgow.ac.uk Abstract functional or object-oriented, with high-level coordination models, Servers are a key element of current IT infrastructures, and must e.g. actors as in Erlang [2] or a process algebra as in Go [6]. Indeed, often deal with large numbers of concurrent requests. The program- the success of some server-based companies is even attributed to ming language used to construct the server has an important role their use of specific languages. As examples WhatsApp’s success in engineering efficient server software, and must support massive is attributed to their use of Erlang [27]; the video streaming leader concurrency on multicore machines with low communication and Twitch uses Go to serve millions of users a day [13]. Research synchronisation overheads. contributions of this paper include the following: This paper investigates 12 highly concurrent programming lan- • A survey of programming language characteristics relevant for guages suitable for engineering servers, and analyses three repre- servers (Section 2.1). sentative languages in detail: Erlang, Go, and Scala with Akka. • The design and implementation of three benchmarks to analyse We have designed three server benchmarks that analyse key per- the multicore server capabilities of Erlang, Go, and Scala with formance characteristics of the languages. The benchmark results Akka (Section 3). suggest that where minimising message latency is crucial, Go and Erlang are best; that Scala with Akka is capable of supporting the • An evaluation of Erlang, Go, and Scala with Akka for key largest number of dormant processes; that for servers that frequently server capabilities, i.e.
    [Show full text]
  • NAR's E-PRO Certification: Day 2
    NARNAR’s e-PRO®’s Certification: e-PRO Day 2 ® Certification: Day 2 Porf Student Manual Bill Lublin, GRI, CRB, CRS, e-PRO® Ginger Wilcox, GRI, CRS, e-PRO® Amy Chorew, e-PRO® Hal Lublin V 11. 1 Introduction WELCOME Congratulations on successfully completing Day1 of NAR’s e-PRO certification program and welcome to Day 2. In Day 2, we will discuss how to develop a social media strategy that is sustainable. You will also review how to make yourself more mobile, more efficient, and more profitable by integrating technology into your current business. WHAT YOU WILL LEARN The modules in Day 2 are self-paced. The content of the course is organized in six modules with the following learning objectives. 1. e-Strategy – Develop a Hub for your business to capture and convert potential customers and clients. – Connect with consumers through non-real estate–related sites and turn those connections into clients. 2. Content and SEO Strategy – Identify strategies for developing content. – Optimize your Hub so that consumers can find it on the Web. – Use analytics tools to measure consumer traffic to your Hub. 3. e-Office – Become familiar with cloud computing. – Learn how to use portable and mobile devices to do business anywhere, anytime. 2 NAR’s e-PRO® Certification: Day 2 4. Twitter and Foursquare – Learn about location-based services and how they can help you engage with your chosen community and improve your business. 5. Rich Media – Choose equipment to create still photos, video, and audio files to enhance your communication. 6. Technology Toolbelt – Get up to speed on the latest hardware.
    [Show full text]
  • Abstract Class Name Declaration
    Abstract Class Name Declaration Augustin often sallies sometime when gramophonic Regan denominating granularly and tessellates her zetas. Hanson pleasure her mujiks indifferently, she refining it deafeningly. Crumbiest Jo retrogresses some suspicion after chalcographical Georgia besprinkling downright. Abstract methods and other class that exist in abstract class name declaration, we should be the application using its variables Images are still loading. Java constructor declarations are not members. Not all fields need individual field accessors and mutators. Only elements that are listed as class members contribute to date type definition of a class. When you subclass an abstract class, improve service, etc. Be careful while extending above abstract class, with to little hitch. Abstract classes still in virtual tables, an abstract method is a method definition without braces and followed by a semicolon. Error while getting part list from Facebook! What makes this especially absurd is data most HTML classes are used purely to help us apply presentation with CSS. The separation of interface and implementation enables better software design, it all also supply useful to define constraint mechanisms to be used in expressions, an abstract class may contain implementation details for its members. Understanding which class will be bid for handling a message can illuminate complex when dealing with white than one superclass. How to compute the area if the dust is have known? If you nice a named widget pool, each subclass needs to know equity own table name, that any node can be considered a barn of work queue of linked elements. In only of a Java constructor data members are initialized.
    [Show full text]
  • The Principles of Object-Oriented Javascript Zakas
    TAKETAKE CONTROLCONTROL OFOF Foreword by Cody Lindley, Best-selling Author and Principal Frontend Architect JAVASCRIPT THE PRINCIPLES OF OBJECT-ORIENTED JAVASCRIPT JAVASCRIPT THE PRINCIPLES OF OBJECT-ORIENTED JAVASCRIPT THETHE PRINCIPLESPRINCIPLES OFOF OBJECTSOBJECTS at TandemSeven OBJECT-ORIENTEDOBJECT-ORIENTED If you’ve used a more traditional object-oriented • How to define your own constructors JAVASCRIPTJAVASCRIPT language, such as C++ or Java, JavaScript probably • How to work with and understand prototypes doesn’t seem object-oriented at all. It has no concept of classes, and you don’t even need to define any • Inheritance patterns for types and objects objects in order to write code. But don’t be fooled — The Principles of Object-Oriented JavaScript will leave NICHOLAS C. ZAKAS JavaScript is an incredibly powerful and expressive even experienced developers with a deeper understand- object-oriented language that puts many design ing of JavaScript. Unlock the secrets behind how objects decisions right into your hands. work in JavaScript so you can write clearer, more In The Principles of Object-Oriented JavaScript, flexible, and more efficient code. Nicholas C. Zakas thoroughly explores JavaScript’s object-oriented nature, revealing the language’s A B O U T T H E A U T H O R unique implementation of inheritance and other key characteristics. You’ll learn: Nicholas C. Zakas is a software engineer at Box and is known for writing on and speaking about the latest • The difference between primitive and reference in JavaScript best practices. He honed his experience values during his five years at Yahoo!, where he was principal • What makes JavaScript functions so unique frontend engineer for the Yahoo! home page.
    [Show full text]
  • Evolution and Composition of Object-Oriented Frameworks
    Evolution and Composition of Object-Oriented Frameworks Michael Mattsson University of Karlskrona/Ronneby Department of Software Engineering and Computer Science ISBN 91-628-3856-3 © Michael Mattsson, 2000 Cover background: Digital imagery® copyright 1999 PhotoDisc, Inc. Printed in Sweden Kaserntryckeriet AB Karlskrona, 2000 To Nisse, my father-in-law - who never had the opportunity to study as much as he would have liked to This thesis is submitted to the Faculty of Technology, University of Karlskrona/Ronneby, in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Engineering. Contact Information: Michael Mattsson Department of Software Engineering and Computer Science University of Karlskrona/Ronneby Soft Center SE-372 25 RONNEBY SWEDEN Tel.: +46 457 38 50 00 Fax.: +46 457 27 125 Email: [email protected] URL: http://www.ipd.hk-r.se/rise Abstract This thesis comprises studies of evolution and composition of object-oriented frameworks, a certain kind of reusable asset. An object-oriented framework is a set of classes that embodies an abstract design for solutions to a family of related prob- lems. The work presented is based on and has its origin in industrial contexts where object-oriented frameworks have been developed, used, evolved and managed. Thus, the results are based on empirical observations. Both qualitative and quanti- tative approaches have been used in the studies performed which cover both tech- nical and managerial aspects of object-oriented framework technology. Historically, object-oriented frameworks are large monolithic assets which require several design iterations and are therefore costly to develop. With the requirement of building larger applications, software engineers have started to compose multiple frameworks, thereby encountering a number of problems.
    [Show full text]