What is PureScript and what are its top alternatives?
Top Alternatives to PureScript
- Haskell
It is a general purpose language that can be used in any domain and use case, it is ideally suited for proprietary business logic and data analysis, fast prototyping and enhancing existing software environments with correct code, performance and scalability. ...
- Elm
Writing HTML apps is super easy with elm-lang/html. Not only does it render extremely fast, it also quietly guides you towards well-architected code. ...
- TypeScript
TypeScript is a language for application-scale JavaScript development. It's a typed superset of JavaScript that compiles to plain JavaScript. ...
- LiveScript
It has a straightforward mapping to JavaScript and allows you to write expressive code devoid of repetitive boilerplate. While LiveScript adds many features to assist in functional style programming, it also has many improvements for object oriented and imperative programming. ...
- ClojureScript
ClojureScript is a compiler for Clojure that targets JavaScript. It is designed to emit JavaScript code which is compatible with the advanced compilation mode of the Google Closure optimizing compiler. ...
- ReasonML
It lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.It is powerful, safe type inference means you rarely have to annotate types, but everything gets checked for you. ...
- React
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project. ...
- 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. ...
PureScript alternatives & related posts
- Purely-functional programming89
- Statically typed66
- Type-safe59
- Open source39
- Great community38
- Built-in concurrency30
- Composable29
- Built-in parallelism29
- Referentially transparent23
- Generics19
- Intellectual satisfaction14
- Type inference14
- If it compiles, it's correct11
- Flexible7
- Monads7
- Proposition testing with QuickCheck4
- Great type system4
- Purely-functional Programming3
- One of the most powerful languages *(see blub paradox)*3
- Highly expressive, type-safe, fast development time2
- Reliable2
- Kind system2
- Pattern matching and completeness checking2
- Better type-safe than sorry2
- Type classes2
- Great maintainability of the code2
- Fun2
- Best in class thinking tool2
- Orthogonality0
- Predictable0
- Error messages can be very confusing8
- Too much distraction in language extensions8
- Libraries have poor documentation4
- No best practices3
- No good ABI3
- Sometimes performance is unpredictable2
- Poor packaging for apps written in it for Linux distros2
- Slow compilation1
related Haskell posts
Why I am using Haskell in my free time?
I have 3 reasons for it. I am looking for:
Fun.
Improve functional programming skill.
Improve problem-solving skill.
Laziness and mathematical abstractions behind Haskell makes it a wonderful language.
It is Pure functional, it helps me to write better Scala code.
Highly expressive language gives elegant ways to solve coding puzzle.
Elm
- Code stays clean45
- Great type system43
- No Runtime Exceptions40
- Fun33
- Easy to understand28
- Type safety23
- Correctness22
- JS fatigue17
- Declarative12
- Ecosystem agrees on one Application Architecture12
- Friendly compiler messages10
- Fast rendering8
- If it compiles, it runs7
- Welcoming community7
- Stable ecosystem5
- 'Batteries included'4
- Package.elm-lang.org2
- No typeclasses -> repitition (i.e. map has 130versions)3
- JS interop can not be async2
- JS interoperability a bit more involved2
- More code is required1
- No JSX/Template1
- Main developer enforces "the correct" style hard1
- No communication with users1
- Backwards compability breaks between releases1
related Elm posts
React is awesome, but is just a view library, when we need to manage state, there is Redux.js. The ecosystem of redux is big, complex and hard to integrate. That's why we choose to create hydux. Hydux is simple, the main idea is from Elm, a pure functional vdom-based framework for front-end. We seperate the whole app with state, actions and views. Which means not only our views are a tree, but also our state and actions. Reuse state and actions are just like reuse react components, no need to consider dependences.
TypeScript
- More intuitive and type safe javascript169
- Type safe102
- JavaScript superset78
- The best AltJS ever47
- Best AltJS for BackEnd27
- Powerful type system, including generics & JS features15
- Nice and seamless hybrid of static and dynamic typing11
- Aligned with ES development for compatibility10
- Compile time errors10
- Structural, rather than nominal, subtyping7
- Angular7
- Starts and ends with JavaScript4
- Garbage collection1
- Code may look heavy and confusing5
- Hype3
related TypeScript posts
Our first experience with .NET core was when we developed our OSS feature management platform - Tweek (https://github.com/soluto/tweek). We wanted to create a solution that is able to run anywhere (super important for OSS), has excellent performance characteristics and can fit in a multi-container architecture. We decided to implement our rule engine processor in F# , our main service was implemented in C# and other components were built using JavaScript / TypeScript and Go.
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 picked up an idea to develop and it was no brainer I had to go with React for the frontend. I was faced with challenges when it came to what component framework to use. I had worked extensively with Material-UI but I needed something different that would offer me wider range of well customized components (I became pretty slow at styling). I brought in Evergreen after several sampling and reads online but again, after several prototype development against Evergreen—since I was using TypeScript and I had to import custom Type, it felt exhaustive. After I validated Evergreen with the designs of the idea I was developing, I also noticed I might have to do a lot of styling. I later stumbled on Material Kit, the one specifically made for React . It was promising with beautifully crafted components, most of which fits into the designs pages I had on ground.
A major problem of Material Kit for me is it isn't written in TypeScript and there isn't any plans to support its TypeScript version. I rolled up my sleeve and started converting their components to TypeScript and if you'll ask me, I am still on it.
In summary, I used the Create React App with TypeScript support and I am spending some time converting Material Kit to TypeScript before I start developing against it. All of these components are going to be hosted on Bit.
If you feel I am crazy or I have gotten something wrong, I'll be willing to listen to your opinion. Also, if you want to have a share of whatever TypeScript version of Material Kit I end up coming up with, let me know.
related LiveScript posts
- Functional and stable2
related ClojureScript posts
I adopted Clojure and ClojureScript because:
- it's 1 language, multiple platforms.
- Simple syntax.
- Designed to avoid unwanted side effects and bugs.
- Immutable data-structures.
- Compact code, very expressive.
- Source code is data.
- It has super-flexible macro.
- Has metadata.
- Interoperability with JavaScript, Java and C#.
- Pattern Matching4
- Type System3
- React1
- Bindings1
related ReasonML posts
- Components801
- Virtual dom663
- Performance572
- Simplicity500
- Composable442
- Data flow183
- Declarative165
- Isn't an mvc framework126
- Reactive updates116
- Explicit app state113
- JSX44
- Learn once, write everywhere27
- Uni-directional data flow20
- Easy to Use20
- Works great with Flux Architecture16
- Great perfomance11
- Built by Facebook9
- Javascript9
- TypeScript support7
- Speed6
- Hooks5
- Excellent Documentation5
- Props5
- Functional5
- Easy as Lego5
- Closer to standard JavaScript and HTML than others5
- Cross-platform5
- Server Side Rendering5
- Feels like the 90s5
- Easy to start5
- Awesome5
- Scalable5
- Strong Community4
- Server side views4
- Fancy third party tools4
- Scales super well4
- Start simple4
- Super easy4
- Simple, easy to reason about and makes you productive3
- Fast evolving3
- SSR3
- Great migration pathway for older systems3
- Rich ecosystem3
- Simple3
- Has functional components3
- Allows creating single page applications3
- Has arrow functions3
- Very gentle learning curve3
- Sdfsdfsdf3
- Beautiful and Neat Component Management3
- Just the View of MVC3
- Split your UI into components with one true state2
- Fragments2
- Sharable2
- Every decision architecture wise makes sense2
- Permissively-licensed2
- Image upload1
- HTML-like1
- Recharts1
- Requires discipline to keep architecture organized38
- No predefined way to structure your app27
- Need to be familiar with lots of third party packages26
- JSX10
- Not enterprise friendly8
- One-way binding only6
- State consistency with backend neglected3
- Bad Documentation3
- Paradigms change too fast2
- Error boundary is needed2
related React posts









I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.
I picked up an idea to develop and it was no brainer I had to go with React for the frontend. I was faced with challenges when it came to what component framework to use. I had worked extensively with Material-UI but I needed something different that would offer me wider range of well customized components (I became pretty slow at styling). I brought in Evergreen after several sampling and reads online but again, after several prototype development against Evergreen—since I was using TypeScript and I had to import custom Type, it felt exhaustive. After I validated Evergreen with the designs of the idea I was developing, I also noticed I might have to do a lot of styling. I later stumbled on Material Kit, the one specifically made for React . It was promising with beautifully crafted components, most of which fits into the designs pages I had on ground.
A major problem of Material Kit for me is it isn't written in TypeScript and there isn't any plans to support its TypeScript version. I rolled up my sleeve and started converting their components to TypeScript and if you'll ask me, I am still on it.
In summary, I used the Create React App with TypeScript support and I am spending some time converting Material Kit to TypeScript before I start developing against it. All of these components are going to be hosted on Bit.
If you feel I am crazy or I have gotten something wrong, I'll be willing to listen to your opinion. Also, if you want to have a share of whatever TypeScript version of Material Kit I end up coming up with, let me know.
JavaScript
- Can be used on frontend/backend1.6K
- It's everywhere1.5K
- Lots of great frameworks1.2K
- Fast894
- Light weight741
- Flexible424
- You can't get a device today that doesn't run js391
- Non-blocking i/o286
- Ubiquitousness235
- Expressive190
- Extended functionality to web pages54
- Relatively easy language48
- Executed on the client side45
- Relatively fast to the end user29
- Pure Javascript24
- Functional programming20
- Async14
- Setup is easy11
- Its everywhere11
- Full-stack11
- Because I love functions10
- JavaScript is the New PHP9
- Like it or not, JS is part of the web standard9
- Can be used in backend, frontend and DB8
- Expansive community8
- Easy8
- Can be used both as frontend and backend as well7
- Most Popular Language in the World7
- For the good parts7
- Everyone use it7
- Easy to hire developers7
- No need to use PHP7
- Future Language of The Web7
- Powerful6
- Photoshop has 3 JS runtimes built in6
- Love-hate relationship6
- Evolution of C6
- Supports lambdas and closures6
- Agile, packages simple to use6
- Popularized Class-Less Architecture & Lambdas6
- Client side JS uses the visitors CPU to save Server Res5
- 1.6K Can be used on frontend/backend5
- Versitile5
- Hard not to use5
- Its fun and fast5
- It's fun5
- Nice5
- Easy to make something5
- Can be used on frontend/backend/Mobile/create PRO Ui5
- It let's me use Babel & Typescript5
- Everywhere4
- Client processing4
- Function expressions are useful for callbacks4
- Stockholm Syndrome4
- What to add4
- Clojurescript4
- Promise relationship4
- Scope manipulation4
- Only Programming language on browser3
- Because it is so simple and lightweight3
- Easy to understand0
- A constant moving target, too much churn22
- Horribly inconsistent20
- Javascript is the New PHP15
- No ability to monitor memory utilitization8
- Shows Zero output in case of ANY error7
- Can be ugly6
- Thinks strange results are better than errors6
- No GitHub3
- Slow2
related JavaScript posts
Oof. I have truly hated JavaScript for a long time. Like, for over twenty years now. Like, since the Clinton administration. It's always been a nightmare to deal with all of the aspects of that silly language.
But wowza, things have changed. Tooling is just way, way better. I'm primarily web-oriented, and using React and Apollo together the past few years really opened my eyes to building rich apps. And I deeply apologize for using the phrase rich apps; I don't think I've ever said such Enterprisey words before.
But yeah, things are different now. I still love Rails, and still use it for a lot of apps I build. But it's that silly rich apps phrase that's the problem. Users have way more comprehensive expectations than they did even five years ago, and the JS community does a good job at building tools and tech that tackle the problems of making heavy, complicated UI and frontend work.
Obviously there's a lot of things happening here, so just saying "JavaScript isn't terrible" might encompass a huge amount of libraries and frameworks. But if you're like me, yeah, give things another shot- I'm somehow not hating on JavaScript anymore and... gulp... I kinda love it.











How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:
Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.
Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:
https://eng.uber.com/distributed-tracing/
(GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)
Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark