GithubHelp home page GithubHelp logo

equiv's Introduction

Equiv Logo

Equiv

❗️ THIS PROJECT IS IN HARD DEVELOPMENT AND BIG CHANGES MAY HAPPEN

(PLEASE GIVE YOUR IDEAS TO MAKE IT BETTER)

It finds equivalents of the things.

The programming world grows so fast. Loads of packages are being created day by day. And there are so many programming laguages around. When the developers try new languages, they need to reuse their experience.

equiv allows you to use your experience in all programming languages. And it makes you adopt a new language faster.

Let's say you are a Rubyist who wants to develop a web application with Python. Since you are a Ruby user, you already know Sinatra, but don't know the Python world. Just use equiv and it will find you the Python equivalent of Sinatra.

equiv sinatra of python

It finds the equivalent:

ruby/sinatra is a micro web framework
equivalent in python is are:
- flask
  > pip install flask

And also you can just use the concepts like micro_web_framework

equiv micro_web_framework of ruby

It finds the best match.

equivalent in ruby are:

- sinatra
  > gem install sinatra

Numbers

We highly need contributions to increase numbers of registered libraries!

Registered Languages Registered Libraries
6 23

Want to add more? Extend our registry

Installation

OS X

You can install equiv using Homebrew.

brew tap f/equiv
brew install equiv

# Enable Autocompletion
eval "$(equiv --completion)"

Usage

It's super simple...

equiv [the concept] of [the language]
equiv [the language]/[the library] of [the language]
$ equiv http_client of python
equivalent in python are:

- requests
  > pip install requests
$ equiv python/requests of node
python/requests is a http client
equivalent in node are:

- request
  > npm install request --save

You don't have to say programming language.

$ equiv sinatra of crystal
ruby/sinatra is a micro web framework
equivalent in crystal are:

- kemal
 > Please add `sdogruyol/kemal` to `shards.yml`

Help Us

Please extend the library from src/data/[language].cr file.

Language
Crystal
Go Language
Node.js
PHP
Python
Ruby
Add new language...

Roadmap

  • Add more and more languages and libraries
  • Data is built into the binary, it may be a remote service or another repo which can be updated with a command like equiv update. Now the binary has to be updated when registry updated.

Contributing

  1. Fork it ( https://github.com/f/equiv/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

  • @f Fatih Kadir Akın - creator, maintainer
  • @ustun Üstün Özgür - the owner of the idea

equiv's People

Contributors

007lva avatar f avatar hdogan avatar izniburak avatar s avatar tgezginis avatar ustun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

equiv's Issues

syntax that fits English grammar

Instead of

equiv sinatra of python

it would make more sense to English speakers to write

equiv of sinatra in python

(It also would be okay to do

equiv sinatra python

if you prefer to keep it sparse, but once you put of in there, it's very confusing if it's breaking English grammatical patterns. The downside of this approach is that it requires you to remember argument order, and might get pretty confusing if later you add new features which depend on new additional arguments.

Yet another option would be

equiv --of sinatra --in python

Narrow focus?

First, I'm assuming that when you said

you meant for those to come as issues. If I'm wrong in assuming that, please let me know where or how I can submit them in the future.

Next, I think this is a pretty cool idea for a project, but it seems like it might be a monumental task to gather all the data necessary to make it useful. Additionally, in many cases there may not be even approximate equivalents, or they may have so many differences that someone who finds the equivalent of X in language Y may be very disappointed to find that it's far more different than they felt led to believe.

I think both of these could be (at least partially) solved by starting out with a much narrower focus, perhaps on just the equivalents of various Ruby projects in Crystal.

This would be very useful to Crystal programmers, who are very often coming from a Ruby background, and know how to do something in Ruby but have no idea how to do it in Crystal.

Once sufficient progress is made with Ruby <=> Crystal, then it might make sense to start selectively adding other languages.

I don't mean to be discouraging. If you think you can manage to pull off setting up all the data for a many-to-many relationship between languages, please don't let me stop you. But I think focusing more narrowly might enable the project to build a stronger foundation, and have a better chance at success.

Also, because of the strong relationship between Crystal and Ruby, it seems (to me) very likely that in many cases there will be a strong similarity between Ruby projects and Crystal projects, and in fact many Crystal projects will/are describe themselves as "X in Crystal".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.