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

C#

47.4K
34.7K
+ 1
1.9K
Golang

15.2K
12.5K
+ 1
3.2K
Add tool

C# vs Go: What are the differences?

C#: Simple, general-purpose, object-oriented programming language for the .NET platform. 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; Go: An open source programming language that makes it easy to build simple, reliable, and efficient software. 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.

C# and Go can be primarily classified as "Languages" tools.

"Cool syntax", "Great lambda support" and "Great generics support" are the key factors why developers consider C#; whereas "High-performance", "Simple, minimal syntax" and "Fun to write" are the primary reasons why Go is favored.

Go is an open source tool with 60.4K GitHub stars and 8.36K GitHub forks. Here's a link to Go's open source repository on GitHub.

According to the StackShare community, C# has a broader approval, being mentioned in 697 company stacks & 1163 developers stacks; compared to Go, which is listed in 901 company stacks and 606 developer stacks.

Advice on C# and Golang
Needs advice
on
GolangGolangPerlPerl
and
RustRust

I intend to use a programming language which I'll use as AWS runtime and write a script that will comb through tons of files in a directory and its subdirectories and search for simple text regular expressions and process and write the matches in a file as output. I have heard that Perl is good for regex based search but I also want the performance to be good as it will have to go through tons of files for IO. In this post: https://filia-aleks.medium.com/aws-lambda-battle-2021-performance-comparison-for-all-languages-c1b441005fd1, I see that Rust works well as AWS Lambda runtime with very good performance. Which one should I choose as my AWS lambda runtime for this problem? Golang is also an option as it is fast as per the above link.

See more
Replies (1)
Recommends

I used to work in a Perl shop and must admit that the language is very simple for tasks like these, but as you mentioned it's not fast at execution time. I'm now a Go programmer professionally but I taught myself the language while in college purely out of interest and eventually found my way to the job, not the other way around. I've recently been learning a little rust because of how much that language comes up in conversations around Go. I find the concept of the borrow checker nice but I have to admit I feel lost like I am in most flavors of new fancy framework js. That's not to say Rust is really anything like js, but the learning appears the same to me as someone who's convinced they could learn just about any programming language if it was necessary (over time I've seen procedural, OOP, declarative and functional stuff but never programming logic outside of the prolog code I wrote in school).

Go isn't made for your specific task at hand but it's a very easy language to pick up and it has good directory traversal standard library code and good regex (even though with time perl's has been optimized to be faster and I think it's written in C++) but more than anything Go is "cloud native" programming in that an awful lot of new microservice tech stacks are centered around it, docker and kubernetes are written in it, and there's a thriving community whose focus is generally web-first and performance-oriented. This means for your use case there might already be a large cohort of gophers that have asked the stackoverflow questions for you

I personally would push you towards the NYT Profiler for Perl before I would towards Rest, but that's because I know you wouldn't waste any time being able to get to the task at hand and then make it go faster, and I expect all but a few rustaceans would be able to do so with the same speed.

Whatever you pick I wish you the very best of luck!

See more
Sachin K
Cloud Engineer and Developer · | 6 upvotes · 20.7K views
Needs advice
on
GolangGolangJavaJava
and
PythonPython

Hello Folks, my first time here, and for requesting advice. I am trying to create some automation from my cloud stack on AWS to something more cloud native. I have containerised the services, however, I am stuck at DB, my Data warehouse, and messaging. Would love some recommendations on how can I automate this for some future work too.

See more
Replies (1)
Simon Banks
Principal Software Engineer at AtCore Tech · | 3 upvotes · 16.9K views
Recommends

I recommend cloud-init for base setup of machines and configuring them.. Its simple (YAML file) and is industry standard. Even works on bare metal as well as cloud.

See more
Mahmoud Gabr
Software engineer at AlgoDriven · | 8 upvotes · 30.5K views
Needs advice
on
GolangGolangNode.jsNode.js
and
PHPPHP

