Programming Languages used to develop Applications

Programming languages are used to create applications or programs. Programming languages have evolved to facilitate their use but normally they are used by technical people. Normal case will be we use an already developed application and we don’t have to take care about the language used in development. Anyway, knowing the language used, we could have some ideas about capabilities and limitation of our application.

Extension SDK Scratch HTML
App Inventor Javascript
Runtime Software Assembler Language Java CSS
Executable Software Machine Language SQL
C PHP


¿What is file extension?

Basic storage method both in computers and mobile devices are files. File is the element to store documents, music, text, programs, etc. Application use to be a group of different type files in charge of a task. Each file has a name and an extension with a point in the middle. Extension use to have three letters but there is no restriction. It could be two or four. Extension indicate the file content: “doc” indicate a document, “mp3” music, “jpg” image, “gif” is an image with a different format, “exe” and “com” are programs, “jar” is a java program. Of course there are thousands of different extensions. We could change the extension but we will generate confusion about the content of this file. Operating system indicate a warning if we try.


Runtime Software

It is one of the way to execute an application  or program. These applications or programs are stored in files in text mode. We could edit these files and even modify them. A runtime program is used to execute this application. Runtime program read the file and execute the commands base on programming language rules. The main advantage is this application is valid for any operating system and hardware. Only runtime program should be the proper one for this operating system and hardware. Example of this kind of software is “Java” programming language. We should download Java runtime from Oracle web site suitable for our device and any Java application could be run. Disadvantage is runtime program has to analyze every command every time is executed. Then execution is slower than the following type: Executable software.


Executable software

Software developers always develop applications and programs using programming language in text mode. In this case a compiler program is used to translate from software in text mode to software in machine language. Output from compiler program is a file directly executable by the device usually in files with “EXE” or “COM” extension. As the device understand directly the commands execution is really fast.  Additionally it is really difficult to analyze this software as machine language is difficult to understand. Inverse translation is nearly impossible. The original software in text mode is name “source code” and it is not necessary for application execution. Only developers have this source code. Most of commercial applications use compiled software and only executable software is distributed. This executable software is only valid for a specific operating system and hardware. For a different one a different compiler is needed and executable software is different.


SDK

SDK stands for Software Development Kit or Development Environment to create applications. Every SDK is designed for specific programming language, operating system and hardware. In some cases SDKs are free because of the interest of one company of having a lot of applications. This is the case of Java: we could download both runtime and SDK because SUN Microsystem (Now Oracle) is interested in the use of Java programming language. JRE is the Java Runtime Environment and JDK is Java Development Kit and both are for free. The objective of SDK is to facilitate and speed up application development. SDK use to have an editor adapted to the programming language checking syntax errors on-line. Additionally it has debugging tools to execute applications and detect design errors or “bugs”.

Thanks to the expansion of mobile devices most used SDKs are the ones to develop applications for Apple IOS, Google Android, Microsoft Windows Phone additional to the already mentioned Java JDK.


Scratch

Developed in the famous MIT (Massachusetts Institute of Technology) it is the first programming language we should learn. Objective is teaching and education and it is used every time more in schools. Scratch has a visual and intuitive development environment and it eliminates syntax errors usual in other programming languages. Scratch is structured and object-oriented  and learned concepts are directly applicable for other, more professional, languages like Java. Development environment could be downloaded but the best way is using only web browser and creating a free account in scratch web page.


App Inventor

Developed in the famous MIT (Massachusetts Institute of Technology) as well and in the same way than Scratch, App Inventor allow us to create mobile applications for our Android device in a simple and intuitive way. For starting we have to access App Inventor web pages using a Google account. It is not necessary to install any application in our computer as development environment works in any web navigator supporting “Adobe Flash” (main ones support it). For installing our applications in our Android device we will need “MIT AI2 Companion” app installed in our device. This app read QR codes generated by development environment and install our application in our device. It is really easy and intuitive and the best way to start developing mobile applications.

HTML

HTML stands for HyperText Markup Language. It is the main programming language used in Web pages. Web page is a file written in HTML programming language. File extension are HTM or HTML. This file is download and executed by our navigator in order to show the web page. In this case our navigator is a runtime program. At the beginning HTML was designed only as a formatting language only to give format or text and images but, in the following versions, new functionality was added giving to HTML enough capacity to create powerful applications. Complementary programming languages like JavaScript (no relationship with Java) and PHP, run as well by navigator, gave the capacity to create any web base application. Last HTML version is HTML5. This version intends to give all necessary capacity to create any application not needing any complementary programming language.


Java

Java is a programming language used to develop applications or programs. Java is designed to be run by a runtime in our computer or mobile device and there is no Java compiler. There are Java runtime programs for most operating systems and hardware and our applications could be independent of the system. We could download the different runtime programs from http://java.com. Applications and programs designed with Java are stored in files use to have “JAR” extension. This programming language was developed by Sun Microsystems company allowing free use and distribution but no language rules modification. Nowadays Java is Oracle property but conditions continue the same.


SQL

SQL stands for Structured Query Language and it is most used programming language to manage databases. SQL is used to query, modify and insert data in a database, and management functionality like tables and files creation. SQL programming language is always run and SQL applications could be seen with a text editor. Like other runtime software is slower but this is not really important in this case because the bottleneck in database is disk access. In fact database performance depends more on disk access speed than computer speed.


Javascript

The first to take in count is Javascript and Java are not the same. Both are run and they could be similar in some commands but they are different programming languages. Javascript is used to insert small programs in HTML web pages. Javascript program is written between  labels. This program is analyzed and run by our web navigator. Javascript is not used for big applications but for improving web pages with additional interactive and navigator control functions.


C

Name of this programming language is really simple, C letter, but it is one of the most used general purpose programming language. Programs in C language used to be compiled and applications use to be in executable files directly executable by hardware. There is a newer and advanced version named “C++”. This last version includes  a new concept called “object-oriented programming”. Object oriented programming improve software reusability but it has an additional complexity. Both C and C++ are reserved for expert programmers.


CSS

CSS stands for “Cascade Style Sheets”. It is complementary to HTML and it used to improve web page appearance. CSS allow to split in a different files content and presentation. Presentation formating is stored in a single CSS file. Changing CSS file we could change the style of all web pages referring to this CSS file without modifying content.


PHP

PHP stands for “Hypertext Preprocessor” and it is a programming language run by web server. We can distinguish because web pages have PHP extension instead of HTM or HTML. This programming language allow to develop complex applications. When our web navigator request a PHP page it is run first in web server and the result is sent to our web navigator. Our web navigator never get original PHP program and we only receives the result. It is the most common programming language to develop web-based applications.


Machine language

It is the language directly understood by device microprocessor. The output of compiler is a program in machine language stored in executable files usually files with EXE or COM extension. Machine language is specific for the microprocessor and not valid for a different one.


Assembler language

It is used only in some specific cases like extremely fast programs or really efficient ones. If it is possible this programming language is not used. Machine language commands are in binary format and impossible to manage. Assembler language assign a set of three letters to each machine language command. Letters are more easy to manage than binary numbers. As an example command MOV (“move” abbreviation) is assigned to all machine language commands moving data. Even in this case this programming language is really difficult to manage and every time is less used. Assembler source code is written in text format and translation is needed. An assembler program is used instead of compiler.