The NeceMoon | October 2011

Pourquoi j'aime tant C#

by necemon 13. October 2011 17:38

 

Si tu ne t'y connaîs pas en programmation, je devrais commencer par te dire qu'un langage, c'est juste un système de communication et un langage de programmation, au fond, c'est un langage artificiel conçu pour communiquer des instructions à une machine, typiquement un ordinateur.

 
Il existe de nombreux langages de programmations. Certains sont plus populaires que d'autres. Certains sont plus récents, certains sont plus puissants dans une certaine mesure.
 
Dans un monde idéal, chaque langage de programmation a un but précis. Donc un ingénieur devrait être capable de s'adapter au projet en cours et d'utiliser les technologies optimales pour ce projet. Mais la verité est que, très souvent, nous avons tendance à nous familiariser avec tel ou tel langage et nous trouvons que certains langages sont pénibles ;  ça depend des caractéristiques du langage et du temps qu'on a passé à les utiliser. C'est un peu comme les langages naturels (les langages humains). Tu peux apprendre plusieurs langues (anglais, italien, espagnol, allemand, japonais, etc.) et où que tu ailles, il y aura un langage qui sera adéquat et que tu devrais utiliser, mais si ta langue de base c'est le français, pour t'exprimer, tu serais toujours plus à l'aise en français. Si tu te retrouves dans un pays où on ne parles pas français, tu devrais bien sûr t'adapter et parler la langue locale, mais en vérité tu serais soulagé d'y rencontrer des francophones et de parler français avec eux, vu que les mots te viennent plus naturellement.
 
La différence est que tu ne choisis pas ton langage humain de base. C'est généralement la langue que les gens parlent là ou tu nais et grandit, le langage que tes parents parlent, le langage que tes amis et tes enseignants parlent dans ton école, etc.
Pour les langages de programmation, c'est différent. Les programmeurs peuvent faire le choix d'apprendre un langage en particulier même si leurs motivations peuvent être différentes. La problématique que je veux relever ici, c'est pourquoi et comment les programmeurs choisissent leurs langages de programmation ? Quelle est la meilleure façon de s'y prendre ?
 
D'après ce que j'ai observé, il ya 2 raisons principales qui poussent les gens à choisir un langage specifique:
 
- Suivre la tendance: je suppose que ce sont surtout les débutants qui le font. Quand tu veux apprendre à programmer au début, tu ne sais pas grand chose sur les différents langages mais il te faut bien commencer quelque part. Donc souvent, tu commences par le langage qui est populaire dans ton école, parmi tes profs/mentors, ou juste parmi tes amis. Bref, tu choisis les langages auquel tu es le plus exposé ou tu suis juste les conseils de tes proches. L'avantage c'est que tu aurais forcément autour de toi des gens qui se spécialisent dans les mêmes technologies, donc ils seront là pour te guider, te soutenir et vous pourriez travailler sur les mêmes projets. C'est un peu comme choisir d'acheter un jeu vidéo parce que tous tes amis ont le même jeu. Si tu es bloqué à un niveau dans le jeu, il y a probablement un de tes amis qui sait ce qu'il faut faire. En plus, vous pouvez échanger des disques, discuter de l'actualité de jeux, prendre plaisir à jouer ensemble, etc. En somme, tu deviens membre de la communauté et c'est à peu près la même chose quand tu choisis un langage de programmation.
 
