The following are the comparisons that were performed: OO Comparison Repositories
- 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.
- Relative links in markdown files.
- Here is an example of a relative link to another md: second.md
- 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.
- 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?
This is a test line.