Java vs TypeScript: What are the differences?
Java belongs to "Languages" category of the tech stack, while TypeScript can be primarily classified under "Templating Languages & Extensions".
TypeScript is an open source tool with 51.1K GitHub stars and 7.06K GitHub forks. Here's a link to TypeScript's open source repository on GitHub.
Airbnb, Uber Technologies, and Spotify are some of the popular companies that use Java, whereas TypeScript is used by Slack, Asana, and Rainist. Java has a broader approval, being mentioned in 2399 company stacks & 2724 developers stacks; compared to TypeScript, which is listed in 982 company stacks and 1447 developer stacks.
What is Java?
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 add, upvote and see more consMake informed product decisions
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
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.
Our new backend micro services are primarily written in Node.js and Go and legacy systems are written in Java. For our new stack decision, we aimed to achieve greater developer productivity, low IO latency and good community so we had couple of technologies in hand to choose but finally we concluded to go for Node.js for API layer and Go for CPU/IO intensive tasks. Currently the inter-services communication is happening via REST but soon to be moved to RPC-based communication.
We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.
To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas
To build #Webapps we decided to use Angular 2 with RxJS
#Devops - GitHub , Travis CI , Terraform , Docker , Serverless
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.
Pretty much everything - Java is reasonably fast, reasonably safe, and reasonably expressive. I wouldn't call it the best at any of those things. The real advantage to me is that the virtual machine is ubiquitous and many people can understand it. Since I have the most experience in this language, it's my tool of choice for most projects.
I've also been learning JavaFx so that I can build user interfaces without the web. I've started several single-page-application projects that worked, but felt like workarounds or hacks and would be better-served as self-contained applications.
Do I really need to explain? Well to me, the most appealing factor in Java besides the unbelievable community and vast array of available libraries, is just the amount of effort that has been put in the modern JVM. Decades of optimization and improvements have lead to a terrific piece of technology. I admire the people contributed to that.
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.
Shouldn't surprise anyone, as minecraft is also java-based. Java is used for much more than just the plugins though. JCVortex (our API) is also served with vert.x (Java) and many of our team-internal tools also originated from java or are still java-applications.
TypeScript is used in Kuro (https://github.com/Marc3842h/kuro).
The most popular language in the world, definitely every programmer would use the Java language at some point. Frankly, I only use java when it’s a must. I find the language to be a little bit tedious when working with it.
bytelore.com makes extensive use of Java in its applications. We use Java due to its performance, community and the number of other projects built in the language. We have many projects and libraries built in Java.
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.