The eternal battle near completion
Several readers of this blog I have questioned my position on languages \u200b\u200blike Java , Perl, PHP , Ruby, ASP , and the latest suite of Microsoft: Visual Studio.Net . Well, it's time to explain my position, which may offend many, perplexing to others and confuse the rest, well, some few people will agree with me.
In short, the key question is: what's better, the scripting language or compiled language? I'll summarize it in one sentence. All languages \u200b\u200bare interpreted.
I know that some (if not most) will say that this is not possible and therefore I will lift at that assertion.
To begin, we define each of the phrases from the standpoint of programming of PC's. Compiled Language
-
A compiled language is somewhat vague term to refer to a programming language that is typically implemented by a compiler. This means that once written the program, it translates from the source code through a compiler into an executable for a particular platform (eg for Sparc Solaris, Windows NT for Intel, etc.).. (Compiled Language - Wikipedia )
-
Language Interpreted ... An interpreted language is one in which the instructions are translated or interpreted them one at a time of execution to a machine language or intermediate language or through a virtual machine, typically being about 10 times slower than compiled programs. (Adapted from the definition on Wikipedia)
After the definitions, let's put in Christian terms, or better in computer terms, because not all Christians understand this terminology. A compiled language is that which, in theory, is translated into machine code and generated instructions are interpreted directly by the machine. And an interpreted language is one that is translated into an intermediate (read: non-machine), in which each instruction is interpreted and translated into machine language runtime. In practice, only and counted operating systems that run programs especially for console are in machine code. And before anyone misunderstand, I explain the above.
If we talk about the platform used in the home, understood Micro $ oft Windows, or as to the time of writing of this note, ALL, without exception, languages \u200b\u200bare interpreted or semi-interpreted. Those who know the assembly language the reason I find no problems. In modern operating systems, when you "compile" a program, it translates to a pseudoensamblador or pseudo-machine style, which in turn is interpreted by the "virtual machine" itself or native operating system to process , draw and perform all the instructions properly. Advanced programmers will know that when compiling programs, so you can find is a series of calls to external libraries which perform the tasks required. For UNIX operating systems and other, things do not change much, so do not I go into detail.
But now I go into the field. It is already clear that all programs are interpreted to a greater or lesser degree, the question is now how compilers generate code "more compiled" (forgive the apparent redundancy) than the others. Here I will mix a little personal concept with technical concept. To start I will be direct and mention some languages \u200b\u200bthat are generated, in theory, programs "more compiled" without mentioning the platforms to which they belong (I do miss some compiled languages, not currently used: Fortran, Ada, Algol, COBOL, and others of their time, except BASIC and derivatives):
C | compiled language teacher par excellence, except in Visual Studio.Net. I only mention that it is the language in which they were designed the great majority, if not all, modern operating systems. |
---|---|
C + + | Some would ponder, why separated C of C + +. Well, it happens that C + + is not compiled as C TAN, especially because almost always used in graphical operating systems, only in console versions is compiled into real machine code, but basically and essentially is compiled to machine code. Pascal |
Basically, in all flavors and colors, compiled to native machine code | |
Delphi, Kylix, Lazarus | are highly collected, but not entirely, because they are oriented graphical operating systems, and to a lesser degree are interpreted, but compiled languages \u200b\u200bare considered, because the generated code is native to the target platform. |
I mention the best known and most widely used, now they are interpreted languages, which cause so much controversy.
But why so much reluctance to these new technologies?, And what present pros and cons?. It's pretty simple. I'm not against these tercnologías, in fact, are excellent and sooner or later, but sooner or later, will build standards and will be considered as compiled languages.
Advantages of interpreted languages \u200b\u200b
- Portability: This is the main advantage of this type of language because it can be compiled in and for any platform or operating system.
- compatibility: as interpreted by the operating system, virtual machine or framework which ensures that the instructions are implemented by the software and hardware.
Disadvantages of interpreted languages \u200b\u200b
- Speed: It is the most remarkable and which should be evaluated thoroughly to create software with such languages, because it must balance the portability with the speed that is being sacrificed. Unless the benefits of computer equipment are quite high, in which case, one might dismiss this aspect.
- Portability: it is a disadvantage too. The problem is that today, so all compiled languages, are available for all platforms, so no virtual machines or frameworks, but in the case of Java, has done an excellent job for that matter and I can not complain, exists to almost all platforms, if not all, current. The. NET framework, I regret to say that today, one hundred percent is tested only on Windows, although there are promising projects such portability, but are not yet a fact.
In conclusion, how to act?. It is very difficult. Requirements are evaluated, defined needs, if they do not exceed the hardware to use, well you can continue, otherwise, it is best to think of a compiled language, as interpreted languages \u200b\u200byou require a large amount of resources, especially RAM and processor. Interpreted languages \u200b\u200bshould be exploited to the extent posiblem In a few years or even months and will enter into force (or are they?) the new standard of development.
0 comments:
Post a Comment