When developing a new blockchain, we as a team chose Go lang over Java and other candidates, due to Go being
(a) natively suited to concurrency - there are primitives in the language itself (goroutines, channels) that really help with reasoning about concurrency
(b) super fast - build time, running, testing are all much faster that Java, this gives a far superior developer experience
(c) shorter and stricter than Java - code is much shorter (less verbose), and there is usually one good way to do things, and even the code formatter that is bundled with Go is very opinionated - over a short time this makes reading other people's code far smoother than having to deal with different styles.
You should be aware that Go presently (v1.13) lacks Generics.
We decided to use python to write our ETLs and import them into metabase via a lambda.
Before python we tried using Go, but overall go was way more verbose than Python when writing the ETLs. Go also had some issues managing memory when using the S3 upload manager library. This was a deal breaker for us that made us switch to Python.
In the end the solution was much cleaner and maintainable.
PHP is easy to learn and you can get up and running in no time, available on almost all hosting providers and you can find developers easily. It has some great frameworks for building your backend like Symfony and Laravel. However, it can be challenging when running an enterprise and needs some adjustments, very recommended for starting a new project or startup.
Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
Lisp was originally created as a practical mathematical notation for computer programs, influenced by the notation of Alonzo Church's lambda calculus. It quickly became the favored programming language for artificial intelligence (AI) research. As one of the earliest programming languages, Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, conditionals, higher-order functions, recursion, and the self-hosting compiler. [source: wikipedia]
Arc is designed for exploratory programming: the kind where you decide what to write by writing it. A good medium for exploratory programming is one that makes programs brief and malleable, so that's what we've aimed for. This is a medium for sketching software.
Statistics
GitHub Stars
130.7K
GitHub Stars
-
GitHub Stars
-
GitHub Forks
18.4K
GitHub Forks
-
GitHub Forks
-
Stacks
24.0K
Stacks
269
Stacks
58
Followers
13.9K
Followers
255
Followers
37
Votes
3.3K
Votes
145
Votes
0
Pros & Cons
Pros
557
High-performance
398
Simple, minimal syntax
365
Fun to write
305
Easy concurrency support via goroutines
273
Fast compilation times
Cons
43
You waste time in plumbing code catching errors
25
Verbose
23
Packages and their path dependencies are braindead
16
Google's documentations aren't beginer friendly
15
Dependency management when working on multiple projects