Introduce
Before the programming language, let me talk about the necessity of open source. now at
There is a huge wasting in software production, you use a lot of energy to use the program code written by others already implemented. Look, how much is the text editor, look at how much the FTP program is, how much is the word handler, although these programs are different, but the main functions are the same. To realize personalized features, in existing
How much time it saves on the software basis! And each program is edited, and how long is it? If there is no amount of work, the world's programmers can save at least 80% of the workload. At the same time, open source is convenient for everyone's communication, and reading source code should be the most direct and effective learning pathway. Especially in the field of professional fields.
To open the source code, the following is more important: ×, the language is popular. ×, the function of the language and the library unified. ×, the language of the language and the compiler should be unified. ×, whether the compiler opens the source code. ×, whether the API opens the source code. ×, the reproducibility, functionality, and friendliness of the language.
Necessity for language unity: If everyone uses one
The programming language uses the same function, the same class library, then everyone's common language will have a lot. As long as you learn a language, a set of functions, a set of libraries, you can read the source code mutually learned, so that the amount of learning is the least. Learn new API waste programmers a lot of time and effort, especially when this API has a large number of other API repetitive features.
To increase the reusability of the code, start from below: ×, the readability of the code. If the format is close to English grammar and words. ×, the expression ability of the code is simply, and the same function can be achieved with the least statement and words. ×, the structure of the code, such as functions, modules, classes.
The power of language functions From the following: × Whether there is a lot of library support. This is the most important, requiring programs for writing any functions, have strong library support. ×, whether the syntax function is powerful, such as whether there is any error handling. Is there a pointer.
Language friendliness: ×, the size of the language pack, the smaller the language package, the more simple learning. ×, whether there is a friendly editing environment. ×, language visualization and integration
Programming environment.
C language:
From the performance, except
Assembly language, C language is the language closest to the machine. Various operating systems
The default language of the programming interface is C language. Therefore, use C language
Programming, you can maximize the ability of the operating system. At the same time, due to most products
The software is implemented, there is C
Programming interface, it can be said that there is no function that cannot be implemented.
In the Linux environment, C has a good conditions for open source, it has a unified compiler GCC, which has powerful but more difficult to master
Programming Environment Emacs, has a unified API: POSIX and Linux interface. And the compiler and API are open source.
Write a graphical interface program on Linux, two selections of KDE and GNOME, KDE, gnome support multi-language and object-oriented synergy.
In the Windows environment, now in the VC, but there is a shortcomings, the upgrade of Windows is too fast, from the DOS environment to Windows31
From Windows31 to Windows95, go to Windows2000, to .NET. The API often transforms so that the life of the program code on Windows will be shorter. And the compiler of the VC and the API are too complicated, and it is difficult to master.
At the same time, since C has a large number of characteristics of modern languages, it is often often replaced by Pasical as a teaching language.
In fact, if you don't study, C is also a very simple language. Do not learn Basic, directly study C completely no problem.
Compared to other languages, C has a variety of compilers, a variety of operating systems API, a variety of grammar and functions. The difficulty of learning is large and harmonious.
Compared with Java, C's grammar is not rich enough, modern.
Java:
Relative C, Java as a modern language, has a very rich grammatical characteristics, such as modules and classes, unlike the different differences between C, compiler, Java is a company product, with a unique API, so, Java programmers have no language.
For a relatively cross-platform language, Java has the best graphical interface.
Programming API.
All the APIs of Java are all class libraries, and relatively C's functions are very big. Java has almost all features in modern languages.
Perl:
The maximum feature of Perl is that there is a powerful string pattern match, which is the best text file read and generate language.
Perl has a lot of freedom, and it is very random, like English.
Perl has a powerful
Database interfaces and other interfaces.
Perl has the largest amount of library.
Perl is not suitable for writing a big program.
Perl has a famous disadvantage that it is difficult to understand, and there is also a famous advantage to concise.
PHP:
I feel that PHP is a freak. The function of Perl is embedded in HTML can fully realize the function of PHP, but also create a language, which has increased everyone's learning burden.
PHP can be embedded in HTML, easier to write server-side programs.
PHP Natural and Web Server and MySQL
The database is combined.
PHP can dynamically generate an image.
Python:
First, Python is the language as an initiator as Basic, and it is easy to understand as English.
Python has the most abundant grammar as Java.
Python has similar simplicity similar to Perl, but there is no mode match.
Python is suitable for writing a big program.
Python is similar to the LISP, it has the EVAL function that performs a string as a program, and can save all the data of an object to pass the function as a parameter to another function.
Python has very good expansion, Python programs can be combined with C processes, and Java programs well.
Tcl:
TCL has the easiest grammar, the best and other programs interact, with TK written in a graphical interface program.
JavaScript:
Write the best tools for dynamic web pages.
Lisp:
Lisp's syntax is very simple, only simple functions and parameters of statement structure.
LISP data and programs are blurred.
LISP can be nest in deep.
ProLog:
ProLog is a special language. Specially used to deal with knowledge.
I feel that protogog is a kind of
Database processing tool.
It is also based on some knowledge to derive more about more knowledge.
Basic:
Now the most famous Basic is VB,
Basic is a simple primary language.
VB is a fast interface to generate a language, it is fast
Database program development language.
VBA is a VB application version, embedded in OFFIC. Programs written on OFFIC are useful.
VBScript is a VB's scripting language that generates a server-side and client dynamic webpage.
The ugliness of Basic is the parameter or the default transmission address. too dangerous.
Delphi:
Like VB is a rapid development environment, but performance is better and more powerful.
.NET:
Support a unified API class library for multiple languages,
You can write a WebForm program, that is, all logic is on the server side, and the standard HTML3.0 is transmitted to the client, which can be supported by various browser. Each program assembly is swapped through the SOAP. 2002-04-12 Added content:
apart from
In addition to assembly language, C is the most close to the underlying language, so it is most of the procedures.
Programming language. The disadvantage of C is that there is no unified function library, the standard is not unified, so it is also a common C-programmer, and it is normal to see each other.
The emergence of ADA is to solve the problem of unified standards. An international organization specializes in strict ADA language certification to ensure the unity of the ADA. Therefore, there are many kinds of ADA compilers, but the ADA language can be compiled with any ADA compiler. At the same time, the efficiency and C of the ADA execution program are close. Some people say that than c is fast, I think it is impossible, unless the library has a problem. ADA is stronger than C, but C also has a similar function. ADA has a shortcoming that language rosso, is very ugly as Cobol.
Java is a great improvement to C. There are unified standards, rich libraries, complete object-oriented. Also inherited some of the characteristics of C, unpackable full-featured, in-depth system under
Programming flexibility. But because Java learned the characteristics of the underlying system of C, its language is strict, dull, Rosso. In addition, Java is cross-platform, and its speed is very unsatisfactory, and can only be limited to advanced applications. At the speed, you can choose Microsoft's .NET and Apple's Coco (possibly spelling an error). They are also the underlying object-oriented language.
As an advanced application, if there is no confidentiality requirement, the scripting language is the most appropriate. Scripting is because you don't compile, therefore the development speed will be much faster than compile language.
Basic and Perl are an old scripting language. Basic has been promoted by Microsoft, but its disadvantage is that there is no complete object-oriented characteristic, so it is difficult to prepare a large program. In addition, Microsoft's products are definitely "swelling parts". Perl is specifically designed to handle text, and the text handling capacity is very strong, but it is not suitable for writing big procedures, and language style is also relatively puzzled.
Python is positioned
Programming language, is a substitute for Basic, which has the same simplicity as Basic, and
The programming statement is more elegant. Python has a relatively complete object-oriented feature, which can be used to write a big program, so some large utilities are Python completed, from accelerating the development speed, can replace C and Java. Another huge application area of Python is used to operate other programs. This ability Basic also, from this perspective, Python is the Basic of UNIX. But Python is further, and the communication capability of C is very good, and the interface written by any C is easy to translate into Python interface. And Java's interface has a special Python's Java version, Jython, Jython can use a variety of Java resources like Java itself.
Ruby first is a SMALLTALK alternative. Have a thorough object-oriented property. In addition, efforts are also made as an alternative to Perl, PHP, Basic, Python.
Rebol is a replacement of Lisp, while as a member of the scripting language, has its own uniqueness, his network
Programming and graphical user interface
Programming is the most powerful.
Language Analysis Language Yacc, HTML, XML, XLT, XUL, etc. can also be counted as language.
[edit]
Selection of various languages
If you write a harsh performance, or with a program that combines the operating system, you will inevitably select C.
If you write a program available everywhere, choose Java.
If you write a big program, you may use python, you can't use Java and C. Because Python brings productivity. Write the text's handler with Perl.
Write the process of knowledge with proLog.
Write the most flexible and blurred procedures with LISP.
Write the Office program with VBA.
Write server-side programs, PHP, Perl, Python, and ASP are all choices.
write
The database program uses VB or Delphi.
[edit]
Selection of various languages
If you want to pursue performance and programs, you must fully use C language to use C language. With VC in a Windows environment, use GCC in a Linux environment.
If it is not the perfect combination of the pursuit and operating system, but only performance, it is necessary to pursue cross-platform, then still select C, but you can choose a cross-platform library, such as QT, GTK, Fox, wxwindows. If you want to write
The game also has a cross-platform selection: SDL.
If you are not satisfied with the unity of C-domain, it is easy to make mistakes, and the object-oriented characteristics of unsatisfactory C are not complete. If not cross the platform, the Windows platform can choose C #, the MAC platform can choose Coco. If you need a cross-platform, you can choose Java.
If you need a cross-platform, you will have a wide range of support, select Java.
If you don't care about commercial confidentiality, the application goals are not too harsh, and there is also a choice for writing large cross-platform programs to Python or Ruby. Script language, but with a comprehensive library support, there is a convenient interaction capability of C language. They compared to Java,
Programming is more efficient. At the same time, because there is no compilation, the program is more convenient to modify. Because their libraries are C, it is higher than Java. At the same time, they are open source, they are all friendly, simple, convenient to customize. It is also another choice for uncontrollable increasingly large libraries that are not satisfied with Java.
Under Linux, the most convenient tool language is Perl, it has strong
Support for communities and code libraries.
If you only use a simple application tool language, Python and Ruby are better choices, and their cross-platform is well transplantable and applied is relatively wide. Where Python is more suitable for entry and communication, the long period of use is also good. Ruby is another option that is dissatisfied with Python, which provides a lot of additional features.
If you want to select a program's embedded language, there is a LISP, BASIC, and JAVA, and you can also choose Python and Ruby.
If you ask for dynamic explanation, if you don't want to learn other languages, the C programmer's choice is Pike, and the Java programmer's choice is Beanshell.
In the Java platform, you can use Jython if you want to use scripting languages.
The most intentional document-based language or dynamic page language is JavaScript.
The most specialized server-side language is PHP, and of course there are many other options.
XML language is the most famous, DTML is also one, and you can use XML as a language of your own special purpose. For example, JEDIT uses XML as a mode custom language. XML language is a more advanced trend, more efficient than existing languages.
Look for easy implementation, Lisp and TCL are selected.
The ability and freedom of LISP data and program integration are not other languages. There is now a modern variant of Lisp: Rebol.
If there is a factual
The prologistics and clips are inevitable.
[edit]
Why did I choose Python?
First, declare, I
Programming only the application is a small program that is working hard. If the write system program will always use C or Java.
I like script language, the scripting language can run, it is very easy to modify, and the programming is a regular activity. After the program is completed, there is no need to make very grand, but also compile. In addition, the people used by the script program can be modified with hand, and there will be no way to find the source code. Therefore, C and Java were excluded.
I like simple languages, don't like to learn a lot of complicated provisions in order to write simple programs, the language that needs a lot of learning will not be a good language, it is to look at people as a machine. C and Java have strict but rosso's grammar, and there is a function, class, library that is never learned. It is a big head. Perl has a variety of strange speed notes, and the procedures are often dizzy. Simple meaning, in addition to easy learning, it is also rich in functions, often ready, don't need to write the same data structural program, etc. Python has a wealth of data types, with complete object-oriented structures, regular expressions, etc.
Programmed modules. This logic is how many procedures are doing, and there are fewer people. If the program is less, it will do more. This is a friendly problem. Easy to get started, rich in functionality is a very important goal of programming, and Windows is popular with this popular. And Python is also very good to reflect this. Perl is the same as other tools such as UNIX EMAC, but it is too difficult to learn, it is too difficult to understand. It is comparable to humanity.
About performance. Now the CPU is very powerful. In addition to large programs and system programs, there is no need to care about performance.
About functionality. If not writing a system program and procedure procedure, it is not necessary to use the function of the operating system. c is a dry thing, but it
Programming is low, complicated.
As for why I don't have VB, because VB is too large. I don't have to implement a small function to start such a huge procedure. too exaggerated. In addition, VB has no inheritance, although it is an application
Program, but if you want to edit a slight program, you will always use the class inheritance.
Python has a strong scalability to make Python to learn will not waste. Python can use a variety of C and C libraries through simple processing, or can be called C and C . Python can use Java categories directly, or it can be called directly by Java. In this way, it will not be wasted for Python, Java, C to learn and experience, and can also be supplemented with each other. Python can improve Java and C
Programming efficiency, Java and C can supplement Python feature. Python can also interact directly with TCL, which is built-in. Looking forward to Python can simply call Perl and PHP. Can use Lisp and ProLog better.
Ruby learned the second edition of all language essences
Ruby language is still juggling Ruby?: o Ruby Japanese
Ruby has
* Perl's regular expression
* Python's simple readability, the easiest extension capability, powerful portability.
* PHP embedded function and a variety of clients
* SMALLTALK's top-to-object syntax and single inheritance
* Lisp's infinite nested syntax, that is, functional syntax.
* Use "block" to achieve a more efficient data structure. I don't know if it is a macro function of Scheme. Use blocks to know more clearly to implement Python's table treatment.
* Thread programming of Java and ADA
* Java security programming
Have to admit that ruby is really a wonderful language. It fully learns that all of the programming of Lisp is the idea of functions. All things of SmallTalk are the idea of objects, and the way of the purpose of Perl. Method, Python's simple " The Minimum Surprise, the principle, Java multi-threaded and security control features, TCL easy to extend features, PHP embedding features and powerful client features, the most convenient call. [edit]
Comparison of Ruby and Python
[edit]
The same point of Python and Ruby
* Emphasize the simple syntax, which has more ways to express. Python is indentation, Ruby is the expression of class Basic. Both reduces symbols.
* Is all dynamic data types. It is rich in data structure.
* Both C language expansion capabilities, all have portability, better than the portability of Perl. It can also be used as an embedded language.
* Both are object-oriented languages, can be used as a development tool for large projects.
* Both rich library support.
* There is also the most relaxed copyright license, except for some tools belong to the GNU world.
* There are LISP features EVAL functions, and functions can be used as parameters.
* There is also a special editor of Ruby in a graphical interface.
* Get a wide range of C library support. Such as QT, GTK, TK, SDL, FOX, etc., Ruby plans to implement the SWIG interface.
* All have a perfect document.
[edit]
Advantages of Ruby compared to Python
* Features that have regular expressions and embedded HTML. Python also has regular expressions, but there is no easy application to use. Python's embedded HTML project just started. Ruby also has an Apache MOD module. Ruby itself also implements and many UNIX tools such as RACC, DOCTOOLS. More Linux is close to Python.
* The object-oriented syntax is more complete than the Python function.
* Ruby's entire library is a structure with a class inheritance.
* His basic data type and operator can be overloaded.
* Ruby's main function is implemented by methods of objects, rather than functions. Python is also developing in this regard, but there is no Ruby's thoroughness.
* Ruby's class is a more standardized single inheritance, and the implementation of the interface and other concepts.
* Python can implement the conditional statement, cycle statement, and Ruby implement this function in a "block" method, more flexible, more versatile than Python.
* Ruby has a conditional statement, a loop statement, and the like of a thorough function similar to LISP. The expression ability of the statement is stronger.
* With some UNIX tools, such as RACC, etc.
[edit]
Compared with Python's lack of Ruby
* The biggest shortage is exactly caused by the power of Ruby. It doesn't have the simplicity of Python. More complex object-oriented syntax, the introduction of "block" grammar, the introduction of regular expressions, some shorthand markers have increased the complexity of the language.
* Python's indentation method is more pleasing than Ruby's Basic's expression, and the Ruby's full-eyed END is uncomfortable. Of course, Ruby thinks END is more advanced than Python.
* Ruby has no Python's "self-provincial" capability, and there is no ability to generate documents from the program file.
* Ruby has no international support. Internationalization supports in Ruby's plan. This is because Ruby's history is shorter than Python.
* Ruby does not have something like Jython.
[edit]
Python and Ruby's language selection
It is good to choose Python from simple. Python is suitable for people who look for simple languages, which is likely to cause Python more popular, so there are more support. But if you want to recover more powerful syntax features, Ruby is a good choice. Because Ruby and Python have a lot of similar places, start with Python, try to use python, if Python is not enough, you can find ruby. Comparison of Ruby and Python is like a comparison of five and pinyin input methods. Pinyin is not a problem with the input method of entry and the long-term input method. Five-strokes are suitable for higher requirements. If you pursue performance, you can learn Ruby. Learning Ruby, which is interested in programming languages, and I want to know about various programming concepts.
[edit]
What is the benefits of PHP?
I have always thought that PHP is a garbage because it only implements a scripting language to embed, but also implements a language, achieving a lot of function library, wasted a lot of developer valuable time to repeat other scripts that have achieved a function, It also wasts PHP developers to have a lot of learning time, and also learn to have a language that can only be existing in the web server, wasted Perl, Python has experienced experience. Similarly, there is Pike, a C's script language, no new things, it is better to still use the C compiler.
But I have recently read the book to understand PHP uniquely developed my goals.
Why does PHP do not directly use Perl to work a scripting language. Because Perl is a UNIX language, with UNIX traditions, the characters are mysterious and deep, and people are difficult to learn. And the scriptoppage is not necessarily with this Unix tool, they may have only HTML knowledge. PHP simplifies Perl language, turned into a simple friendly language, eliminating people to learn Perl difficulties.
Why is PHP not choose Python as a script. Because Python is an object-oriented language, a large number of functions should involve object-oriented concepts, while web applications simply implement client logic and display. It is not necessary to involve object-oriented complex concepts. The function is the simplest, easier to understand, so PHP tends to solve all functions, rather than using objects. This is a bit like C and C disputes. It should be acknowledged that the function is the most beneficial tool when achieving simple functions, and it has the least voice.
PHP is positioned in HTML as a user interface, which acts as a variety of servers, and implements traditional client programming tasks. It has a variety of servers such as POP, SMTP, FTP, multiple databases, etc., also include pictures, PDF generation, XML processing, etc. These are all other scripts that are not PHP.
I hardly used PHP, I am not right, please advise.
[edit]
ADA language
I read him in the Ada language.
The ADA language is like a compilation language, and the machine code that they finally compiler is small. Therefore, there are now many languages only c very ada.
Compared with C, the ADA is characterized by reliability and portable.
His reliability is through a powerful type than other languages, each type can also perform a strong type, range check like a database field. By this way ensures that errors are found in compilation.
It has a strong standardized organization, strictly certify the standard of the ADA compiler. There are multi-threaded capabilities.
Suitable for writing real-time procedures.
But compared to C is too complicated, rumor, there is no popularity.
[edit]
Multi-script language big unity and questions
Now there is too much in various scripting languages, it is necessary to integrate, Parrot is a good idea. .NET is also a good idea. It provides a unified virtual machine for a variety of scripts, providing "class" mutual calls for various scripting languages, providing a unified class library for various scripts.
Now the various scripting languages are only interactive to the C language. This interaction is also hard and the effect is not good. For example, Python, Perl, Ruby provides interaction between C. The exchange barrier between the script language is heavy. And similar to .NET, providing a very easy way of utilization of various scripts to avoid repeated writing of a lot of code. The power of this standard platform is very large, why didn't this standard platform appear first in the open source? Many scripts are the characteristics and advantages of open source, why should this problem be solved by Microsoft? Someone presented a similar problem, why didn't I use the ODBC's thing in Linux? Maybe this integration is only capable of implementing it.
My understanding is that if there is innovative thoughts, people have taken his thoughts, so there is only one mimics in the open source. KDE is imitating Windows, Koffice is imitating office, Linux is mimics UNIX, GCC, BASH, etc., all are all imitated, as well as GSTEP, etc., and FREEDOS, ATHEOS, etc. also imitate, wxwindows, SDL is also imitated. I want to know if there is any own innovation in the open source community? The innovation I know is Zope, but Zope is also commercial products, and later opened source. Perl is innovative, Python is innovation, but what else? Is it only HACK in the open source field, no CREATOR?
[edit]
.NET introduction
Java's functionality implemented by .NET
Controllable Code Cross-platform virtual machine and pseudo code Free Premier command line compiler is a unified middleware environment on the ASP.NET web page for XML and XML Web Services for the Object Language.
ASP.NET is not a Web technology at the same level, ASP.NET uses a complete event response mechanism, WinForms similar WebForm technology, only JSF is comparable to ASP.NET.
Java function in .NET unrealized.
Free integrated development environment multi-manufacturers support, cross-platform maturity
Free IDE, #Develop, asp.net's WebMatrix, free open source CLR implementation, MS own XP, FreeBSD, MacOS implementation (Principle Demo cannot be used), MONO project under Novell, already Published a beta1 version, will release Release1 in 2004-6-30; there is a .NET implementation of GNU! !
[edit]
.NET implemented Java does not have functions
Multi-language supports a powerful integrated development environment. It is comparable to the speed of this machine. For the support of COM, inheritance of the VS is intuitive programming of Widows Form, Web Form, server-side program.
[edit]
Improvement of VS6
Unify the integrated development environment, making the C program also have VB's friendliness.
[edit]
XML various technical introductions
XML:
XML is a text file for structured data in a unified format.
XML-based programs, the data structure is open, so that different programs handle the same file, so that programs can achieve high levels of collaboration.
XML now has become the basis of unified data formats in all walks of life.
XML has developed a sound syntax that defines the XML tag language with DTD or Scheme. Use the URI to uniquely determine an XML format. Use CSS or XLT to convert XML format, XLINK, and XPOINTER, etc. to establish XML links to locate data in XML with XPath.
XHTML: