C++ vs Dart vs Go

Need advice about which tool to choose?Ask the StackShare community!

C++

9K
6.6K
+ 1
776
Dart

2.3K
2.6K
+ 1
396
Go

13.5K
11.2K
+ 1
3.1K
Advice on C++, Dart, and Go
Needs advice
on
Python
Go
and
Elixir

Hi! I'm currently studying Flutter for mobile apps, but I also have a demand to automate some tasks on the web and create backends' for my apps, so thinking about which one of those could be better? Considering the performance and how easy it's to learn and create stuff? (I'm already familiar with .NET stack but want something more "simple" to write)

See more
Replies (4)
Amit Mor
Software Architect at Payoneer · | 5 upvotes · 50.8K views
Recommends
Python

Definitely Python. Lots of libraries, dead simple syntax. Lots of code examples and reference projects. Elixir is pure functional and takes time to grasp the concepts. Go is great, with simple syntax and performant runtime, but more strict as it is statically typed. For quick coding, nothing beats Python. As you come from .net I’d consider similar approach and be considering Java with SpringBoot as it makes Java faster and much more fun to code web servers

See more
Recommends
Elixir

Elixir really has a good performance for the web (and in general). Its framework Phoenix for the web is a great tool, easy to install and to use, with features for websockets (and Pub/Sub) or LiveView to write reactive and real time app with only HTML (and Elixir) so basically everything is in one place

It can take some time to learn a few things in Elixir but I really think it's worth it, and it's very easy to go distributed and concurrent with Elixir. Also it's easier to code quickly with some features like the pattern matching or some operators like the pipe or the capture one

And in the case you need it you can still connect and interface Python and Elixir pretty quickly, and now Elixir has a lot of different frameworks : web, embedded or even neural networks now

Never went far with Go but I have some trouble with its syntax, I find it a bit messy

I don't have a lot of experience with the web with Python but I don't have a good experience with the little I did

See more
Shivam kr Shiv

Hey Vitor, You can use Node and Express JS to create a backend for your app. You can create REST APIS to connect your front end with the backend. It is a very simple and scalable solution for building backend web apps.

See more
Recommends
Python
Go

Judging your previous experience we will benefit from Golang in terms of portability and speed. If you want to go simplier use Python. If it's only scripts use Python.

See more
Akshay Srivastava
Needs advice
on
Python
Go
and
AngularJS
at

What stack is a cryptocurrency exchange built upon? For example let's see Binance's page of BTC/USDT market. The order data refreshes in milliseconds, graphs refreshes in milliseconds, orders are placed in ms and everything moves well dynamically. How are they able to achieve it? What front-end framework might they be using? What backend framework for this kind of data, framework for matching engine, database for such heavy loads?

See more
Replies (2)
Krishna Chaitanya Bommakanti
Head of Technology at Adonmo · | 6 upvotes · 44.4K views

For such a more realtime-focused, data-centered application like an exchange, it's not the frontend or backend that matter much. In fact for that, they can do away with any of the popular frameworks like React/Vue/Angular for the frontend and Go/Python for the backend. For example uniswap's frontend (although much simpler than binance) is built in React. The main interesting part here would be how they are able to handle updating data so quickly. In my opinion, they might be heavily reliant on realtime processing systems like Kafka+Kafka Streams, Apache Flink or Apache Spark Stream or similar. For more processing heavy but not so real-time processing, they might be relying on OLAP and/or warehousing tools like Cassandra/Redshift. They could have also optimized few high frequent queries using NoSQL stores like mongodb (for persistance) and in-memory cache like Redis (for further perfomance boost to get millisecond latencies).

See more
Brandon Miller
Recommends
aws

While these tools are a great start, you are going to need low latency, and extremely high bandwidth. I couldn't see this happening without you having pretty much your own datacenter at your disposal. While the post below gives some great options, it's extremely apache-biased. Not saying apache is bad, but there are other options to explore. My recommendation is a mix of services from AWS, azure.. Whatever cloud service you choose to go with. You'll definitely need a streaming service.. Either self-built or cloud provided, and a restful API for things that don't quite require the power of a stream. Then, as you scale, you'll start to realize that even the best stacks in the world have bottlenecks, and you'll want to employ use of some type of messaging queue.

See more
Youcef Benamare
Needs advice
on
C#
C++
and
C

include include int main(){ char name[10], pasword[10]; printf("enter you user name :"); gets(name); printf("enter your pasword : "); gets(pasword); printf("your name : %s \n your password : %s \n", name, pasword); if ( name != "youcef") { printf("name undefined\n"); } else { printf("finde name"); }

}

his not working

See more
Replies (1)
Richard Rios
Senior Software Engineer · | 3 upvotes · 21.7K views
Recommends
C

You will want to do a few things here. First, replace gets with fgets. Then, you're going to want to use strcmp from string.h to compare the input with the desired result. The code listed below has been updated with a working example with the previously mentioned recommendations. This isn't perfect and there are other ways to accomplish the same task. Explore other options that are available when you have a chance and see if you can improve on this example.

#include <stdio.h>
#include <string.h>

