Need advice about which tool to choose?Ask the StackShare community!
Go is a way faster than both Python and PHP, which is pretty understandable, but we were amazed at how good we adapted to use it. Go was a blessing for a team , since strict typing is making it very easy to develop and control everything inside team, so the quality was really good. We made huge leap forward in dev speed because of it.
Context: Writing an open source CLI tool.
Go and Rust over Python: Simple distribution.
With Go and Rust, just build statically compiled binaries and hand them out.
With Python, have people install with "pip install --user" and not finding the binaries :(.
Go and Rust over Python: Startup and runtime performance
Go and Rust over Python: No need to worry about which Python interpreter version is installed on the users' machines.
Go over Rust: Simplicity; Rust's memory management comes at a development / maintenance cost.
Go over Rust: Easier cross compiles from macOS to Linux.
We’re a new startup so we need to be able to deliver quick changes as we find our product market fit. We’ve also got to ensure that we’re moving money safely, and keeping perfect records. The technologies we’ve chosen mix mature but well maintained frameworks like Django, with modern web-first and api-first front ends like GraphQL, NextJS, and Chakra. We use a little Golang sparingly in our backend to ensure that when we interact with financial services, we do so with statically compiled, strongly typed, and strictly limited and reviewed code.
You can read all about it in our linked blog post.
Pros of Elixir
- Concurrency163
- Functional149
- Erlang vm126
- Great documentation109
- Great tooling102
- Immutable data structures81
- Open source77
- Pattern-matching74
- Easy to get started61
- Actor library57
- Functional with a neat syntax28
- Ruby inspired28
- Homoiconic24
- Erlang evolved22
- Beauty of Ruby, Speed of Erlang/C20
- Fault Tolerant17
- Simple13
- High Performance13
- Good lang10
- Stinkin' fast, no memory leaks, easy on the eyes9
- Doc as first class citizen9
- Pipe Operator8
- Resilient to failure7
- Fun to write6
- GenServer takes the guesswork out of background work5
- OTP5
- Not Swift4
- Pattern matching4
- Idempotence4
- Fast, Concurrent with clean error messages4
- Error isolation2
- Dynamic Typing1
Pros of Go
- High-performance512
- Simple, minimal syntax375
- Fun to write343
- Easy concurrency support via goroutines289
- Fast compilation times261
- Goroutines183
- Statically linked binaries that are simple to deploy173
- Simple compile build/run procedures144
- Backed by google129
- Great community125
- Garbage collection built-in46
- Built-in Testing40
- Excellent tools - gofmt, godoc etc36
- Elegant and concise like Python, fast like C33
- Awesome to Develop28
- Flexible interface system22
- Used for Docker21
- Great concurrency pattern21
- Deploy as executable18
- Open-source Integration17
- Fun to write and so many feature out of the box14
- Its Simple and Heavy duty11
- Easy to read11
- Powerful and simple10
- Go is God9
- Safe GOTOs9
- Easy to deploy9
- Hassle free deployment7
- Rich standard library7
- Concurrency7
- Best language for concurrency7
- Easy setup7
- Used by Giants of the industry6
- Simplicity, Concurrency, Performance6
- Clean code, high performance6
- High performance6
- Single binary avoids library dependency issues6
- Simple, powerful, and great performance5
- Cross compiling5
- Garbage Collection4
- Excellent tooling4
- Very sophisticated syntax4
- Gofmt4
- WYSIWYG4
- Kubernetes written on Go3
- Keep it simple and stupid2
- Widely used1
- No generics0
- Operator goto0
Pros of Rust
- Guaranteed memory safety121
- Fast108
- Open source71
- Minimal runtime65
- Pattern matching56
- Type inference52
- Algebraic data types50
- Concurrent45
- Efficient C bindings42
- Practical37
- Best advances in languages in 20 years29
- Safe, fast, easy + friendly community21
- Fix for C/C++21
- Closures17
- Stablity16
- Zero-cost abstractions15
- Extensive compiler checks13
- Great community11
- No Garbage Collection8
- No NULL type8
- Completely cross platform: Windows, Linux, Android7
- Super fast7
- Async/await7
- Safety no runtime crashes6
- Great documentations6
- High performance5
- High-performance5
- Fearless concurrency5
- Guaranteed thread data race safety5
- RLS provides great IDE support5
- Generics5
- Painless dependency management4
- Prevents data races4
- Macros4
- Compiler can generate Webassembly4
- Easy Deployment4
- Helpful compiler3
- Support on Other Languages1
Sign up to add or upvote prosMake informed product decisions
Cons of Elixir
- Fewer jobs for Elixir experts11
- Smaller userbase than other mainstream languages7
- Elixir's dot notation less readable ("object": 1st arg)5
- Dynamic typing3
- Not a lot of learning books available1
Cons of Go
- You waste time in plumbing code catching errors38
- Verbose23
- Packages and their path dependencies are braindead22
- Dependency management when working on multiple projects15
- Google's documentations aren't beginer friendly12
- Automatic garbage collection overheads10
- Uncommon syntax7
- Type system is lacking (no generics, etc)6
- Collection framework is lacking (list, set, map)2
Cons of Rust
- Hard to learn21
- Ownership learning curve20
- Unfriendly, verbose syntax7
- Variable shadowing3
- Many type operations make it difficult to follow2
- High size of builded executable2
- No jobs2