Getting started in programming

To start programming, what programming language, what development tools to choose? It actually depends on the type of software is to be achieved.
Programming can be done in three main areas:

The most modern trend is to create a Web application running also locally without connection, and using Ajax.
There are also other areas programming, based on scripts.

Besides these applications, there are also enterprise software that may involve different techniques like using UML, and aspect programming.

Choice of the programming language

When we decided to get into programming, the choice of the language is the first step, it must be considered, and it depends on the project but also its future, a future developer, for example, uses language that business uses (rather than an academic tool like Caml).
It is preferable to master "local" programming at first, before switching to the lineup for the Web server or Web page, that are more difficult. Programming in JavaScript without error messages, is particularly difficult. There is software to aid debugging, however.

The Scriptol.com site describes all popular languages and shows why use one over the other.
There is also a history of programming languages and cards for main ones. Examples of simple programs are given for all languages.
The site is also dedicated to algorithms with example in Scriptol, PHP and C languages, as well as JavaScript.

The languages are classified into categories of uses:

Some languages have multiple versions tailored to different applications (ASP, JSP ...)

C++

There are more than six free C and C++ compilers.
Microsoft Visual C is the more stringent, with errors analysis better than BCC 5.5. Available on the Microsoft site within the rapid development tool Visual C++ Express or the. NET SDK. The GCC compiler is available for Linux, MingW and Whatcom on Windows.
We can build software more easily with Speedy Make an XML alternative to the classic Make compiler project.
C++ is now giving way, for both local applications and Web applications in Java and C# running on it. NET platform. The Go language is another challenger.

The C# language (C Sharp)

You can if you have the platform (under Windows and Linux) to replace C++ by C #. There are several development free environments: Turbo C# Explorer, Sharp Develop, and Visual C# Express. All help to define visually the interface of an application.
The advantage of C# is the automatic management of memory (like Go), use of XAML to define an interface declaratively in XML. In addition it runs on. NET platform where it can share classes with other languages.

Java

Java is widely used to create Web services.

The most used development tools are NetBeans and Eclipse, which is consistent with the Java SDK that Oracle provides.
Eclipse may seem difficult to use at first compared to the more classical NetBeans.

JavaScript

It runs in the browser but can also be used locally through compilers and interpreters, V8 from Google or Tamarin used by Mozilla. The new JIT (Just-In-Time) compilers let JavaScript running as fast as Java.
Programming in JavaScript is different because it does not take the traditional object-oriented model but uses dynamic prototypes. There is no great difference between arrays, functions and objets, making it very flexible. It's actually a very innovative language.

The most famous local application of JavaScript is the Node.js server running on Windows or Linux.

New languages

There are more modern languages and much simpler to use. These languages, in addition to the ease of reading, are also more suitable for programming web pages or sites.
These are Python, Ruby, PHP and Scriptol.
Ruby is used primarily for the web with Ruby on Rails, Python is a scripting language used by the Zope web server.

However simplicity is not aimed for new system languages ​​such as Go from Google and Rust from Mozilla (and the future M# from Microsoft). It seems that the readability of the code is the least of their worries, but these languages ​​are easy to avoid.

Programming for the Web

Achieving rich Internet application, with a user interface as complete as that of a desktop software, is the major challenge of current development. We must choose the right tools, the good formats.

PHP runs on all systems. It is a scripting dynamic language. Scriptol is a front-end, which allows to control errors at compile time.
Scriptol product embedded PHP source code in HTML or binary executables. The goal is to make applications running both on the Web or locally without Internet access. The Scriptol interpreter facilitates language learning.
Note that Microsoft provides a runtime, Silverlight, accompanied by a development tool Expression Blend to create hybrid applications running on the Web or the desktop.

The alternative language to PHP, ASP from, Microsoft is close to Basic. It only works on a Windows server. For heavy applications, Java is often used (Facebook use PHP while Twitter moved to Scala). Java is available as scripting language, JSP, running on the server side like PHP.

On the browser JavaScript is used along with Ajax. The standard is called ECMAScript.
For development, the Firefox plugin Firebug controls and display exchanges between the server and browser, and reports errors encountered in JavaScript.

XML is becoming essential as file format with the development of Ajax, even if JSON is used as frequently and is easier to use with JavaScript.

Creating documentation

For manual work, the easiest is to use Open Office which will produce a Word document, HTML for the Web or PDF to printing.
The lightness of HTML code produced by version 2 is impressive compared to previous versions or other software.
In case your program provides the sources, needless to describe the functions one by one, a documentation generator source code can do this for you Doxygen (Windows/ Linux), and there are many others similar tools.

Software distribution

Windows software is often bundled with an installer that the user has just to run to install with icon on the desktop.
You have such a system by downloading a full installer generator as Inno Setup.
It offers a wizard (good engineering) to generate the installer script. You can then add options manually.
Then prepare an icon 32 × 32, this in gif or jpg file or in Windows' format.
An archive can be created with archiving software for free. Choose between 7-Zip or IZArc.

Documents and tools