Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8228917
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 7, 20262026-06-07T16:37:26+00:00 2026-06-07T16:37:26+00:00

What feature of what language does Clojure Protocols derive from? Note: this is not

  • 0

What feature of what language does Clojure Protocols derive from?

Note: this is not a question about “How to Use Protocols”

This is a question about what inspired the idea.

In particular, what I want is to get something like:

  • XYZ + ABC inspired Clojure Protocols

Then, I can go off and read about directions people went with XYZ and ABC for language features.

Thanks!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-07T16:37:27+00:00Added an answer on June 7, 2026 at 4:37 pm

    If you know Java, Clojure protocols are similar to Java interfaces – but better. The Clojure website says this about protocols (and there’s more background information and rationale about protocols on that page):

    • Provide a high-performance, dynamic polymorphism construct as an alternative to interfaces
    • Support the best parts of interfaces
      • specification only, no implementation
      • a single type can implement multiple protocols
    • While avoiding some of the drawbacks
      • Which interfaces are implemented is a design-time choice of the type author, cannot be extended later (although interface injection might eventually address this)
      • implementing an interface creates an isa/instanceof type relationship and hierarchy
    • Avoid the ‘expression problem’ by allowing independent extension of the set of types, protocols, and implementations of protocols on types, by different parties
      • do so without wrappers/adapters
    • Support the 90% case of multimethods (single dispatch on type) while providing higher-level abstraction/organization

    Furthermore, you might find Solving the Expression Problem with Clojure 1.2 an interesting read:

    Clojure expert Stuart Sierra introduces you to new features in Clojure 1.2 that solve the Expression Problem, a classic programming dilemma. Protocols let you extend preexisting types to new methods, and datatypes let you extend preexisting methods to new types — all without changing the existing code. You’ll also see how Java™ interfaces and classes can interact with Clojure protocols and datatypes.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Just a language feature question, I know there's plenty of ways to do this
NOTE: I am asking this question out of inquisitiveness and not questioning the importance
I think D's static if is an interesting language feature. That prompts my question:
EDIT: How does google Chrome's translate feature know the original language of a page?
I have an idea for a language feature: In C#, it would be useful
PHP, as we all know is very loosely typed. The language does not require
Can I specify interfaces when I declare a member? After thinking about this question
Once I read in a statement that The language feature that sealed the deal
Python language has a well known feature named interactive mode where the interpreter can
There's a feature of the Apple Objective-C language which is really useful to me:

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.