Introduction to various languages (second edition)
Before introducing the programming language, let me talk about the necessity of open source. Now, there is a huge wasting of Chilean in the field of software production, and everyone uses a lot of energy on 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 a personalized function, how much time it saves best on the existing software! 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 of language unity: If everyone uses a programming language, use the same function, the same class library, then, there will be many common languages. 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 integrated programming environment.
C language:
From the performance, in addition to assembly language, C language is the language closest to the machine. The default language of the programming interface of various operating systems is C language. Therefore, with C language programming, you can maximize the ability of the operating system. At the same time, because most of the product software is implemented, there is a C programming interface, which can be said that there is no function that cannot be implemented.
In the Linux environment, C has a good open source condition. It has a unified compiler GCC, with powerful but more difficult programming environment Emacs, with unified API: POSIX and Linux interfaces. 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.
Relative to 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 interface 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 servers and MySQL databases are 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 proLog is a database for processing tools.
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 generating language and is a 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:
In addition to assembly language, C is the language closest to the underlying layer, so it is a programming language of most programs. 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, unparalleled full-featured, deeply in-depth programming of the system. 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 in the entry-based programming language, which is the 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 an alternative to Lisp, as a member of the scripting language, has its own unique, 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 a database program with 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 a game, there is also 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 efficiency is higher. 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, which has a 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 need for fact-based programming, ProLog and Clips are inevitable.
[edit]
Why did I choose Python?
First, declare that I have programmed only the application, which is a small program that replaces myself. 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, have a variety of convenient programming modules such as regular expressions. 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 to do anything, but it has low programming efficiency, 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 does not inherit, although it is application programming, but if you want to edit a slight program, you will always be inherited.
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 the Python function. 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.
[edit]
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:
It is strictly in line with HTML in XML format.
RDF:
XML-based metadata description language. Convenient to exchange structured data. Convenient exchange knowledge. RDF describes knowledge using the subject, predicate, and object.
SVG:
Vector graphic format in XML format.
SMILE:
The synergy of various multimedia in the XML format in the timeline.
XMATH:
The formula description language of the XML format.
XML-RPC and SOAP:
Communication communication between network programs in HTTP protocol and XML format.
XUL:
The program interface language used by Netscape's Mazilla, based on the XML format, the XML language that is much more than HTML. It uses CSS to replace, with DTD to implement multilingual interface, with JavaScript to implement program logic, to write a program for easy customization interface across platforms, now this program API function is very powerful, the entire Mazilla program is based on XUL.
XAML:
MS in the latest programming language of the Longhorn platform, will be programmed with Web and use directly
The browser under Longhorn is executed, and it has a classification with XUL.
[edit]
The most advanced XML Format Graphics Interface Program Development Tools --XUL
Everyone knows the Netscape program, one is second only to IE browser, and many people know Mozilla, Netscape to open the source version. But many people just use Mozilla, I don't know another important function of Mozilla - program development. After Netscape Open Source Codes, Mozilla was 1.0 version has not yet been found. Many people laugh at his super slow development speed. In fact, Mozilla has brewed a super cool new product, which can be seen as software development tools. Develop another milestone.
Now Based on the browser's three-layer development structure is very popular, Microsoft has to think. Net thinking is based on this structure. In addition, regardless of the server structure, it is also very attractive to people based on the web page. These products have the idea of HTML as the user interface, but developers often are very disturbed by HTML. And Mazilla get XUL solves this problem.
XUL is an extended HTML, fully compatible with HTML, XUL is extended based on the XML format, which has been extended to the full and powerful graphical user interface design. You can design a complex graphics interface program. In fact, Mazilla is entirely designed by XUL. XUL uses CSS to control interface style, replacing strings with DTD, easy to achieve localization, react with JavaScript, provide basic logical programming, JavaScript, dynamically control the user interface through the object document interface DOM. At the same time, JavaScript implements powerful features by calling the rich underlying API provided by Mozilla. Mozilla provides a powerful API to file operation, network operation, graphics operation, and more, and this API is a complete cross-platform. Finally, Mozilla uses RDF format to store data independently on the interface.
Summary: XUL provides the most powerful user interface for customized user interface due to compatible HTML, and DTD provides the most convenient localization. XUL, JavaScript, RDF provides separation of display, logic, and data. The underlying API of Mozilla provides a strong programming capability cross-platform.
I hope everyone will take care of Mozilla.
[edit]
Programming language closest to human language --rebol
See www.rebol.org's details. Here I am talking about it.
The disadvantage of Rebol is obvious. It is a commercial company's products. It's just free as Java. But no open source. And the library of its database connection is charged. But it is also very obvious. If you don't use it because you are not open source software, you can also appreciate and learn from its characteristics, and understanding Rebol will definitely can't help us. First Rebol is a replacement of a Lisp language that implements all the capabilities of the LISP. He has the characteristics of data and procedures for the Lisp language, and there are also unity of statements and expressions. But big breaks the limitations of Lisp. It allows the form of a prefix operator, not full of parentheses, and the expression method of general programming languages is exactly the same. At the same time have a rich library, there is a full graphical interface, complete network library. Because it is a company's product, it also guarantees the unity of the library.
Rebol claims to be a network programming language, its network programming capability, usually one statement can download a file, or download a web page, or accept one email.
Rebol A magical feature is its graphical interface design, its interface programming is very simple, completely free of statements and functions, but as long as HTML, as long as the core content is used. This is beneficial to Rebol's "dialect" capability.
Rebol has built-in "dialect" capabilities. It is like Yacc's language parsing capabilities. You can expand "Submarine" at any time.
Rebol has dozens of data types, which are programs, and statements are definitely the most refined.
Rebol can implement the ability of Java's online downloads, as well as sandbox function. It is further more than Java, with its own desktop, can start all Rebol program on the desktop, and its desktop is like HTML is equipped with a rich expression form and hyperlink. Link to a website with Rebol features, you can use a variety of programs like browsing the web. Since the Rebol language is more concise than Java, it is very small to compile scripting, and its program file is very small, it is more suitable for network transmission. Because Rebol has a magical function, it claims to be the Internet Operating System. Because Rebol is a scripting language, it is naturally cross-platform. It has many implementations of operating systems.
There is also a feature that the rebol language itself is just a hundred k executable file, so the release of the Rebol program is very simple.
[edit]
A small and powerful scripting language lua
The first eye saw Lua introduction, I feel that it is like TCL alternatives because it is the main purpose as a scripting language. But then see it is not like TCL, which is the function language of command line, which is as statement structure as other languages. It implements the interaction with the C program and the ability of Python, with Python, and C. And Lua is all implemented with ANSI C, which can achieve a complete cross-platform.
Then, see a significant feature of Lua is that there is an object database function, and the eternal storage of variables can be implemented. This feature is the most important feature of FISH, FISH, is also the language containing an object database, but Fish has Outline visual interface, and database browsing capabilities. But FISH is not an open source, so if you need a non-memory variable storage space, you can select Lua. This object database is not only possible to store data, but also functions of operational data. The actual Python also has a function of storeing the entire memory on a disk file, in addition, there is Zope's ZODB to implement professional eternal variable. In addition, Scheme has a natural storage capability, which can only be output to a file to a file. Because Scheme is not subjected to data and programs, you can implement the program and data in the file.
Lua and Python are relatively small, because it is closely combined with C, you can use a variety of C libraries, you don't need your own library. Lua gives people an impressionation is a small-scale Python. Lua is also a dynamic data type and has a memory management function. Just Python comes with powerful libraries, while Lua only carries a small library, with strings and mathematical computing power, while LUA standards bring an object database. Alternatively, the C library can be compiled into Lua in time. LUA is proud that it is very fast. Lua's syntax is relatively simple, it is uniformly uniformly complex data structures such as arrays, dictionaries, structures. In addition, Lua has a regular expression function.
[edit]
The most modern Lisp interpreter Drscheme
Lisp is an old computer programming language that gives people a slow speed, the input and output capability is weak, there is no graphical interface, and it is too small to carry the library. Many functions cannot be implemented. All this has changed in the hand of Drscheme.
Drscheme has a large number of modern languages, such as the ability to embed scripts, programming capabilities of graphics interfaces, object-oriented capabilities, components programming capabilities, regular expression capability, XML capabilities, input and output capabilities as web servers and clients And other network capabilities, the ability to generate independent executables. An integrated editing debugging environment. However, its program execution speed is still slightly slow.
Of course, it has all the advantages of all Schemes, the grammar macro definition, the ability to name the space, data and procedures, stack memory management, infinite nested, with "table" to express a simple way of all statements and data, Also natural with the eternal existence capability of the program environment. These features seem to appear in the latest programming language. It seems that the development trend of current programming languages is developing from the C language to the direction with more LISP characteristics. Just like Windows has gradually has more and more UNIX has long implemented features.
I know that Lisp's programming environment is already so good.
Eiffel language impression
The impression is that it is a language of the full development cycle and is retrospective in the development cycle. Its Contract and ADA are similar. Eiffel is an object-oriented language-oriented language similar to C , but it is simpler and can inherit. Eiffel is an object-oriented substitute for C language.
[edit]
Mozart oz language
OZ introduces it to object-oriented, logically programmed, concurrently distributed languages. My impression of OZ is the most threaded ability. A simple case statement, you can start multiple threads. In addition, it is also a prolog substitute, which can be written in a distributed manual intelligence program.
[edit]
What software is usually used, what software is used?
Take the software I use:
Use Excel to program with VBA.
Use AutoCAD to program allolisp
Use Zope to use Python programming
Use GIMP to program with Python or Scheme
Use Gnome Office to program with Python or Basic
Use Blender to program with Python
[edit]
Then look at what type of data
If the operation of processing the file is used with the shell language. Such as Bash
If you handle text files, use perl or awk, if you like Perl style, it is like a larger program, you have to use Ruby.
If the database is processed, simply use SED. Otherwise with SQL.
If it is an object database, you can use Python ZODB, or Lua, Fish
If the general database does not meet the requirements, you need to do an expert system, use protogo
If the structured text, such as XML, use XSLT.
HTML, the client uses JavaScript, if the server is used to handle text similar to language analysis, use YACC
If the result is the result of printing a document or screen document, use Tex
If it is image, animation, or other binary files, generally use C language.
If the problem is processed, deal with the underlying under the operating system, use C language
[edit]
From language characteristics
If the extremely demands of multi-threaded concurrency and distribution, you can consider the OZ language.
If you value the document, I hope that the program's document is written, the program is almost completed, so use CWEB
Complex procedures, you need to do UML documents before writing.
If you want to write a larger program or intend to learn a programming language, you have to use Python.
If you write a program to handle complex data structures and algorithms, use Lisp and Scheme (like Lisp style, and hope to be simpler, use refile)
If you want the easiest implementation of a language as an embedded language, use TCL, if the TCL has a limitations, use Lua
[edit]
The C language is the most popular language, but the C language has some shortcomings, so many languages that improve C is produced.
Because C cannot write a big program, it produces C
Because C has a shortcomings such as pointers, Java has been generated.
If you don't like the various shortcomings of C , you want to use a compilation language, choose Eiffel.
A disadvantage of C language is that the standard library is small, and all issues cannot solve all problems, producing a large number of incompatible libraries, resulting in a lot of non-portable procedures. If you want a portable language that is a migrating, you can select the ADA. The ADA graphical user interface library and various and operating systems related libraries are standardized, and different sellers can be selected. It is a standard programming language that the military needs.
If you don't like the cumbersome C language, I hope that the things that often do can make simple, then you can use python. Complete the same work, the number of Python code lines is one of C.
C style footprint is JavaScript, Pike
[edit]
Selection of graphical user interface
The simplest graphical interface interface is TK, which can be available on a variety of platforms.
If there is a higher request to use GTK. GTK portability is different.
An open source C library with transplantability is wxwindow
If you want simple programming, you can use it, you can use XUL
Cross-platform graphical user structure is Java's AWT and SWING. If it is not cross the platform, there is IBM's Java solution.
If the business programming language is not excluded, you can use Qt, because QT's program, if commercial use is to pay.
If you want to write a full-screen text interface program, Emacs is the most authoritative. We can recall, the Turbo C's programming environment and the graphical user interface is as friendly. It is a full screen text user interface.
If you write a similar procedure in the Office, you can also consider the options on the Open Office. GTK can also be.
> If processing structured text, such as XML, use XSLT. XML itself is also considered.> Handle HTML, clients with JavaScript, server-side PHP PHP is not unique.> If the result is a print document or screen document, use Tex Strong.> If it is image, animation or other Binary documents, generally used C language. > If the problem is handled and the operating system is handed over, I will choose C in C / C in C / C > If the extremely demanding multi-threaded concurrency and distribution can be considered, I can consider OZ language>]. The language after 20 years.> If the program is written to handle complex data structures and algorithms, use Lisp and> Scheme Lisp also like it.> If you want to write a full screen text interface program, Emacs is the most authoritative. We >> Memory, Turbo C's programming environment and graphical user interface is as friendly. It> is a full screen text user interface. Ha, Emacs.
Perhaps the language is used to transcend. Many applications require different language mixing. Python is embedded in the application, I feel very attractive.
==== Add it again, Web server programming ====
In commercial development, Java and .NET are Java and .Net, in fact, Zope is also one of the choices. Zope is characterized by all open sources, fewer layers, simple. And integrate a content manager and numerous additional products. Additional products are mostly an inevitable advantage of open source software. Some disadvantages before Zope will be resolved in Zope3. In addition, Zope's component architecture and CMF development architecture do not have to have Java's component development environment (I didn't touch a lot of Java, just the judgment, others can have different opinions).
Although PHP does not suggests to develop, there have been a lot of large-scale procedures on the PHP platform, such as Puke. Tiki.
In addition, the web server has been default supported by many programs, and a separate web server program can be written in many languages.
Literature Programming and CWEB Introduction
CWEB is a programming language created by TEX. Tex is the mainstream document print standard and document generation tool. TEX and related metaFont are software written in CWEB, while Tex has the programming characteristics of CWEB. CWEB's programming ideas called "literary programming". Actually, it should be called "article programming", because there is little relationship with literary relationships, but similar to academic books. The main thinking is: Programming should be like writing academic books, with overall ideas, partial, chapters, festivals, sub-festival, and sub-festival. This is actually similar to what we say "Self-headed" programming methods. However, "Self-top" is just a software engineering way, it is implemented in writing documents, not combined with programming languages. CWEB uses my saying that "self-top" is implemented in the programming language.
The implementation of CWEB is "macro replace", which is the more specific content to replace more simplex content step by step. The programming tool we use "Maker" is actually a macro replacement tool (I have not used Maker, just heard about it). Zope's Tal language is an alternate tool, but not macro replacement tool, because its content is not executable, if the content is executable, then it can also call macro replacement.