- Exigence du projet: tout au long de leur carrière, les développeurs rencontrent plusieurs projets qu'ils se doivent de terminer. Les exigences de ces projets peuvent les amener à apprendre de nouveaux langages, de nouvelles technologies. Par exemple, si tu travailles pour une compagnie et que tu es affecté sur un nouveau projet en Python, tu aurais besoin d'apprendre Python. D'autant plus que dans certaines SSII, on se retrouve consultant expert dans n'importe quel domaine en quelques heures... Meme si tu développes à ton propre compte, tu peux avoir à apprendre un nouveau language imposé par tes clients ou qui satisfait mieux les besoins de tes utilisateurs (en terme de vitesse ou d'experience utilisateur par exemple)
 
Personellement, je pense que les deux arguments sont valides. Par rapport au premier argument, j'ajouterais juste qu'il ne s'agit pas de suivre la tendance juste pour suivre la tendance. Il faut faire des recherches sur les langages pour savoir quel est celui qui t'arrange le plus. Pour ce qui est de la deuxième raison, je comprends qu'il faille parfois faire des choses qu'on aime pas mais je conseillerais d'utiliser les langages et les technologies où l'on se sent le plus à l'aise, tant que c'est possible. Si la programmation doit etre ton travail quotidien, c'est mieux de prendre plaisir à le faire. Fais ce que tu aimes, sérieux.
 
Pour ce qui est de mon expérience personnelle, je suppose que j'ai opté pour C#.NET tout d'abord parce que c'etait très populaire dans l'institut ou je me suis seriéusement mis à la programmation (NIIT). Mais ça, c'est juste la raison pour laquelle j'ai commencé C#. Il y a plusieurs autres raisons qui font que je continue de l'utiliser. La raison principale est que je trouve que la programmation sous C# est "confortable", mais au début ce n'etait pas parce que c'était le langage que j'utilisais le plus souvent. D'ailleurs C# n'était pas mon premier langage de programmation. J'avais programmé en VB et en Pascal avant ça, donc ce n'est pas comme si je suis resté bloqué sur mon premier langage. Quand je dis "confortable", je veux dire que je prends plaisir a écrire des applications en C#. Je préfèrerais apprécier mes heures de coding plutot que d'écrire du code dans un langage bizarre que je trouve pénible. C'est vrai qu'il faut se soucier de certains aspects de l'application tels que la performance mais je crois qu'il faut surtout aimer ce qu'on fait.
 
Mais qu'est ce qui est si cool à propos de C# ? Je ne vais pas comparer C# aux autres langages et affirmer que c'est techniquement mieux que les autres. Ce n'est pas le but de cet article et comme je l'ai dit précédemment, il n'y a pas de langage parfait, il ya juste des langages adéquats pour les circonstances qui se présentent. Ce que je vais faire ici, c'est d'expliquer en quoi C#.NET améliore ma productivité (et probablement la tienne aussi, quand tu voudras bien l'essayer):
 
Je ne peux pas m'empêcher de mentionner que Visual Studio, l'environnement de travail de C#/.NET est probablement le meilleur IDE au monde. Ces fonctionnalités d'automation telles que l'Intellisense et le glisser-deposer des contrôles permettent d'economiser beaucoup de temps et d'effort. Ce n'est pas de la paresse, c'est vraiment à propos de productivité. Que tu travaillles en solo ou en equipe, tu fais toujours face à d'importantes tâches qui ne sont pas nécessairement liées a la programmation. Les automations t'évitent de perdre du temps sur les taches évidentes et fréquentes, ce qui te permet de te concentrer sur les choses qui sont vraiment importantes.
 
Le langage en lui même est facile à apprendre, il suit la même syntaxe que C, C++, Java, etc. Donc quiconque connaît un de ces langages similaires peut s'y retrouver rapidement. Aussi, on dit souvent que C# est simple et élégant.
 
C# est puissant. Il me permet de faire tout ce que je veux, que ce soit un site web, une application web, un service web, une application cliente, un jeu, une application windows, un service windows, un service web, une application dans le navigateur (silverlight), etc. Tandis que la plupart des langages ne peuvent etre utilisées que pour un domaine précis, soit le serveur web, soit le navigateur, soit le client, C# peut tout faire. L'avantage évident est que tu n'as pas besoin d'apprendre un nouveau langage quand tu veux commencer un nouveau genre d'application.
 
Interoperabilité et intégration des langages:  les applications et les services C# peuvent aisément parler entre eux. En fait ils peuvent communiquer avec les autres applications .NET. Par exemple, tu peux facilement faire une application C# WPF qui recoit des données d'un service VB.NET WCF et passer ces données a une application C# Silverlight.
 
Ok, maintenant tu sais pourquoi j'aime tant C#...

Tags: , , , , ,

Francais | Technical | Winning

Why I like C# so much

by necemon 13. October 2011 10:41

 

If you are not into programming, I need to start by telling you that a programming language is basically an artificial language (system of communication) designed to communicate instructions to a machine, typically a computer.

 
Now there are a lot of programming languages out there. Some are more popular than others, some are more recent, some are more powerful to some extent.
 
In an ideal world, each programming language serves a specific purpose. So an engineer should be able to adapt to the on going project and choose the optimal technologies. But the truth is, we very often tend to feel confortable with some languages and find some others kind of painful. It depends on the features of the language and how long we have been using it. It's a bit like natural languages (human languages). You may learn many languages (French, Italian, Spanish, German, Japanese, etc.) and wherever you go, there will be one language that would be more relevant and that you would have to use, but as a native english speaker, you would mostly feel more comfortable speaking English than anything else. If you get in a non English speaking country, you may sure have to adapt to the local language but you would feel some relief when you meet people you can speak english with, as this is what comes naturally to you.
 
