Summarize a successful application software experience

Source: Internet
Author: User

Looking at successful applications since 1980s, the vast majority of successful applications have the following features:

Provides high-level applications based on OS APIs in a system language (usually C/C ++)ProgramRuntime, including a high-level, application-oriented Virtual Machine for semantic optimization, a large application-level api library (based on common process function libraries, or oo-based class libraries, or Component Library Based on Component), a scalable software architecture (especially plug-in architecture or application-oriented framework), and, ideally, an application-oriented language engine. The entire application is completed in combination with the application-level language. The application-level language or system-level language is used for expansion. Either method must depend on an extension framework.

Here are some examples:

1. emacs: Develop the kernel with C and implement the elisp interpreter. Atomic functions can be implemented using C and elisp. The entire program is completed by C and elisp, and can be expanded in any way.

2. autoCAD is used to develop the kernel with C/C ++ to implement AutoLISP. The whole program is completed with C/C ++ and AutoLISP, which can be expanded by C/C ++/AutoLISP/VB. 3D Max from Autodesk is also equipped with a max script.

3. Mathematica, developed with C kernel, implements the Mathematica language. The entire program is completed in C and Mathematica languages. It mainly uses Mathematica for application development.

4. MATLAB, with C/C ++ development kernel, implements the MATLAB language. The entire program is completed in C/C ++ and Matlab languages, mainly using MATLAB for application development, you can also use C/C ++/FORTRAN for extension.

5. Microsoft Office, based on the com system, C/C ++ writes core modules. VB is responsible for integration and provides VBA supply development.

6. Tex and Pascal compile the core interpreter to develop high-level systems in the form of macro extension.

There are countless examples such as SAP, Perl, and python.

This kind of thinking has won many successes, and it is really a careful imitation of our generation. There are two core difficulties: the first is the design of runtime, dynamic implementation, and the balance of Framework (application-oriented, as flexible as Eclipse, which is not optimal for specific application fields ), abstraction of the underlying computing platform (truly mature network application development should make the network transparent); second, application-level language design and implementation, design is the key, and it is also the greatest weakness of Chinese programmers,

The application-oriented High-level language design is equivalent to the large-scale complete equipment manufacturing in the machinery industry. It is the core technology in the main industry. To design a good application language, the designer should be familiar with the system programming technology and the Implementation Technology of the interpreter and its interaction and extension with the system, second, we must have a profound understanding of the programming language theory, master the formal language theory and language development history, and be able to provide the necessary semantics in the most natural way without the mainstream ideas trapped in the past 20 years, third, be familiar with the application field and provide guidance for design. At present, the domestic education system and Impetuous Atmosphere are difficult to cultivate Masters such as Larry Wall.

. Net CLR provides the dynamic runtime required above. FCL provides a complete support library, which greatly reduces the difficulty of developing high-quality applications. However, the levels of VB and C # are relatively low for application development. The next step should be to provide dynamic languages like python .. What is the dynamic language on the net platform? There are two possibilities: one is to port Python directly. I believe this will happen, but for Microsoft official, it will take another path, C # and VB are directly scripted. In this process, I guess VB will give priority.

In the end, we will move towards a domain-specific language. I think a model in this regard is Mathematica,

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.