I'm working in a company as a software engineer, Mainly we are focusing on PHP as the product is being developed in PHP (native) also there are a few products in Node.js, I tried to introduce Laravel but there is no luck to work on it. Now I have started learning Go language, should I focus more on Go or continue only with PHP and NodeJS. BTW I know PHP and NodeJS very well.

See more
Replies (1)
Recommends

Be flexible, be agile in your personal and professional life. Don't be afraid to learn new things and step outside of your confort zone BUT with reason. Reason can be a career path or just money. Does Go belongs to your career path? Does Go belongs to your company's toolset? Do yo seek for new job oportunities? Some people follow a complete career path by using a single language i.e, PHP or java, but if you want to standout in the crowd this is not enough. You already know PHP. This is an oportunity to learn something new. In general, I would advise you to learn at least one language & library/framework per stack . This will help you to lead a team someday.

See more
Needs advice
on
ElixirElixirGolangGolang
and
PythonPython

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 · 111K views
Recommends
PythonPython

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
ElixirElixir

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
GolangGolangPythonPython

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
Youcef Benamare
Needs advice
on
C langC langC++C++
and
C#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 (2)
Richard Rios
Senior Software Engineer · | 5 upvotes · 66.7K views
Recommends
C langC lang

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
Recommends
C langC lang

Dear, Yusuf You can't use if statement to compare two strings, but you can use strcmp() function which means string compare The behavior of strcmp function is: If (string1 < string2)? Then: return a negative value. If (string1 > string2)? Then: return a positive value.

If(string1 == string2)? Then: return (0).

So, you can modify this statment to: if(strcmp(name,"Yousef") != 0) printf("name undefined\n");

else printf("find name");

But, In this case there is one logic problem that (strcmp) function don't ignore the letter case. For example: If you input name : yousef

The first letter here (y) is small, but in the comparing statement above is capital, So the result will be "name undefined", but in fact "yousef" = "Yousef".

To solve this problem you should use stracasecmp() function. This function ignore the letter case while comparing. The code will be: if(strcasecmp(name,"Yousef") != 0) printf("name undefined\n");

else printf("find name");

Attention: Include string libreary after using these functions to skip any problem may be found.

include

may Allah bless you ^_^

See more
Brayden W
Needs advice
on
GolangGolangPythonPython
and
RustRust

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
GolangGolangPythonPython

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

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
PythonPythonRustRust

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 · 225.8K views
Recommends
RustRust

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
GolangGolangPHPPHP
and
PythonPython

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 · 211.7K views
Recommends
PythonPython

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 · 198.8K views
Recommends
PHPPHP

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
GolangGolang

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 · 194.9K views
Recommends
C#C#GolangGolangPHPPHP

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

See more
Oluwafemi Lawrence
Recommends
GolangGolang

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
C#C#F#F#
and
KotlinKotlin

Hi there. I want to expand my coding toolset. So I want to learn a second backend language besides Kotlin. Kotlin is fantastic. I love it in every aspect, and I think I can never return to Java. And also why should I? It is 100% interoperable with java and can co-exist in every project.

So my question here is. Which language do you think will bring me more joy? I think F#; it is more like Kotlin. Then C# (it's more or like 100% java). But, let's say I learn F#. Is it 100% interoperable like Kotlin? can they live side by side? Can I, then, apply to .NET jr jobs after a while, for example, or is C# the holy cow? I would like to learn .Net.

If it is the worst and only C# is acceptable, then which language should I learn? Dart? Go?

See more
Replies (3)
Recommends
C#C#KotlinKotlin

Exceptional decision to go with Kotlin. For the other story, go full with C#. "is C# the holy cow? Yes it is.". Specially now when netCore is crossplatform and you can build asp.net core applications on Windows, Linux and macOS via Visual Studio Code which is also multiplatform. Nothing will beat C# in the near future. Also, at the end of 2021 Microsoft will release Net 6.0 which will include MAUI.

