C# vs TypeScript: What are the differences?
C# and TypeScript are primarily classified as "Languages" and "Templating Languages & Extensions" tools respectively.
TypeScript is an open source tool with 50.5K GitHub stars and 6.98K GitHub forks. Here's a link to TypeScript's open source repository on GitHub.
Slack, Clever, and Repro are some of the popular companies that use TypeScript, whereas C# is used by Stack Exchange, PedidosYa, and Coderus. TypeScript has a broader approval, being mentioned in 954 company stacks & 1390 developers stacks; compared to C#, which is listed in 684 company stacks and 1118 developer stacks.
What is C#?
What is TypeScript?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using TypeScript?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
Visual Studio Code worked really well for us as well, it worked well with all our polyglot services and the .Net core integration had great cross-platform developer experience (to be fair, F# was a bit trickier) - actually, each of our team members used a different OS (Ubuntu, macos, windows). Our production deployment ran for a time on Docker Swarm until we've decided to adopt Kubernetes with almost seamless migration process.
After our positive experience of running .Net core workloads in containers and developing Tweek's .Net services on non-windows machines, C# had gained back some of its popularity (originally lost to Node.js), and other teams have been using it for developing microservices, k8s sidecars (like https://github.com/Soluto/airbag), cli tools, serverless functions and other projects...
I'm #Fullstack here and work with Vue.js, React and Node.js in some projects but also C# for other clients. Also started learning Python. And all this with just one tool!: #Vscode I have used Atom and Sublime Text in the past and they are very good too, but for me now is just vscode. I think the combination of vscode with the free available extensions that the community is creating makes a powerful tool and that's why vscode became the most popular IDE for software development. You can match it to your own needs in a couple of minutes. Did I mention you can style it your way? Amazing tool!
I use TypeScript for Web Applications and for both frontend and backend because it has a lot of tooling around it and they really got the types and type safety right. Flow (JS) on the other hand lacks tooling and most of the times I scramble to find the right way of building my contracts in which TypeScript is very intuitive and natural. Additionally TypeScript is very similar to Java so your backend engineers and full stack engineers can work with it without much of context switch.
The only time I think Flow shines is (based on probably my outdated knowledge) Flow is/was the only option if you want/wanted to build a React Native application mainly because React Native transpiler at the time I was working with it would only work with flow.
I use TypeScript because the tooling is more mature (the decision to discontinue TSLint in favor of moving all its checks to ESLint is a thoughtful and mature decision), there's a ton of examples and tutorials for it, and it just generally seems to be where the industry is headed. Flow (JS) is a fine tool, but it just hasn't seen the uptake that TS has, and as a result is lacking a lot of the nicer small things, like thorough Visual Studio Code integration, offered by TS.
We currently use TypeScript at work. Previously we used Flow (JS) but it was sometimes really difficult to make the types work the way you want. Especially non-trivial types were problematic. And the IDE support wasn't good, Flow took too much resources and sometimes remain stuck and do not show errors (I use Visual Studio Code). With TypeScript we almost do not have these problems. IDE support is superb, working with types is much easier and typing system seems more mature and powerful. There are some downsides (like partion inheritance etc.), but TS team is still pushing it forward. So for me TypeScript is clear winner.
I use TypeScript because it's adoption by many developers, it's supported by many companies, and it's growth. AngularJS, React, @ASP.NET Core. I started using it in .NET Core, then for a job. Later I added more Angular experience and wrote more React software. It makes your code easier to understand and read... which means it makes other people's code easier to understand and read.
I use TypeScript because:
- incredible developer tooling and community support
- actively developed and supported by Microsoft (yes, I like Microsoft) ;)
- easier to make sense of a TS codebase because the annotations provide so much more context than plain JS
- refactors become easier (VSCode has superb support for TS)
I've switched back and forth between TS and Flow and decided a year ago to abandon Flow completely in favor of TS. I don't want to bash Flow, however, my main grievances are very poor tooling (editor integration leaves much to be desired), a slower release cycle, and subpar docs and community support.
Secure Membership Web API backed by SQL Server. This is the backing API to store additional profile and complex membership metadata outside of an Azure AD B2C provider. The front-end using the Azure AD B2C to allow 3rd party trusted identity providers to authenticate. This API provides a way to add and manage more complex permission structures than can easily be maintained in Azure AD.
We have .Net developers and an Azure infrastructure environment using server-less functions, logic apps and SaaS where ever possible. For this service I opted to keep it as a classic WebAPI project and deployed to AppService.
- Trusted Authentication Provider: @AzureActiveDirectoryB2C
- Frameworks: .NET Core
- IDEs: Visual Studio Code , Visual Studio
- Libraries: jQuery @EntityFramework, @AutoMapper, @FeatureToggle , @Swashbuckle
- Database: @SqlAzure
- Source Control: Git
- Build and Release Pipelines: Azure DevOps
- Test tools: Postman , Newman
- Test framework: @nUnit, @moq
- Infrastructure: @AzureAppService, @AzureAPIManagement
I think our #Frontend stack is pretty standard – but we have taken some deviations from a typical modern stack:
Yarn instead of npm. When yarn debuted, we never looked back. Now npm has pretty much caught up with speed and lockfiles, but yarn gives me confidence that my dependency installs are deterministic. Really interested in the plug-n-play (PnP) feature that removes the need for a node_modules folder, but haven't implemented this yet.
I use C# because of the ease of designing user interfaces compared to Java. Using Visual Studio makes C# a breeze for prototyping and creating apps and I really appreciate how quickly I can turn an idea into reality. I was first introduced to C# in a special topics course and quickly started preferring it over Java. The similarities between the two made the switch easy while the added benefits C# offers made it very worth it.
Typescript has been a win because, in general, it makes codebase maintenance less brittle. It's significantly easier to refactor in TS than JS, which encourages incremental improvements, file re-organizing, etc. Our developers are happier with the overall development experience.
The downside is that TS sometimes exacerbates problems caused by Node's fragmented ecosystem. Sometimes @types/
If your project is big enough, I'd say TS is nearly always worth it, but it can make selecting libraries a pain.
C# is the most productive production language - it exposes a lot of functional conveniences along with the robustness of strong typing. And they're finally embracing the open source community - a huge plus.
We use the basic syntax (
while) and object oriented constructs (classes, very simple inheritance).
We also use lambdas and block methods extensively, an intermediate level programming construct, but in a very formulaic and predictable way.
Used for Node.js personal projects that I think will have a longer lifetime than others, or that are combined with a web front end component like Angular (to share types).
Generally a poor developer experience. Usage decreasing recently compared to other preferred programming languages/platforms.
TypeScript is used in Kuro (https://github.com/Marc3842h/kuro).
PrometheanTV has used .NET and C# for several back-end applications and services including the Morphic Video Task System utilized to stream video assets to a variety of video delivery platforms including, Akamai, Brightcove, and others.
Excellent design-time type checking and the ability for the Typescript compiler to attach typing information to metadata at compile time allows for relatively simple type checking at run-time as well.
The main Carbonmade backend / API is written in C# and is ready to run on the CLR. We currently host on Windows but are preparing to migrate to Linux when the CoreCLR stabilizes.
We, our team can sleep comfortable at night know "x is undefined" will not occur in production. It's also really helpful as IDE help in code completion when they know types.