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:
- RDA: Rich Desktop Application, traditional software like Open Office.
- RIA: Rich Internet Application, programs running on the browser with an interface like that of RDA.
- Mobile applications, that is described in a separate page.
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).
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 languages are classified into categories of uses:
- System Languages: C, C++, Go.
- Languages for applications: Basic, Pascal, C#, Java.
- Declarative markup language (XML, RDF, RSS, XAML, XUL, etc.)
Some languages have multiple versions tailored to different applications (ASP, JSP ...)
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 Studio Community 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 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.
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.
The standard is called ECMAScript.
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.
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
- Tools for programmers.
- Learnable Programming.
A tutorial on the art of programming with a better way of thinking : live coding.
- Khan Academy
Programming for the very beginners (or dummies).