DallasHoelscher / OOLanguageComparison

Object-Oriented Language Comparison

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OO Language Comparison

  • Pick two object-oriented languages.
  • Form a team to work on the comparison.
    • You can be a team of 1.
    • Teams greater than 4 are usually not a good idea.
  • Using the comparison criteria provided, compare the two languages through documentation and code examples.
  • The documentation is to be written in markdown.
  • The documentation and code examples are to be in a GitHub public repository that the team uses.
  • The home page is to be the README.md for the repository.
  • Other mark down pages can be linked using relative links in markdown files.
  • The README.md is to include near the top:
    • The two languages being compared.
    • The names of the members of the team.
  • The URL for the GitHub repository for your team is to be submitted via an assignment on Canvas.

Comparison Criteria

  • Language purpose/genesis
    • Why was the language created?
    • What problems was the language trying to address?
    • Is the language a reaction to a previous language or a replacement for another language?
  • Unique features of the language
    • Does the language have any particularly unique features?
  • Name spaces
    • How are name spaces implemented?
    • How are name spaces used?
  • Types
    • What types does the language support?
    • Are both reference and value types supported?
    • Can new value types be created?
  • Classes
    • Defining
    • Creating new instances
    • Constructing/initializing
    • Destructing/de-initializing
  • Instance reference name in data type (class)
    • this? self?
  • Properties
    • Getters and setters...write your own or built in?
    • Backing variables?
    • Computed properties?
  • Interfaces / protocols
    • What does the language support?
    • What abilities does it have?
    • How is it used?
  • Inheritance / extension
  • Reflection
    • What reflection abilities are supported?
    • How is reflection used?
  • Memory management
    • How is it handled?
    • How does it work?
    • Garbage collection?
    • Automatic reference counting?
  • Comparisons of references and values
    • How are values compared? (i.e. comparing two strings)
  • Null/nil references
    • Which does the language use? (null/nil/etc)
    • Does the language have features for handling null/nil references?
  • Errors and exception handling
  • Lambda expressions, closures, or functions as types
  • Implementation of listeners and event handlers
  • Singleton
    • How is a singleton implemented?
    • Can it be made thread-safe?
    • Can the singleton instance be lazily instantiated?
  • Procedural programming
    • Does the language support procedural programming?
  • Functional programming
    • Does the language support functional programming?
  • Multithreading
    • Threads or thread-like abilities
    • How is multitasking accomplished?

About

Object-Oriented Language Comparison