int main()
{ 
    char name[10], 
    pasword[10]; 

    printf("enter you user name :"); 

    // Use fgets as gets is insecure and can easily lead to buffer overflow exploits
    fgets(name, sizeof(char) * sizeof(name), stdin);

    // Remove \n from fgets stdin read with null character so as to not have to include
    // in strcmp later.
    name[strlen(name) - 1] = '\0';

    printf("enter your pasword : "); 
    fgets(pasword, sizeof(char) * sizeof(pasword), stdin);

    printf("your name : %s \n your password : %s \n", name, pasword);

    // If strcmp result > 0 || < 0 it's not a match
    if (strcmp(name, "youcef") != 0) 
    { 
        printf("name undefined\n"); 
    } 
    else 
    { 
        printf("finde name"); 
    }
}
See more
Needs advice
on
Python
JavaScript
and
C++

Hello, I am interested in learning how to program. I am a beginner, and many articles saying I should go with Python if I am new to programming. I considered Lua a long time ago, but for my career, I believe major programming languages should be better for me. I'm considering Python at this moment, but if you have other tools I should use, let me know.

See more
Replies (2)
Recommends
Java
C#
C++
C

The language you choose is also dependant on the type of career / area of programming you wish to focus on: Web Based and mobile applicaitons I would lean towards Java, PC Applications I tend to like C#, Embedded industry C, C++

See more
anas mattar
Technical Lead at DPO International · | 2 upvotes · 33.6K views
Recommends

my advice , you should answer me for this question, what do you like to work: web base or mobile native or cross platform. if you like web base you should choose PHP or ASP.net or Node.js or if you like mobile native you should decide Android or IOS platform and else if you like cross platfrom you should learn Flutter with dart language. thanks

See more
Brayden W
Needs advice
on
Rust
Python
and
Go

Hey, 👋

My name is Brayden. I’m currently a Frontend React Developer, striving to move into Fullstack so I can expand my knowledge.

For my main backend language, I am deciding between Python, Rust, and Go. I’ve tried each of them out for about an hour and currently, I like Python and Rust the most. However, I’m not sure if I’m missing out on something!

If anyone has advice on these technologies, I’d love to hear it!

Thanks.

See more
Replies (4)
Recommends
Python
Go

Rust is still in low demand. It's a great language but you'll have a hard time finding jobs. Go is the mix of both Rust and Python. Great language with modern features, fast, scalable, fun to write, and at the same time it has high demand (not as much as python).

Python on the other hand is a language that you can't go wrong with. Look around you and see what your job market prefers. If there isn't much difference to you personally, pick the one with more demand.

See more
Recommends
Python
Node.js
Go

All of these are solid options, however considering your expertise currently, I would probably suggest Node.JS considering your past experience with JS. However Python offers a similar development environment to JS in my opinion, and Go is a good sort of intermediate between Rust and Node.JS and Python. It's fast, but not as fast as Rust, and offers a development experience that combines C-styled languages (like Rust), and Python-y languages... So: Rust for the fastest, Node for familiarity, Python for ease of development, and Go for a good middle ground. I have used all in personal projects... If you use Go, I suggest a easy to use web server framework like Fiber.

See more
Akihito KIRISAKI
Recommends
Rust
Python

Rust is a challenging choice, but worth to be chosen. It has strong memory-safety and type-safety, this gives you no bother about those errors. However, static typing languages often slow our developing speed down in early stage. In that case, it's effective to write prototype in an easy language like Python, and rewrite it in a hard language. It's important not to be afraid to throw away first code you write.

See more
Donald Tran
Software Engineer at T-Mobile · | 3 upvotes · 111.3K views
Recommends
Rust

The other answers are excellent, but I want to be a bit of a contrarian and say you should learn Rust. While the number of jobs for it are (relatively) low(er), it is certainly expanding and you'd be surprised at which companies do use Rust (Discord, for example, is starting to move away from Golang to Rust!).

But the main reason is that learning Rust itself will teach you a lot about systems design (/backend) because of its borrow checker. You can try out a lot of ideas and make a lot mistakes and the borrow checker will always be there guide you to a better solution (thereby teaching you in the process).

Also, I wouldn't underestimated how important managing memory (and memory safety) is. While Golang is great in some ways, it doesn't protect you from pushing memory leaks into production. And eventually you'll come upon a scenario where you'll have to make your Python code run faster and the optimizations you'd have to do won't look pretty (or be very Pythontic).

And Rust is freakin fast! If you have Rust, you wouldn't need any other language for the backend (or any other systems level code). Check this blog post: https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f?gi=dd8bc5d669d. Discord found that even after spending months optimizing Golang code it still wasn't fast enough. But unoptimized, first-draft Rust code was (is) faster by an order of magnitude!

See more
Piusha Kalyana
Needs advice
on
Python
PHP
and
Go

Hi

I want to build a tool to check asset availability (video, images, etc.) from third-party vendors. These vendors have APIs. However, this process should run daily basis and update the database with the status. This is a kind of separate process. I need to know what will be the good approach and technology for this?

See more
Replies (5)
Hannes Holst
at 365 Consulting Services Ltd. · | 7 upvotes · 110.9K views
Recommends
Python

hi - I think this depends on how you want to provide the information to the user. If you want to build a Wordpress-plugin: PHP If you want to build your own website: Python+Django / PHP / JavaScript+Node.js As Desktop application?

