Programmation : Choix d'un langage en fonction du domaine

a marqué ce sujet comme résolu.

Bonjour,

Je veux démarrer prochainement une activité de Freelance dans le développement d’application/logiciel

Cependant le choix du langage m’importe beaucoup, simplement car après avoir gouter au Go, Rust je n’arrive plus à m’en passer mais c’est deux langages ne sont pas très mature dans le développement logiciel.. Je précise que pour certaine raisons de matériel, je ne puis faire du C# Xamarin..

J’aimerai donc savoir si Java sera vraiment obligatoire ou si vous pensez que tel ou tel langage peut être intéressant dans ma situation…

J’attend vos retours avec impatience, Merci !

J’aimerai donc savoir si Java sera vraiment obligatoire ou si vous pensez que tel ou tel langage peut être intéressant dans ma situation…

Java n’est pas obligatoire, dans le développement logiciel tu as souvent le choix entre Java, Python, C ou C++ en général, parfois plus exotique.

Ne faire que du Go ou du Rust risque d’être difficile pour le moment. Mais pas impossible, cela dépend de pas mal de choses :

  • Du domaine d’activité : systèmes embarqués, critiques, programmation système, logiciels de gestion, etc.
  • Si tu programmes pour un client une solution tout en un, le client ne regardant ou ne modifiant pas le code ;
  • Si tu vas travailler en équipe.

Car si tu travailles seul et que le client n’est pas intéressé par la lecture ou la modification du code, tu peux utiliser la technologie que tu veux. Sinon tu devras te plier aux connaissances et aux habitudes de l’entreprise et de ses équipes. Go et Rust étant assez jeunes la probabilité de pouvoir utiliser ces langages reste assez faible (mais cela dépend évidemment du client).

+0 -0

Si vous me permettez, j’aimerais ajouter une petite question bonus que me fait soulever le topic : mis à part dans le développement web, ça marche vraiment l’activité en freelance en informatique ?

Oui, très bien. C’est comme bosser en SSII, seulement tu gères tout toi même ou partiellement (certains freelancers utilisent les SSII pour chercher les clients et signer le contrat initial).

Le but d’un freelancer est rarement de concevoir son application ou site pour le vendre à un client une fois finie. Le but est souvent d’épauler une équipe déjà en place ou maintenir certaines choses.

+0 -0

Avoir un langage dynamique et versatile comme Python ou Ruby dans ton bagage, en plus des langages statiques, ça aide beaucoup. Notamment parce que c’est de plus en plus demandé et que les bons profils sur ces technos sont vraiment rares sur le marché.

+0 -0

Je trouve la question assez mal posée. Pour moi le choix du langage dépend du client et de tes goûts :

  • Si le client veut que tu travailles sur une base de code existante, alors tu n’as pas besoin de te poser de question, tu utilises le langage existant. (Si tu ne le connais pas déjà, tu l’apprends.)
  • Si le client veut un développement clé-en-main, alors tu n’as qu’à choisir le langage que tu préfères tant qu’il te paraît adapté à la tâche – à toi d’estimer la quantité de travail nécessaire, si jamais c’est trop long et coûteux parce que ton choix n’est pas le bon le client ira voir ailleurs.

Bien sûr, après il faut voir aussi si le client compte récupérer le code et faire travailler d’autres gens que toi sur son évolution et sa maintenance. Dans ce cas, il peut être pertinent de prendre en compte la popularité du langage, et la facilité à embaucher des programmeurs pour du support, pour lui simplifier la vie après la fin de ton contrat. Ça c’est à toi de voir; tu n’as aucune obligation en ce sens, mais il vaut mieux que ce soit clair pour lui et pour toi, dès le départ.

Je n’aime vraiment pas la syntaxe de ce type de langage même si j’avoue qu’ils sont très intéressant à connaître

Insomniac

Il ne s’agit pas d’adopter un langage pour sa syntaxe : celles de Python et Ruby n’ont rien à voir l’une avec l’autre, déjà, et si ce n’est que ça tu as Perl dont la syntaxe est similaire à celles de C et Go.

Sur des considérations beaucoup moins superficielles, il s’agit de maîtriser des outils malléables de haut niveau qui te permettent de gagner du temps.

  • Même sur des gros projets en C ou Rust, il est très courant que les suites de tests soient écrites en Python : si tu es embauché pour grossir les rangs d’une équipe, ça risque de grincer si tu n’es pas en mesure d’écrire des tests pour intégrer ton code dans leur CI.
  • Si on te donne une semaine pour faire un prototype, tu es bien content quand tu peux sortir de ta poche un langage qui te permette de réaliser le plus gros du boulot en assemblant des bibliothèques et des sous-systèmes, pour obtenir quelquechose qui marche et sur lequel tu peux commencer à itérer avec le client, en quelques heures.
  • La "loi" des 80-20 veut que les 20% de code les plus critiques demandent 80% de l’effort de développement : avoir un langage qui te permet de torcher rapidement les 80% de code qui restent permet de se dégager du temps pour soigner le travail rendu au client (et donc essayer de maximiser sa satisfaction),
  • D’expérience personnelle, la loi des 80-20 est également valable pour les performances du code.

Si tu projetais de travailler comme développeur en CDI, tu pourrais te permettre de bouder telle ou telle techno, mais en tant que freelance, c’est une autre paire de manches. La qualité de ton code dans ton langage préféré n’est pas ton seul soucis, tu as des clients que ta prestation doit satisfaire avec le meilleur rapport coût/efficacité possible.

+0 -0

Le problème d’une solution en JS (en tout cas pour les solutions à base de node) c’est que le code source est facilement accessible dans les fichiers temporaire lors de l’exécution du script. A part obfusquer ton code il sera facilement copiable/modifiable.

Après je ne sais pas si tu considères ça comme un problème pour ton futur logiciel.

Après faire une interface html/css/js c’est très rapide. Par contre tu n’aura pas le visuel/thème de l’OS de type "programme".

L’IDE visuelle pour l’interface java est aussi intéressant.

As-tu pensé à une structure en SAAS ?

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte