Comments (1)
I think they make sense, but are mainly going to gain traction first in the big tech firms because they can afford the devs to "play" with less mature tech. if you are the first to find an edge case in Reason, you have to be able to dive into the Reason compiler to fix your own problem, or you're in trouble.
There are 2 big trends here. Companies are investing in building more frontend software which means they want a lot of the same language features they can get on the backend, on the frontend. The big 2 are types (trade off small unit tests for the costs of specifying types up front) and real functional programming (so that async and side effects are well handled instead of mashed up like in JS. this is why they can promise "no runtime errors" because they are fully statically analyzable and move all error catching to compile time). Making a breaking change to Javascript is out of the question so it makes sense to go for a higher level language that compiles down to JS.
The reason that Typescript doesn't do this well is because it is a leaky abstraction. I have been doing typescript at work for 3 weeks and there are always issues with typing idiomatic javascript that is not valid typescript. because of the post-ES6 TC39, javascript is moving faster than typescript. this breaks the promise that "typescript is a superset of javascript".
Flow is less intrusive but still has the problems of not being purely functional so it simply cannot offer the nice DX that Elm provides.
So if TS and Flow are out, that just leaves Reason and Elm. Elm has a larger community but Reason has the backing of Facebook. The next few years will suck for Elm because I think Reason will win. but who really knows. Facebook has failed to popularize tech before (eg Relay)
I don't know anything about purescript.
bottom line: showing you can code is going to outlast the choice of any particular language. if the company needs you enough you can learn the language for the job. the abstractions and mental models don't change. the basic decentralized protocols of the internet will not change. so I would just focus on that. I will say that it did take me longer to learn FP and people are generally always impressed that I have learned Haskell. So it might be worth spending some free time going over one of the FP languages just to see how remarkably different it is :)
from ama.
Related Issues (12)
- Any tips on post-bootcamp job search?
- What are some good ways for current students or new grads to connect with potential employers? HOT 1
- How do I make sure I'm doing everything right?
- Netlify Prerendering feature with Create React App vs Gatsby HOT 2
- Applying the 20-80 rule, what resources and/or strategies do you recommend for learning finance as a developer? HOT 2
- What are some of your favorite podcasts for programmers? HOT 4
- How did you get started in software development? What interested you about working in this industry? HOT 1
- What are some daily duties and responsibilities that someone working on developer experience (DX) has? HOT 1
- What are some factors that you consider important during the hiring practice? HOT 1
- Describe your working environment and corporate culture. Would you say that these things vary drastically by company? HOT 1
- Name a few challenging aspects that you have encountered working in software development. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ama.