See more
anas mattar
Technical Lead at DPO International · | 3 upvotes · 97.8K views
Recommends
PHP

for what technologies you should use, this is depend on what technology do you prefer? your should think best structuing for your code because each API vendor has different to a nother one so it's better no merege code vendores together. your code must be using SOLID principle pattern and some design pattern such as Factory Pattern

See more
Recommends
Go

The major advantage of Go is that you can run queries in parallel. Fire off a Go thread for each vendor and each thread can check the availability of assets from a specific vendor and update the database. Go supports hundreds of threads with ease.

See more
anas mattar
Technical Lead at DPO International · | 1 upvotes · 94.2K views
Recommends
PHP
Go
C#

your decision depend on what language do you know. if you know php you can use laravel framework

See more
Oluwafemi Lawrence
Recommends
Go

Hi, I would recommend Go because of strongly-typed nature which makes a developer more productive as it is less error prone compared to the other dynamic-typed language. Go also has cron-job library(powered by goroutines) that can help with your automated tasks.

See more
Needs advice
on
Rust
Python
and
Go

I am a beginner, and I am totally confused, which of these 3 languages to learn first. Go, Rust, or Python. As my studies are going which of them will be easy to learn with studies that is, I can learn and do my studies also. Which one of them will be easily handled with my studies, and will be much much useful in future?

See more
Replies (17)
Recommends
Python

python is a good language to start for the beginner.

See more
Will Vandebelt
Recommends
Python
Go

Python is a great language to learn as a beginner. However, Go is really easy to learn as well and has a much more powerful standard library that will allow you to build very complex and powerful applications in the future. Go is becoming a standard in Cloud computing and concurrency. Both of which are very advanced but important.

See more
Recommends
Go

I'd definitely start with Go. I know Python, Go and quite a few other languages.

Rust is not easy to learn as a beginner.

Python has way too many features to be called "easy" to learn. While it is very forgiving to beginner mistakes it feels like playing in a puddle of mud. It does not teach you clean programming at all. Unless of course you like messy.

Go on the other hand is very easy to learn. As a professional you can learn the entire language in under 2 hours. I have already given the tour of Go (https://tour.golang.org/) to complete beginners and they went through it very thoroughly and thereby knew the entire Go language in less than 5 days. While it is very easy to learn and very easy to read, it is quite strict on other things, guiding you to write clean code. For one it is a typed language and it is good to learn very early about types.

Knowing the entire language is of course not all there is to know. There is the standard library and a lot of other libraries to get to know in every language. Also one has to learn patterns in every language, get experience on how to structure code, dig deeper into the language itself to understand its inner workings, etc. That takes years in every language.

That being said, it depends very much on what you want to do with a language. If you want to go into ML and science you definitely need Python. If you want to go into cloud computing, distributed servers (which in my opinion any server should be nowadays), use Go. If you want to do systems level programming, e.g in hardware programming, use Rust.

See more
Recommends
Python

I have experience in all three languages, and you should learn python first. These are three different languages (read: tools) to solve different problems you may have. Python is a high level language you can use for writing cross-platform scripts, web servers, AI, websites (e.g. Django) and the list goes on. Python can be used for most programming tasks while being the easiest to learn of the three and probably the most productive as well.

A lot of tech companies start out with Python for their web services, but due to Pythons slow speed and the pain that comes with dynamically typed languages when the code base grows, switch to Go later on when they need to scale. Go is a systems language that thrives when used for high performance cloud/web or networking services. Go is used in performance critical networking situations such as Twitch's streaming services and Uber's geofence services. It's also very clean and simple syntax that makes it very easy to quickly understand what code does.

Python is an interpreted language and Go is a garbage collected language, but Rust is a highly performant and reliable compiled programming language without the extra baggage of runtime memory management. Rust forces you to follow coding patterns that assure memory safety. This makes Rust a perfect fit for high performance algorithms, game engines or safety-critical systems, but would be overkill for web servers or scripts on modern hardware.

See more
Recommends
Python
C#

If all you want is a gentle intro and have access to tools and libs that can help with your tasks, Python is the way to go. It's ecosystem is huge and the language is easy to pick up. However, if you are aiming to get into software industry, I'd highly recommend you also pick up another classic language like C++/C#/Java. It really helps you cement some CS & programming fundamentals and get more familiar with the concept of software design and software architecture. Not saying you cannot achieve good architecture in Python or Go, but traditionally you have more materials covering these classic OOP languages. And once you learn them, you can apply your knowledge to other languages and it helps you understand other languages faster.

See more
Kudos Beluga
Recommends
Python

Rust is probably a bad choice for starting out. It is a low level language where garbage collection is not done automatically, and has to get you thinking about all the technical aspects. It is statically typed and compiled, so it's very strict with how you code. I do love Rust though, it's a nice language. Golang is also compiled and statically typed, but it aims to be for quick development, which makes it a better choice for starting out.

Python though can be great for starting out and getting a hold on how to program. You don't need to worry about things such as types, garbage collection, or an overwhelming amount of data types. Since I'm a JavaScript fanboy I can't help but say another great popular choice to start is JavaScript 😁

See more
Recommends

Python has the broadest reach as it's been around the longest; rust is much more difficult for a beginner to learn; I work with Go every day and it's probably the most productive general use language.

See more
Stanislav Petrov
Senior Software Engineer at GfK · | 3 upvotes · 70.2K views
Recommends
Python

If you start learning programming I'd suggest Python language. I have no experience with Go and Rust so I cannot give you advice for them.

See more
Recommends
Python
Go

Go and Python are going to be much easier to learn than Rust. The memory management for Rust is pretty hard to wrap your head around when you are first learning how to do basic things with the language. Get familiar with programming first, then learn Rust.

See more
Recommends

Learn/start with C; don't rush after buzz words. Python is easy to learn but you would not get the underpinnings of memory and pointers, an important aspect of programming.

See more
Recommends
Python

Python is a great language to start programming with, there is an awesome python course on coursera by Dr. Charles Severance called Programming for everybody, check it out :)