"For those new to .NET MAUI (standing for .NET Multi-platform App UI), Microsoft says it's "the evolution of Xamarin.Forms extended from mobile to desktop scenarios with UI controls rebuilt from the ground up for performance and extensibility."

So, C# all the way sire!

See more
Recommends
C#C#

animefanx1,

First let's get your questions sorted: Which language do you think will bring me more joy?

This you will have to decide for yourself, I am a long time C# developer and have seen it grow into a very compelling platform. The language and I'd compare it more to Kotlin than Java (by a long margin). More on .NET in a bit.

say I learn F#. Is it 100% interoperable like Kotlin?

You can have 100% interop with a caveat, your F# libraries have to implement certain guidance in order to be referenced from C#. Some (dare I say most) of the differences between F# and C# are predicated on language constructs that are not available in C#. For instance F# functions that return Unit.

can they live side by side?

Yes.

Can I, then, apply to .NET jr jobs after a while, for example, or is C# the holy cow?

I don't know if I take your meaning, but let me say this: Learning either C# or F# will likely force you to understand concepts such as garbage collection, primitive types, etc. which apply to all .NET languages, thus a lot of the effort you put into .NET is bound to pay off regardless of your choice.

If it is the worst and only C# is acceptable, then which language should I learn? Dart? Go? You can't go wrong with any of these and I venture to say whether you select C#, F#, Dart or Go as your next adventure, your willingness to learn will take you to try other languages, some which mey not even exist yet!

PS1: .NET is an end to end environment now. With the introduction of Blazor and Razor pages one does not need JavaScript or other browser scripting languages, it even interops with JavaScript. PS2. Microsoft is working on unifying .NET. Soon there will be only one version: .NET 5! Caveat: Some features such as WinForms will still be specific to the windows environment but all of those are likely things you don't need in Mac or Linux

See more
Recommends
GolangGolang

I think you can learn go instead C#. C# is cool, but Golang also cool. It can run on any OS without specific software. C# can run on linux too but it's only the .NET Core as I know. But golang is flexible. So try it and decide what do you think about Golang

See more
Needs advice
on
C#C#JavaScriptJavaScript
and
ReactReact

Hi Everyone,

I have some experience working with JavaScript and React and will now try to learn C# - could you please share some similarities and differences between JS and C# and what rookie mistakes I should watch out for when learning C#?

Also, any tips & good practices are greatly appreciated :)

Thank you

See more
Replies (4)
Pavel Kalugin
Software Engineer at Paralect · | 9 upvotes · 113.2K views

If you want to learn C# to write some backend code you can also check out Node.js which is basically JavaScript running outside the browser. You can create any kind of web servers, APIs, scrapers, automation scripts, etc using all the same JavaScript.

A good entry to Node is Express.js. It is the most common web framework for Node. It's well documented and there are a lot of educational materials for it.

See more
Hameed Moshood
Recommends
C#C#

C# is .net framework of a programming language specially different from the programming languages you're used to. If you learn C# you will be experienceed in coding with VIsual Basic .net and also creating web development using ASP and this ASP also include JavaScript function.... I urge you to learn it

See more
Kudos Beluga
Recommends
F#F#Node.jsNode.js

