Two years ' reflection on Python learning and development

Source: Internet
Author: User
Tags mixed

    • Background introduction
      • PYQT Client Scenarios
      • C and Python mixed programming scenarios
      • Pure Python server solution
          • Due to the lack of familiarity with server development, the development and application of application servers is not a good idea.
      • Network Quick Test Scheme
      • Academic research
        • Technical planning
    • Reflection
    • Problem

Background introduction

Three years of experience in the development of C + + Windows clients, it has been almost two years since we contacted Python. Remember that the first choice to contact Python is due to the strong recommendation of Kai-Fu Lee's teacher . The simplicity of Python's programming style has been dumped since the touch. My C + + programming style and design ideas have been greatly influenced by python, for this reason, it has always taken a certain amount of time on Python.
Although interest is the best teacher. , interests ( interest ) and interests ( interests ) can not be linked, and then a strong interest in the end may be due to the loss of growth of the soil will wither. Learning Python itself is also a way to better apply python to work or life to solve problems.
remark:
the interests mentioned here do not refer to the narrow interests of money. It refers to a generalized harvest, or to improve the efficiency of development, or to solve problems that cannot be solved, or to improve the programming experience.

At present, the main use of C + + in the Windows MFC Client programming , some of the server network development programming and the development of the bottom.

After nearly two years of familiarity with Python, you are always thinking about a problem.

What changes can I bring to my use of Python? What can I do with python?

But now, in Python technology, it feels like it's not a little bit of gratifying accomplishment. There is no breakthrough in productivity or solutions. This gave me a wake-up call for the future of technology. has always had a belief:

Programming is to solve problems by helping others or by themselves.

Obviously, spending a lot of time and energy on Python doesn't meet expectations. Feel a lot of technology is used is strong, do not waste . Although Python has learned a lot about the relevant aspects, it feels that it has been unable to find the application development scenario. The question left me in a deep thought. So write down some words to reflect on, and share with you the lessons of their failures, have been able to guide the maze

Measurement of development Efficiency reference standards:

Familiarity level familiarity with the IDE familiarity with the development language familiarity with the development library familiarity with the project architecture function
C++ ★★★★★ ★★★★ ¡ï ★ ★★★★
Python ¡ï ★ ¡ï ★

The proficiency of these four largely determines the efficiency of the development of a project.

    • Python Benefits: Language development is highly efficient and friendly, and supports a large library of classes.
    • Python disadvantage: Inefficient execution
    • C + + Advantages: High machine efficiency, and C language compatibility good
    • C + + Disadvantage: The development library is not comprehensive, the learning cost is higher
PYQT Client Scenarios

Overview: Use Python as a development by using the PYQT Quick Draw interface. For rapid development purposes.
-Advantages: Python syntax is simple, (familiar with the premise of PYQT Interface Library) development speed is fast
-Cons: Given the fact that PYQT's pro-mom qt is difficult to make a difference and develop under the Windows platform. PYQT facing enterprise-level application development may be more incompetent. PYQT relies on a large set of interface libraries, learning costs. PYQT by the team and market recognition is not high, it is difficult to achieve the regularization of development and application

Application Scenario : PYQT Development only for lightweight application development (light foreground re-acquired scene)
conclusion : For enterprise-level application development, the market and development teams are less acceptable. And technology can be achieved uncertainty, lack of forum support, can be very low prospects for development. On the basis of familiarity with MFC, the development efficiency of the PYQT client has little advantage. cannot be recognized.

There are not many opportunities for Python to perform under the Windows platform, because even the qt,java of these historic solutions is not going to work. Its main strength to play may be more concentrated in the domain logic layer (complex logic processing) and data layer (network, database).

Mixed programming Solutions for C + + and Python

Advantages: The implementation of the C + + library to expand Support, the use of Python fast and efficient scripting language, processing complex transaction logic, has a unique advantage. C + + is responsible for efficiency, and Python is responsible for logical processing, referencing the LUA + C + + development model .
Cons: * * Interface design trouble, mixed programming complexity increased. Joint commissioning is difficult and bad for team work. Mixed programming of the client. Python-related components need to be packaged.
Application Scenario: Server domain Development, high complexity of business logic, products with higher performance requirements * *
Conclusion: in the processing of more complex business logic, and in the server domain development has a certain advantage, but there are few opportunities to wait. I have now implemented the initial stage and the hybrid programming of Python and C + + programming in a package processing technology

Pure Python server solution

Twisted application Server, Web server development
Pros: There are plenty of good Web server libraries to choose from in Python .
Disadvantage: The current client program of the company does not support WebKit development, HTTP response is slow, more network communication is to go to the bottom of the TCP/UDP communication or package after the communication protocol
Note:

due to the lack of familiarity with server development, the development and application of the application server is not expected to seek guidance!!! Network Quick Test Scheme

Description: To address the development of UDP/TCP-based HTTP network communication
Advantages: with the advantage of efficient and flexible twisted library, it can be used to develop the network communication test scheme with more complicated methods and determine the problems in the network communication process quickly .
Disadvantage: Unable to implement C/s end code style reuse. Need to rewrite code
Application: It is suitable for the more complicated communication process of network communication .
Conclusion: The only thing so far that can be used in an auxiliary work application is automated testing .

Academic research

Use Python to do some research on frontier technology exploration, academic research, library interface design learning, etc.
Advantages: Accumulate some black magic, black technology, to achieve the purpose of quick start.
Cons: suitable for schools and academic institutions, not fit for the business sector

Technical planning

PC Client (c + +)-server (Python, Java, C + +)-android Development plan (Java, C + +)

Although I like the way Python is developed, I haven't been able to find a way to make Python self-hematopoietic for two years. If you're only interested in learning to apply Python a few hours after work every day, then a strong interest can eventually wither away from the growing soil. Since the use of fewer scenes , resulting in familiarity has not improved , the end result is the use of Python development efficiency is not high . Python always has no choice when choosing a development scenario.

Reflection

Recently, when I was in touch with the Java language, I was reminded of the reasons why Java started to pop. The attempt to use Python for the development of the interface may be a foolish decision, just because of the enthusiasm, because of the love, the head is not back to the study used.
As shown in Python and C + +, the similarity is not that large. The difficulty of 1+1> 2 is not so easy compared to Java.

Java has traversed the road, perhaps it is Python should go, based on Web server solutions to more efficient problem solving

Problem

As the saying goes: lookers onlooker sees most. a technology, the rise and development of a solution, often with a higher development efficiency, means of implementation, strong function has a close relationship. Want to ask an experienced person a question:
in my current working environment, should choose what kind of Python technical solution or route, in the C + + development scenario under the foothold???

Two years ' reflection on Python learning and development

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.