Alternatives to MATLAB logo

Alternatives to MATLAB

R Language, NumPy, Octave, Tableau, and Python are the most popular alternatives and competitors to MATLAB.
787
655
+ 1
34

What is MATLAB and what are its top alternatives?

Using MATLAB, you can analyze data, develop algorithms, and create models and applications. The language, tools, and built-in math functions enable you to explore multiple approaches and reach a solution faster than with spreadsheets or traditional programming languages, such as C/C++ or Java.
MATLAB is a tool in the Languages category of a tech stack.

Top Alternatives to MATLAB

  • R Language
    R Language

    R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, ...) and graphical techniques, and is highly extensible. ...

  • NumPy
    NumPy

    Besides its obvious scientific uses, NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases. ...

  • Octave
    Octave

    It is software featuring a high-level programming language, primarily intended for numerical computations. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB. ...

  • Tableau
    Tableau

    Tableau can help anyone see and understand their data. Connect to almost any database, drag and drop to create visualizations, and share with a click. ...

  • Python
    Python

    Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best. ...

  • Matplotlib
    Matplotlib

    It is a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. It can be used in Python scripts, the Python and IPython shells, the Jupyter notebook, web application servers, and four graphical user interface toolkits. ...

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

  • PHP
    PHP

    Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world. ...

MATLAB alternatives & related posts

R Language logo

R Language

3K
1.8K
399
A language and environment for statistical computing and graphics
3K
1.8K
+ 1
399
PROS OF R LANGUAGE
  • 82
    Data analysis
  • 61
    Graphics and data visualization
  • 53
    Free
  • 44
    Great community
  • 37
    Flexible statistical analysis toolkit
  • 26
    Access to powerful, cutting-edge analytics
  • 26
    Easy packages setup
  • 18
    Interactive
  • 12
    R Studio IDE
  • 9
    Hacky
  • 7
    Shiny apps
  • 6
    Shiny interactive plots
  • 5
    Preferred Medium
  • 5
    Automated data reports
  • 4
    Cutting-edge machine learning straight from researchers
  • 2
    Machine Learning
  • 2
    Graphical visualization
CONS OF R LANGUAGE
  • 6
    Very messy syntax
  • 4
    Tables must fit in RAM
  • 3
    Arrays indices start with 1
  • 2
    Messy syntax for string concatenation
  • 2
    No push command for vectors/lists
  • 1
    Messy character encoding
  • 0
    Poor syntax for classes
  • 0
    Messy syntax for array/vector combination

related R Language posts

Eric Colson
Chief Algorithms Officer at Stitch Fix · | 21 upvotes · 2.6M views

The algorithms and data infrastructure at Stitch Fix is housed in #AWS. Data acquisition is split between events flowing through Kafka, and periodic snapshots of PostgreSQL DBs. We store data in an Amazon S3 based data warehouse. Apache Spark on Yarn is our tool of choice for data movement and #ETL. Because our storage layer (s3) is decoupled from our processing layer, we are able to scale our compute environment very elastically. We have several semi-permanent, autoscaling Yarn clusters running to serve our data processing needs. While the bulk of our compute infrastructure is dedicated to algorithmic processing, we also implemented Presto for adhoc queries and dashboards.

Beyond data movement and ETL, most #ML centric jobs (e.g. model training and execution) run in a similarly elastic environment as containers running Python and R code on Amazon EC2 Container Service clusters. The execution of batch jobs on top of ECS is managed by Flotilla, a service we built in house and open sourced (see https://github.com/stitchfix/flotilla-os).

At Stitch Fix, algorithmic integrations are pervasive across the business. We have dozens of data products actively integrated systems. That requires serving layer that is robust, agile, flexible, and allows for self-service. Models produced on Flotilla are packaged for deployment in production using Khan, another framework we've developed internally. Khan provides our data scientists the ability to quickly productionize those models they've developed with open source frameworks in Python 3 (e.g. PyTorch, sklearn), by automatically packaging them as Docker containers and deploying to Amazon ECS. This provides our data scientist a one-click method of getting from their algorithms to production. We then integrate those deployments into a service mesh, which allows us to A/B test various implementations in our product.