See more
Recommends

I agree with most of the other answers here. Python is the best choice because it is super user-friendly, has an easy syntax, and can do many complex things in relatively fewer lines.

While Rust is a more recent and a great language nonetheless, it is slightly more complicated as it involves compiling and the syntax isn't so great.

And Go is the not a great choice either. While it has a decent syntax, keep in mind that Go won't be of much use unless you plan on working in Google. Even if you want to learn it, you can do so later.

I hope this helped you in making your decision, and welcome to the world of programming! I hope you enjoy.

See more
Recommends
Go

Study, machine learning = Python | High performance computing, safety-oriented programming = Rust | Backend, feel productive with less runtime performance drawback = Go

See more
Recommends
Python

Python is the best programming language for starting out as it is quite easy to learn, but it also is very powerful and you can do plenty with it. It will be useful for a long time. Python is my recommendation.

See more
Amity International School Sec Gurugram
Vice Cyber Captain at Student · | 1 upvotes · 70K views
Recommends
Python

Python, because its the easiest to learn as a beginer. Its often called "English without grammar" because its terms and writing style is quite similar to English. Python also has a diverse range of applications like Web App, Desktop App, Data Science etc

See more
Recommends
Python

Python is the easiest of the languages to learn, and while the slowest in production, it will teach many of the basic fundamental concepts of programming, especially if you're not going to be doing anything low level or at a system level.

See more
Recommends

I'd choose python because with a good knowledge of python and it's libraries, you could do literally anything. Also it has a relatively simple structure, so it won't be tough for a beginner.

Later on if you wish to learn Rust and Go, please do by all means.

See more
Needs advice
on
Python
JavaScript
and
C++

Hi, I'm just starting to learn code, and I stumbled upon this website. I think I should learn JavaScript, Python, and C++ to begin with. I'm a quick learner so I am only worried about what would be more useful. Suppose my goal is to build an online clothing store or something. Then what languages would be best? I need advice. Please help me out. I'm 13 and just beginning and it's hard to understand when people use technical terms so please keep it simple. Thanks a lot.

See more
Replies (8)
Taimoor Mirza
Associate Software Engineer at Intech Process Automation · | 21 upvotes · 94.7K views
Recommends
Python

Go with Python. It's syntax is really simple and less verbose compare to others. You can use Python for basically anything like web dev, task automation, data science, data engineering, cybersecurity etc. At initial level, it's more important to get an understanding of programming fundamentals. Once you get conformable with coding in general, then you can explore other languages.

See more

I would worry less about languages when you're first starting out. If you want to build an online store, then javascript is a great language that is used all over the web! Get comfortable with your first language, learn some computer science concepts and how to build things the right way, and then just work towards a goal and learn as you go!

https://www.w3schools.com/ is a great resource and it's completely free, everything you need to know to build a website is on that page if you have the drive to learn it. Best of luck to you!

Here's a neat roadmap too, in case you find yourself lost on what to learn next https://roadmap.sh/frontend

See more
Recommends
JavaScript

I recommend JavaScript to build your first website, for both FrontEnd and BackEnd , even tho I am a BIG fan of C++ it is not well suited yet to create websites, and Python would be just as good for the BackEnd as JavaScript but having everything written in only one language will make your learning curve way easier, so it is easy to recommend JavaScript.

See more

Python is an easy and beginner-friendly language. As you've mentioned about Online Clothing store, you'll need to deal with the website part and you'll need Javascript to make the site accessible and functional. Javascript will be more easy to learn if you learn Python first, so you can just start with Python.

See more
Recommends
JavaScript

I have worked with all these a ton. I make ecommerce and enterprise apps now. The only one of these you need is JavaScript. You can use JS on the backend as Node.js in AWS Lambda. You will need HTML and CSS skills, as well as a database. I recommend MongoDB. Please forget about C++ until you built your first company. Python fits the same purpose as Node.js but is currently popular in the Data Science community so skip it until you have a LOT of customers.

See more
Recommends
Python
Flask

Hello Rachel, as a fellow programmer, I am glad that you are planning on expanding your coding knowledge and skills.

I recommend learning python first as it has a very simple syntax (syntax is how your code looks and how simple it is to type) and is also very user-friendly. Once you get to know how to code in python, you can use this thing called Flask.

