[PYTHON] Re: explique n principaux langages de programmation

Re: explique n principaux langages de programmation

introduction

Cet article est destiné à couper des articles comme "Explication de n principaux langages de programmation". Cliquez ici pour les articles cibles.

Merci à @YSRKEN de m'avoir aidé à écrire. L'écriture est

https://github.com/yumetodo/re_describe_popular_programming_language/blob/master/article.md

Je le fais dans

Langage C

http://cpg.hatenablog.com/entry/2016/06/30/193755
C est probablement le langage le plus ancien de l'histoire de la programmation et constitue le fondement de la programmation. ** (Note de l'éditeur: le texte est actuellement supprimé) **

Je vais juste poster le commentaire suivant à ce sujet.

http://b.hatena.ne.jp/entry/292646265/comment/ockeghem
Je comprends. COBOL, FORTRAN, PL / I, LISP, ALGOL, etc. sont des langages préhistoriques.


http://cpg.hatenablog.com/entry/2016/06/30/193755
La raison pour laquelle il est nécessaire de créer un système d'exploitation en langage C est que le langage C offre la vitesse de traitement la plus rapide parmi de nombreux langages de programmation.

Lors de la programmation de l'OS, il est nécessaire de décrire le traitement directement lié au matériel. (Référence → Introduction au système d'exploitation réalisé avec C ++) Par conséquent, il existe initialement une correspondance individuelle avec les instructions en langage machine [Assembly Language](https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB%E3%83%B3%E3% La SG a été décrite par 83% 96% E3% 83% AA% E8% A8% 80% E8% AA% 9E). Cependant, étant donné que les spécifications du langage machine diffèrent selon le processeur qui l'exécute, il était extrêmement difficile de le porter sur un autre matériel. Par conséquent, vous pouvez écrire des traitements liés au matériel et écrire du code plus portable [langage C](https://ja.wikipedia.org/wiki/C%E8%A8%80%] E8% AA% 9E) est né. Par conséquent, l'ordre correct est "OS-> C" ** au lieu de ** "C-> OS".

Au fait, en termes de vitesse, le langage machine = assembleur est le plus rapide en théorie ... En fait, cela changera ** autant que possible en fonction des performances du compilateur et du framework utilisé. (Référence → Graphique montrant comment la vitesse du langage de programmation et la vitesse de l'application ne sont pas liées)


http://cpg.hatenablog.com/entry/2016/06/30/193755
Lorsque vous étudiez, il y a beaucoup de livres d'étude du langage C dans la bibliothèque en raison de l'ancienne histoire, donc il n'y a pas de problème avec le matériel d'apprentissage.

En raison de la grande population de développement et du grand nombre de parties non définies et dépendant du traitement dans la norme, il n'est pas rare que le langage C ait des erreurs écrites dans le livre d'étude. Par conséquent, sans blague, il est souvent recommandé que ** "Si vous vous perdez, lisez la norme" **.


http://d.hatena.ne.jp/shi3z/20160701/1467330446
Eh bien, il vaut mieux écrire en C que Bonkura écrit en langage assembleur, mais cela peut être plus rapide que C lorsque des experts écrivent en langage assembleur. Ne pas être capable d'écrire un meilleur code que le compilateur est simplement un manque de capacité de programmation.

Les compilateurs modernes sont si bons qu'ils sont souvent beaucoup plus rapides que le grattage et l'assemblage manuels. En premier lieu, le principe de la programmation est ** "Ne pas optimiser" **.

Cas d'utilisation d'assemblage actuel | Bookworm https://cpplover.blogspot.jp/2013/04/blog-post.html
En conclusion, la plupart des paquets ne nécessitent pas de travail de portage pour ARM. Dans le référentiel Ubuntu, seulement 6% de tous les packages utilisent des assemblys. De nombreux packages qui utilisent des assemblys fonctionnent également tels quels. En effet, il devient possible de basculer entre une implémentation de code hautement portable et de haut niveau et une implémentation d'assembly à des fins de performances. En outre, la plupart des utilisations d'assemblage ne sont pas très utiles. En effet, même les processus qui n'ont pas besoin d'être écrits dans l'assembly sont écrits dans l'assembly.

Document de la Commission des normes C ++ 2015-04-pre-Lenexa Review: N4450-N4459 | Bookworm https://cpplover.blogspot.jp/2015/06/c-2015-04-pre-lenexa-n4450-n4459.html
Aux développeurs: jetez l'assemblage. Il ne peut pas être tellement optimisé et il ne peut prendre en charge que l'architecture qui existe au moment de l'écriture du code en premier lieu. Si les performances du compilateur ne correspondent pas aux attentes, lancez un rapport de bogue. Suggérer au comité des normes comment réaliser une exécution synchrone et parallèle Obtenez un outil comme ThreadSanitizer et recherchez les conflits dans votre code.

Battre le compilateur | Bookworm https://cpplover.blogspot.jp/2015/03/blog-post_30.html
Python et d'autres langages typés dynamiquement peuvent être assez rapides, mais la vitesse est toujours bonne. Vous pourrez peut-être gagner en vitesse dans un langage inférieur comme C, ou vous pourrez peut-être aller un peu plus loin en écrivant à la main l'assembly, mais vous devriez faire confiance au compilateur. Mais si vous voulez ajouter un grand nombre de nombres 12 bits aussi vite que possible, eh bien, c'est la réponse.


https://toiroha.jp/article/detail/32380
Ce n'est pas un langage orienté objet, il semble donc un peu dépassé par rapport aux langages traditionnels modernes. (C ++ est une extension de l'orientation objet vers le langage C)