I prefer functional programming because it produces less buggy code (thus I recommend F#), and is simply better to learn this paradigm earlier on in your coding career rather than later. It can also do most stuff C# can do, namely code with .NET core. If you're going to learn .NET then you should learn Node.js+Express first though before doing web development with C#/F#

See more
Ross M.
System Architect at MomentFactory · | 2 upvotes · 99.4K views
Recommends
C#C#JavaScriptJavaScript

I think you can manage to find something about this topic. it's pretty popular one. ex: https://www.educba.com/c-sharp-vs-js/

Something I don't see discussed enough over the internet is the performance difference. I don't think you should worry about this. 95% of the time you won't notice the difference on your day to day projets. You will know what you need in terms of performance when you get there.

See more
Needs advice
on
GolangGolangPythonPython
and
RustRust

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
PythonPython

python is a good language to start for the beginner.

See more
Will Vandebelt
Recommends
GolangGolangPythonPython

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
GolangGolang

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
PythonPython

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
Kudos Beluga
Recommends
PythonPython

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
C#C#PythonPython

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
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 · 174.8K views
Recommends
PythonPython

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
PythonPython

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
Recommends
PythonPython

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

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
Recommends
GolangGolang

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

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
Amity International School Sec Gurugram
Vice Cyber Captain at Student · | 1 upvotes · 174.6K views
Recommends
PythonPython

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
GolangGolangPythonPython

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
PythonPython

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
Decisions about C# and Golang
Gonçalo Rodrigues
Chose
GolangGolang
over
PythonPython

As we're developing a critical piece of software, type safety is very important to minimize the errors we have. While Python supports type hints nowadays, Go makes it much more easy to work with and allows us to be confident in the software we ship.

Take look at our code in our github

See more
Migrated
from
PythonPython
to
GolangGolang

Ever since the introduction of the PWA, I felt forced to learn JS, React, and Angular. I encountered WASM, which compiles Go/Rust to JS. I decided to give go a shot and made a simple weather PWA that tells the weather of various Japanese cities. It was 40x faster than Transcrypt and 0.9x faster than regular JS. Go is even simpler than Python when coming to tools like list comprehension and Pandas.

See more

We chose Rust for our web API because the Warp crate makes it easy to compose high-performance and asynchronous APIs. Rust allows us to achieve high development velocity because it provides zero-cost abstractions and enforces strict type and memory-safety checks with high quality and actionable error messages.

See more
Alexandre Desroches
Founder & Developper at Finance D · | 71 upvotes · 206.7K 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
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

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
Ing. Alvaro Rodríguez Scelza
Software Systems Engineer at Ripio · | 12 upvotes · 213.2K views

I was considering focusing on learning RoR and looking for a work that uses those techs.

After some investigation, I decided to stay with C# .NET:

  • It is more requested on job positions (7 to 1 in my personal searches average).

  • It's been around for longer.

  • it has better documentation and community.

  • One of Ruby advantages (its amazing community gems, that allows to quickly build parts of your systems by merely putting together third party components) gets quite complicated to use and maintain in huge applications, where building and reusing your own components may become a better approach.

  • Rail's front end support is starting to waver.

  • C# .NET code is far easier to understand, debug and maintain. Although certainly not easier to learn from scratch.

  • Though Rails has an excellent programming speed, C# tends to get the upper hand in long term projects.

I would avise to stick to rails when building small projects, and switching to C# for more long term ones.

Opinions are welcome!

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
VP Of Engineering at Flexperto GmbH · | 18 upvotes · 377K 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
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of C#
Pros of Golang
  • 335
    Cool syntax
  • 281
    Great lambda support
  • 253
    Great generics support
  • 199
    Language integrated query (linq)
  • 171
    Extension methods
  • 85
    Automatic garbage collection
  • 83
    Properties with get/set methods
  • 76
    Backed by microsoft
  • 64
    Automatic memory management
  • 57
    Amaizing Crossplatform Support
  • 36
    High performance
  • 33
    Beautiful
  • 32
    LINQ
  • 28
    Great ecosystem of community packages with Nuget
  • 23
    Vibrant developer community
  • 17
    Great readability
  • 16
    Dead-simple asynchronous programming with async/await
  • 12
    Strongly typed by default, dynamic typing when needed
  • 12
    Visual Studio - Great IDE
  • 11
    Productive
  • 10
    Open source
  • 9
    Easy separation of config/application code
  • 9
    Object oriented programming paradigm
  • 7
    Operator overloading
  • 7
    Events management using delegates
  • 6
    Great community
  • 6
    OOPS simplified with great syntax
  • 6
    Conditional compilation
  • 5
    Cool
  • 5
    Linq expressions
  • 5
    Organized and clean
  • 5
    Unity
  • 4
    Comprehensive platform libraries
  • 4
    Good language to teach OO concepts
  • 4
    High-performance
  • 4
    Coherent language backed by an extensive CLR
  • 4
    Top level code
  • 3
    Concise syntax, productivity designed
  • 2
    Lovely
  • 1
    Interfaces
  • 0
    Interfaces
  • 531
    High-performance
  • 387
    Simple, minimal syntax
  • 354
    Fun to write
  • 295
    Easy concurrency support via goroutines
  • 267
    Fast compilation times
  • 189
    Goroutines
  • 177
    Statically linked binaries that are simple to deploy
  • 148
    Simple compile build/run procedures
  • 134
    Backed by google
  • 131
    Great community
  • 50
    Garbage collection built-in
  • 42
    Built-in Testing
  • 41
    Excellent tools - gofmt, godoc etc
  • 38
    Elegant and concise like Python, fast like C
  • 34
    Awesome to Develop
  • 25
    Used for Docker
  • 24
    Flexible interface system
  • 22
    Deploy as executable
  • 22
    Great concurrency pattern
  • 19
    Open-source Integration
  • 16
    Fun to write and so many feature out of the box
  • 15
    Easy to read
  • 14
    Its Simple and Heavy duty
  • 14
    Go is God
  • 13
    Powerful and simple
  • 13
    Easy to deploy
  • 11
    Concurrency
  • 11
    Best language for concurrency
  • 10
    Rich standard library
  • 10
    Safe GOTOs
  • 9
    Clean code, high performance
  • 9
    Easy setup
  • 8
    Hassle free deployment
  • 8
    High performance
  • 8
    Simplicity, Concurrency, Performance
  • 7
    Single binary avoids library dependency issues
  • 7
    Used by Giants of the industry
  • 6
    Simple, powerful, and great performance
  • 6
    Cross compiling
  • 5
    Very sophisticated syntax
  • 5
    Garbage Collection
  • 5
    Gofmt
  • 5
    WYSIWYG
  • 5
    Excellent tooling
  • 4
    Widely used
  • 4
    Kubernetes written on Go
  • 3
    Keep it simple and stupid
  • 2
    No generics
  • 1
    Operator goto

Sign up to add or upvote prosMake informed product decisions

Cons of C#
Cons of Golang
  • 15
    Poor x-platform GUI support
  • 7
    Closed source
  • 7
    Requires DllImportAttribute for getting stuff from unma
  • 6
    Fast and secure
  • 41
    You waste time in plumbing code catching errors
  • 25
    Verbose
  • 22
    Packages and their path dependencies are braindead
  • 15
    Google's documentations aren't beginer friendly
  • 15
    Dependency management when working on multiple projects
  • 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 -

What is 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.

What is Golang?

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!

Jobs that mention C# and Golang as a desired skillset
CBRE
Poland Mazowieckie Warsaw
CBRE
United States of America Texas Dallas
CBRE
United States of America Texas Richardson
CBRE
United States of America Texas Richardson
CBRE
United States of America Texas Dallas
What companies use C#?
What companies use Golang?
See which teams inside your own company are using C# or Golang.
Sign up for StackShare EnterpriseLearn More

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

What tools integrate with C#?
What tools integrate with Golang?

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

Blog Posts

Dec 8 2020 at 5:50PM

DigitalOcean

GitHubMySQLPostgreSQL+11
2
2089
Nov 20 2019 at 3:38AM

OneSignal

PostgreSQLRedisRuby+8
8
4160
Oct 3 2019 at 7:13PM

Ably Realtime

JavaScriptPythonNode.js+8
4
3373
Jun 26 2018 at 3:26AM

Twilio SendGrid

GitHubDockerKafka+10
11
9507
What are some alternatives to C# and Golang?
Java
Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!
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.
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.
HTML5
HTML5 is a core technology markup language of the Internet used for structuring and presenting content for the World Wide Web. As of October 2014 this is the final and complete fifth revision of the HTML standard of the World Wide Web Consortium (W3C). The previous version, HTML 4, was standardised in 1997.
See all alternatives