Flask is what you call a "web application framework" or a WAF, it basically is a tool used to develop websites and other similar things. You don't have to worry much about it's difficulty because it is based on python. You will still have to learn how to use Flask though as it could be a bit complicating in first glance.

If you are looking for simpler ways for making website without having to learn a lot of programming, you can learn HTML and CSS. These 2 will help you in making a basic and functional website. The catch is, from a career perspective, HTML won't get you far, as literally every programmer knows it. So it is best to use programming languages.

I hope this gave you a clear understanding of the ways in which you can build websites. Wishing you the best of luck!

See more
John Akhilomen

Since you're new, I'd recommend Javascript and Python. With Javascript, just learn React and Node. And with Python, learn Django. With JavaScript, Node, React, Python, and Django; you can accomplish quite a lot for both frontend and backend.

See more
Recommends
WordPress

Hi, When saying that "Suppose my goal is to build an online clothing store or something", I would go for a ready to use platform like Wordpress. it will give you a fast jump into the online world. By using WP you'll have to catch on with PHP\JQuery Goodluck.. Ping me when store is ready, I might buy something....

See more
Needs advice
on
Go
and
C#

I need some advice to choose a language for back-end development. Right now, my REST APIs were created by using Flask/Django, and I'd like to create a more reliable and more efficient API with static typing. On the one hand, Go is young, very light, and syntax like Python's, but C# has a large number of libs and more built-in methods. Which is the best solution today?

See more
Replies (10)
Recommends
Go
C#

It depends.

From times to times I asked or was asked that same question. Technology aside, it's important to consider the skills and expertise that the dev team has. Whether you use language A,B or C or framework X,Y and Z, if your team has a strong background and experience with something make it count too.

See more
Recommends
Go
at

I would recommend Go simply because as you mentioned, it's super light. No need to bring in the whole .NET suite to get a simple REST API up and running. Even if your API is a bit complex, Go should be able to handle it.

See more
Bob Bass
President & Full Stack Enginee at Narro, LLC · | 5 upvotes · 75.6K views

I started out with C# and .NET and I loved it. In my opinion, it was the perfect way to start learning the fundamentals of software development however I always felt like I was at a disadvantage when I was doing .NET development. Granted, .NET Core is now open-source and cross-platform, but I moved to Node.js simply because it is incredibly popular. I never thought I'd learn to love JavaScript it the way I did with C#, but I learned to love it pretty quickly, especially once I started using TypeScript. You get all of the benefits of C# and JavaScript all in one. If you've built a REST API with Python/Flask/Django, you'll be able to learn Node.js/Express/TypeScript well enough to migrate your API very fast and it's incredibly easy to host for free on any number of services.

I'm new to Go, I've got very little experience but the 'feel' of Go, isn't like Python in my opinion. Go has a pretty steep learning curve, much steeper than C# in my opinion. So if you are willing to consider Node/Express/TypeScript, I think you may really like it. If you're picking between Go and C#, I'd go for C# as of today, but once I am more comfortable with Go (which I anticipate being a slow process) I may change my mind.

At this moment in time, in late 2020- Node/Express/TypeScript feels like the obvious choice to me as a former C# developer.

See more
Vadim Bauer
Recommends
Python

The best language for you is the one that you know best!

Its a bit of a guess, but from your question and the difficulties you have with Python it seems to me the problem you describe is the manifestation of a bad design/architecture/code quality. These are not the problems of a language itself!

The experience you gained over the past years with your current programming language will outmatch any benefits of another language that you start from zero.

Because in the end of the day languages aren't all that different when it comes to fullfil the same task, it's more the tools, framework and ecosystem for a particular problem that make a difference.

I worked with Java, C#, Go and recently in Phyton, and I would choose Phyton over Go for WebApps, even I like compiled languages more. Go is a very simple language, I would even say maybe too simple. I can't stand all those go boilerplate if err checks, the broken filesystem, the date/time mess and many more things that aren't actually relevant for business application at all. Go has its advantages but not for WebApps.

Keep the lang and improve your skills and architecture you will benifit more from it than from a new language.

See more
Recommends
Go

I recommend Go for backend. It's younger than C# doesn't mean it's not mature. It's already mature enough to be run on production. You can see there are already many companies in the world adopting Go as their backend business logic or tooling. I can name a few like Github, Shopify, uber, twitch, and many more. It's easier learning curve, low entry barrier, better performance than C#, better memory consumption than C#, since there's no VM/runtime needed. It's suitable for large scale system and large codebase for readibility and long maintainability. It's simpler than C# since no class, inheritance(this can cause hard to maintain software), exception, etc. You can still implement OO way in Go without those feature. Simple file structure, only main files and package files. It compiles to single binary and easy to deploy and work around it, unlike C# who compiled to IL and you need to wrap all those IL files to be run inside separated web server(even .Net/.Net Core platform provide built-in web server). For libs, don't worry, there are many open source libs you will found on Github and already adopted by many companies. Go is employed in personal, startup, even corporate level.

See more
Recommends
Go
Go now, C# later