C ++ n'est pas une extension de l'orientation objet vers le langage C **, et le langage C peut également être orienté objet. En parlant de C ++, bien sûr, il peut être orienté objet, mais d'autres fonctions telles que template ont été étendues. De plus, le langage C a également fait ** des développements uniques ** en langage C, et le style de codage est devenu complètement différent, il semble donc que ** la rétrocompatibilité avec C ++ soit un malentendu **.

C++

http://d.hatena.ne.jp/shi3z/20160701/1467330446
Commun à C à bien des égards, C ++ est compatible avec le langage C.

Comme mentionné précédemment, C ++ n'est ** absolument pas compatible avec le langage C.


http://d.hatena.ne.jp/shi3z/20160701/1467330446
Par exemple, en langage C, les commentaires ne peuvent être utilisés que de / * à * /, mais en C ++, // peut être utilisé.

Même en langage C, les commentaires `` // '' peuvent être utilisés à partir de C99.

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
§6.4.9 Comments
2 Except within a character constant, a string literal, or a comment, the characters // introduce a comment that includes all multibyte characters up to, but not including, the next new-line character. The contents of such a comment are examined only to identify multibyte characters and to find the terminating new-line character.

Java

http://cpg.hatenablog.com/entry/2016/06/30/193755
Java est le langage dont vous avez besoin pour développer des applications Android.

** Android NDK a commencé le téléchargement. ** ** (* NDK = Native Development Kit est un kit pour écrire du code natif en C ++ etc.) De plus, on a beaucoup parlé de Java sur Android ** pas de Java officiel ** ... (Référence → Parlez de Java et de faux Java.)

De nos jours, par Xamarin.Android, même C # est également Android. Vous pouvez désormais développer des applications.


http://cpg.hatenablog.com/entry/2016/06/30/193755
Offre une vitesse de traitement comparable au langage C

Java a été développé à l'origine dans le but d'être un langage indépendant de la plate-forme et facile à utiliser. Depuis Java Applet Le développement qui a commencé est vaste, y compris les clients, les serveurs, les ordinateurs personnels et les périphériques embarqués. C / C ++ ou Java est principalement utilisé pour le développement de logiciels pour Android OS, mais la première application fonctionne en mode natif et la seconde Machine virtuelle Dalvik ( Il fonctionne sur Android 4.4 ou version antérieure) ou ART Virtual Machine (https://ja.wikipedia.org/wiki/Android_Runtime) (Android 4.4 ou version ultérieure). De plus, la vitesse est ** relativement lente ** en raison de la nature de "l'exécution du code d'octet généré à partir du code source sur la machine virtuelle (VM)".


https://toiroha.jp/article/detail/32380
Java a tendance à être mature et a tendance à être abandonné par rapport aux langages traditionnels modernes. En conséquence, de nouvelles fonctionnalités sont rarement ajoutées.

Java 7Java 8 est apparu, donc c'est toujours ** Il y a place pour l'évolution **.

JavaScript

http://cpg.hatenablog.com/entry/2016/06/30/193755
JavaScript est le langage dont vous avez besoin pour créer des pages Web.

C'est beaucoup utilisé, mais ce n'est pas indispensable. En fait, c'est un mot qui s'applique à HTML.


http://cpg.hatenablog.com/entry/2016/06/30/193755
Par exemple, jQuery est un plug-in JavaScript. En d'autres termes, vous pouvez facilement utiliser des fonctions pratiques écrites en JavaScript en utilisant la syntaxe simple de jQuery.

Qu'est-ce que la "grammaire jQuery"? Bien sûr, nous utilisons souvent des notations uniques, mais elles sont toutes créées par JavaScript, et en principe elles devraient toutes être écrites en JavaScript. Je peux.


http://cpg.hatenablog.com/entry/2016/06/30/193755
La caractéristique de JavaScript est qu'il est visuellement incorporé

Que signifie «visuel»?


http://d.hatena.ne.jp/shi3z/20160701/1467330446
JavaScript est un langage fonctionnel fortement influencé par le langage LISP, qui est plus ancien que le langage C.

Bien sûr, il existe une fonctionnalité de Croja, mais en réalité c'est un langage orienté objet basé sur un prototype. Je pense qu'il est souvent utilisé comme éléments / 809114f943208aaf55b3).


