Need advice about which tool to choose?Ask the StackShare community!
Python vs Rust: What are the differences?
Introduction
When comparing Python and Rust, there are some key differences in terms of performance, memory management, type system, and error handling that developers should consider before choosing a language for their projects.
Performance: Rust has a reputation for being much faster than Python due to its approach to memory management and low-level system interactions. Rust's performance characteristics are well-suited for tasks like system programming, game development, and other performance-critical applications. Meanwhile, Python is known for being slower, primarily due to its dynamic typing and interpreted nature, making it more suitable for applications where performance is not critical.
Memory Management: Rust emphasizes safety and control over memory management through its ownership system, which allows for efficient memory utilization without sacrificing safety. Python, on the other hand, uses automatic memory management and garbage collection, which simplifies memory management for the developer but can introduce overhead and memory leaks in certain scenarios.
Type System: Rust is a statically typed language with a strong emphasis on compile-time type checking, providing developers with greater confidence in code correctness and improved performance optimization opportunities. Python, on the other hand, is dynamically typed, which offers flexibility and simplicity but can lead to runtime errors due to type mismatches.
Error Handling: In Rust, error handling is done through the Result and Option types, which encourage developers to handle errors explicitly at compile time and provide detailed error messages to aid debugging. Python uses exceptions for error handling, which can lead to cleaner and more concise code but may introduce performance overhead in certain scenarios.
Concurrency and Parallelism: Rust's ownership system enables safe and efficient concurrency by preventing data races at compile time, making it easier to write concurrent code without fear of common pitfalls. Python, while supporting concurrency through libraries like asyncio, lacks the built-in tools for safe concurrency that Rust offers.
Community and Ecosystem: Python has a vast ecosystem of libraries and frameworks that cater to various domains, making it an attractive choice for rapid prototyping and web development. Rust, being a newer language, has a smaller but rapidly growing community and ecosystem, particularly suited for system programming and performance-critical applications.
In Summary, Python and Rust differ significantly in terms of performance, memory management, type system, error handling, concurrency, and community support, making each language suitable for different types of projects.
Hello!
I'm a developer for over 9 years, and most of this time I've been working with C# and it is paying my bills until nowadays. But I'm seeking to learn other languages and expand the possibilities for the next years.
Now the question... I know Ruby is far from dead but is it still worth investing time in learning it? Or would be better to take Python, Golang, or even Rust? Or maybe another language.
Thanks in advance.
Hi Caue, I don't think any language is dead in 2022, and we still see a lot of Cobol and Fortran out there, so Ruby is not going to die for sure. However, based on the market, you'll be better off learning Goland and Python. For example, for data science, machine learning, and similar areas, Python is the default language while backend API, services, and other general purpose Goland is becoming the preferred.
I hope this helps.
I feel most productive using go. It has all the features I need and doesn't throw road blocks in your way as you learn. Rust is the most difficult to learn as borrow checking and other features can puzzle a newcomer for days. Python is a logical next step as it has a huge following, many great libraries, and one can find a gig using python in a heartbeat. Ruby isn't awful, it's just not that popular as the others.
Another reason to use python is that it is not compiled. You can muck around in the interpreter until you figure things out. OTOH, that makes it less performant. You really need to think about your use cases, your interest in lower-lever versus high-level coding, and so on.
I enjoy coding in Python. I think it's minimalistic and readable syntax and lang features are just unparalleled. They are perfect for prototyping and for the software engineering in general. If I'm not wrong Gitlab marked Python as #2 popular language after JavaScript. Beyond that, Python ecosystem and areas of usage are enormous. In areas like ML/DL, it's important to know Python to leverage variety of existing tools and frameworks.
Then, I have learned and worked with Golang. I use it where I think I would need a slightly better performance than in Python. Plus, relatively small and self-contained executable is a great thing to have. If you plan to write distributed systems, extend Kubernetes or do similar things I think Golang is a great choice. It's also simple and straightforward, especially when you want to do effective multithreading. Although I don't like that Golang is more low-level than Python. Sometimes I feel like I need to implement myself too much things.
Now, about Rust. It's my second try to learn Rust. First time I decided to learn Golang as I understood it in 30mins or so while I was struggling to compile/do anything meaningful there for quite a bit. So I personally don't think Rust is super easy. I have got back to learning Rust as it's going to fill one of gaps in my problem solving toolkit - let me write low-level system programs (e.g. linux kernel modules). I don't want to learn "obsolete" C/C++ (my reasons are similar to why Google has recently introduced Carbon - a replacement for C/C++ codebases). If you are not going to tight your life with system-like programming, Rust may be an overkill for you.
Finally, I have never coded in Ruby, so are not going to comment it.
Since you are very experienced, picking up a language will not take you more than a week. Rust is a very new language. Many startups are still experimenting with it. Golang is very popular nowadays. You can see a lot of golang jobs in the market. The best part is, compiled code is single binary and has a minimal footprint. Rails is a compelling framework; believe me, many websites like Shopify, GitHub, GitLab, etc., are powered by the rails framework. You can also leverage the power of metaprogramming in Ruby. Python is memory and CPU intensive. It is not as performant as the other three. If you want to go into Data Science, Python is the language. Good luck, buddy. Feel free to connect with me: https://twitter.com/avirajkhare00
Because it opens endless possibilities you can do anything and everything you want to. from ai to app development to web development.
I'm almost same position as you. 8 years same company with c#. I tried both Python and Golang. I like working with Golang. Check this litte go doc. After reading this document and following its examples, I decided to work with "go" https://www.openmymind.net/assets/go/go.pdf
Either Python or Golang, for all the enlightened reasons already mentionned in all advices/comments :) Enjoy!
Hello Devs,
I am planning to implement a ETL test system for checking data quality and business use cases. I am confused on what stack to use. Any advice on the below will be very helpful.
- Any existing frameworks and its source code for help
- Any other stack apart from the mentioned stack (that might be suitable)
- Any ideas for features are welcomed.
- The usage of multiple BE stacks.
If you want to create using Python language, Robot Framework is one very helpful tool to improve your test scripting and we have a lot of methods created by the community. If you want to use Javascript, Cypress in terms of benefits is the better option to create and maintain tests, and run and generate reports in many browsers is really easy with them.
I intend to use a programming language which I'll use as AWS runtime and write a script that will comb through tons of files in a directory and its subdirectories and search for simple text regular expressions and process and write the matches in a file as output. I have heard that Perl is good for regex based search but I also want the performance to be good as it will have to go through tons of files for IO. In this post: https://filia-aleks.medium.com/aws-lambda-battle-2021-performance-comparison-for-all-languages-c1b441005fd1, I see that Rust works well as AWS Lambda runtime with very good performance. Which one should I choose as my AWS lambda runtime for this problem? Golang is also an option as it is fast as per the above link.
I used to work in a Perl shop and must admit that the language is very simple for tasks like these, but as you mentioned it's not fast at execution time. I'm now a Go programmer professionally but I taught myself the language while in college purely out of interest and eventually found my way to the job, not the other way around. I've recently been learning a little rust because of how much that language comes up in conversations around Go. I find the concept of the borrow checker nice but I have to admit I feel lost like I am in most flavors of new fancy framework js. That's not to say Rust is really anything like js, but the learning appears the same to me as someone who's convinced they could learn just about any programming language if it was necessary (over time I've seen procedural, OOP, declarative and functional stuff but never programming logic outside of the prolog code I wrote in school).
Go isn't made for your specific task at hand but it's a very easy language to pick up and it has good directory traversal standard library code and good regex (even though with time perl's has been optimized to be faster and I think it's written in C++) but more than anything Go is "cloud native" programming in that an awful lot of new microservice tech stacks are centered around it, docker and kubernetes are written in it, and there's a thriving community whose focus is generally web-first and performance-oriented. This means for your use case there might already be a large cohort of gophers that have asked the stackoverflow questions for you
I personally would push you towards the NYT Profiler for Perl before I would towards Rest, but that's because I know you wouldn't waste any time being able to get to the task at hand and then make it go faster, and I expect all but a few rustaceans would be able to do so with the same speed.
Whatever you pick I wish you the very best of luck!
Hello Folks, my first time here, and for requesting advice. I am trying to create some automation from my cloud stack on AWS to something more cloud native. I have containerised the services, however, I am stuck at DB, my Data warehouse, and messaging. Would love some recommendations on how can I automate this for some future work too.
I recommend cloud-init for base setup of machines and configuring them.. Its simple (YAML file) and is industry standard. Even works on bare metal as well as cloud.
I've been working with Js/Ts as a backend developer and I would like to get some suggestions about what new language to learn right now. I've been thinking about Elixir or Rust, focusing on creating WebApis and Blockchain technology. I am passionate about the funcional way but I'm now confident about Elixir in Blockchain. Rust seems like have more jobs about it than Elixir in a little research. Someone could give me some advice? Thank you.
For web development I would suggest to take a look into Elixir. Elixir is extemely good for real time apps through websockets, apps with a need of high concurrency and / or apps where you need to process hundreds of thousands of states of differents users in parallel thanks to the actor model that comes with Erlang virtual machine. To solve these kind of problems in another stack could be really hard and painful (including your current stack).
It's true that Elixir is a niche stack ( It deserves way more popularity in my opinion), so, if your concern is to learn something that would keep you inside the trend and market, instead of Rust or Elixir I would suggest Go. Go it's another outstanding language, will a lot of virtues, small and easy to learn, with it for example, you could compile the same application to different operating systems just with a special compiler command (And the compiler is blazing fast). You can also start with a lot of good libraries that helps you to keep your code clean and under control and of course, it's performance is very good too.
Hope my suggestions could be helpful.
Best regards, and happy coding!
Golang is to my mind by far the greatest bang for your buck in terms of investing your time it has a low barrier to entry. Elixir is fun and all, but it is VERY VERY niche. You are very unlikely to find a job directly requiring Elixir. Rust is a good option depending on what you want to achieve but golang is a great general-purpose language that has a very approachable learning curve, great documentation and a lot of jobs available. There are some very high profile projects written in golang. Docker, Kubernetes, InfluxDB and Grafana just to name a few. I was at this same junction at the end of 2018 having spent a lot of time in JS/TS & Ruby. I had already learned Elixir and done a couple of projects in it and I switched to Golang as I didn't want to learn niche languages. I have never regretted my choice. Obviously, every tool has its place but golang is a winner if you want to learn something new :)
Hey everyone, I have a matrix chart drawn in HTML5/CSS 3 dominantly using CSS grid. I would like to add interactive features and am unsure about the best tool. My programming knowledge is limited to 2 semesters of Java in college, so I'd have to learn the language as I go. I am open to anything, but the selected languages would be useful in future projects.
Here are the features I am attempting to add to the site linked as my blog:
Assign over 120 attributes each to over 400 elements (probably in a DB)
Procedurally position elements in a matrix chart based on user-inputted filters (filtering and searching)
Procedurally position matrix elements based on attributes weighted by user-input
Change style of elements based on user input (highlighting)
Allow saving matrix chart states to be revisited or shared
Provide a user-friendly interface for users to submit the above input
Build several columns or matrices that are separate but related and seamless to the viewer
PyCharm + Python + Flask + Jinja2 is enough to build web server/ajax and JavaScript + JQuery (maybe React). You can write small easy application but also extreme high scalable application.
I know Java but it need 4x time more code and code is not clear (too much forced use of @decorators) - too complex and takes more memory :)
Remember if you code in Python it is easy to code in Java but if you code in Java you must understand that Python is much more flexible and powerful - also easier to learn.
There are two main facets to interactivity - whether your frontend (Javacsript, HTML, CSS) is programmed to behave dynamically based on events and on any other preprogrammed behavior, and based on what information your server can send and receive and compute for the benefit of your frontend. For the former (a dynamic frontend) you'll need to use Javascript (or Typescript) in some form. For the latter (a server with custom behavior and data endpoints beyond just sending static HTML etc. files), any of the major languages can serve this purpose. However, if you are going to create a dynamic frontend with Javascript and don't know that language at all, then learning it will be a task in itself, and without knowing a backend language well either (probably the case with only two semesters of one language a while back), you ideally don't want to also have to learn a whole other backend language on top of that. That's where NodeJS comes in. It has essentially the same exact syntax as frontend Javascript (just different native libraries). Since you already need to learn Javascript to make the frontend behave dynamically, if you also want a custom backend, NodeJS will spare you a big learning curve on top of the existing learning curve of learning JS. NodeJS is also highly performant for low-compute high-volume requests, i.e. handling a large barrage of requests if each doesn't require a lot of complicated behavior on the backend. A lot of coding bootcamps teach this, commonly called "full stack JS", for this reason - it allows someone to learn a constellation of full stack web development skills from the mastery of one language syntax. NodeJS + ExpressJS is also one of the easiest backend languages + REST API library to use to build a backend. Look up "NodeJS Express Hello World", and you'll be shocked at how easy it is to build a basic server. As far as frontend frameworks go, if this project is very limited in scope, JQuery could be fine, but I'd highly recommend learning React for something more involved - it will be immensely easier to manage and maintain, and generally lends itself to much better and more intuitive code organization. Its use of components will also be somewhat familiar and intuitive from the object oriented programming you learned through Java. Create React App is great tool to use, especially when first learning React, to avoid all of the finicky nonsense in configuring transpilation etc.
React is hands-down the tool I recommend to add interactivity to your matrix. Because it is Javascript, it will leverage a lot of the formatting from Java. Python would be very foreign to you. React shines in allowing you to use OOP principles within the JavaScript language and it is really powerful, fast and browser friendly.
Use Javascript alongwith HTML CSS and you have complete set of application ready (even for future for PWA or bundled applications).
You can use charts.js library https://www.chartjs.org/ or https://apexcharts.com/javascript-chart-demos/. You can find many examples, you can have a look at https://codepen.io/ksarpotdar/pen/NWyqqZM?editors=0010
Ok. Clearly you forgot the best tool to give for interactive features. JavaScript! In particular I recommend the freeCodeCamp JavaScript course. Here it is.
I am unhappy. When doing my research, I heard Python is useless. Data science is an unworthy field thanks to TensorFlow, and web scraping has also become pointless since the introduction of the PWA. Since PWAs are only frontend, I feel forced to learn JavaScript, and to ditch Python. I love Python with all my mind, it's simplicity, conciseness, and easiness as a tool. Here are a few questions:
- Should I forget Python and move on?
- Are there any PWA alternatives to JavaScript/TypeScript. I've been thinking of using Python for WASM and use HTML+CSS for the DOM to create the PWA. Is this possible?
- Why is JavaScript such a pain in the butt
- What's the point of me learning Python if it's not useful for web development?
You should not ditch or forget Python because of what you hear or because of one particular project. It's probably going to stay relevant and useful for the coming 20 years. If you're a programmer, you should however be prepared to use several tools, and programming languages are just part of the toolbox (like HTML or CSS, but also your IDE, powershell, linux commands, etc.) It's not for nothing that this site is called "stackshare".
Python is great for data science but it's not very performant and eats up loads of resources. I recommend that you give Go a go. It's easy to learn and very fast!
JavaScript is reduced Python. Python is powerful. If Python is not powerful you can mix it with C/C++ - this is not available in JavaScript in easy way. I am programmer and electrical engineer too - I think for research Python is the best thing. JavaScript is better for Web. I code in both very good.
Python is definitely not useless, It has a ton of usecases, with a huge community behind it, but not that performant and consumes lots of resources, I don't think you should abandon it, and PWA is kind a in its early stage, so I doubt that there will be any language better than js for developing it any time soon, so I guess there are no alternatives, but I guess you will like js/ts if you spend a little more time playing with it, and the same goes for wasm it is also in its early stage, and i guess web assembly and rust will be used a lot for that, and lets say you have built a frontend web app , now with the help of python + django or flask you can write server code, and learn a little bit about databases, then bravo you are a full stack dev.
Actually, I'll add, C++ and C# as well.
Well, I'm into Computer Science since 1996, so I understand a bit of everything plus a lot of different OSs, I study 10 hours per day every day. However back in the 90s we didn't have books or universities about programming, all were passed through if you knew somebody in that profession. Which I did and in that time, he showed me .NET and MySQL, and that offered a lot of jobs also Java. Today you have a lot of options but I'm already discarding new languages as I believe they will jot succeed.
My always dream was to create game, and software. I don't understand all programming concepts and I'm studying all languages at the same time, so I'm heavy loaded. But that keeps me more aware.
I made a choice: use Python for everything but if you want performance, apps, security, compatibility, Multiplatform. What should I choose? The real question here is: which language should I go 100% and that language will teach me all I need about programming BUT without getting lost in that language forever (I discard any Assembly possibility) and one that has full documentation, support and libraries.
In my experience: I found a lot of info for python and java. But hardly I have ever found anything for C lang, C++ and, what about C# (it's only for Windows, is it easy, I saw a lot of documentation). Thanks!!
I would go with Python, it is fast to code, readable and very powerful without giving you too much to think about (e.g. memory management). If you're looking for speed, Cython is a fairly good way to get there, since Python is a C-based language it can be compiled to C using Cython and will get you a very significant boost in speed! You can also make use of C libraries if you prefer. The only downside to Cython over Python is that it is compiled and not interpreted, which can make debugging a pain (but you might find yourself doing most of the debugging in Python before switching to Cython). C languages are a bit of a pain to read up on (API, libraries etc.), but Stack Overflow has you covered in most cases!
Python can be linked with C++ both language are similar in many places (using same libraries or concepts to build libraries) - except memory and static types. C++ is more assembler and have different syntax (need 3x-4x coding more).
If you do engineering it is perfect stack - Java is to slow in coding (4x more code) and little faster than Python - whatever it is hard to mix Java/C++ what is easy Python/C++.
In the most program you do not need super performance but if you need C++ is the best and have rich Object Language much richer than Java and more poor than Python. Python is true object language - everything is object.
Whatever sometimes more important is framework than language for specific use.
All programming languages are cross platform except Java, but even that's not that bad. Performance: C(++), Go, Rust, Java, Ada, OCaml, Haskell, C# Apps: JS, TS, ReScript, Go, C(++), Java, Haskell, C#, Dart Security: Java, Go, Rust, COBOL, C(++), C# Compatibility: Java(due to it's VM), C(++), Go, C# Libraries: Java, Go, C(++), C# Documentation: Java, C(++) (since they are mature) What do you mean without getting lost in the language? I'd not advocate for C(or C++), considering it's hard to understand the memory, and it's for those into programming theory. You are looking for all you need. Go for Java, it has a library for everything, it has a reasonable learning curve, and pretty much you are going to encounter it everywhere- it's like a programming black hole you can't escape.
When working on Python, I noticed that Python is only useful for data science. I am looking for a programming language that:
Is different in terms of paradigm(I used OO only in Python for data analysis, I want something that is a different paradigm to improve my coding skills)
Is excellent at systems engineering
Will enhance my Python projects and basically make Python better
Has an excellent future, will skyrocket in terms of demand
Is very performant, excellent performance
Has a steep learning curve(it's because I want a simple language and an advanced language in my stack)
I found these two languages to fit my needs, and I need help choosing. Which would be better for me considering my needs
Rust is more useful compared to C on some cases like in web assembly. C is more tedious to code. Rust is modern and has a lot more of opportunities. If you are also investing for the future I recommend Rust over C.
It must be Rust, It absorbs the advantages of other languages,safe, good performance and develop quickly, The community is also growing and active. I think there are some difficulties to learn Rust, but when you have mastered it, you will write good programs than C lang
I want to create a mobile-first e-commerce platform app. I think Dart and Flutter is a way for me to build cross-platform apps from a single codebase but I might be wrong so what do you guys think?
I also don't know what to do about the back-end. I mean managing the database of products and users. handing orders and invoices. I think Firebase can be an answer to my problems but how far I can go with firebase and its user authentication and database tools? Just firebase is enough for all my back-end needs?
What suits my needs, a relational database or a non-relational database?
Do I need to learn another programming language for handling back-end, like Python or Go?
I would appreciate your opinion. Thanks
Hi, I have 3 years with Flutter and I can see that Flutter with Firebase will be a good choice for you, Just start with Firebase, it's a little bit expensive when you have a lot of users, but there you will have some money to build your own API using any other language, and here I recommend Elixir or Python.
And about what you need to learn: - Dart - Flutter - State management for Flutter - Firebase
Then you can publish your app finally, and I wish you a happy published app :)
We have chosen a mix of Java and Python for building an open source data observability tool. The application can work as a standalone command line tool with a rich shell interface (using even command completion). The Java ecosystem is more mature when it comes to connectivity to various databases using JDBC. Also picocli with jline3 let us make a very dynamic shell interface with command completion. The definitions of data quality checks that should be executed are defined in YAML files, backed by a YAML (in fact JSON) schema files. Our YAML files can be edited in Visual Studio Code (and other code editors) with support of the code completion. It is possible because all the data model is defined as pure Java classes for which we are generating a YAML/JSON schema. There is still place for Python because it is very popular in the database space. We are simply starting a Python interpreter in the background (from a Java code). Python is used to evaluate validation rules (defined as Python functions) and render SQL queries from Jinja2 templates.
A developer and project manager from our team X says the following about our use of Rails at i22:
"We use Rails to build stable and flexible backend systems. Rails is extremely good for managing data structures and quickly setting up new systems. It is the perfect base for most use cases."
I asked the same Team X member why the team prefers to work with Ruby on Rails, rather than Python and Django:
"Because Python is a scripting language and from my point of view not suitable for building stable web services. Python is for me rather good for scripts and fast small tools. Not for stable business applications. And if I want it fast I prefer Go."
As we're developing a critical piece of software, type safety is very important to minimize the errors we have. While Python supports type hints nowadays, Go makes it much more easy to work with and allows us to be confident in the software we ship.
Take look at our code in our github
Ever since the introduction of the PWA, I felt forced to learn JS, React, and Angular. I encountered WASM, which compiles Go/Rust to JS. I decided to give go a shot and made a simple weather PWA that tells the weather of various Japanese cities. It was 40x faster than Transcrypt and 0.9x faster than regular JS. Go is even simpler than Python when coming to tools like list comprehension and Pandas.
Coming from a C/C++ background, I picked up PHP 20 years ago. Today, the language is still in constant evolution while still having a stable base. It powers all of my backend project. It is fast to prototype and get started, and is supported almost everywhere.
Python and Node.js do not provide anything that PHP cannot already offer, so there is no point for me to switch to those language. Mature framework like Laravel provides real ease and speed of development to kick-start any new web project, be it a simple API or a robust ERP running on server-less architecture. There are libraries available for machine learning, crypto, web3 and pretty much anything you can think of.
We chose Rust for our web API because the Warp crate makes it easy to compose high-performance and asynchronous APIs. Rust allows us to achieve high development velocity because it provides zero-cost abstractions and enforces strict type and memory-safety checks with high quality and actionable error messages.
Python will be used in order to train machine learning models from our data. We chose python for this task because it is the most common language for machine learning. It has very performant libraries like numpy and scikit-learn that provide functionality for manipulating data and creating models that you cannot get in other languages like JavaScript and Java. Additionally, it is the most familiar language for us to use for machine learning because almost every machine learning course teaches ml using python.
Javascript will be used for both our frontend and backend on the web service. JavaScript is ubiquitous as the language to use for the frontend. For the backend, we decided to create our server using JavaScript because of its easy setup; using Express we can create a server in just a few short lines of code. It is simple not only to run the server locally, but to host it as well because any major service will support the language. JavaScript is a simple language to code in and familiar among our team members, so using it will help speed up development. Using JavaScript allows us to use NodeJS and npm, so we can use packages to easily set up the server, connect to a database and other convenient utilities. We also considered Python for our server. It is also very simple to create a server in Python, especially using flask. However, the extra familiarity with the JavaScript language and the ease of using packages were enough for us to pick JavaScript as our language of choice.
MACHINE LEARNING
Python is the default go-to for machine learning. It has a wide variety of useful packages such as pandas and numpy to aid with ML, as well as deep-learning frameworks. Furthermore, it is more production-friendly compared to other ML languages such as R.
Pytorch is a deep-learning framework that is both flexible and fast compared to Tensorflow + Keras. It is also well documented and has a large community to answer lingering questions.
Python: The top language in machine learning area because of the various open-source libraries. Our company will rely on open-source libraries for development as well.
Amazon EC2: Training machine learning model needs to be running on independent 3rd party computing resources. AWS EC2 can provide a variety of virtual computing resources based on what users need.
React+Javascript: React is popular and everyone in the team is familiar with it. React is an open-source JavaScript library that is used for building user interfaces specifically for single-page applications.
ExpressJS: Everyone in the team has used expressJS for development. It can create server-side web applications faster and smarter.
Amazon RDS: relational database service and free to use
Postman: Tool for the team to test API endpoint.
Circle CI: is lightweight and open. Therefore for faster deployment jobs, one can execute their codes on CircleCI as it deploys on scalable and robust cloud servers.
Docker: Easily pack, ship, and run any application as a lightweight, portable, self-sufficient container, which can run virtually anywhere
Github+Git: Julian is from Github so no other choice for us 😎
Slack: Everyone likes it and it's free
Pros of Python
- Great libraries1.2K
- Readable code961
- Beautiful code847
- Rapid development787
- Large community689
- Open source437
- Elegant393
- Great community282
- Object oriented272
- Dynamic typing220
- Great standard library77
- Very fast60
- Functional programming55
- Easy to learn49
- Scientific computing45
- Great documentation35
- Productivity29
- Matlab alternative28
- Easy to read28
- Simple is better than complex24
- It's the way I think20
- Imperative19
- Free18
- Very programmer and non-programmer friendly18
- Machine learning support17
- Powerfull language17
- Fast and simple16
- Scripting14
- Explicit is better than implicit12
- Ease of development11
- Clear and easy and powerfull10
- Unlimited power9
- It's lean and fun to code8
- Import antigravity8
- Print "life is short, use python"7
- Python has great libraries for data processing7
- Great for tooling6
- Rapid Prototyping6
- Readability counts6
- Fast coding and good for competitions6
- There should be one-- and preferably only one --obvious6
- High Documented language6
- I love snakes6
- Although practicality beats purity6
- Flat is better than nested6
- Now is better than never6
- Great for analytics5
- Lists, tuples, dictionaries5
- Easy to learn and use4
- Web scraping4
- Simple and easy to learn4
- Easy to setup and run smooth4
- Plotting4
- Beautiful is better than ugly4
- Multiple Inheritence4
- Complex is better than complicated4
- Socially engaged community4
- CG industry needs4
- Flexible and easy3
- Many types of collections3
- If the implementation is easy to explain, it may be a g3
- If the implementation is hard to explain, it's a bad id3
- Special cases aren't special enough to break the rules3
- Pip install everything3
- List comprehensions3
- No cruft3
- Generators3
- Import this3
- It is Very easy , simple and will you be love programmi3
- Can understand easily who are new to programming2
- Powerful language for AI2
- Should START with this but not STICK with This2
- A-to-Z2
- Because of Netflix2
- Only one way to do it2
- Better outcome2
- Good for hacking2
- Securit2
- Batteries included2
- Automation friendly1
- Sexy af1
- Slow1
- Procedural programming1
- Ni0
- Powerful0
- Keep it simple0
Pros of Rust
- Guaranteed memory safety144
- Fast131
- Open source87
- Minimal runtime75
- Pattern matching70
- Type inference63
- Concurrent56
- Algebraic data types56
- Efficient C bindings46
- Practical43
- Best advances in languages in 20 years37
- Safe, fast, easy + friendly community32
- Fix for C/C++30
- Stablity25
- Zero-cost abstractions24
- Closures23
- Extensive compiler checks20
- Great community20
- Async/await18
- No NULL type18
- Completely cross platform: Windows, Linux, Android15
- No Garbage Collection15
- Great documentations14
- High-performance14
- Generics12
- Super fast12
- High performance12
- Macros11
- Fearless concurrency11
- Guaranteed thread data race safety11
- Safety no runtime crashes11
- Helpful compiler10
- Compiler can generate Webassembly10
- Prevents data races9
- Easy Deployment9
- RLS provides great IDE support9
- Painless dependency management8
- Real multithreading8
- Good package management7
- Support on Other Languages5
Sign up to add or upvote prosMake informed product decisions
Cons of Python
- Still divided between python 2 and python 353
- Performance impact28
- Poor syntax for anonymous functions26
- GIL22
- Package management is a mess19
- Too imperative-oriented14
- Hard to understand12
- Dynamic typing12
- Very slow12
- Indentations matter a lot8
- Not everything is expression8
- Incredibly slow7
- Explicit self parameter in methods7
- Requires C functions for dynamic modules6
- Poor DSL capabilities6
- No anonymous functions6
- Fake object-oriented programming5
- Threading5
- The "lisp style" whitespaces5
- Official documentation is unclear.5
- Hard to obfuscate5
- Circular import5
- Lack of Syntax Sugar leads to "the pyramid of doom"4
- The benevolent-dictator-for-life quit4
- Not suitable for autocomplete4
- Meta classes2
- Training wheels (forced indentation)1
Cons of Rust
- Hard to learn27
- Ownership learning curve24
- Unfriendly, verbose syntax12
- High size of builded executable4
- Many type operations make it difficult to follow4
- No jobs4
- Variable shadowing4
- Use it only for timeoass not in production1