Table of Contents
Creation of software
The creation of a software is based on precise conceptual ideas and implementation using adapted programming tools.
Looking for a software idea
To sell a product on the market, it is better that this product is not a more or less disguised copy
of an existing product.
This rule is also valid for software. If we create a word processing
software comparable to MSWord with some improvements then from the start of the sale,
we will attract the attention of competitors and it will become very difficult to succeed.
It is not useless to carry out a market study concerning software. The software present in the various software stores on the internet allow to have an overview of the market. Add that internet searches can give information about sales.
Generally, it is necessary to avoid thinking about software that is aimed at a too small audience,
which only affect several hundred people or whose usefulness is perplexing.
For example, we should not hope to interest many users with a memorization software
of sentences, which records in a directory the text entered on the keyboard with the date and time.
We must also drop the ideas of software that would be quite close to free software or provided by default with certain operating systems or even some software have become classic programming exercises in computer science schools.
But sometimes there is the chance to have the right idea and at the right time. The best examples illustrating this saying is the games Flappy Bird and Candy Crush Saga.
Design of a software
The designer must start by making a draft of the software by reflecting on the following points :
-
feature,
-
interactions with the user,
-
the appearance
Then, he must choose a programming language in which the software will be realized. It depends on the type
software (for desktop computer, mobile phone, …) and the targeted platform.
Then he must determine, the algorithmic difficulties that he could encounter. For example, if the software
must recognize typed numbers in a grid, does he know an efficient algorithm to do it
or does it have a library that accomplishes this character recognition task?
It is best to solve this type of problem before embarking on programming.
He will then be able to describe the logic of the program using diagrams, often composed of named boxes,
connected by arrows. These boxes often group functions or methods that have a common trait
(manipulating the same data structure or helping to perform a specific task).
When the organization of the program is sufficiently detailed, coding can begin.
A part that is quite often overlooked is that of the appearance of the software.
The main reason is that it requires time (creation of themes, images, logos, graphic objects
mobiles, fonts, …) or that it adds a considerable cost to the software.
Programming a software
Programming a software requires knowledge of at least one programming language and many
of practice.
In addition to the programming language, the developer must know how to use certain libraries or technologies
run.
In the realization of a software, the programming generally represents the part that requires the most
concentration and attention. Coding errors can compromise the completion of the software on time
want.
Let’s take a look at which development tools can be useful for the implementation of software.
Development tools
The main development tools are programming languages (compilers or interpreters) and auxiliary programming languages for relational databases.
But it is almost essential to have a debugger and a "production engine" of the make type.
To work on the source of a program, some continue to develop with code editors as Vim, Emacs, …, but others prefer to opt for an integrated development environment (IDE) such as Eclipse, NetBeans, Visual Studio, KDevelop, QDevelop, …
A bit halfway between a code editor and a EDI, VSCode is often used for web applications.
The major disadvantage of EDI is that they are very resource intensive and therefore require a powerful computer so as not to row.
The other disadvantage is that they are not always cross-platform and this can be a problem for those who work on several operating systems.
Choice of programming language
On some proprietary operating systems, the choice of programming languages
to develop a commercial application is voluntarily restricted by the owners
of these systems.
On Mac OS, the following languages are practically imposed
-
Swift
-
Objective C
On Windows, the following languages are preferred
-
C#
-
VB.NET
-
and in some cases the C++
On Android, the following languages are preferred
-
Kotlin
-
Java
-
optionally the C++
Let’s point out in passing that there are cross-platform development systems such as Xamarin, Qt or Windev allowing to program software for several operating systems.
On operating systems based on Linux, or *BSD, there is no preferred programming language, but the most used for applications are the C and the C++.
Regarding the programming of web applications, there is at least one programming language to know for the client side and a server-side programming language, which may be different from the first.
Server-side, depending on the hosting not all programming languages are available. The PHP language remains the most widespread and practically installed by default on the servers.
Some hosting providers offer other languages such as Java, C#, Golang, Python, Ruby, Lua, JavaScript with Node.js.
In some clouds, it is languages such as Java or C# that are privileged.
On the client side, there are multiple options despite that
the JavaScript is the only language to be implemented in all browsers.
For a long time, some developers wanted the replacement of the JavaScript by a
stack-based virtual machine in browsers. This would have allowed an opening of the programming
client-side to other languages.
But there is little chance that this will happen in the near future, given that many technologies
rest on the JavaScript.
However, a language from the bytecode category, called Wasm (WebAssemby) appeared in 2017
to complement the JavaScript and with superior performance.
Recent browsers integrate a Wasm execution machine but which cannot interact with
the DOM (Document Object Model). Thus the Wasm does not entirely replace the JavaScript which
remains unavoidable.
To avoid certain JavaScript problems such as the absence of typing or the lack of some features you can use compilers from other programming languages to the JavaScript.
The most common are:
-
Dart
-
TypeScript
-
Elm
-
PureScript
-
CoffeeScript
-
ClojureScript
-
Scala.js
-
Reason
-
HAXE
-
Nim
But the JavaScript remains the preferred language for front-end programming and it has a quantity impressive libraries and software frameworks.
Previously, the jQuery library which facilitates access to the DOM was considered essential
given the disparities between the different implementations of JavaScript in browsers.
But this library tends to be used less and less by developers, because the JavaScript of the
recent browsers is a bit more standardized.
Many JavaScript software frameworks have been created in an attempt to facilitate the creation of components
reusable graphics in front-end programming. Let us cite for example Backbone, Ember, knockout, …
Two frameworks Angular and Vue and a JavaScript React library have imposed themselves and integrate a
Virtual DOM which makes them efficient in case of intensive access to the DOM.
The latter make it possible to create web applications in a simple page and at the same time mobile applications.
But there is a downside regarding the optimization of the ranking in the search engines of the websites created
with Angular, view or React since the JavaScript is executed only after the HTML code has been loaded.
By the way, the fact that Vue.js be light allows it to be used as a replacement for jQuery.
RSS
Follow
Preferencesoft Website Privacy Policy