http://d.hatena.ne.jp/shi3z/20160701/1467330446
La programmation côté serveur est également possible en utilisant V8 et nodeJS.

Je ne pense pas que cela puisse être fait avec le V8.

Ruby

http://cpg.hatenablog.com/entry/2016/06/30/193755
L'une des caractéristiques de Ruby est sa liberté.

** N'y a-t-il pas une partie qui me rend malade si je n'écris pas un peu plus en détail (sourire sombre) **


http://d.hatena.ne.jp/shi3z/20160701/1467330446
Récemment, il semble que JIT ait été ajouté et qu'il soit devenu une VM et qu'il soit devenu plus rapide.

Ruby JIT était-il au stade expérimental de Ruby 3.x? (Référence → Vers le futur de Ruby 3.0-Trois directions et la philosophie de Ruby montrée par le concepteur de langage Matsumoto)


http://d.hatena.ne.jp/shi3z/20160701/1467330446
Un Néerlandais nommé DHH

DHH ([David Heinemeier Hanson](https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A4%E3%83%B4%E3%82%A3%E3% 83% 83% E3% 83% 89% E3% 83% BB% E3% 83% 8F% E3% 82% A4% E3% 83% 8D% E3% 83% 9E% E3% 82% A4% E3% 83% A4% E3% 83% BC% E3% 83% BB% E3% 83% 8F% E3% 83% B3% E3% 82% BD% E3% 83% B3))) Je pense qu'il est danois.

PHP

http://d.hatena.ne.jp/shi3z/20160701/1467330446
PHP est intégré à Apache

Encore une fois, mettez simplement le commentaire suivant:

http://b.hatena.ne.jp/entry/292721861/comment/living
"PHP est intégré à Apache" J'utilise aussi mod_php, mais si vous voulez des performances, je pense que PHP-FPM (en bref, FastCGI) est plus courant.

Python

http://cpg.hatenablog.com/entry/2016/06/30/193755
En intégrant un langage de programmation dans l'IA (intelligence artificielle)

N'est-il pas possible d'implémenter l'apprentissage automatique dans un langage de programmation?


http://cpg.hatenablog.com/entry/2016/06/30/193755
Python est le langage requis.

** Le C ++ est principalement utilisé ** comme langage d'écriture des bibliothèques utilisées pour l'apprentissage automatique. La raison en est que cela nécessite énormément de calculs ** (surtout pour l'apprentissage) **, il vaut donc mieux être rapide **. De plus, différentes langues sont disponibles pour le code qui utilise l'apprentissage automatique. Par exemple, waifu2x, qui est célèbre pour le traitement d'image par apprentissage en profondeur, est implémenté non seulement en Python mais également dans divers langages tels que C ++, HSP, JavaScript et Rust. Je suis.

Cependant, comme Python dispose d'une bibliothèque riche, il est facile d'écrire des calculs numériques (y compris l'apprentissage automatique) et du traitement d'images. Par conséquent, est-ce une bonne option pour apprendre Python lorsque vous touchez à l'apprentissage automatique?

Swift

http://cpg.hatenablog.com/entry/2016/06/30/193755
Swift est le langage dont vous avez besoin pour développer des applications iPhone développées par Apple.

** Xamarin.iOS a commencé le téléchargement. ** **

Recommended Posts

Re: explique n principaux langages de programmation
10 langages de programmation les plus populaires en 2020
Caractéristiques du langage de programmation [Memo]
La popularité des langages de programmation
Glossaire de tous les langages de programmation