For more info:

#DataScience #DataStack #Data

See more
Maged Maged Rafaat Kamal
Shared insights
on
PythonPythonR LanguageR Language

I am currently trying to learn R Language for machine learning, I already have a good knowledge of Python. What resources would you recommend to learn from as a beginner in R?

See more
NumPy logo

NumPy

2K
712
10
Fundamental package for scientific computing with Python
2K
712
+ 1
10
PROS OF NUMPY
  • 8
    Great for data analysis
  • 2
    Faster than list
CONS OF NUMPY
    Be the first to leave a con

    related NumPy posts

    Server side

    We decided to use Python for our backend because it is one of the industry standard languages for data analysis and machine learning. It also has a lot of support due to its large user base.

    • Web Server: We chose Flask because we want to keep our machine learning / data analysis and the web server in the same language. Flask is easy to use and we all have experience with it. Postman will be used for creating and testing APIs due to its convenience.

    • Machine Learning: We decided to go with PyTorch for machine learning since it is one of the most popular libraries. It is also known to have an easier learning curve than other popular libraries such as Tensorflow. This is important because our team lacks ML experience and learning the tool as fast as possible would increase productivity.

    • Data Analysis: Some common Python libraries will be used to analyze our data. These include NumPy, Pandas , and matplotlib. These tools combined will help us learn the properties and characteristics of our data. Jupyter notebook will be used to help organize the data analysis process, and improve the code readability.

    Client side

    • UI: We decided to use React for the UI because it helps organize the data and variables of the application into components, making it very convenient to maintain our dashboard. Since React is one of the most popular front end frameworks right now, there will be a lot of support for it as well as a lot of potential new hires that are familiar with the framework. CSS 3 and HTML5 will be used for the basic styling and structure of the web app, as they are the most widely used front end languages.

    • State Management: We decided to use Redux to manage the state of the application since it works naturally to React. Our team also already has experience working with Redux which gave it a slight edge over the other state management libraries.

    • Data Visualization: We decided to use the React-based library Victory to visualize the data. They have very user friendly documentation on their official website which we find easy to learn from.

    Cache

    • Caching: We decided between Redis and memcached because they are two of the most popular open-source cache engines. We ultimately decided to use Redis to improve our web app performance mainly due to the extra functionalities it provides such as fine-tuning cache contents and durability.

    Database

    • Database: We decided to use a NoSQL database over a relational database because of its flexibility from not having a predefined schema. The user behavior analytics has to be flexible since the data we plan to store may change frequently. We decided on MongoDB because it is lightweight and we can easily host the database with MongoDB Atlas . Everyone on our team also has experience working with MongoDB.

    Infrastructure

    • Deployment: We decided to use Heroku over AWS, Azure, Google Cloud because it is free. Although there are advantages to the other cloud services, Heroku makes the most sense to our team because our primary goal is to build an MVP.

    Other Tools

    • Communication Slack will be used as the primary source of communication. It provides all the features needed for basic discussions. In terms of more interactive meetings, Zoom will be used for its video calls and screen sharing capabilities.

    • Source Control The project will be stored on GitHub and all code changes will be done though pull requests. This will help us keep the codebase clean and make it easy to revert changes when we need to.

    See more

    Should I continue learning Django or take this Spring opportunity? I have been coding in python for about 2 years. I am currently learning Django and I am enjoying it. I also have some knowledge of data science libraries (Pandas, NumPy, scikit-learn, PyTorch). I am currently enhancing my web development and software engineering skills and may shift later into data science since I came from a medical background. The issue is that I am offered now a very trustworthy 9 months program teaching Java/Spring. The graduates of this program work directly in well know tech companies. Although I have been planning to continue with my Python, the other opportunity makes me hesitant since it will put me to work in a specific roadmap with deadlines and mentors. I also found on glassdoor that Spring jobs are way more than Django. Should I apply for this program or continue my journey?

    See more
    Octave logo

    Octave

    63
    78
    11
    A programming language for scientific computing
    63
    78
    + 1
    11
    PROS OF OCTAVE
    • 7
      Free
    • 3
      Easy
    • 1
      Small code
    CONS OF OCTAVE
    • 1
      Not widely used in the industry

    related Octave posts

    Tableau logo

    Tableau

    1.1K
    1.2K
    9
    Tableau helps people see and understand data.
    1.1K
    1.2K
    + 1
    9
    PROS OF TABLEAU
    • 6
      Capable of visualising billions of rows
    • 1
      3
    • 1
      Intuitive and easy to learn
    • 1
      Responsive
    CONS OF TABLEAU
    • 1
      Very expensive for small companies

    related Tableau posts

    Looking for the best analytics software for a medium-large-sized firm. We currently use a Microsoft SQL Server database that is analyzed in Tableau desktop/published to Tableau online for users to access dashboards. Is it worth the cost savings/time to switch over to using SSRS or Power BI? Does anyone have experience migrating from Tableau to SSRS /or Power BI? Our other option is to consider using Tableau on-premises instead of online. Using custom SQL with over 3 million rows really decreases performances and results in processing times that greatly exceed our typical experience. Thanks.

    See more
    Python logo

    Python

    200.2K
    169.2K
    6.7K
    A clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.
    200.2K
    169.2K
    + 1
    6.7K
    PROS OF PYTHON
    • 1.1K
      Great libraries
    • 947
      Readable code
    • 835
      Beautiful code
    • 780
      Rapid development
    • 682
      Large community
    • 426
      Open source
    • 385
      Elegant
    • 278
      Great community
    • 268
      Object oriented
    • 214
      Dynamic typing
    • 75
      Great standard library
    • 56
      Very fast
    • 51
      Functional programming
    • 43
      Scientific computing
    • 43
      Easy to learn
    • 33
      Great documentation
    • 26
      Matlab alternative
    • 25
      Productivity
    • 25
      Easy to read
    • 21
      Simple is better than complex
    • 18
      It's the way I think
    • 17
      Imperative
    • 15
      Very programmer and non-programmer friendly
    • 15
      Free
    • 14
      Machine learning support
    • 14
      Powerful
    • 14
      Powerfull language
    • 13
      Fast and simple
    • 12
      Scripting
    • 9
      Explicit is better than implicit
    • 8
      Unlimited power
    • 8
      Clear and easy and powerfull
    • 8
      Ease of development
    • 7
      Import antigravity
    • 6
      It's lean and fun to code
    • 6
      Print "life is short, use python"
    • 5
      I love snakes
    • 5
      Fast coding and good for competitions
    • 5
      There should be one-- and preferably only one --obvious
    • 5
      Python has great libraries for data processing
    • 5
      High Documented language
    • 5
      Although practicality beats purity
    • 5
      Flat is better than nested
    • 5
      Great for tooling
    • 4
      Readability counts
    • 4
      Rapid Prototyping
    • 3
      Lists, tuples, dictionaries
    • 3
      Socially engaged community
    • 3
      Now is better than never
    • 3
      Web scraping
    • 3
      Complex is better than complicated
    • 3
      Multiple Inheritence
    • 3
      Plotting
    • 3
      Beautiful is better than ugly
    • 3
      CG industry needs
    • 3
      Great for analytics
    • 2
      Easy to setup and run smooth
    • 2
      Generators
    • 2
      If the implementation is easy to explain, it may be a g
    • 2
      Special cases aren't special enough to break the rules
    • 2
      If the implementation is hard to explain, it's a bad id
    • 2
      Simple and easy to learn
    • 2
      Import this
    • 2
      Many types of collections
    • 2
      No cruft
    • 2
      Easy to learn and use
    • 2
      List comprehensions
    • 1
      Can understand easily who are new to programming
    • 1
      Because of Netflix
    • 1
      A-to-Z
    • 1
      Only one way to do it
    • 1
      It is Very easy , simple and will you be love programmi
    • 1
      Powerful language for AI
    • 1
      Flexible and easy
    • 1
      Better outcome
    • 1
      Batteries included
    • 1
      Pip install everything
    • 1
      Should START with this but not STICK with This
    • 1
      Good for hacking
    • 0
      Powerful
    CONS OF PYTHON
    • 51
      Still divided between python 2 and python 3
    • 28
      Performance impact
    • 26
      Poor syntax for anonymous functions
    • 21
      GIL
    • 19
      Package management is a mess
    • 14
      Too imperative-oriented
    • 12
      Hard to understand
    • 12
      Dynamic typing
    • 10
      Very slow
    • 8
      Not everything is expression
    • 7
      Explicit self parameter in methods
    • 7
      Indentations matter a lot
    • 6
      Poor DSL capabilities
    • 6
      Incredibly slow
    • 6
      No anonymous functions
    • 6
      Requires C functions for dynamic modules
    • 5
      Hard to obfuscate
    • 5
      Threading
    • 5
      Fake object-oriented programming
    • 5
      The "lisp style" whitespaces
    • 4
      Official documentation is unclear.
    • 4
      Circular import
    • 4
      Lack of Syntax Sugar leads to "the pyramid of doom"
    • 4
      Not suitable for autocomplete
    • 4
      The benevolent-dictator-for-life quit
    • 2
      Meta classes
    • 1
      Training wheels (forced indentation)

    related Python posts

    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
    Nick Parsons
    Building cool things on the internet 🛠️ at Stream · | 35 upvotes · 1.8M views

    Winds 2.0 is an open source Podcast/RSS reader developed by Stream with a core goal to enable a wide range of developers to contribute.

    We chose JavaScript because nearly every developer knows or can, at the very least, read JavaScript. With ES6 and Node.js v10.x.x, it’s become a very capable language. Async/Await is powerful and easy to use (Async/Await vs Promises). Babel allows us to experiment with next-generation JavaScript (features that are not in the official JavaScript spec yet). Yarn allows us to consistently install packages quickly (and is filled with tons of new tricks)

    We’re using JavaScript for everything – both front and backend. Most of our team is experienced with Go and Python, so Node was not an obvious choice for this app.

    Sure... there will be haters who refuse to acknowledge that there is anything remotely positive about JavaScript (there are even rants on Hacker News about Node.js); however, without writing completely in JavaScript, we would not have seen the results we did.

    #FrameworksFullStack #Languages

    See more
    Matplotlib logo

    Matplotlib

    606
    280
    10
    A plotting library for the Python programming language
    606
    280
    + 1
    10
    PROS OF MATPLOTLIB
    • 10
      The standard Swiss Army Knife of plotting
    CONS OF MATPLOTLIB
    • 5
      Lots of code

    related Matplotlib posts

    Shared insights
    on
    MatplotlibMatplotlibBokehBokehDjangoDjango

    Hi - I am looking to develop an app accessed by a browser that will display interactive networks (including adding or deleting nodes, edges, labels (or changing labels) based on user input. Look to use Django at the backend. Also need to manage graph versions if one person makes a graph change while another person is looking at it. Mainly tree networks for starters anyway. I probably will use the Networkx package. Not sure what the pros and cons are using Bokeh vs Matplotlib. I would be grateful for any comments or suggestions. Thanks.

    See more
    JavaScript logo

    JavaScript

    289.6K
    232.5K
    8K
    Lightweight, interpreted, object-oriented language with first-class functions
    289.6K
    232.5K
    + 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
    PHP logo

    PHP

    129.2K
    71.5K
    4.6K
    A popular general-purpose scripting language that is especially suited to web development
    129.2K
    71.5K
    + 1
    4.6K
    PROS OF PHP
    • 948
      Large community
    • 814
      Open source
    • 763
      Easy deployment
    • 484
      Great frameworks
    • 384
      The best glue on the web
    • 234
      Continual improvements
    • 183
      Good old web
    • 145
      Web foundation
    • 134
      Community packages
    • 124
      Tool support
    • 35
      Used by wordpress
    • 33
      Excellent documentation
    • 28
      Used by Facebook
    • 23
      Because of Symfony
    • 21
      Dynamic Language
    • 16
      Cheap hosting
    • 15
      Easy to learn
    • 14
      Awesome Language and easy to implement
    • 14
      Fast development
    • 14
      Very powerful web language
    • 12
      Composer
    • 11
      Flexibility, syntax, extensibility
    • 10
      Because of Laravel
    • 8
      Easiest deployment
    • 7
      Worst popularity quality ratio
    • 7
      Fastestest Time to Version 1.0 Deployments
    • 7
      Fast
    • 7
      Readable Code
    • 7
      Short development lead times
    • 6
      Faster then ever
    • 6
      Most of the web uses it
    • 5
      Open source and large community
    • 5
      Simple, flexible yet Scalable
    • 4
      Easy to learn, a big community, lot of frameworks
    • 4
      Has the best ecommerce(Magento,Prestashop,Opencart,etc)
    • 4
      Is like one zip of air
    • 4
      Open source and great framework
    • 4
      Large community, easy setup, easy deployment, framework
    • 4
      Easy to use and learn
    • 4
      Cheap to own
    • 4
      I have no choice :(
    • 3
      Great developer experience
    • 2
      Great flexibility. From fast prototyping to large apps
    • 2
      Interpreted at the run time
    • 2
      FFI
    • 2
      Safe the planet
    • 2
      Hard not to use
    • 2
      Used by STOMT
    • 2
      Fault tolerance
    • 2
      Walk away
    • 1
      Simplesaml
    • 1
      Secure
    • 0
      Secure
    CONS OF PHP
    • 20
      So easy to learn, good practices are hard to find
    • 16
      Inconsistent API
    • 8
      Fragmented community
    • 5
      Not secure
    • 2
      No routing system
    • 1
      Hard to debug
    • 1
      Old

    related PHP posts

    Nick Rockwell
    SVP, Engineering at Fastly · | 44 upvotes · 2.3M views

    When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

    So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

    React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

    Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

    See more
    Simon Reymann
    Senior Fullstack Developer at QUANTUSflow Software GmbH · | 26 upvotes · 3.3M views

    Our whole Node.js backend stack consists of the following tools:

    • Lerna as a tool for multi package and multi repository management
    • npm as package manager
    • NestJS as Node.js framework
    • TypeScript as programming language
    • ExpressJS as web server
    • Swagger UI for visualizing and interacting with the API’s resources
    • Postman as a tool for API development
    • TypeORM as object relational mapping layer
    • JSON Web Token for access token management

    The main reason we have chosen Node.js over PHP is related to the following artifacts:

    • Made for the web and widely in use: Node.js is a software platform for developing server-side network services. Well-known projects that rely on Node.js include the blogging software Ghost, the project management tool Trello and the operating system WebOS. Node.js requires the JavaScript runtime environment V8, which was specially developed by Google for the popular Chrome browser. This guarantees a very resource-saving architecture, which qualifies Node.js especially for the operation of a web server. Ryan Dahl, the developer of Node.js, released the first stable version on May 27, 2009. He developed Node.js out of dissatisfaction with the possibilities that JavaScript offered at the time. The basic functionality of Node.js has been mapped with JavaScript since the first version, which can be expanded with a large number of different modules. The current package managers (npm or Yarn) for Node.js know more than 1,000,000 of these modules.
    • Fast server-side solutions: Node.js adopts the JavaScript "event-loop" to create non-blocking I/O applications that conveniently serve simultaneous events. With the standard available asynchronous processing within JavaScript/TypeScript, highly scalable, server-side solutions can be realized. The efficient use of the CPU and the RAM is maximized and more simultaneous requests can be processed than with conventional multi-thread servers.
    • A language along the entire stack: Widely used frameworks such as React or AngularJS or Vue.js, which we prefer, are written in JavaScript/TypeScript. If Node.js is now used on the server side, you can use all the advantages of a uniform script language throughout the entire application development. The same language in the back- and frontend simplifies the maintenance of the application and also the coordination within the development team.
    • Flexibility: Node.js sets very few strict dependencies, rules and guidelines and thus grants a high degree of flexibility in application development. There are no strict conventions so that the appropriate architecture, design structures, modules and features can be freely selected for the development.
    See more