Alternatives to PureScript logo

Alternatives to PureScript

Haskell, Elm, TypeScript, LiveScript, and ClojureScript are the most popular alternatives and competitors to PureScript.
67
78
+ 1
16

What is PureScript and what are its top alternatives?

A small strongly typed programming language with expressive types that compiles to JavaScript, written in and inspired by Haskell.
PureScript is a tool in the Templating Languages & Extensions category of a tech stack.
PureScript is an open source tool with 8K GitHub stars and 563 GitHub forks. Here’s a link to PureScript's open source repository on GitHub

Top Alternatives to PureScript

  • Haskell
    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
    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

    TypeScript is a language for application-scale JavaScript development. It's a typed superset of JavaScript that compiles to plain JavaScript. ...

  • LiveScript
    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

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

    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

Haskell logo

Haskell

1.1K
1.2K
506
An advanced purely-functional programming language
1.1K
1.2K
+ 1
506
PROS OF HASKELL
  • 89
    Purely-functional programming
  • 66
    Statically typed
  • 59
    Type-safe
  • 39
    Open source
  • 38
    Great community
  • 30
    Built-in concurrency
  • 29
    Composable
  • 29
    Built-in parallelism
  • 23
    Referentially transparent
  • 19
    Generics
  • 14
    Intellectual satisfaction
  • 14
    Type inference
  • 11
    If it compiles, it's correct
  • 7
    Flexible
  • 7
    Monads
  • 4
    Proposition testing with QuickCheck
  • 4
    Great type system
  • 3
    Purely-functional Programming
  • 3
    One of the most powerful languages *(see blub paradox)*
  • 2
    Highly expressive, type-safe, fast development time
  • 2
    Reliable
  • 2
    Kind system
  • 2
    Pattern matching and completeness checking
  • 2
    Better type-safe than sorry
  • 2
    Type classes
  • 2
    Great maintainability of the code
  • 2
    Fun
  • 2
    Best in class thinking tool
  • 0
    Orthogonality
  • 0
    Predictable
CONS OF HASKELL
  • 8
    Error messages can be very confusing
  • 8
    Too much distraction in language extensions
  • 4
    Libraries have poor documentation
  • 3
    No best practices
  • 3
    No good ABI
  • 2
    Sometimes performance is unpredictable
  • 2
    Poor packaging for apps written in it for Linux distros
  • 1
    Slow compilation

related Haskell posts

Vadim Bakaev
Shared insights
on
HaskellHaskellScalaScala

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.

See more
Elm logo

Elm

651
720
318
A type inferred, functional reactive language that compiles to HTML, CSS, and JavaScript
651
720
+ 1
318
PROS OF ELM
  • 45
    Code stays clean
  • 43
    Great type system
  • 40
    No Runtime Exceptions
  • 33
    Fun
  • 28
    Easy to understand
  • 23
    Type safety
  • 22
    Correctness
  • 17
    JS fatigue
  • 12
    Declarative
  • 12
    Ecosystem agrees on one Application Architecture
  • 10
    Friendly compiler messages
  • 8
    Fast rendering
  • 7
    If it compiles, it runs
  • 7
    Welcoming community
  • 5
    Stable ecosystem
  • 4
    'Batteries included'
  • 2
    Package.elm-lang.org
CONS OF ELM
  • 3
    No typeclasses -> repitition (i.e. map has 130versions)
  • 2
    JS interop can not be async
  • 2
    JS interoperability a bit more involved
  • 1
    More code is required
  • 1
    No JSX/Template
  • 1
    Main developer enforces "the correct" style hard
  • 1
    No communication with users
  • 1
    Backwards compability breaks between releases

related Elm posts

Shared insights
on
ReactReactReduxReduxElmElm

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.

See more
TypeScript logo

TypeScript

