issue150:c_c
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue150:c_c [2019/10/31 09:22] – d52fr | issue150:c_c [2019/10/31 16:18] (Version actuelle) – andre_domenech | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
**Every year I make a point to learn a new programming language or re-visit one I haven’t used for years. A couple of years ago, the new language I wanted to play around with was Rust. I followed a few tutorials, got comfortable with the syntax, did a test project, and then...stopped. Between my job and my comfort in Python, I just didn’t have a lot of situations where I felt like I wanted to take the time to apply a new language, and defaulted to Python instead. As my day job currently consists of Python (and a few other languages), I have found myself revisiting Rust simply as a way for my personal projects to not feel quite so much like work. As such, I’d like to give my readers my take on Rust.** | **Every year I make a point to learn a new programming language or re-visit one I haven’t used for years. A couple of years ago, the new language I wanted to play around with was Rust. I followed a few tutorials, got comfortable with the syntax, did a test project, and then...stopped. Between my job and my comfort in Python, I just didn’t have a lot of situations where I felt like I wanted to take the time to apply a new language, and defaulted to Python instead. As my day job currently consists of Python (and a few other languages), I have found myself revisiting Rust simply as a way for my personal projects to not feel quite so much like work. As such, I’d like to give my readers my take on Rust.** | ||
- | Chaque année, je mets un point d' | + | Chaque année, je mets un point d' |
**What is Rust? | **What is Rust? | ||
Ligne 9: | Ligne 9: | ||
Qu' | Qu' | ||
- | Rust est un langage système qui se veut plus sûr et plus stable que le C++. Il le fait en vérifiant les erreurs possibles au moment de la compilation et signale | + | Rust est un langage système qui se veut plus sûr et plus stable que le C++. Il le fait en vérifiant les erreurs possibles au moment de la compilation et en signalant |
**Why use Rust? | **Why use Rust? | ||
Ligne 20: | Ligne 20: | ||
Si vous arrivez d'un langage interprété comme Java ou Python, il y a vraiment dans Rust (ou, en fait, dans tous les langages système) quelques points différents : | Si vous arrivez d'un langage interprété comme Java ou Python, il y a vraiment dans Rust (ou, en fait, dans tous les langages système) quelques points différents : | ||
- | ••La vitesse - Comme Rust est un langage de bas niveau, vous pouvez en général vous attendre à ce qu'il fonctionne plus rapidement (un fois compilé) qu'un langage interprété, | + | ••La vitesse - Comme Rust est un langage de bas niveau, vous pouvez en général vous attendre à ce qu'il fonctionne plus rapidement (une fois compilé) qu'un langage interprété, |
- | ••Si vous construisez un binaire Rust par compilation (sans dépendance externe comme OpenSSL), il ne dépendra que des bibliothèques du système. Ce qui signifie que, pour faire tourner un binaire, vous n'avez pas besoin que Rust soit installé sur le système cible. Bien qu'un langage interprété puisse émuler cet effet, il devra être vraiment | + | ••Si vous construisez un binaire Rust par compilation (sans dépendance externe comme OpenSSL), il ne dépendra que des bibliothèques du système. Ce qui signifie que, pour faire tourner un binaire, vous n'avez pas besoin que Rust soit installé sur le système cible. Bien qu'un langage interprété puisse émuler cet effet, il est en fait compilé avec une version portable de l' |
**• Errors on compilation - in both Java and Python, the interpreter will catch some critical errors. However, you can still run into runtime issues where the application crashes. Rust aims to catch these at compilation time and force the developer to fix them. | **• Errors on compilation - in both Java and Python, the interpreter will catch some critical errors. However, you can still run into runtime issues where the application crashes. Rust aims to catch these at compilation time and force the developer to fix them. | ||
• Lastly, just like C in Python, you could theoretically use Rust with Python (admittedly, | • Lastly, just like C in Python, you could theoretically use Rust with Python (admittedly, | ||
- | ••Les erreurs pendant la compilation - Dans Java comme dans Python, l' | + | ••Les erreurs pendant la compilation - Dans Java, comme dans Python, l' |
- | ••Enfin, | + | ••Enfin, |
If you’re coming from another systems language like C++, here is my best understanding of what’s different (based on my admittedly limited C++ knowledge): | If you’re coming from another systems language like C++, here is my best understanding of what’s different (based on my admittedly limited C++ knowledge): | ||
Ligne 36: | Ligne 36: | ||
• Performance-wise, | • Performance-wise, | ||
- | Si vous venez d'un autre langage système comme C++, voici ma meilleure compréhension de ce qui diffère : (à partir de ma connaissance, j' | + | Si vous venez d'un autre langage système comme C++, voici ma meilleure compréhension de ce qui diffère : (à partir de ma connaissance limitée de C++) : |
- | ••Rust est sûr pour la mémoire/ le type (par défaut - vous pouvez intégrer des pratiques non sures, au besoin). | + | ••Rust est sûr pour la mémoire/le type (par défaut - vous pouvez intégrer des pratiques non sûres, au besoin). |
••Rust détectera un maximum d' | ••Rust détectera un maximum d' | ||
••Rust propose un outil de compilation et un gestionnaire de paquets appelé cargo. | ••Rust propose un outil de compilation et un gestionnaire de paquets appelé cargo. | ||
Ligne 58: | Ligne 58: | ||
Livres : | Livres : | ||
- | “The Rust Programming Language” | + | “The Rust Programming Language” - L' |
- | - L' | + | “A Gentle Introduction to Rust” - https:// |
- | https:// | + | |
- | “A Gentle Introduction to Rust” - | + | |
- | https:// | + | |
Vidéos : | Vidéos : | ||
- | Le canal officiel de Rust sur YouTube : | + | Le canal officiel de Rust sur YouTube : https:// |
- | https:// | + | |
- | / | + | |
Entraînement : | Entraînement : | ||
- | Exercism a un parcours sur Rust: | + | Exercism a un parcours sur Rust: https:// |
- | https:// | + | |
**My Opinion of Rust | **My Opinion of Rust | ||
Ligne 82: | Ligne 76: | ||
Mon opinion sur Rust | Mon opinion sur Rust | ||
- | Mon langage préféré | + | Mon langage préféré |
- | Cela dit - Que se passe-t-il si vous connaissez d' | + | Cela dit, que se passe-t-il si ne vous connaissez |
- | ••Sûr pour la mémoire et le type - L' | + | ••Sûr pour la mémoire et le type : l' |
**• Cargo - when you compile Rust, you get formatted output telling you what line (not just the line number, but the actual code too), with markup and annotations telling you what issue the compiler sees. It’s essentially guiding you through learning the code. It may feel disheartening at first to need multiple passes to fix your code, but eventually you’ll actually understand the issues. | **• Cargo - when you compile Rust, you get formatted output telling you what line (not just the line number, but the actual code too), with markup and annotations telling you what issue the compiler sees. It’s essentially guiding you through learning the code. It may feel disheartening at first to need multiple passes to fix your code, but eventually you’ll actually understand the issues. | ||
• Computer science - if you’re interested in the topic at a deeper level, Rust is a much better choice than Python for a simple reason – data types. Python will just select the right type based on the value given. Rust can do the same to some degree, but you’ll certainly want to learn the difference between signed and unsigned ints, and select the correct type for a situation (i.e. an 8-bit unsigned int instead of a 32-bit int). This knowledge can make you a much better programmer long-term, because you’ll understand memory usage at a deeper level.** | • Computer science - if you’re interested in the topic at a deeper level, Rust is a much better choice than Python for a simple reason – data types. Python will just select the right type based on the value given. Rust can do the same to some degree, but you’ll certainly want to learn the difference between signed and unsigned ints, and select the correct type for a situation (i.e. an 8-bit unsigned int instead of a 32-bit int). This knowledge can make you a much better programmer long-term, because you’ll understand memory usage at a deeper level.** | ||
- | ••Cargo - Quand vous compilez Rust, vous disposez d'une sortie | + | ••Cargo - Quand vous compilez Rust, vous disposez d'une sortie |
- | ••Informatique - Si vous êtes intéressé par le sujet à un niveau plus élevé, Rust est de loin un meilleur choix que Python pour une raison simple | + | ••Informatique - Si vous êtes intéressé par le sujet à un niveau plus élevé, Rust est de loin un meilleur choix que Python pour une raison simple |
**• Community - the entire Rust community is founded on the idea of guiding people through the code, and as such it is one of the most open and welcoming communities I know of. If you’re someone who prefers to be able to ask a person questions when learning, you’ll typically always find someone to answer your question in this community (i.e. on the Rust subreddit).** | **• Community - the entire Rust community is founded on the idea of guiding people through the code, and as such it is one of the most open and welcoming communities I know of. If you’re someone who prefers to be able to ask a person questions when learning, you’ll typically always find someone to answer your question in this community (i.e. on the Rust subreddit).** | ||
- | ••Communauté - Toute la communauté de Rust est basée sur l' | + | ••Communauté - Toute la communauté de Rust est basée sur l' |
Ligne 107: | Ligne 101: | ||
Prêt pour le grand jeu ? | Prêt pour le grand jeu ? | ||
- | Si vous êtes un programmeur professionnel et que vous voulez commencer à utiliser Rust au travail, vous devriez peut-être vous demander si tout est prêt pour ça. Voici quelques unes des mes réflexions sur le sujet : | + | Si vous êtes un programmeur professionnel et que vous voulez commencer à utiliser Rust au travail, vous devriez peut-être vous demander si tout est prêt pour ça. Voici quelques-unes des mes réflexions sur le sujet : |
••D' | ••D' | ||
- | ••Si vous avez besoin d' | + | ••Si vous avez besoin d' |
- | ••Alors que la toute première version de Rust a été publiée en 2012, il n'a atteint la version 1.0 qu'en 2015. De sorte qu'il est difficile de dire si c'est le bon endroit. Mon opinion est que l' | + | ••Alors que la toute première version de Rust a été publiée en 2012, il n'a atteint la version 1.0 qu'en 2015. De sorte qu'il est difficile de dire s'il sera pérenne. Mon opinion est que l' |
**• If performance is a big factor, make sure you want to invest the time into learning how to optimize Rust. | **• If performance is a big factor, make sure you want to invest the time into learning how to optimize Rust. | ||
Ligne 118: | Ligne 112: | ||
••Si la performance est un facteur important, assurez-vous que vous voulez investir le temps nécessaire pour apprendre comment optimiser Rust. | ••Si la performance est un facteur important, assurez-vous que vous voulez investir le temps nécessaire pour apprendre comment optimiser Rust. | ||
- | ••Si vous êtes dans un emploi où vous avez une base de code dans laquelle vous pouvez faire des mélanges et des correspondances (par exemple, du Python avec bilbiothèques | + | ••Si vous êtes dans un emploi où vous avez une base de code dans laquelle vous pouvez faire des mélanges et des correspondances (par exemple, du Python avec bibliothèques |
- | À la façon « à ne pas lire, c'est trop long » (en anglais, tl;dr) : ça dépend de votre scénario spécifique. À ce poste, vous aurez besoin d'en savoir assez pour décider seul. | + | Bref, ça dépend de votre scénario spécifique. À ce poste, vous aurez besoin d'en savoir assez pour décider seul. |
**Conclusion | **Conclusion | ||
Ligne 128: | Ligne 122: | ||
Conclusion | Conclusion | ||
- | J' | + | J' |
issue150/c_c.1572510167.txt.gz · Dernière modification : 2019/10/31 09:22 de d52fr