I suggest Go because it has a simple and clean ecosystem. The language is simple. You don’t need complex configs or installs either. You’ll be up and running very quickly. It doesn’t have as much as .NET but its standard library is more than sufficient for RESTful APIs. Concurrency is much, much easier too.

C# I’d definitely recommend later on. The .NET framework, especially core, is extremely powerful and there’s little you can’t build with it. Go won’t take you long to be productive with.

See more
Alexander Krylkov
Sofrware Architect at Air Astana · | 1 upvotes · 75.6K views
Recommends
C#

I would recommend C#, particularly Simplify.Web web-framework. C# is easy to start with (especially .NET Core). Simplify.Web is also easy to start with, no extra setup required for simple API, but on the other hand you have power of C# and full control over your API with ability to extend.

See more
Ted Elliott
Recommends
pydantic
fastapi

If you want to stick with python you may want to consider Fastapi. It uses Pydantic to give you strongly typed models and validation. It generates openapi docs for you out of the box. They have good documentation as well and they claim it is really fast.

See more
Recommends
C#

I have some systems on production using both languages. I tend to use golang if the API is small or medium size, but if I am going to build a large system definitively I use c#(asp netcore).

See more
Carlos Iglesias
Recommends

The database your are going to connect and the needed libraries could decide. Because both are awesome languages.

See more
Needs advice
on
Kotlin
and
Dart

Can anyone help me decide what's best for app development or even android Oreo development? I'm in a state dilemma at the moment. I want to do Android programming, not necessarily web development. I have heard a lot of people recommend one of these, and it seems that both the tools can do the job. Which language would you choose?

See more
Replies (4)
Ondrej Malek
Recommends
Dart

I assume that you mean Flutter by Dart. I have over 6 years experience programming in Android SDK, but about 1,5 month in Flutter. So far I think that Flutter is the future for mobile development. Flutter SDK is much better designed. Ecosystem of libraries seems having much higher quality. I would even say that android opensource libs are having really poor quality. Many times I am wondering how can garbage like that have so many stars at GitHub. Android SDK is hard to compose so you reinvent even basic things on and on, which is totally different story at Flutter. Lolcycle? Both are having good documentation. I quess apps in Flutter can be done in 1/3 of time compared to develop AndroidSDK and iOS, its design is that much better and contemporary. As of language comparison - Kotlin is better, but the difference is not that important. Go from one language to other is no problem. Dart is being updated with new features.

See more
Recommends
Dart

I've selected Flutter and Dart for my side projects and never regretted. Dart learning curve is easy after any OOP language . Flutter as a framework is also has a low entry threshold. I've already started development after a week of learning. Pros for me: code can be build for Android and IOS devices (for ios you need mac or VM), apps written in Dart have great performance on each of these platforms, flexibility. Cons: if you want to build a product as a business and want to hire a new Flutter Developer in the future it can be a problem as the framework and language is not popular for the moment.

See more
Tran Phuc
CTO at Nextfunc Co., Ltd · | 3 upvotes · 111.8K views
Recommends
Dart

I have worked in mobile development since 2010. I have experienced myself on various techs including Native SDK (Android), React Native (from 2016) and Flutter (2018). Almost the apps nowadays can be built using cross-platforms frameworks like React Native or Flutter. I suggest you start with Flutter. Flutter SDK is designed well to speed up your development and it still keeps the quality for your apps. If you're familiar with OOP languages (Java, C#...), switching to Dart is really quick and easy. Of course, sometimes you will need to dive deep into native parts but almost the cases you don't need. Good luck!

See more
Ranjeet Sinha
Senior Software Engineer · | 3 upvotes · 111.8K views
Recommends
Kotlin

It depends on what is the purpose of your app development. Do you want to make one app that shares the codebase for both iOS and Android? If yes, then Dart is the way to go. Does your app include interacting with hardware features like camera, Bluetooth, if yes, then go for native Android for better performance? Dart is good for simpler UI apps where you just do basic crud operations over the network and show data but if you need richer UI experience go with native.

See more
Decisions about C++, Dart, and Go
Alexandre Desroches
Founder & Developper at Finance D · | 29 upvotes · 76.1K views

I had a goal to create the simplest accounting software for Mac and Windows to help small businesses in Canada.

This led me to a long 2 years of exploration of the best language that could provide these features:

  • Great overall productivity
  • International wide-spread usage for long-term sustainability and easy to find documentation
  • Versatility for creating websites and desktop softwares
  • Enjoyable developper experience
  • Ability to create good looking modern UIs
  • Job openings with this language

I tried Python, Java, C# and C++ without finding what I was looking for.

When I discovered Javascript, I really knew it was the right language to use. Thinking of this today makes me realize even more how great a decision this has been to learn, use and master Javascript. It has been a fun, challenging and productive road on which I am still satisfied.

Obviously, when I refer to Javascript, it is not without implying the vast ecosystem around it. For me, JS is a whole universe in which almost every imaginable tools exist. It's awesome - for real. Thanks to all the contributors which have made it possible.

To be even clearer about how intense I am with Javascript, let's just say that my first passion was music. Until, I find coding with Javascript! Yep, I know!

So in conclusion, I chose Javascript because it is versatile, enjoyable, widely used, productive for both desktop softwares and websites with ability to create modern great looking user interfaces (assuming HTML and CSS are involved) and finally there are job openings.