76.9K
59.4K
488
A superset of JavaScript that compiles to clean JavaScript output
76.9K
59.4K
+ 1
488
PROS OF TYPESCRIPT
  • 169
    More intuitive and type safe javascript
  • 102
    Type safe
  • 78
    JavaScript superset
  • 47
    The best AltJS ever
  • 27
    Best AltJS for BackEnd
  • 15
    Powerful type system, including generics & JS features
  • 11
    Nice and seamless hybrid of static and dynamic typing
  • 10
    Aligned with ES development for compatibility
  • 10
    Compile time errors
  • 7
    Structural, rather than nominal, subtyping
  • 7
    Angular
  • 4
    Starts and ends with JavaScript
  • 1
    Garbage collection
CONS OF TYPESCRIPT
  • 5
    Code may look heavy and confusing
  • 3
    Hype

related TypeScript posts

Yshay Yaacobi

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

See more
Adebayo Akinlaja
Engineering Manager at Andela · | 29 upvotes · 1.6M views

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.

See more
LiveScript logo

LiveScript

97
12
0
A language which compiles to JavaScript
97
12
+ 1
0
PROS OF LIVESCRIPT
    Be the first to leave a pro
    CONS OF LIVESCRIPT
      Be the first to leave a con

      related LiveScript posts

      ClojureScript logo

      ClojureScript

      301
      280
      2
      A Clojure compiler targeting JavaScript
      301
      280
      + 1
      2
      PROS OF CLOJURESCRIPT
      • 2
        Functional and stable
      CONS OF CLOJURESCRIPT
        Be the first to leave a con

        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#.
        See more
        ReasonML logo

        ReasonML

        72
        89
        8
        A friendly programming language for JavaScript and OCaml
        72
        89
        + 1
        8
        PROS OF REASONML
        • 4
          Pattern Matching
        • 3
          Type System
        • 1
          React
        CONS OF REASONML
        • 1
          Bindings

        related ReasonML posts

        React logo

        React

        146.8K
        121.4K
        4K
        A JavaScript library for building user interfaces
        146.8K
        121.4K
        + 1
        4K
        PROS OF REACT
        • 801
          Components
        • 663
          Virtual dom
        • 572
          Performance
        • 500
          Simplicity
        • 442
          Composable
        • 183
          Data flow
        • 165
          Declarative
        • 126
          Isn't an mvc framework
        • 116
          Reactive updates
        • 113
          Explicit app state
        • 44
          JSX
        • 27
          Learn once, write everywhere
        • 20
          Uni-directional data flow
        • 20
          Easy to Use
        • 16
          Works great with Flux Architecture
        • 11
          Great perfomance
        • 9
          Built by Facebook
        • 9
          Javascript
        • 7
          TypeScript support
        • 6
          Speed
        • 5
          Hooks
        • 5
          Excellent Documentation
        • 5
          Props
        • 5
          Functional
        • 5
          Easy as Lego
        • 5
          Closer to standard JavaScript and HTML than others
        • 5
          Cross-platform
        • 5
          Server Side Rendering
        • 5
          Feels like the 90s
        • 5
          Easy to start
        • 5
          Awesome
        • 5
          Scalable
        • 4
          Strong Community
        • 4
          Server side views
        • 4
          Fancy third party tools
        • 4
          Scales super well
        • 4
          Start simple
        • 4
          Super easy
        • 3
          Simple, easy to reason about and makes you productive
        • 3
          Fast evolving
        • 3
          SSR
        • 3
          Great migration pathway for older systems
        • 3
          Rich ecosystem
        • 3
          Simple
        • 3
          Has functional components
        • 3
          Allows creating single page applications
        • 3
          Has arrow functions
        • 3
          Very gentle learning curve
        • 3
          Sdfsdfsdf
        • 3
          Beautiful and Neat Component Management
        • 3
          Just the View of MVC
        • 2
          Split your UI into components with one true state
        • 2
          Fragments
        • 2
          Sharable
        • 2
          Every decision architecture wise makes sense
        • 2
          Permissively-licensed
        • 1
          Image upload
        • 1
          HTML-like
        • 1
          Recharts
        CONS OF REACT
        • 38
          Requires discipline to keep architecture organized
        • 27
          No predefined way to structure your app
        • 26
          Need to be familiar with lots of third party packages
        • 10
          JSX
        • 8
          Not enterprise friendly
        • 6
          One-way binding only
        • 3
          State consistency with backend neglected
        • 3
          Bad Documentation
        • 2
          Paradigms change too fast
        • 2
          Error boundary is needed

        related React posts

        Vaibhav Taunk
        Team Lead at Technovert · | 31 upvotes · 2.3M views

        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.

        See more
        Adebayo Akinlaja
        Engineering Manager at Andela · | 29 upvotes · 1.6M views

        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.

        See more
        JavaScript logo

        JavaScript

        290.3K
        233K
        8K
        Lightweight, interpreted, object-oriented language with first-class functions
        290.3K
        233K
        + 1
        8K
        PROS OF JAVASCRIPT
        • 1.6K
          Can be used on frontend/backend
        • 1.5K
          It's everywhere
        • 1.2K
          Lots of great frameworks
        • 894
          Fast
        • 741
          Light weight
        • 424
          Flexible
        • 391
          You can't get a device today that doesn't run js
        • 286
          Non-blocking i/o
        • 235
          Ubiquitousness
        • 190
          Expressive
        • 54
          Extended functionality to web pages
        • 48
          Relatively easy language
        • 45
          Executed on the client side
        • 29
          Relatively fast to the end user
        • 24
          Pure Javascript
        • 20
          Functional programming
        • 14
          Async
        • 11
          Setup is easy
        • 11
          Its everywhere
        • 11
          Full-stack
        • 10
          Because I love functions
        • 9
          JavaScript is the New PHP
        • 9
          Like it or not, JS is part of the web standard
        • 8
          Can be used in backend, frontend and DB
        • 8
          Expansive community
        • 8
          Easy
        • 7
          Can be used both as frontend and backend as well
        • 7
          Most Popular Language in the World
        • 7
          For the good parts
        • 7
          Everyone use it
        • 7
          Easy to hire developers
        • 7
          No need to use PHP
        • 7
          Future Language of The Web
        • 6
          Powerful
        • 6
          Photoshop has 3 JS runtimes built in
        • 6
          Love-hate relationship
        • 6
          Evolution of C
        • 6
          Supports lambdas and closures
        • 6
          Agile, packages simple to use
        • 6
          Popularized Class-Less Architecture & Lambdas
        • 5
          Client side JS uses the visitors CPU to save Server Res
        • 5
          1.6K Can be used on frontend/backend
        • 5
          Versitile
        • 5
          Hard not to use
        • 5
          Its fun and fast
        • 5
          It's fun
        • 5
          Nice
        • 5
          Easy to make something
        • 5
          Can be used on frontend/backend/Mobile/create PRO Ui
        • 5
          It let's me use Babel & Typescript
        • 4
          Everywhere
        • 4
          Client processing
        • 4
          Function expressions are useful for callbacks
        • 4
          Stockholm Syndrome
        • 4
          What to add
        • 4
          Clojurescript
        • 4
          Promise relationship
        • 4
          Scope manipulation
        • 3
          Only Programming language on browser
        • 3
          Because it is so simple and lightweight
        • 0
          Easy to understand
        CONS OF JAVASCRIPT
        • 22
          A constant moving target, too much churn
        • 20
          Horribly inconsistent
        • 15
          Javascript is the New PHP
        • 8
          No ability to monitor memory utilitization
        • 7
          Shows Zero output in case of ANY error
        • 6
          Can be ugly
        • 6
          Thinks strange results are better than errors
        • 3
          No GitHub
        • 2
          Slow

        related JavaScript posts

        Zach Holman

        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.

        See more
        Conor Myhrvold
        Tech Brand Mgr, Office of CTO at Uber · | 41 upvotes · 5.7M views

        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

        See more