Programming languages are more than tools.

Source: Internet
Author: User

I am absolutely aware of the value of knowing a variety of programming languages and think that "work with the right tools" is a good idea. But in programming, there is a misunderstanding of this concept, which I think needs to be pointed out here. But keep in mind that the interpretation of this misunderstanding is not to negate the idea.

Multi-language Movies
let me start with an eccentric analogy: suppose there is a movie about a political conspiracy involving a complex series of international adventures that clash with 7 or 8 countries. Each actor speaks their native language, without subtitles. Who can read the plot of this conspiracy? I'm afraid there are only a handful of filmmakers who know how to appreciate the film. Most of us are not going to see it.

Multi-language programming
our last Web application project used 6 or 7 programming languages (Groovy, Java, HTML, CSS, SQL, Ant). If we feel the need, we can also easily add more languages. If you add Clojure, Scala or Ruby/jruby won't feel right. A multi-lingual language and the ability to switch to a programmer in multiple languages is called a "multilingual programmer."

One of the main reasons for the creation of multi-lingual projects is often the concept of "working with the right tools". This "job" usually refers to a small task in a large project, such as compiling a project, accessing a database, and implementing a business logic that is never stereotyped. For each sub-task, there is a language that can do a better job. In addition to the controversy over the hidden costs of this multi-lingual approach, there is a misunderstanding of the word "tool" that needs attention.

programming language is not a tool

If your tool happens to be a programming language, the source code you produce will be combined with your tools. Without this tool, your product will not run at all. If you think that the compiled binary code is a "product", you will not be able to make a "requirement change" for it, which is a wrong concept that the programmer might initially have. Obviously, the programmer's production of the product is "source code". The programming language is not the role of a tool, it should be a material from the nature of the software. The tool can be thrown away and the material forms the body.

Programming languages are product materials
because the source code is attached to its programming language, they are a conceptual fit. So, I suggest that when we talk about programming languages, we should change to the word "work with the right materials". Compared to the choice of whether to use Philips screwdriver or Mitsubishi's screwdriver such a problem, our revised version of the choice of programming language will play a more profound significance. Materials need to be durable, and most of the time the tools are left on the side.

But it's also a tool.
We've used a lot of tools in the Web application projects we've worked on, as mentioned above. Grails is our framework, jetty is our web container, and the Spring framework provides a powerful service that we combine with idea. We can easily replace jetty with Tomcat, or replace idea with eclipse. Tools need to be replaceable, even disposable.

Summarize
The words "work with the right tools" cannot be easily applied to programming languages because they are not tools, but materials. This is why it is dangerous to use multiple languages extensively in a project. It's easy to turn the project into a messy "composite board" project.

For more programming language Tutorials , please log in to E mentor Web.

Programming languages are more than tools.

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.