DEV Community

Cover image for ๐Ÿš€โšกNew open-sourceโšก VS. old open-source ๐Ÿฆ–
Marine for Taipy

Posted on

๐Ÿš€โšกNew open-sourceโšก VS. old open-source ๐Ÿฆ–

TD;LR

In this article, I provide alternatives to mainstream Python libraries.
These alternatives add some value to the Python landscape even though mainstream libraries are supported by stronger active communities.
Choosing your libraries comes down to your use case and personal preference.

Gandalf


1.Taipy instead of Streamlit

Taipy is the new kid on the block. Just like Streamlit, Taipy provides an easy way to build interactive GUI;
however, Taipy addresses most of Streamlitโ€™s limitations/inefficiencies:

  • Manages both synchronous/asynchronous calls
  • Full notebook compatibility
  • Multi-user
  • There are more customization capabilities for your layout, styling, etc. (no CSS needed)
  • Big Data Support
  • Better performance

Taipy


QueenB stars

Star โญ the Taipy repository

We appreciate any kind of help to help us grow our community ๐ŸŒฑ


2.Polars instead of Pandas

Polars is inspired by Pythonโ€™s royalty: Pandas. Like it, itโ€™s a DataFrame library created to handle data, but it really shines when processing large datasets.
Polars is faster than Pandas by a factor of 10 to 100 for two main reasons:

  • Polarsโ€™ built-in parallel processing
  • Being written in Rust

Will Polars replace Pandas? Only time will tell.

Polars

Check out Polars


3.Dask instead of PySpark

Dask can handle larger-than-memory computations combined with parallel computing.
It is a great tool when you want your calculations to scale. It is written natively in Python, making it a breeze to learn/use (for Python developers).
It is not designed for super large big data (over or 2 TB), nor is it competitive (with Spark) if you are dealing with SQL-like queries.
Perfect for laptop executions.

Dask

Check out Dask


4.LightGBM instead of XGBoost

Both XGBoost and LightGBM are gradient-boosting libraries.
XGBoost is a Kaggle favorite, but when it comes to handling large datasets, LightGBM is optimized for Big data with parallel computation.

LGBM

Check out LightGBM


5.PyCaret instead of Scikit-learn

Like Scikit-learn, you can perform Machine Learning tasks with PyCaret.
PyCaret showcases its functionalities through simpler code, a great way to get started with ML learning projects.
PyCaret is simple and easy to learn. Some of its high-level functionalities are:

  • EDA & Data Processing
  • modeling / Training
  • Model Explainability
  • Model Deployment

Its end-to-end coverage of the various machine learning steps makes PyCaret a great tool for ML enthusiasts or even senior Data Scientists with no time for deeper analysis!

Pycaret

Check out PyCaret


6.Darts instead of tsfresh

Both libraries are dedicated to time series. However, they serve different purposes.

Darts is the โ€œsklearnโ€™ of time series. It covers all the different functions a DS needs when dealing with time series:

  • Data Discovery
  • Data Preprocessing
  • Forecasting
  • Model Evaluation / Selection

No need to use several libraries anymore; it is all available in Darts.

tsfresh is about automating one of the most challenging steps when preparing time series for an ML training step: feature extraction and selection.

tsfresh can extract a large panel of features from your time series and help you identify the relevant ones.

Darts

Check out Darts


7.PyTorch instead of TensorFlow

Both are the go-to libraries for data scientists and researchers involved with deep learning.
TensorFlow was the prevalent library a few years back, but from 2020 to 2021, PyTorch has caught up with TensorFlow.

How do you choose between these two incredible libraries?

PyTorch seems to have an edge in research with a bigger focus on NLP.
Additionally, PyTorch has a more pythonic feel with an easier learning curve.
I would recommend giving PyTorch a go if youโ€™re new to the deep-learning game; otherwise, both libraries are on par.

Pytorch

Check out PyTorch


8.Arcade instead of Pygame