See more

Python has become the most popular language for machine learning right now since almost all machine learning tools provide service for this language, and it is really to use since it has many build-in objects like Hashtable. In C, you need to implement everything by yourself.

C++ is one of the most popular programming languages in graphics. It has many fancy libraries like eigen to help us process matrix. I have many previous projects about graphics based on C++ and this time, we also need to deal with graphics since we need to analyze movements of the human body. C++ has much more advantages than Java. C++ uses only compiler, whereas Java uses compiler and interpreter in both. C++ supports both operator overloading and method overloading whereas Java only supports method overloading. C++ supports manual object management with the help of new and delete keywords whereas Java has built-in automatic garbage collection.

See more
Kirill Mikhailov

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.

See more
Chose
Go
over
Rust
Python

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.

See more

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.

See more
Timm Stelzer
Software Engineer at Flexperto GmbH · | 18 upvotes · 239.1K views

We have a lot of experience in JavaScript, writing our services in NodeJS allows developers to transition to the back end without any friction, without having to learn a new language. There is also the option to write services in TypeScript, which adds an expressive type layer. The semi-shared ecosystem between front and back end is nice as well, though specifically NodeJS libraries sometimes suffer in quality, compared to other major languages.

As for why we didn't pick the other languages, most of it comes down to "personal preference" and historically grown code bases, but let's do some post-hoc deduction:

Go is a practical choice, reasonably easy to learn, but until we find performance issues with our NodeJS stack, there is simply no reason to switch. The benefits of using NodeJS so far outweigh those of picking Go. This might change in the future.

PHP is a language we're still using in big parts of our system, and are still sometimes writing new code in. Modern PHP has fixed some of its issues, and probably has the fastest development cycle time, but it suffers around modelling complex asynchronous tasks, and (on a personal note) lack of support for writing in a functional style.

We don't use Python, Elixir or Ruby, mostly because of personal preference and for historic reasons.

