GithubHelp home page GithubHelp logo

languages-and-frameworks's Introduction

languages-and-frameworks

Notes on Languages and Frameworks I have used

Languages

Name Typing Memory Concurrency Flavour Meta Verdict
C static manual thread procs macro โŸน Go
C++ static manual/auto thread class template โŸน Kotlin
C# static gc thread class reflect ๐Ÿ•’ .Net Core
Clojure dynamic+hints gc thread functional macro ๐Ÿ‘Liberator
Crystal static gc coroutine object ๐Ÿ‘Kemal+small
Dart static+infer gc thread class ๐Ÿ‘Flutter
Elixir dynamic gc actor functional ๐Ÿ‘Phoenix
Elm inference gc - functional ๐Ÿ‘/โŸน TypeScript
F# inference gc thread class/func+dsl ๐Ÿ•’ .Net Core
Go static gc coroutine structural annotate+generate ๐Ÿ‘small/low-level
Java static+infer gc thread class annotate+reflect ๐Ÿ‘/โŸน Kotlin
JavaScript dynamic gc async/await prototype+class โŸน TypeScript
Julia dynamic+hints gc
Haskell inference gc
Kotlin static gc co+thread class+dsl annotate+reflect ๐Ÿ‘Android/Javalin
Lua dynamic gc
Nim static gc
OCaml inference gc func/class
PHP dynamic gc
Pony inference gc actor functional ๐Ÿ•’ framework
Python dynamic gc
Ruby dynamic gc co+thread object monkeypatch ๐Ÿ‘Rails
R dyanic gc
Scala static+infer gc thread+actor โŸน Kotlin/Clojure
Scheme dynamic gc ๐Ÿ‘SICP
Swift static+infer auto ๐Ÿ‘iOS
TypeScript dynamic+hints gc async/await ๐Ÿ‘Vue/React

C

C is the first compiled language that I used. It is great for low-level work and making libraries to integrate with other languages. Unless I really need the last bit of performance, I would rather choose a language with managed memory.

C++

This is the first class-based language that I used and also exposure to templates and generic types. Some problems organize well into class hierarchies with mixed static/virtual dispatch. I haven't used newer incarnations of the language and templates. Using the Boost libraries makes the experience much better. My preference is for fully managed memory rather than autoptr and haven't needed the low-level power combined with class/template abstractions on projects.

C#

Really only used C# in the context of Unity 3D. Very natural coming from Java. Might possibly use this again in Godot but would probably try to use GDScript first. Mono and especially .Net Core makes this interesting for cross-platform use in the future.

Clojure

Have only used this on small personal projects. I like the opinionated take on Lisp as well as being part of the JVM ecosystem. Don't understand what lispers have against running on a popular VM. Will continue to use with either Liberator or Composure frameworks.

Crystal

Dart

Elixir

Elm

F#

Go

Java

JavaScript/ECMAScript

Julia

Haskell

Kotlin

Lua

Nim

OCaml

PHP

Pony

Python

Ruby

R

Scala

Scheme

Swift

TypeScript

Frameworks

Name Language Verdict
none ๐Ÿ‘small(Go)/iOS(Swift)/Android(Kotlin)
Amber Crystal โŸน Kemal/Javalin/Phoenix
Compojure Clojure ๐Ÿ‘Liberator
Django Python โŸน Phoenix
DropWizard Java โŸน Javalin
Elm Elm ๐Ÿ‘/โŸน Vue/React
Flutter Dart ๐Ÿ‘Android/Android+iOS
Javalin Kotlin/Java ๐Ÿ‘JDBI (Kotlin)
Ktor Kotlin โŸน Javalin
Kemal Crystal ๐Ÿ‘small
Liberator Clojure ๐Ÿ‘Korma/Toucan/HoneySQL
Micronaut Java โŸน Spring
Phoenix Elixir ๐Ÿ‘
Rails Ruby โŸน Phoenix
React JS/TS/ReasonML ๐Ÿ‘/โŸน Vue
Spark Java โŸน Javalin
Spring Java ๐Ÿ‘/โŸน Javalin/Phoenix
Sinatra Ruby โŸน Phoenix
Vaadin Java โŸน Phoenix
Vue JS/TS ๐Ÿ‘(TypeScript)
Web2py Python โŸน Phoenix
Yii/Yii2 PHP โŸน Phoenix

none (any)

Amber (Crystal)

Compojure (Clojure)

Django (Python)

DropWizard (Java)

Elm (Elm)

Flutter (Dart)

Javalin (Java/Kotlin)

Ktor (Kotlin)

Kemal (Crystal)

Liberator (Clojure)

Micronaut (Java)

Phoenix (Elixir)

Rails (Ruby)

React (JS/TS/ReasonML)

Spark (Java)

Spring (Spring)

Sinatra (Ruby)

Vaadin (Java)

Vue (JS/TS)

Web2py (Python)

Yii (PHP)

Yii2 (PHP)

Databases/Datastores

Name Verdict โŸนBecause / ๐Ÿ‘Except
Cassandra โŸน CockroachDB/FDB Record(JVM) complex performance tuning
Cloudant โŸน CockroachDB/FDB Document unless search
CockroachDB ๐Ÿ‘sharded frequent (eg. N+1) queries
Couchbase โŸน Redis
CouchDB โŸน CockroachDB/FDB Document unless offline sync
Elasticsearch ๐Ÿ‘ db fulltext good enough
FoundationDB Document Layer ๐Ÿ‘/โŸน CockroachDB/MongoDB
FoundationDB Record Layer ๐Ÿ‘(JVM)
Memcached โŸน Redis
MongoDB ๐Ÿ‘/โŸน CockroachDB/FDB Document
MySQL ๐Ÿ‘multi-master
PostgreSQL ๐Ÿ‘master/replica
RabbitMQ ๐Ÿ‘
Redis ๐Ÿ‘
RethinkDB
Riak KV
Riak TS
Solr
TiDB
TiKV

Cassandra

CockroachDB

Couchbase

CouchDB

Elasticsearch

FoundationDB Document Layer

FoundationDB Record Layer

Memcached

MongoDB

MySQL

  • InnoDB
  • TokuDB
  • RocksDB

PostgreSQL

  • proper

RabbitMQ

Redis

RethinkDB

Riak KV

Riak TS

Solr

TiDB

Proprietary Databases/Datastores

Amazon Aurora MySQL

Amazon Aurora PostgreSQL

Amazon DynamoDB

Amazon Kinesis

Amazon SQS

Azure Cosmos DB

Datomic

Google Cloud Spanner

IBM Cloudant (CouchDB)

languages-and-frameworks's People

Contributors

karmakaze avatar

Stargazers

 avatar

Watchers

 avatar

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.