In the Python 2D gaming scene, Pygame has acquired a solid reputation, while Arcade, a newer but well-established library, stands out on these properties:

  • built-in game loop
  • efficient event model
  • more features
  • more user-friendly

Both libraries have their own advantages; however Arcade is a more suitable option for beginners.
Pygame does offers an educational alternative, Pygame Zero, a better option for new developers.

Arcade

Check out Arcade


9.spaCy instead of NLTK

NLTK is the mainstream library for Natural Language Processing and has a plethora of functionalities.
However, with more complexity comes a steeper learning curve. SpaCy is a good option for getting started in the field.
The other big advantage of SpaCy is that it was built to optimize NLP applications, focusing on greater speed and efficiency.

Spacy

Check out spaCy


10.Ruff instead of Pylint

Linters are an essential part of any coding journey.
Pylint is widely used, but Ruff adds effectiveness and speed to the process.
It is known to be 10-100 times faster than equivalent linters, Ruff is definitely a good library to check out as a Pylint alternative.

Ruff

Check out Ruff


I hope you enjoyed this article!๐Ÿ™‚
Iโ€™m a rookie writer and would welcome any suggestions for improvement!
Feel free to share if you have favorite libraries that you prefer over more mainstream ones.

new

Top comments (19)

Collapse
 
ldrscke profile image
Christian Ledermann • Edited

Some additions:

  • PyGWalker A Python Library for Exploratory Data Analysis with Visualization
  • LiteStar is a powerful, flexible yet opinionated ASGI framework, focused on building APIs, and offers high-performance data validation and parsing, dependency injection, first-class ORM integration, authorization primitives, and much more that's needed to get applications up and running.
  • appeal is a command-line argument processing library for Python, like argparse, optparse, getopt, docopt, Typer, and click. But Appeal takes a refreshing new approach.
Collapse
 
marisogo profile image
Marine

Never heard of PyGWalker, but looks great, thanks for sharing!

Collapse
 
ldrscke profile image
Christian Ledermann

It is pretty new, Python Bytes 326 has a short intro

Also have a look at Shiny Shiny for Python - Talk Python Live Stream

Thread Thread
 
marisogo profile image
Marine

Will do! Thanks!

Collapse
 
chopslip profile image
chopslip

The new tech is 100% better

Collapse
 
matijasos profile image
Matija Sosic

Great to learn about the new python OSS tools!

Collapse
 
fernandezbaptiste profile image
Bap

Super cool perspective - the new will,, at some point, have to replace the old; that's how life works ๐Ÿ™ƒ

Collapse
 
srbhr profile image
Saurabh Rai

Awesome article and things brings out a great perspective. I've used all the old tech ๐Ÿ˜‚.

Collapse
 
nevodavid profile image
Nevo David

it really is refreshing to see some new tools!

Collapse
 
devshreeom profile image
OM JADHAV

Nice perspective! Actually i use application which are open source like instade of PHOTOSHOP I use GIMP which is great too!

Collapse
 
marisogo profile image
Marine

Oh thanks for the share, I will check that out!

Collapse
 
aleajactaest78 profile image
AleaJactaEst

RainbowCSV saved me from being blind

Collapse
 
marisogo profile image
Marine

Hahaha same

Collapse
 
annesogos profile image
Anne

Always good to check whatโ€™s newwww ๐Ÿ‘๐Ÿผ

Collapse
 
acrigney profile image
acrigney

Great stuff mate and for C# devs like me I am getting into github.com/microsoft/semantic-kernel/ and github.com/microsoft/kernel-memory but they are very much a work in progress it seems.

Collapse
 
andrewrgarcia profile image
Andrew Garcia

Is that Ed Truck?

Collapse
 
guybuildingai profile image
Jeffrey Ip

Great stuff!

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Nice article!

Collapse
 
rym_michaut profile image
Rym

Ow, really nice! I did know all the mainstream ones, but none of the new... Thank you so much for this article