Application Scope of various programming languages

Source: Internet
Author: User

Programming languages involved in this article: C, C ++, Java, C #, Prolog, VB, Scala, Clojure, Haskell, Ada, Python, Ruby, Pascal (Delphi), Fortran, Lisp, matlab, Perl, Erlang, Boo, Tcl, Bash, C shell, Objective-C, PHP, PL-SQL, Transact-SQL, ASP, JSP, Lua, smalltalk, R, D

Involved tools: sed, awk, grep

We are now learning a language, most of which are based on talent (basically Chinese companies use what we learn.

For example, the big data must be C ++ and java, because this is the easiest way to eat. Recently, Erlang has been used for many games, and many companies have followed the trend of Erlang. This silence for a long time has suddenly become a star.

Large companies generally use Java in addition to C ++. In fact, Java accounts for half of Internet companies (except for java architecture, of course, there are many. net families ). Therefore, the vast majority of Chinese programmers living in the poverty-stricken online seldom look at such things as scala. But as glue, python and perl still have a certain amount of users.

It seems that we only have these languages in our lives...

What language should we choose when we encounter a problem? Although every language is completely Turing, it is very painful to write things that can be written using prolog in other languages. This is why different languages exist: different problems, different ways of thinking (programming paradigm ).

  • Solve the problem case: a large number of facts are known, and the constraints between them require relationship mining.

Decisive usePrologLanguage.

For example, the leap Tower, map coloring, the problem of data independence, and the eight queens question Test IQ, and the pattern problems need to be discovered from known rules. Applications with a large number of known cases (such as most artificial intelligence situations)


  • Application case: from small to super large applications, non-full Internet applications

This is what most software companies encounter. Generally, there are several solutions that cannot be divided into two categories:C ++, Java, C #, VB. Of course, there can be differences between CLR and JVM. For example, theoretically, you can also useScala(But it is estimated that large companies will not take the risk ). In theory, you can also use functional programming.ClojureAndHaskell(It is estimated that no one is so stupid ). It can also be used theoretically.AdaThis powerful general language, but it is estimated that no one is willing to accept programming languages that are more complex than C ++. Theoretically (only theoretically ).SmalltalkAlso. In theory, python, ruby, and so on can work with a certain graphic interface library (but to a certain extent, you will be crying ).

However, I have another line. There is a language:D Language. I personally do not think it is a preferred choice. But it seems that the popularity is not good .... Less enterprise support ..... It is indeed a good language. C ++ is too big to end, and requires a language to make C ++ a pure C ++.

A little smaller, it cannot accept object-oriented programmers, many of which use C. Although OOP programmers look like they are not open-minded, they have their own philosophy (I have been developing embedded systems and cannot get rid of C for a long time, so I usually reject OOP)

  • Solve the problem case: the program scale is not very big, partial Mathematical Problem

Many people once usedPascal(Including extendedDelphi), Used by manyFortranBut both are obviously regressing. Large General languages (C ++, Java, and C #) demonstrate their adaptability in various environments.LispThe series also showed ancient charm on some issues. (But this language is far less magical than what the hacker and painter described to us, I personally think. However, my C ++ style ideology is dominant and may not be able to evaluate lisp fairly. However, according to my experience in using lisp, in most cases, I finally gave up on it. In most cases, I can always find the reason why C ++ (or other OOP languages) is better)

In addition, it is generally used by readers.Matlab. This tool has two words: powerful! However, it only refers to scientific computing. From this aspect, we have to consider whether it is appropriate. After all, fixed matrix thinking is not effective in all situations. I use matlab for neural networks, images, and signal processing. It is no exaggeration to say that matlab is a simple photoshop... (Of course, you have to use it ...) However, the neural network of matlab does not work. It is too bad. A small-scale network is enough. The layer-3 F network does not use BP, and dozens of networks will be suspended. Use ANN for this purpose. (Or C ++)

  • Special Application case: applications that need to process a large number of strings

Preferred toolPerlHowever, if you are used to sed, awk, and grep, you can easily complete the same function, but perl is done by absorbing three directors.

The second is C ++. Don't pat me. Have you used regex? It's the one in boost. It was recently incorporated into C ++ 11. With the Regular Expression of C ++, the processing characters are invincible. Of course, Java Programmers don't take pictures of me. I know that such libraries can be used in a large general-purpose language. When I mention C ++, it generally does not mean that Java and C # can accomplish the same function at a similar cost.

  • Special Application case: requires a glue to bond programs written in different languages

PreferredPython. Two words: simplified (ah, it's a little cool to say a powerful language, but it's really easier than ruby ...) (In additionBooIn. net, it can be used to replace python)

SecondRuby. Two words: Complex

After all, ruby cannot get angry without rails. Facts prove that python philosophy is right. Of course, the two languages have a lot of different details, and even different programming paradigms (I really want to explain how ruby can support multiple paradigms as an advantage? The market proves that python is pure)

  • Special Application case: Automated Testing
No need to ask. It must be Tcl. Because of this special application, personal users are rarely used, most of which are embedded companies. Huawei, DT Tong, and mavip...

  • Special case: system underlying layer

This must beC. Most of the operating systems, drivers, and underlying software are written in C, and APIs are called. If you do not use Microsoft Activex or other technologies, you must be honest and practical.

  • Special case: System Management
This system management generally refers to linux. The first choice must be various ShellLa: Bash, C shell
  • Special case: Apple Platform
We have no choice .... Objective-C
  • Special fields: embedded
Most of them are C. However, the andriod platform and the Apple platform have to be obedient. Gmszone Users suggest putting Ada here too. I do not deny the broad future and practical strength of Ada in the embedded field. However, after C has dominated the embedded system for so long, programmers basically cannot accept other ideas. For example, ARM, I used Xscale three years ago. I really don't want to give up C. Embedded things are right and wrong, and sometimes there is no way to say it at all. So it is very important to have experience and accumulation of our predecessors. So just like Monopoly, it is not a revolutionary excellence that cannot shake the foundation. I used the spartan FPGA. I remember that all the selected cores were programming interfaces using C. Therefore, I am sorry that I cannot receive comments from this user.
  • Special Application: webpage
Embedded in the web page, the most popular is certainly PHP(Backend) and Javascript(Front-end. The former replaces the ancient cgi. However JspEmbedded java and asp Embedded C # are strong opponents of php. The general language is aggressive in all aspects.
  • Special Applications: Databases
It is more accepted than the SQL version. Standard SQL does not need to be said, according to the ranking, PL (SQL)/Transact-SQLList.
  • Special Applications: parallel and distributed
Parallel Processing becomes more and more important. Preferred Erlang. However, based on the existing conditions, we still need to consider the Parallel Optimization of the general language. C ++, Java, C #And so on.
  • Special Applications: feature enhancements in specific languages
Don't ask. What I want to say is Lua. Using C ++ to write and writing logic with Lua is a classic development strategy for many games. (Of course, javascript and Unreal are used in Unity .) It is a very interesting practice to learn to use Lua Acceleration Based on General Large-Scale languages.
  • Special Application: Artificial Intelligence
On Ai, PrologAnd LispIs the darling. RLanguage is sometimes used for data mining (but it is too slow)

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.