The difference is that you don't choose your main human language. It's generally the language they speak at the place you were born and grew up, the language your parents speak, the language your friends and teachers speak at your school, etc.
Programming languages are a different matter. Programmers do choose to learn a language, even though their motivations may be different. What I want to discuss here is, why and how people choose their programming languages ? What's the best way to go about it ?
 
From what I observed, there are 2 main reasons people go for a specific language:
 
- social proof: I guess this concern mostly the beginners, when you want to learn programming for the first time, you don't know much about the languages but you got to start somewhere. So you just go for the language that's popular among your friends, your lecturers/mentors or at your school/college. In short, you go for the languages you are most exposed to or you take advice from people around you. The upside is that you would definitely be surrounded with people who are into the same technologies so they will be able to guide and support you, work along with you on same projects. It's a bit like choosing to buy a specific video game console because all your friends have the same. Suppose you get stuck at some level, there is probably one of your friends that can tell you what to do. Plus you can exchange games with them, discuss game news & cheat codes, enjoy playing together. In short, you become part of the community and it goes pretty much the same when it comes to choosing a language.
 
- project requirement: Throughout their career, developers come across many projects they are compelled to do. The requirements may lead them to learn other languages and technologies, for example, if you work for some company and they assign you to work on that new Python project, you would need to learn Python. Even if you are an independant developer, you may learn another language as it becomes popular with your customers or as it better meets the needs of your users (in terms of speed or user experience for example).
 
Personally, I think both reasons are valid points. Regarding the first reason, I would just add that it's not about following the trend just for the sake of it. You should make some research to find out which language will help you better do what you are trying to do. Regarding the second reason, I realise it is required to do things that you don't really like but, as often as possible, I would advise you to use the technologies and langages that you like better. If programming is your job, you better enjoy it. Do what you love, really.
 
Coming to my own experience, I guess I went for C#.NET firstly because it is very popular in the institution where I started getting serious about programming (NIIT). But this is only the reason why I got introduced to C#. There are many other reasons that keep me going.
The main reason being that I find it comfortable but not just because I had been using the most that time. Anyway it wasn't my first programming language. I did program in VB and Pascal before, so it's not that I got stuck to the first language I liked to use. By comfortable, I mean that I enjoy writing C# code. Personally, I would rather write code if I have a lot of fun doing it than write code in some obscur language that's just painful. It's true that we need to worry about things like performance and user experience but I believe that one should enjoy what they are doing.
 
Now what's so cool about C# ? I won't be discussing how C# compare to other programming languages and whether it's technically better or not. That's not the point of this article and as I said before there is no perfect language, there is just a right language for the right circumstances. I will just say what make C# so awesome to me (and probably to you as soon as you give it a try):
 
I can't help it, I need to mention that Visual Studio, the work environment for C#, is probably the world best IDE. Automated features like Intellisense and controls drag and drop save a lot of time and effort. It's not being lazy, it's really about productivity. Whether you work solo or as a team, you always have some important tasks that are not necessarily programming oriented. Automation helps you avoid spending time and effort on the obvious, frequent, basic tasks and focus on the things that are most important.
 
The language itself is easy to grab, it follows the same kind of syntax that C, C++, Java, etc. So anyone with a similar background can quickly get going. Also, it's known to be simple and elegant.
 
C# is powerful. It helps me make ANYTHING I want, whether it's a website, a web application, a web service, a smart client application, a game, a windows application, a windows service or a inbrowser (silverlight) application, etc. While most of the languages are used just for a specific purpose, either for the web server, for the client or for the browser, C# does it all. The obvious advantage is that you don't have to learn a new language when you want to start a new kind of application.
 
Interoperability and language integration: C# applications and services can talk to each other. In fact, they can communicate with any other .NET applications. For example, you can easily make a WPF C# application get data from a WCF VB.NET service and pass it to a Silverlight C# application.
 
Well, now you know why I like C# so much...

Tags: , , , , ,

English | Technical | Winning

About

Necemon

I am Necemon Yai. I am a .NET developer and a digital artist. Let's keep in touch via Twitter, LinkedIn or Facebook.

Je suis Necemon Yai. Je suis un développeur .NET et un artiste numérique. Restons en contact via Twitter, LinkedIn ou Facebook.