Improve Python's 27 programming languages (1)
27 languages
-
Procedural programming languages: C, Rust, Cython
-
Object-oriented Data Modeling Language: Java, C #, Eiffel
-
C object-oriented language: C ++, D
-
Array-oriented data processing: MATLAB/Ave ave, Julia
-
Statistical data analysis: R
-
Computational pipeline modeling: Haskell, Scala, Clojure, F #
-
Event-driven programming: JavaScript, Go, Erlang, Elixir
-
Gradient Type: TypeScript
-
Dynamic metaprogramming: Hy, Ruby
-
Practical problem solving: Lua, PHP, Perl
-
Computing thinking: Scratch, Logo
As a co-designer of one of the most popular programming languages in the world, I often encounter a very frustrating behavior (both in the Python community and other fields) that is, influential people in the community try to instill fear of "missing" in other open-source communities and drive others to contribute to the community. I will occasionally make such improper behavior, when someone falls into this trap, I am more aware of it ).
Although it is a good thing to learn from the experience of other programming language communities, it is a big problem to use fear-based methods to drive action. In order to attract the attention of code contributors, it is easy to regard members of other communities as competitors, rather than as potential allies to jointly meet the challenges and promote the advancement of software development technology. It also causes the community to reject those who prefer other programming languages and treat them as enemies.
In fact, we hope to have a wider range of cross-platform open-source programming languages to choose from. programming languages are the most important thinking tools and can translate our ideas into clear terms that computers can understand. If people find that a language is suitable for both their brains and can solve problems directly, this is good, and they don't have to worry about the language they chose.
Therefore, I would like to give the Python community three specific requirements and a wider range of suggestions. First, let's talk about these requirements:
1. When we want to inspire tribe members and increase their community attractiveness, we should not use the fear method. Instead, we should use the pride method. When using fear, for example, "if we don't solve problem X, then Python developers will decrease and they will switch to language Y ", then we are deliberately delivering negative energy to people who freely contribute code to the world. But if we use the pride method, we will say this: "The problem X in Python is really hard to solve. Let's look at the community of language Y, they used an excellent solution to solve this problem. We can also try this solution in Python to solve the problem in Python in the same elegant way ". The positive emphasis on "taking pride in our own efforts" is conducive to promoting a culture of continuous learning in the Python community and the development of relationships with other communities.
2. Restrain your contempt for other programming language communities, especially those that have the potential to solve problems on your own, without having to wait for commercial software vendors to settle the issues. Most of the important issues in the world are not profit-driven issues. Those who want to solve the problems, not to seek wealth, or have no organizations to pay for them ), so we should encourage and praise those who are stepping up trying to solve the problem. Don't worry about what technology they are using.
3. If people we know start learning programming, even if the programming language they choose is not what we like. We also need to support them because they know what is better for their brains than we do. Therefore, they are not necessarily suitable for our appropriate language. If they start to feel frustrated with the original choice, so that they have completely dispelled their enthusiasm for learning programming, then it makes more sense to recommend programming languages to them. This suggestion is even useful to those of us who have worked in improving network security. For insecure languages, our solution is to improve the sandbox function in the operating system, gradually break away from this language selection obstacle, and use the security attributes of the native system to improve the default behavior of the programming language. We should not evaluate the quality of the programming language from the perspective of application security and confuse beginners. If someone asks programming to write a new piece of unaudited software, but deploys it to handle security-sensitive issues, this is not a programmer's problem, it should be blamed that the deployer did not perform due diligence on the source and security attributes of the software .)
My more suggestions are aimed at the realm where people begin to experience the core assembly of Python, so I began to explore more "thinking tools" of Python ".
Part of our core Python development process is that we have advantages in other languages due to the characteristics of understanding, and whether we can make Python code easy to read and write in a proper way. This means that learning other programming languages can clearly define specific styles, and programming in Python improves people's understanding of software development.
To help with this effort, I have listed the following areas for exploration and some languages that may provide additional insights into these areas. I try my best to link to the Wikipedia page instead of directly turning to the relevant homepage, because Wikipedia often provides interesting historical backgrounds, these backgrounds are worth exploring when you choose a new programming language as an academic exercise instead of being immediately used for practical use.
However, personally, I am familiar with many programming languages (and have used some of them for development and production systems ). All the recommendations include the language I learned indirectly (or by reading some materials and design documents, or by learning the strengths and weaknesses of a language from a conversation with a trusted friend ).