Rust, though I personally love and use it in my projects, would require us to specifically hire for that, as the learning curve is quite steep. Its web ecosystem is OK by now (see https://www.arewewebyet.org/), but in my opinion, it is still no where near that of the other web languages. In other words, we are not willing to pay the price for playing this innovation card.

Haskell, as with Rust, I personally adore, but is simply too esoteric for us. There are problem domains where it shines, ours is not one of them.

See more

With Python + Django it was so much faster to create a typical website like this. Using Go would take to long to launch the initial version. For example, Python could handle complex data type with less line of code. Django also has many built-in libraries and a huge ecosystem of libraries that can be easily used to build a feature.

See more
Lucas Litton
Founder & CEO at Macombey · | 8 upvotes · 122.1K views

JavaScript is at the forefront of our entire development approach. Not only do we use different JavaScript frameworks and management tools, but we also use pure vanilla JavaScript to solve simple problems throughout all of our client's builds. JavaScript is a general purpose programming language that can be blazing fast and fun to work with. There's not one project we are working on that doesn't involve it.

See more
William Artero
Senior Platform Engineer at ABN AMRO · | 6 upvotes · 157.3K views

Telegram Messenger has frameworks for most known languages, which makes easier for anyone to integrate with them. I started with Golang and soon found that those frameworks are not up to date, not to mention my experience testing on Golang is also mixed due to how their testing tool works. The natural runner-up was JS, which I'm ditching in favor of TS to make a strongly typed code, proper tests and documentation for broader usage. TypeScript allows fast prototyping and can prevent problems during code phase, given that your IDE of choice has support for a language server, and build phase. Pairing it with lint tools also allows honing code before it even hits the repositories.

See more
awesomebanana2018

1. Type safety and inferred types

Go is type safe by default, which allows you to right more reliable code and have better developer tooling, plus with the := operator, you can initialize a variable without having to define its type because it automatically gets its type from the initial value.

2. Performance

There isn't much to be said here, but on most counts go beats both Python and Node.js on performance.

3. Documentation

I'm not talking about the Go language itself, although it does have good docs. I'm talking about Go's auto generated documentation tool, which allows people to document their packages easily and works amazingly with Go's type system.

4. Compiles to binary

If you are making a local program for somebody and they don't want to download the Go compiler, you can make Go into a native binary.

5. Built for the web

Go has built in Http libraries to rival Express.js and has a HTML/Text templating system.

6. Great Concurrency

Go utilizes Goroutines to help developers utilize multiple threads easily.

Conclusion

Go is an excellent choice for any system code, especially http networking and web backends.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of C++
Pros of Dart
Pros of Go
  • 183
    Performance
  • 95
    Control over memory allocation
  • 90
    Cross-platform
  • 88
    Fast
  • 77
    Object oriented
  • 54
    Industry standard
  • 44
    Smart pointers
  • 36
    Templates
  • 16
    Gui toolkits
  • 15
    Raii
  • 13
    Generic programming
  • 12
    Flexibility
  • 10
    Control
  • 9
    Metaprogramming
  • 7
    Hardcore
  • 5
    Full-fledged containers/collections API
  • 5
    Simple
  • 4
    Many large libraries
  • 4
    Performant multi-paradigm language
  • 4
    Large number of Libraries
  • 2
    Way too complicated
  • 1
    Https://www.info999.gq/2020/09/friend-function-in-c.htm
  • 1
    Close to Reality
  • 1
    Plenty of useful features
  • 52
    Backed by Google
  • 45
    Flutter
  • 37
    Twice the speed of Javascript
  • 32
    Great tools
  • 28
    Scalable
  • 24
    Open source
  • 22
    Can be used on Frontend
  • 21
    Polymer Dart
  • 21
    Made for the future
  • 21
    Angular Dart
  • 16
    Cross platform
  • 14
    Like Java
  • 11
    Dartanalyzer
  • 11
    Runs on Google Cloud Platform
  • 11
    Easy to learn
  • 8
    Amazing concurrency primitives
  • 7
    Is to JS what C is to ASM
  • 7
    Easy to Understand
  • 4
    Flutter works with darts
  • 2
    Can run Dart in AWS Lambda
  • 2
    R
  • 525
    High-performance
  • 382
    Simple, minimal syntax
  • 348
    Fun to write
  • 293
    Easy concurrency support via goroutines
  • 264
    Fast compilation times
  • 185
    Goroutines
  • 176
    Statically linked binaries that are simple to deploy
  • 145
    Simple compile build/run procedures
  • 130
    Backed by google
  • 128
    Great community
  • 48
    Garbage collection built-in
  • 40
    Built-in Testing
  • 39
    Excellent tools - gofmt, godoc etc
  • 35
    Elegant and concise like Python, fast like C
  • 31
    Awesome to Develop
  • 24
    Used for Docker
  • 23
    Flexible interface system
  • 21
    Deploy as executable
  • 21
    Great concurrency pattern
  • 18
    Open-source Integration
  • 15
    Fun to write and so many feature out of the box
  • 14
    Easy to read
  • 13
    Go is God
  • 13
    Its Simple and Heavy duty
  • 12
    Easy to deploy
  • 12
    Powerful and simple
  • 10
    Concurrency
  • 10
    Best language for concurrency
  • 9
    Rich standard library
  • 9
    Safe GOTOs
  • 8
    Easy setup
  • 8
    Clean code, high performance
  • 7
    Simplicity, Concurrency, Performance
  • 7
    Hassle free deployment
  • 7
    High performance
  • 6
    Single binary avoids library dependency issues
  • 6
    Used by Giants of the industry
  • 5
    Simple, powerful, and great performance
  • 5
    Cross compiling
  • 4
    Excellent tooling
  • 4
    Garbage Collection
  • 4
    Very sophisticated syntax
  • 4
    Gofmt
  • 4
    WYSIWYG
  • 3
    Kubernetes written on Go
  • 2
    Keep it simple and stupid
  • 2
    Widely used
  • 0
    No generics
  • 0
    Operator goto

Sign up to add or upvote prosMake informed product decisions

Cons of C++
Cons of Dart
Cons of Go
  • 8
    Slow compilation
  • 7
    Unsafe
  • 6
    Over-complicated
  • 6
    Fragile ABI
  • 5
    No standard/mainstream dependency management
  • 4
    Templates mess with compilation units
  • 3
    Too low level for most tasks
  • 1
    Unreal engine
  • 1
    Template metaprogramming is insane
  • 1
    Segfaults
  • 1
    Compile time features are a mess
  • 3
    Lack of ORM
  • 3
    Locked in - JS or TS interop is very hard to accomplish
  • 0
    A
  • 41
    You waste time in plumbing code catching errors
  • 25
    Verbose
  • 22
    Packages and their path dependencies are braindead
  • 15
    Dependency management when working on multiple projects
  • 14
    Google's documentations aren't beginer friendly
  • 10
    Automatic garbage collection overheads
  • 8
    Uncommon syntax
  • 6
    Type system is lacking (no generics, etc)
  • 2
    Collection framework is lacking (list, set, map)

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -
- No public GitHub repository available -

What is C++?

C++ compiles directly to a machine's native code, allowing it to be one of the fastest languages in the world, if optimized.

What is Dart?

Dart is a cohesive, scalable platform for building apps that run on the web (where you can use Polymer) or on servers (such as with Google Cloud Platform). Use the Dart language, libraries, and tools to write anything from simple scripts to full-featured apps.

What is Go?

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.

Need advice about which tool to choose?Ask the StackShare community!

What companies use C++?
What companies use Dart?
What companies use Go?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with C++?
What tools integrate with Dart?
What tools integrate with Go?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Dec 8 2020 at 5:50PM

DigitalOcean

+11
2
1813
May 6 2020 at 6:34AM

Pinterest

+6
3
2263
Nov 20 2019 at 3:38AM

OneSignal

+8
8
3896
Oct 24 2019 at 7:43PM

AppSignal

+8
5
721
Oct 3 2019 at 7:13PM

Ably Realtime

+8
4
3253
What are some alternatives to C++, Dart, and Go?
C
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
C#
C# (pronounced "See Sharp") is a simple, modern, object-oriented, and type-safe programming language. C# has its roots in the C family of languages and will be immediately familiar to C, C++, Java, and JavaScript programmers.
JavaScript
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
PHP
Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.
See all alternatives