Langages de programmation de bas et haut niveau. Liste des langages de programmation

Programmation pour les débutants

Pour commencer, je voudrais dire que n’importe qui peut utiliser un ordinateur et créer des programmes. Vous n'avez pas besoin d'une intelligence ou d'une intelligence incroyable pour créer des programmes informatiques. diplôme scientifique dans les disciplines mathématiques. Tout ce dont vous avez besoin, c'est d'une envie de comprendre quelque chose et de patience pour ne pas abandonner.

La capacité d'écrire des programmes est la même compétence que la capacité de nager, de danser ou de jongler. Certaines personnes y parviennent bien mieux que d’autres, mais n’importe qui peut obtenir certains résultats avec une bonne pratique. C’est pour cette raison que les enfants deviennent très tôt des as de la programmation. Les enfants ne sont pas nécessairement des génies ; ils sont simplement enclins à apprendre de nouvelles choses et n’ont pas peur de commettre des erreurs.

Même si les ordinateurs ressemblent à des monstres électroniques très complexes, détendez-vous. Très peu de gens savent exactement comment fonctionnent les moteurs de recherche, qui permettent de trouver rapidement les informations dont vous avez besoin sur Internet, et certaines personnes n'ont même pas compris comment conduire une voiture. De même, presque tout le monde peut apprendre à créer des programmes sans avoir à entrer dans les détails du fonctionnement exact d’un ordinateur.

D'une manière générale, un programme indique à l'ordinateur comment résoudre un problème particulier. Parce que le monde est plein de problèmes, le nombre de programmes que les gens peuvent écrire est infini.

Cependant, pour dire à l’ordinateur comment résoudre un énorme problème, vous devez généralement lui dire comment résoudre toute une série de petits problèmes qui constituent le gros problème.
En fait, la programmation n’est pas du tout difficile et n’est pas quelque chose de mystérieux ou de surnaturel. Si vous pouvez écrire des instructions étape par étape qui permettront à une personne de trouver votre maison, vous pouvez écrire un programme informatique.

La partie la plus difficile de la programmation consiste à identifier les petits problèmes qui constituent le problème que vous devez résoudre. Comme les ordinateurs sont complètement stupides, il faut leur dire comment tout faire.

Si vous pensez que créer un programme est plus amusant que de l’utiliser, vous disposez de tout ce dont vous avez besoin pour créer des programmes informatiques. Si vous souhaitez apprendre à écrire des programmes informatiques, vous avez besoin des trois qualités suivantes.

Poursuite. Si vous voulez vraiment quelque chose, vous l'obtiendrez (mais si vous faites quelque chose d'illégal, vous risquez de passer beaucoup de temps en prison). Si vous souhaitez apprendre à programmer, votre envie vous aidera certainement, quels que soient les obstacles qui se dressent sur votre chemin.

Curiosité. Une bonne dose de curiosité peut alimenter votre désir d'expérimenter et de continuer à améliorer vos compétences en programmation même après avoir lu ce livre. La curiosité rendra l’apprentissage de la programmation moins ennuyeux et plus intéressant. Et si vous êtes intéressé, vous étudierez certainement et mémoriserez plus d'informations que n'importe quelle personne totalement inintéressée (par exemple, votre patron).
Imagination. Créer des programmes informatiques est une compétence, mais l’imagination peut aider à affiner et à cibler cette compétence. Un programmeur débutant avec beaucoup d'imagination créera toujours des choses beaucoup plus intéressantes et programmes utiles qu'un merveilleux programmeur sans imagination. Si vous ne savez pas quoi faire de vos compétences en programmation, votre talent mourra tout simplement sans imagination.

Le dynamisme, la curiosité et l’imagination sont les trois qualités les plus importantes que tout programmeur devrait posséder. Si vous les avez, vous n'avez qu'à vous soucier des petites choses : quel langage de programmation apprendre (par exemple, C++), qu'en est-il des mathématiques, etc.

Parmi les nombreux langages de programmation, vous pouvez toujours trouver exactement celui qui convient pour résoudre un problème donné. Lorsqu’un nouveau type de problème surgit, les gens créent de nouveaux langages.

Bien entendu, un ordinateur ne comprend en réalité qu’un seul langage, composé de uns et de zéros, appelé langage machine. Généralement, un programme écrit en langage machine ressemble à ceci :

0010 1010 0001 1101

ONU 1100 1010 1111

0101 INFORMATIQUE 1101 0101

1101 1111 0010 1001

De plus, il est très important dans quel but le langage est choisi - pour enseigner la programmation ou pour résoudre un problème d'application spécifique. Dans le premier cas, le langage doit être facile à comprendre, strict et, si possible, exempt d’embûches. Dans le second - certes complexe, mais un outil efficace et expressif pour un professionnel qui sait ce qu'il veut.

Je voudrais maintenant vous expliquer qu'un langage de programmation (Basic, Pascal) doit être distingué de sa mise en œuvre, qui est généralement présentée dans le cadre d'un environnement de programmation (Quick Basic, Virtual Pascal) - un ensemble d'outils pour éditer les textes sources , génération de code exécutable, débogage, gestion de projets, etc. La syntaxe et la sémantique d'un langage de programmation sont fixées dans le standard du langage. Chaque environnement de programmation fournit son propre interpréteur ou compilateur pour ce langage, ce qui permet souvent d'utiliser des constructions qui ne sont pas fixées dans la norme.

Regardons les langages de programmation principaux et populaires

Assembleur C'est le plus brillant représentant des langues niveau faible, dont l'ensemble des concepts est basé sur une implémentation matérielle. Il s'agit d'un outil d'automatisation permettant de programmer directement dans les codes du processeur. Les commandes machine sont décrites sous forme d'opérations mnémoniques, ce qui permet d'obtenir une modifiabilité du code assez élevée. Étant donné que l'ensemble des commandes sur différents processeurs est différent, il n'est pas nécessaire de parler de compatibilité. L'utilisation de l'assembleur est conseillée dans les cas où il est nécessaire d'interagir directement avec le matériel, ou d'obtenir une plus grande efficacité pour certaines parties du programme grâce à un plus grand contrôle sur la génération de code.

COBOL- Un langage de programmation de haut niveau développé à la fin des années 1950. association CADASIL pour résoudre des problèmes commerciaux et économiques. Il propose des outils avancés pour travailler avec des fichiers. Étant donné que les commandes des programmes écrits dans ce langage utilisent activement le vocabulaire et la syntaxe anglais habituels, Cobol est considéré comme l'un des langages de programmation les plus simples. Actuellement utilisé pour résoudre des problèmes économiques, d’information et autres.

Fortran- Un langage de programmation de haut niveau développé par IBM en 1956 pour décrire des algorithmes permettant de résoudre des problèmes informatiques. Appartient à la catégorie des langages orientés procéduralement. Les versions les plus courantes de ce langage sont Fortran IV, Fortran 77 et Fortran 90. Il est utilisé sur toutes les classes d'ordinateurs. Sa dernière version est également utilisée sur les ordinateurs à architecture parallèle.

Ada- Un langage de programmation de haut niveau, orienté pour une utilisation dans des systèmes en temps réel et conçu pour automatiser les tâches de gestion de processus et/ou de dispositifs, par exemple dans les ordinateurs de bord (navire, aviation, etc.). Développé à l'initiative du ministère américain de la Défense dans les années 1980. Nommé d'après la mathématicienne anglaise Ada Augusta Byron (Lovelace), qui vécut de 1815 à 1851.

BASIQUE(Code d'instruction symbolique polyvalent pour débutants) Né dans les années 60 en Amérique. BASIC a été conçu comme un langage simple pour un apprentissage rapide. BASIC est devenu le standard de facto pour les micro-ordinateurs précisément en raison de sa simplicité d'apprentissage et de mise en œuvre. Cependant, pour To Pour atteindre cette qualité, un certain nombre de décisions ont été prises (manque de frappe, numérotation des lignes et GOTO non structurel, etc.), qui ont affecté négativement le style des étudiants en programmation. De plus, le manque de moyens d'expression a conduit à l'émergence de un grand nombre de dialectes linguistiques incompatibles les uns avec les autres. Des versions modernes et spécialisées de BASIC (telles que Visual Basic) malgré la « structure » acquise, ils présentent toujours les mêmes défauts, tout d'abord - la négligence par rapport aux types et aux descriptions. Convient pour une utilisation au stade initial de la formation, comme outil d'automatisation (dans les cas où il est intégré aux systèmes correspondants) ou comme outil de création rapide d'applications.

Pascal Développé par le célèbre théoricien N. Wirth à partir des idées d'ALGOL-68, Pascal était principalement destiné à l'enseignement de la programmation. Construit sur le principe « nécessaire et suffisant », il dispose d'un contrôle de type strict, de constructions pour décrire des structures de données arbitraires et d'un ensemble restreint mais suffisant d'opérateurs de programmation structurés. Malheureusement, le revers de la médaille de la simplicité et de la rigueur est la lourdeur des descriptions des constructions linguistiques. L'implémentation la plus célèbre - Turbo/Borland Pascal - malgré les différences avec le standard Pascal, est un environnement et un ensemble de bibliothèques qui ont transformé le langage éducatif en un système industriel pour développer des programmes dans l'environnement MS-DOS.

C et C++ Le langage C repose sur les exigences d'un programmeur système : accès complet et efficace à toutes les ressources informatiques, outils de programmation de haut niveau, portabilité des programmes entre différentes plateformes et systèmes d'exploitation. C++, tout en conservant la compatibilité avec C, introduit des capacités de programmation orientée objet en exprimant l'idée d'une classe (objet) sous la forme d'un type défini par l'utilisateur. Grâce à ces qualités, C/C++ s’est imposé comme un langage universel pour toute tâche. Mais son utilisation peut devenir inefficace lorsqu'il est nécessaire d'obtenir un résultat prêt à l'emploi dans les plus brefs délais, ou lorsque l'approche procédurale elle-même devient peu rentable.

Delphes- ce n'est pas un successeur de Borland Pascal / Borland C, sa niche est c'est-à-dire création rapide d'applications (Rapid Application Developing, RAD). De tels outils vous permettent de créer rapidement un programme de travail à partir de composants prêts à l'emploi, sans perdre beaucoup d'efforts en bagatelles. Une place particulière dans de tels systèmes est occupée par la capacité de travailler avec des bases de données.

Zézayer- Un langage algorithmique développé en 1960 par J. McCarthy et destiné à manipuler des listes d'éléments de données. Il est principalement utilisé dans les laboratoires universitaires américains pour résoudre des problèmes liés à l’intelligence artificielle. En Europe, ils préfèrent utiliser Prolog pour travailler sur l'intelligence artificielle.

Prologue- Un langage de programmation déclaratif de haut niveau conçu pour le développement de systèmes et de programmes d'intelligence artificielle. Appartient à la catégorie des langues de cinquième génération. Il a été développé en 1971 à l'Université de Marseille (France) et est l'un des langages les plus utilisés et en constante évolution. Sa dernière version est Prolog 6.0

LOGO- Un langage de programmation de haut niveau développé au Massachusetts Institute of Technology vers 1970 dans le but d'enseigner des concepts mathématiques. Il est également utilisé dans les écoles et par les utilisateurs de PC lors de l'écriture de programmes permettant de créer des dessins sur un écran de contrôle et de contrôler un traceur à stylet.

Java Comment exemple brillant Spécialisation, le langage Java est apparu en réponse au besoin d'un langage idéalement portable dans lequel les programmes peuvent être exécutés efficacement du côté client WWW. En raison de l'environnement spécifique, Java peut être un bon choix pour un système construit sur la technologie Internet/Intranet.

ALGOL- Un langage de programmation de haut niveau axé sur la description d'algorithmes pour résoudre des problèmes informatiques. Il a été créé en 1958 par des spécialistes des pays d'Europe occidentale pour la recherche scientifique. La version ALGOL-60 de ce langage a été adoptée par la Conférence internationale de Paris (1960) et a été largement utilisée sur les ordinateurs de 2e génération. La version ALGOL-68, développée par un groupe de spécialistes de la Fédération internationale pour le traitement de l'information (IFIP) en 1968, a reçu le statut de langage de programmation universel international axé sur la résolution non seulement de problèmes informatiques mais également d'information. Bien qu'Algol ne soit pratiquement pas utilisé à l'heure actuelle, il a servi de base ou a eu une influence significative sur le développement de langues plus modernes, par exemple Ada, Pascal, etc.

lui-même meilleure langue n'existe pas. Si vous souhaitez devenir programmeur professionnel, vous devrez apprendre l'un des langages de programmation de haut niveau (le langage de programmation le plus populaire est le C++) ainsi qu'un des langages de programmation de bases de données (par exemple, SQL) . Une fois que vous avez appris le langage de programmation C++, vous ne pouvez plus vous tromper. Connaissant ce langage, vous pouvez toujours trouver un emploi dans n'importe quelle entreprise de programmation.
Malgré la grande popularité du langage de programmation C++, d’autres langages sont également souvent utilisés. De nombreux ordinateurs plus anciens exécutent encore des programmes écrits en langage de programmation COBOL. Par conséquent, nous avons besoin de programmeurs capables d’améliorer ces programmes et également d’en écrire de nouveaux. Très souvent, les grandes entreprises versent à ces programmeurs des salaires élevés.
Si vous comptez travailler seul, il est préférable d'apprendre à créer vos propres programmes de base de données. Pour ce faire, vous devrez apprendre des langages de programmation tels que SQL ou VBA, qui sont utilisés dans Microsoft Access. Afin de créer des pages Web, vous devez connaître le HTML, ainsi qu'une certaine connaissance de Java, JavaScript, VBScript et d'autres langages de programmation Internet. Le langage de programmation le plus nécessaire sera celui qui vous permettra de résoudre facilement et rapidement les tâches qui vous sont assignées. Il peut s'agir d'un langage de programmation tel que C++, BASIC, Java, SQL ou d'un langage assembleur.

En conclusion, notons que d'un point de vue professionnel, ce n'est pas si important dans quelle langue et dans quel environnement travaille le programmeur, mais comment il effectue son travail. Le matériel et les systèmes d'exploitation évoluent. De nouveaux problèmes surgissent dans une variété de domaines. Ils appartiennent au passé et de nouvelles langues apparaissent. Mais les gens restent – ​​ceux qui écrivent et ceux pour qui de nouveaux programmes sont écrits et dont les exigences de qualité restent les mêmes quels que soient ces changements.
Nous avons donc examiné les bases de la programmation et les principaux langages de programmation.

Je vous souhaite bonne chance dans la maîtrise de la programmation !

Toute personne qui décide de maîtriser les bases du processus de création de programmes informatiques se demande quels sont les langages de programmation les plus populaires aujourd'hui et lesquels sont les meilleurs à apprendre. Et s'il est très facile de répondre à la première question, alors l'étudiant devra lui-même chercher la réponse à la seconde, en fonction de ses projets et de ses besoins.

Examinons brièvement les langages de programmation les plus populaires afin que vous puissiez choisir celui qui vous attire le plus et commencer à l'apprendre.

la programmation?

Avant d’analyser les principaux langages de programmation et de les décrire, il est nécessaire de comprendre le concept lui-même.

Un langage de programmation est un système de signes formel utilisé pour écrire des programmes informatiques. Comme toute autre langue, elle possède ses propres règles lexicales, sémantiques et syntaxiques.

Il existe des langages de programmation de bas et de haut niveau. Aujourd'hui, ils utilisent principalement le second.

Langages de programmation de haut et bas niveau

Un langage de programmation de bas niveau a une structure proche de celle de Dans ce cas, les commandes ne sont pas désignées par des zéros et des uns, mais par des mnémoniques. Le langage de programmation faible le plus connu est le langage assembleur.

Travailler avec n'importe laquelle des langues nécessite des qualifications et une compréhension élevées ; de plus, l'écriture de programmes prend un temps considérable. En même temps, avec l'aide de petits, vous pouvez créer de petits, mais en même temps programmes efficaces. Il n'est pas recommandé aux programmeurs débutants de commencer à les connaître.

Les langages de programmation de haut niveau se caractérisent par la présence de constructions sémantiques pour décrire les opérations. Leur étude prend beaucoup de temps et leur mise en pratique nécessite une attention et une compréhension des structures de base et des règles de syntaxe et de vocabulaire. Mais en même temps, la connaissance de langages de haut niveau permet de créer de grands projets colorés et multifonctionnels en un temps record.

Les logiciels de haut niveau incluent Pascal, Java, C, C++, C#, Delphi et bien d'autres. Ils sont utilisés pour écrire logiciel et programmes d'application.

Les langages de programmation les plus populaires

Quels sont les langages de programmation les plus populaires aujourd’hui ?

Ces dernières années, Java, C, C++, Python, C#, qui comptent parmi les principaux langages de programmation, sont considérés comme les plus populaires et les plus demandés. Ce sont eux qui constituent la base programmes modernes et sont utilisés lors de l’écriture de tout grand projet. Plus de 70 % des programmeurs travaillent avec ces langages. On prévoit que dans les 10 prochaines années, ils seront toujours aussi demandés qu’aujourd’hui.

Ruby, PHP et JavaScript sont également considérés comme non moins populaires. La plupart des spécialistes se concentrent sur eux.

De manière générale, quelle que soit sa popularité, tout spécialiste plus ou moins qui se respecte doit connaître au moins plusieurs langues de niveaux différents. Cela est dû au fait que la majorité projets majeurs développé dans différentes langues. Par exemple, certains modules sont écrits en C, d’autres sont développés en Java et d’autres encore sont développés en Delphi.

C, C++ et C#

Tout d'abord, regardons la famille C.

Le langage C est un langage compilé et il a été développé dans les années 70. Sur cette base, des langages tels que C++ et C#, Java ont ensuite été créés.

C++ est un langage puissant conçu pour créer à la fois des utilitaires et des pilotes de bas niveau, ainsi que des applications et des progiciels très impressionnants.

C# est un langage moderne orienté objet basé sur C et C++. Dispose d'un système de type sécurisé. L'une de ses caractéristiques distinctives est qu'il est également très similaire à un autre langage de programmation populaire : Java.

L'un des inconvénients du langage est qu'il permet de créer des applications uniquement pour le système d'exploitation Windows, et en plus, il est très lourd, ce qui signifie que les programmes qui y sont écrits prennent beaucoup de place.

On peut noter qu’à bien des égards, C, C++ et C# sont des langages de programmation destinés aux débutants. Après les avoir maîtrisés, vous pouvez être sûr que l'apprentissage d'une nouvelle langue prendra un minimum de temps.

Vous pouvez vous familiariser avec eux et écrire vos premières applications dans un environnement spécial Borland ou Visual Studio.

Javascript

JavaScript est un langage doté de fonctionnalités orientées objet. Développé en 1996 et aujourd'hui l'un des plus populaires. Le langage est principalement utilisé pour créer des scripts sur Internet et fonctionne dans les principaux navigateurs tels qu'Internet Explorer, Firefox, Opera. Il est également étroitement lié au HTML et au CSS, donc avant de commencer à l'apprendre, vous devez maîtriser les bases de ces langages.

Il convient de noter que, malgré la similitude des noms, JavaScript et Java sont deux langages complètement différents.

Ce langage convient à ceux qui se concentrent sur la création de navigateurs et de scripts, d'applications et de modules complémentaires pour ceux-ci. Si vous envisagez de créer vos propres sites Web, vous devez également mieux le connaître.

Java

Lorsque l’on considère les langages de programmation les plus populaires, on ne peut s’empêcher de mentionner Java. Il s'agit d'un langage de programmation orienté objectif utilisé depuis 1995. Il est très léger et fonctionne sur n’importe quelle machine Java de n’importe quelle architecture. Utilisé pour développer des applications pour Android et iOS.

Python

Python - dont la tâche principale est d'augmenter la productivité des développeurs et de rendre le code plus lisible. Il possède une petite liste de constructions syntaxiques et une bibliothèque standard de fonctions très impressionnante. Le développement de la langue a commencé dans les années 90 et se poursuit encore aujourd'hui. Il est utilisé pour développer divers projets, extensions et intégrations d'applications précédemment développées.

Les bases du langage Python peuvent être apprises aussi bien comme début de programmation que comme deuxième langage complémentaire.

Rubis

Ruby est un langage de programmation de haut niveau contenant des parties de Perl, Smalltalk, Eiffel, Ada et Lisp. Utilisé depuis 1995. Les principaux avantages du langage sont sa simplicité et sa flexibilité. Convient à la fois à l’écriture de petites applications et au développement de programmes sérieux.

Langage PHP

PHP est un langage de script assez populaire conçu pour créer des applications Web. Très souvent, il est également inclus dans la liste des « Langages de programmation pour débutants » et recommandés pour l'étude.

Avec son aide, vous pouvez créer des applications Web de haute qualité en très peu de temps. La langue a une structure simple et compréhensible, ce qui vous permet de l'apprendre en quelques jours.

Conclusion

Nous avons examiné les langages de programmation les plus populaires, dont l'étude vous aidera à l'avenir à créer avec succès vos propres projets et à gagner de l'argent en tant que programmeur. Il n'y a pas de consensus sur le langage à étudier, mais en même temps, les experts notent qu'il est conseillé de connaître plusieurs langages de programmation, car cela élargira encore le champ d'activité et facilitera le travail sur divers projets d'équipe.

Zalina 13 janvier 2016 à 15:42

Différents langages de programmation et leurs domaines d'application. Conférence sur Yandex

  • Blog de l'entreprise Yandex,
  • Développement de sites Web,
  • La programmation,
  • Programmation industrielle

Nous avons décidé de consacrer notre premier article cette année à un sujet très basique, sur lequel une conférence a été donnée au Small ShAD. Il est fréquenté par des lycéens intéressés par la technologie, d'où la spécificité de la présentation - la conférence sera particulièrement intéressante pour ceux qui commencent tout juste à programmer et réfléchissent à la direction à développer. Pour eux, Yandex propose un cours « Introduction à la programmation (C++) », qui peut être suivi sur la plateforme Stepic.org.

Le conférencier Mikhail Gustokashin est conservateur des programmes académiques chez Yandex, directeur du centre des concours étudiants de la Faculté d'informatique de l'École supérieure d'économie. Mikhail a formé des dizaines de lauréats et lauréats des Olympiades panrusses de programmation.

La conférence explique quels sont les langages de programmation, en quoi ils diffèrent, comment ils sont apparus et lesquels sont les meilleurs et lesquels sont les pires. Au début, nous parlerons un peu de l'histoire des langues - comment elles sont apparues, comment les gens ont commencé à programmer, comment tout s'est développé, ce qui se passe maintenant. La deuxième partie abordera les tâches pour lesquelles quelle langue est adaptée, comment « choisir votre langue préférée et profiter de la vie ». Le conférencier expliquera également un peu comment, à son avis, vous pouvez apprendre tout cela et ensuite trouver un emploi.

Comme toujours, sous la coupe se trouve une transcription détaillée de la conférence afin que vous puissiez naviguer dans son contenu.

Histoire des langages de programmation

Commençons depuis le début. Au début, les ordinateurs n’avaient même pas de clavier ! C'est-à-dire que tout allait très mal - ils n'avaient ni clavier ni écran, ils n'avaient que des cartes perforées (ce sont des petites choses avec ou sans trous). En conséquence, soit ils y ont collé les épingles, soit ils y ont allumé une lumière. S'il y a un trou (ou vice versa pas), cela signifie un zéro ou un un. Et les programmes à cette époque étaient écrits à l'aide de codes machine - chaque opération sur un ordinateur (addition, soustraction, certaines opérations plus complexes) avait une sorte de code machine. Les gens eux-mêmes ont choisi ce code à partir d'un panneau, toutes sortes d'adresses en mémoire, ils ont tout frappé avec leurs mains et l'ont mis dans le lecteur - et tout a été compté. Bien sûr, le travail d'un programmeur n'était probablement pas particulièrement intéressant à l'époque - faire des trous - et avec le développement de la science et de la technologie, bien sûr, ils ont commencé à proposer toutes sortes de choses plus « intéressantes ». Par exemple, l'assembleur, qui rendait déjà la vie un peu plus facile.

Eh bien, comment a-t-il rendu la vie plus facile ? Au lieu de se rappeler qu'il existait une sorte de code « magique » pour la commande, on utilisait toutes sortes de mots similaires à l'anglais « humain » - certains add ou mov - puis des registres ou des zones de mémoire, variables avec lesquelles ils étaient nécessaires. ont été répertoriés pour effectuer des opérations. Mais il est clair que cela, en général, a également nécessité beaucoup d’efforts mentaux pour garder en tête dans quel registre nous avons quoi, où se trouvent quelles variables et ce qui se passe en général. Pourquoi est-ce arrivé? Parce que les ordinateurs étaient « stupides » et ne pouvaient rien comprendre de plus « intelligent ». En fait, assemblez-le à partir de l'assembleur langage machine cela demande aussi du temps et de la mémoire (à cette époque, il y en avait bien sûr peu).

Peu à peu, il est devenu évident qu’il était très difficile de développer des programmes aussi vastes et complexes. La productivité du programmeur dans ces équipes était extrêmement faible - c'est-à-dire qu'il écrivait plusieurs lignes par jour (significatives), et chaque ligne ne faisait rien de spécial - quelques opérations arithmétiques simples. Et les gens voulaient rendre les langues beaucoup plus proches du langage humain, en particulier de l'anglais, pour rendre l'écriture de programmes plus facile et plus pratique. Et c'est parti !

Langues anciennes et mortes

L'une des premières langues était le Fortran. À propos, il était également perforé sur des cartes perforées - il existait des cartes perforées spéciales pour perforer les programmes Fortran. Mais si vous prenez ce Fortran maintenant, à mon avis, il se situe même entre 50 et 60. est apparu - et si vous essayez d'écrire quelque chose dessus, vous serez très désagréable, je vous le garantis ! Le Fortran moderne est toujours vivant, mais il est assez différent de ce qu'il était auparavant.

Autres langages - je vais maintenant écrire une chose dont vous avez probablement entendu parler lors de divers événements où ils parlent de l'histoire de la programmation - c'est COBOL. C'était un langage pour écrire des applications métiers. Que sont les applications métiers ? Certaines transactions dans les banques, autre chose, tout cela était écrit en Cobol. Bien sûr, ce n’est pas très populaire ici. Je pense qu'il vous sera très difficile de trouver un programmeur Cobol à Moscou. Et quelque part pas à Moscou - avec encore plus de difficulté. Mais, étonnamment, il y a à peine 10 ans, plus de la moitié du code écrit par l’humanité l’était en Cobol. Et à ce jour, une partie importante de toutes les transactions bancaires est effectuée à l'aide de programmes qui y sont écrits (COBOL), et les gens y écrivent encore quelque chose.

Il existe aussi un langage « drôle », il s'appelait Algol (la 68ème version, qui caractérise l'année de sa création). C'est un langage algorithmique. En général, ils ont pu faire quelque chose là-bas, mais maintenant nous ne sommes plus très intéressés par ce qu'ils peuvent faire. Et avec cela, nous pouvons terminer notre excursion dans l'Antiquité et dans des langues relativement peu utilisées et passer à ce qui est encore vivant (et vivant activement).

Langues anciennes mais vivantes

Algol a été inventé en Europe et Fortran a été principalement utilisé aux États-Unis - il n'y a pas de grandes différences. Quelle tendance est perceptible ? Au début, tout était compliqué et pour écrire, il fallait être presque un ingénieur, un ingénieur électricien, pour comprendre où sont connectés quels contacts et autre chose pour la programmation. Ensuite, il fallait aussi s'asseoir avec les morceaux de papier et compter le souvenir, en prendre soin. Et progressivement, tout est devenu de plus en plus simple, de plus en plus simple puis encore plus simple pour le programmeur - penser le moins possible pour une personne, faire le plus possible automatiquement. Vers la fin de cette période (le conférencier désigne l'Algol et le Kobol), commencent à apparaître des langues qui, en un sens, ont « survécu » jusqu'à nos jours.

BASIQUE. Peut-être que certaines personnes y écrivent encore quelque chose, au moins j'ai vu que dans certaines institutions où ils enseignent en QBasic - il y a une fenêtre bleue où « 1989 » est écrit. En général, il « vit de toutes ses forces » ! Il a été inventé comme langage pour les non-programmeurs. À cette époque, un programmeur était un métier très spécialisé. Et ici, ils vous disent : "Nous avons un langage Basic sympa, et toute personne raisonnable peut y écrire un programme - c'est facile." Encore une fois, le BASIC et le BASIC moderne constituent une énorme différence. Toutes ces lignes numérotées après 10, toutes sortes de GOTO et autres horreurs - elles n'ont plus rien à voir avec le BASIC moderne, et même avec le BASIC de 1989, elles n'ont plus rien à voir avec cela.

Une autre histoire amusante est celle de la langue pascale, largement connue dans les milieux universitaires, principalement en Russie et dans les pays de l'ex-Union soviétique. Il a été et continue d’être utilisé de manière surprenante comme langue d’enseignement. Dans le reste du monde, il est moins courant, mais il est également bien vivant. Il existe une personne comme Wirth - c'est un scientifique, un théoricien. Il a participé à la discussion sur Algol, il n'a pas aimé ce qui s'est passé et il a proposé sa propre langue - Pascal. Et puis la société Borland (et avant cela de nombreuses autres sociétés - Apple était notamment impliquée) l'a pris et a tout gâché. Il avait une théorie belle et cohérente – « tout ira bien » – et ils l’ont prise et l’ont bourrée de ce dont les gens avaient besoin pour travailler. Eh bien, cela ne s’est pas avéré aussi beau qu’il le souhaitait.

Et enfin... C a été inventé par des ingénieurs. Si Pascal a été inventé par un scientifique, alors C a été inventé par Kernighan et Ritchie, ils ont travaillé comme ingénieurs chez Bell. Comment est-ce arrivé? A cette époque, il était impossible d'écrire quoi que ce soit de systémique dans ces langages (le conférencier pointe du doigt Fortran, COBOL, Algol). Qu’est-ce que « systémique » ? Par exemple, un système d'exploitation, des pilotes, autre chose. Ces langages étaient destinés aux calculs mathématiques, aux calculs commerciaux, pour autant. Et tout le reste a été écrit en Assemblée. Il y avait certains langages, ils sont maintenant morts, c'est-à-dire que le langage C n'est pas apparu immédiatement depuis Assembly, mais à travers des choses intermédiaires.

À quoi ça sert? Kernighan et Ritchie adoraient jouer au jouet Asteroids : un vaisseau spatial vole, et il y a des astéroïdes, il leur tire dessus et ils s'effondrent. Ils avaient un serveur sur lequel ils jouaient, mais il y avait beaucoup de monde et le jouet était lent. Et ils ont découvert quelque part dans leur bureau qu’ils avaient une sorte d’ordinateur que personne n’utilisait. Mais il y avait un problème : c'était une architecture différente et le jeu était écrit en Assembly.

Bien sûr, ils l'ont réécrit et ont même ajouté quelques fonctionnalités pour y jouer. Mais cela les a amenés à l’idée que réécrire à chaque fois pour une nouvelle architecture n’est pas très intelligent. Et ils ont décidé d'écrire un langage de haut niveau qui serait adapté à la programmation système, c'est-à-dire dans lequel il serait possible de gérer la mémoire, dans lequel il serait possible de comprendre où se trouvent les choses et comment accéder à ces morceaux de mémoire. . C’est ainsi qu’est apparu le langage C, qui a eu une énorme influence sur tout ce qui a suivi. Tous (le conférencier désigne Algol, Fortran et d'autres langages mentionnés) ont eu une grande influence, mais C - juste oui...

En conséquence, il s’agissait du langage principal d’Unix, un système d’exploitation encore plus populaire à l’époque qu’il ne l’est aujourd’hui. Et vers les années 80, la situation était à peu près la suivante (le conférencier montre le Basic, le C et d'autres langages mentionnés). Disons que tout cela s'est déjà lentement éteint dans notre pays (le conférencier efface les mentions de Assembly Language, Fortran et Algol)... Et dans les années 80, les ordinateurs sont devenus plus petits, plus intelligents, moins chers, et les gens voulaient toutes sortes de choses étranges pour rendre la vie encore meilleure, pour vivre encore plus de plaisir.

Langues des années 80

L’une des premières bizarreries était qu’il s’agissait d’un langage C++. Le langage C présente un grand nombre de défauts (enfin, généralement énormes) - vous pouvez tout y faire, y compris vous tirer une balle dans le pied, vous tirer une balle dans le pied avec la fiction, dans l'autre pied, tirer un pied dans l'autre pied, en général - quoi que vous vouliez faire. Mais en même temps, certaines choses architecturales y sont assez difficiles à réaliser - encore une fois, comme dans Assembly, nous devons savoir où nous en sommes, quelle mémoire nous avons allouée et quelle mémoire nous avons allouée ; Elle est là tout le temps "circulant" quelque part, cette mémoire - c'est-à-dire que nous l'avons allouée, oublié de la supprimer, supprimé la mauvaise chose, dépassé les limites de la mémoire, en général - nous avons accumulé un tas de problèmes.

C++ a été créé à l’origine comme un ensemble d’ajouts au langage C destinés à faciliter le développement. A cette époque, la programmation orientée objet est devenue à la mode et les gens ont décidé que tout pouvait être décrit sous la forme d'une hiérarchie, c'est-à-dire que vous avez un ballon (abstrait), vous en héritez un ballon de football, un ballon de volley-ball, un autre ballon abstrait. . Il était alors à la mode que "nous écrivons maintenant tout sous la forme d'une sorte de hiérarchie, et tout ira bien, la vie s'améliorera, tout ira bien et c'est tout". C++, dans un sens, a mis en œuvre cette approche basée sur les objets - ce n'était pas le premier langage de programmation orienté objet, mais il est devenu très populaire et toutes sortes de fonctionnalités ont commencé à y apparaître. Dans le même temps, C++ conservait une compatibilité presque totale (à l'époque) avec le langage C ; un programme écrit en C était compilé avec succès en C++ dans 99 % des cas et fonctionnait même de la même manière. Cela visait à faciliter le passage du C au C++.

En plus de l’approche objet (en C++), une bibliothèque de modèles standards (STL) est rapidement apparue. Je pense qu'à l'école, ceux qui apprenaient encore le Pascal ont découvert que, premièrement, il n'y avait pas de tri intégré (dans l'ancien Borland Pascal bleu, maintenant il existe déjà dans versions modernes) - il existe un exemple (source) de tri, vous pouvez le copier et le coller. Mais si vous voulez trier des entiers ici, des nombres réels ici et des chaînes ici qui peuvent être comparées les unes aux autres, vous deviez écrire trois tris différents qui font exactement la même chose, ils ont juste des types de données différents. Ce n'est pas très bon, et les modèles qui n'apparaissaient pas immédiatement en C++ ont grandement atténué ce problème. Autrement dit, vous aviez un programme abstrait qui a réussi à trier quelque chose qui pouvait être comparé les uns aux autres.

Langages de script des années 90

Mais le temps ne s'est pas arrêté : dans les années 80, beaucoup de choses intéressantes se sont produites. Mais au tournant des années 80 et 90, les ordinateurs sont devenus si performants qu’il était possible de faire des choses très étranges et très inefficaces. Il s'agissait notamment de langages de script qui n'étaient pas compilés en code machine, mais plutôt interprétés. BASIC a également été interprété à un moment donné, mais ces langages de script étaient principalement destinés au traitement de texte - ce sont par exemple Perl, Python (ce n'était pas très connu à l'époque), PHP, Ruby - ce sont les langages de script que dans l'un ou l'autre, à des degrés divers, ils vivent encore (ils ont tous réussi à apparaître avant 2000, voire bien plus tôt).

Passons-les un peu en revue, car ce sont des choses spécifiques et sont désormais utilisées dans de nombreux endroits. Quelle est l'idée ? Si nous ne compilons pas, nous pouvons en autoriser beaucoup plus. Par exemple, un programme peut consulter son code et l'utiliser d'une manière ou d'une autre ; elle sait ce qui se passe en elle et grâce à cela, elle peut faire beaucoup de choses intéressantes.

Perl était destiné au traitement de texte - à cette époque, il y avait tellement de mémoire dans les ordinateurs qu'on pouvait y insérer du texte et faire quelque chose d'utile avec ce texte (par exemple, compter des mots, effectuer une sorte de recherche). Mais, à mon avis, il a été conçu par des gens un peu fous, car il y a une blague à ce sujet : « Tout ensemble de caractères écrits est bon programme sur Perle." À mon avis, on ne peut qu’écrire dessus, on ne peut pas le lire. Quand je regarde le code Perl et que j'essaie de comprendre quelque chose, je ne comprends rien. Peut-être que si je le connaissais mieux, je comprendrais quelque chose, mais comme je l'ai entendu de la part de ceux qui savent encore le faire, ils disent qu'il est plus facile de le réécrire. Autrement dit, les programmes s'avèrent courts et il est vraiment plus facile de les réécrire à partir de zéro que de comprendre ce qu'il y a là et de le réparer.

À cette époque, au milieu des années 90, Internet est apparu. Au début, c'était du courrier, des sites Web avec du HTML statique, mais les gens voulaient y ajouter une sorte de dynamique, pour que tout se passe de manière dynamique, que certains formulaires puissent être remplis, que des livres d'or puissent être créés et autre chose. En conséquence, cela nécessitait une sorte d'interaction, ils ont élaboré un protocole, comment il interagit et, plus important encore, la génération de ces pages statiques (conditionnellement) qui seront « recrachées » à l'utilisateur en réponse à sa demande.

En général, rien d'autre que Pearl ne convenait à cette époque. Écrire un gestionnaire en C ou C++ pur était une mauvaise idée. Et faute de mieux, à cette époque (et pendant assez longtemps) Pearl était le langage populaire pour le développement web. Bien entendu, l’ampleur ne peut être comparée à ce qui se passe actuellement.

PHP est apparu comme... par accident. Une personne a arrêté de le faire assez rapidement - il a créé sa propre page, il avait une sorte de livre d'or, autre chose, autre chose. Et il a écrit un ensemble de macros pour Perl qui étaient similaires au C, parce qu'il savait utiliser C, simplement parce que cela lui convenait très bien. Et je l'ai appelé Page d'accueil personnelle. Il l'a partagé et a déclaré : « Les gens, regardez ce que j'ai écrit, tout ici est beaucoup plus clair qu'en Perl et vous pouvez le modifier. » Et les gens ont aimé.

Puis il a abandonné cette affaire. En général, ce PHP a commencé à vivre et est devenu au fil du temps beaucoup plus populaire que Perl. Mais son «traumatisme de naissance» (conçu comme un ensemble de macros pour Pearl) lui a joué une blague assez cruelle. Le langage s'est avéré étrange. Autrement dit, il s'est développé tout seul, personne ne l'a conçu, personne n'a administré le processus de développement (ni une entreprise ni aucune personne), mais il y avait de nombreux groupes, chacun sciant ce qu'il voulait. Du coup, les fonctions sont nommées différemment, il n'y a même pas de style, tout est souligné, essentiellement aléatoire, les réglages sont ici et là, et comment tout cela va fonctionner n'est pas très clair. Mais vous pouvez vous asseoir et écrire en PHP en deux heures, car c’est comme ça que c’était prévu.

Python et Ruby : Ruby est moins populaire maintenant, Python est en quelque sorte mieux « planifié », nous en reparlerons plus tard. Il est clair qu'à cette époque il s'agissait (le conférencier souligne Perl, Python, Ruby, PHP) de langages hautement spécialisés destinés à des fins hautement spécialisées. En général, personne n'a écrit de programmation système, aucune logique métier à l'époque et maintenant, cela ne fait pas grand-chose.

Langues compilées des années 90

Nous ferons le tour aux mêmes horaires, mais dans l'autre sens. À cette époque, nous utilisions le C++ pour presque tout ce qui devait être écrit, non pas pour le Web, ni pour le traitement de texte, mais uniquement pour les applications, les systèmes d'exploitation, les jouets - en général, pour tout. Mais le C++ est en réalité un langage épouvantable. Pourquoi? Parce que, premièrement, il a hérité de tous les problèmes du C dus à la rétrocompatibilité. Tu pourrais encore te suicider là-bas avec un million différentes façons, les mêmes qui étaient en C (naturellement, de nouvelles méthodes ont été ajoutées en C++). En même temps, si vous écrivez tout correctement et correctement, comme le voulaient les auteurs du C++, alors, bien sûr, il n'était plus possible de se suicider en utilisant les anciennes méthodes du code C, et il semble qu'il y en ait moins. eux. Cependant, il avait un modèle objet très étrange et particulier. Le fractionnement d'un programme en modules, en morceaux, venait généralement du C (si vous savez écrire include en C ou C++ - en fait, il s'agissait d'un moyen d'insérer simplement le texte de la bibliothèque dans votre programme, dans le à la fin, quand vous écrivez un tas d'includes, vous avez tout - si c'est "primitif", comme c'était le cas au tout début - tout est inséré dans un seul fichier et ensuite tout cela prend terriblement longtemps à compiler, car tout tourne autour plusieurs fois. Le même Pascal, Virtovsky, était beaucoup plus réfléchi à cet égard, les versions ultérieures sont devenues encore meilleures.

En général, le C++ présente de nombreux inconvénients. Le programmeur devait être hautement qualifié pour écrire en C++, et ces programmeurs étaient chers (et la formation, et autre chose, c'est-à-dire qu'il est difficile de trouver des programmeurs sur le marché, ils doivent être payés cher, eh bien, en général ce n'est pas le cas... ). Et nos ordinateurs comptent de plus en plus vite, ils deviennent moins chers, les gens achètent de nouveaux ordinateurs et veulent plus d'applications, plus de jouets pour leurs téléphones, en général - plus de joie.

C'est ainsi qu'est apparu Java. Il y a aussi une histoire plutôt amusante sur la façon dont cette langue tire son nom. Il y a des programmeurs là-bas, ils boivent du café tout le temps et à cette époque il était à la mode de boire du café, qui poussait sur l'île de Java. Le langage a été conçu comme un langage pour les appareils intégrés, notamment pour une machine à café. C'est ainsi qu'est né le nom...
Qu’est-ce qui a commencé avec elle, qu’est-ce qui était bon chez elle et pourquoi a-t-elle gagné en popularité ? Premièrement, ils se sont complètement débarrassés de l’héritage de Sishnoi. Il n'y a aucun signe, et encore moins de façons de tirer sur une partie de votre corps et de tout casser. Deuxièmement, ils ont introduit des idées beaucoup plus récentes en termes de modèle objet - c'est-à-dire que C++ est apparu beaucoup plus tôt que Java et a utilisé un modèle objet plus archaïque et « sauvage ». Eh bien, ici (le conférencier montre Java), c'était déjà plus réfléchi à l'époque, et en théorie, les gens pensaient, et en pratique, ils appliquaient et rendaient tout beaucoup plus cool.

Et enfin, troisième. Nos programmes Java n'ont pas été compilés en code machine, mais en code pour une machine virtuelle. Autrement dit, vous aviez une machine virtuelle (VM) JVM – Java. Vos programmes ont été assemblés dans une sorte de représentation intermédiaire puis, avec l'aide de cette machine, ils ont déjà été exécutés. Qu'est-ce que ça a donné ? Premièrement, il ralentissait, deuxièmement, il consommait de la mémoire avec une force terrible, troisièmement, il était portable n'importe où (théoriquement) - même sur une cafetière, même sur un moulin à café, même sur un ordinateur, même sur un téléphone portable. D'une part, c'est bien, c'est-à-dire que vous venez d'écrire une implémentation d'une machine virtuelle, puis vous exécutez vos programmes Java partout. Mais d’un autre côté, c’est dommage que le même téléphone ait alors peu de mémoire, il y avait faible niveau de rendement et tout cela commença à s'émousser et à ralentir.

Mais ce n’est même pas la raison principale pour laquelle le langage a été inventé. Le langage Java a été inventé pour réduire les exigences de qualification des programmeurs. Autrement dit, les pires programmeurs peuvent écrire de bons programmes en Java, car cela ne vous permet pas d'écrire mauvais programmes- il n'existe aucun moyen d'écrire de mauvais programmes. Là, vous ne pouvez écrire que de bons programmes. Eh bien, dans la compréhension des créateurs du langage.

Autrement dit, si en C, en C++, en Python, dans n'importe quoi, nous pouvons créer une sorte de terrible dépotoir à partir de notre projet, où nous avons tout mélangé, assemblé pendant des heures et autre chose. En Java, vous pouvez également créer un garbage dump, mais pour cela, vous devez faire des efforts. C'est-à-dire que, par défaut, ce n'est pas une "décharge", d'autres problèmes surviennent, que quelque chose a été hérité et hérité - en général, pour une ligne significative, il y en a dix qui ne sont pas très significatives. Mais un programmeur aussi moyennement qualifié peut écrire du code d’assez bonne qualité.
Nous sommes presque à la fin. Pour nous, la prochaine chose qui est apparue était .Net (dotnet), et en particulier nous nous intéressons au C# (presque la même chose [le conférencier montre Java], c'est-à-dire qu'il y a des différences dans les détails, si vous choisissez entre eux , regardez où ils paient plus d'argent).

Et encore une chose : JavaScript. Cela n'a rien à voir avec le langage Java, apparu la même année - le mot était à la mode, ils ont autorisé la marque à l'utiliser.

Quelle est la principale chose à laquelle vous devez prêter attention ? (Le conférencier dessine des flèches du C++ vers Java, .Net, C#, JavaScript et PHP). Pour écrire un programme simple dans l'un de ces langages, et dans beaucoup d'autres - si vous connaissez le C++, vous n'avez généralement pas besoin de connaître autre chose - vous écrivez en C++, puis ajoutez des dollars au début, quelque chose d'autre fait de petites choses et il commence à travailler sur n'importe quoi (le conférencier montre les langages auxquels les flèches du C++ ont été attribuées). Autrement dit, ils sont extrêmement similaires sur certaines choses simples. Si vous résolvez des problèmes scolaires, des problèmes éducatifs ou autre chose (vous ne concevez pas un grand projet - vous avez un fichier qui lit les nombres, affiche les nombres dans la console et fait autre chose), alors il n'y a presque aucune différence entre ces langues. Force est de constater que JavaScript et PHP sont spécialisés, tout est un peu différent pour eux. Mais ici (le conférencier pointe du doigt Java et C#), il y a très peu de différence.

Depuis lors, toutes sortes d'autres choses intéressantes sont apparues, mais il n'est pas clair si elles vivront ou mourront avec succès. Qu’utilisent-ils maintenant, à quelles fins ?

Sélection d'une langue en fonction de la tâche

Disons que vous êtes confronté à la tâche d'écrire un pilote pour une carte vidéo. Quelle langue utiliserez-vous aujourd’hui ? (Cri du public : Java !) Pourquoi... Java est génial, mais pourquoi pas Ruby ou PHP ? (Le conférencier parle sarcastiquement.)

Programmation de bas niveau

Si vous écrivez quelque chose de bas niveau, alors le meilleur choix est le C, mais en réalité j'ai entendu (mais pas vu) que le C++ est utilisé pour cela. Mais j'ai peu confiance en cela, car en C, vous pouvez clairement contrôler - puisque vous avez donné autant d'octets de mémoire, cela signifie qu'il y en aura tellement. Et en C++ (STL), comment une chaîne est-elle implémentée ? Eh bien, d’une manière ou d’une autre, cela a été mis en œuvre. Et en fin de compte, nous ne savons pas comment et ce qui se passe là-bas ; peut-être que nous manquerons de mémoire sur notre carte vidéo ou que quelque chose d'autre se produira. Par conséquent, C vit toujours et ne meurt pas, de telles tâches de programmation système existent toujours - écrire un système d'exploitation, écrire des pilotes, écrire autre chose - C est idéal pour cela. De plus, maintenant apparaissent toutes sortes d'appareils (l'Internet des objets est promis d'arriver bientôt) qui fonctionnent sur piles (et, bien sûr, il y en aura des millions, tout sera couvert par cet Internet des objets), ils devraient être très bon marché et consommer très peu d’électricité. En conséquence, il y aura 2 Ko de mémoire, un processeur de 5 kHz, et il est clair qu'il ne sera pas possible d'installer une sorte de machine virtuelle ou un langage de script dans un avenir proche - ce qui signifie que vous devrez écrire quelque chose en C. Et même maintenant, par exemple, l'informatique sur une carte vidéo (OpenCL ou une autre technologie) n'y est pas inventée nouveau langage pour écrire des programmes pour eux - ils y font du C avec de grosses restrictions. Juste parce que les gens savent déjà comment faire, pourquoi apprendre quelque chose de nouveau ? Formellement, il s’agit probablement aussi, dans un sens, de C.

programmation web

Disons que tu veux écrire nouveau Facebook(réseau social). Sur quoi vas-tu écrire ça ? (Les gens du public parlent de HTML et CSS.) HTML et CSS sont du design, et nous voulons qu'il soit possible d'y ajouter des photos, des amis et d'y laisser des commentaires.

Pour la partie scripting - c'est-à-dire ce qui se passera côté client - il s'agit de JavaScript. De plus, parfois JavaScript est généré dans un autre langage et envoyé (il arrive que le script soit généré... car il est parfois plus facile de traiter certains changements dans la logique).

Étonnamment, il est écrit en PHP, sur Facebook et dans de nombreux autres grands projets. Bien sûr, ils ont dû écrire certaines de leurs propres choses pour que cela fonctionne toujours normalement, et non de manière « maladroite », mais ils l'ont fait. En principe, ce que vous écrivez n’a plus ou moins d’importance, mais je ne recommande pas Perl. Ici et maintenant, bien sûr, personne n’écrit rien pour le Web à partir de zéro. Tout le monde écrit une sorte de cadre ou autre chose. Boutique en ligne? Nous avons téléchargé un framework pour une boutique en ligne - et c'est tout, nous avons écrit une boutique en ligne.

Programmation pour les entreprises

Ensuite, vous voulez rédiger une candidature ennuyeuse pour une banque. Ou, par exemple, avez-vous quelqu'un qui vend des cartes SIM ? Peut-être avez-vous déjà acheté un téléphone ou autre chose et on vous a dit : « Le système est bloqué, nous ne pouvons rien faire ». Qu’utiliserez-vous pour écrire une telle application ? (Cri du public à propos de Python) Vous ne pouvez pas écrire ça en Python, qu'est-ce que vous dites ?! Il n’est pas nécessaire d’écrire quoi que ce soit pour les entreprises en Python. Pourquoi? Car lorsque l’on écrit quelque chose en Python, il est impossible de détecter un nombre important de bugs lors du processus d’écriture. Python est typé dynamiquement de toutes les manières possibles, et en général, vous pouvez masquer un bug de telle manière qu'il apparaît dans une situation telle que vous ne pourrez même pas comprendre ce que ces utilisateurs véreux ont fait là-bas, que tout est brisé pour toi. Autrement dit, en Python, il est préférable d'écrire de petits scripts pour vous-même - vous comprenez ce qui s'y passe et ce qui se fait. Eh bien, ou quelque chose que vous n'avez pas peur de jeter : vous voulez déployer quelque chose avant vos concurrents, et si cela tombe en panne de temps en temps. Vous avez écrit en Python et c'est tout : vous avez conquis le marché. Et si vous écrivez quelque chose depuis longtemps, par exemple une sorte d'application bancaire (pour qu'elle approuve les prêts, autre chose) - vous l'écrivez en Java. Parce que c'est une affaire sérieuse, des papiers, de l'argent, des documents, autre chose, mais on ne peut pas tout gâcher au point que tout se brise, sinon les gens seront offensés - leur argent est parti et n'est arrivé nulle part, parce que d'une manière ou d'une autre à partir du moment où la chaîne s'est transformée en nombre ou vice versa. Donc, cela signifie que vous le prenez méthodiquement en Java et écrivez, écrivez... Eh bien, ou sur .Net, de telles situations, en principe, se produisent également. Là, bien sûr, vous pouvez également rencontrer des problèmes, mais la probabilité que cela se produise est néanmoins un peu plus faible.

Programmation pour l'armée, l'industrie aérospatiale

Imaginez maintenant qu’ils décident de vous envoyer sur la Lune à bord d’une fusée. Que préféreriez-vous utiliser pour écrire le code qui contrôle les moteurs de fusée ? Jetons un coup d'oeil. Ceci, probablement (le conférencier montre Perl, Python, PHP, Ruby), n'en vaut pas la peine - cela ralentit, quelque chose d'autre se passe, et en général, je n'accepterais pas de voler sur une telle fusée. En C++ ? Pour être honnête, je ne lui ferais pas confiance non plus, car en C++, il y a trop de façons de se suicider. Quand vous êtes quelque part dans l’espace, ce n’est pas très bon.

Peut-être en Java ? Il semble que tout y soit assez fiable et que l'architecture soit bonne, pas de types sauvages, pas de déplacements inutiles au-delà des limites de la mémoire. Disons que le moment le plus crucial est arrivé et que notre Java a décidé de ramasser les ordures pour nous. Nous devons atterrir, ralentir, et elle dit : « Non, les ordures s’en vont. » En général, pas très bon non plus.

Honnêtement, je préférerais que ce programme soit écrit en Pascal. Bien sûr, je n’aime pas vraiment Pascal, mais d’une manière ou d’une autre, ce serait très cool dans de tels domaines.

Utiliser plusieurs langages pour le développement de logiciels

Eh bien, que faut-il dire en général des langues modernes ? Aujourd’hui, de nombreux projets ne sont pas rédigés dans une seule langue, c’est-à-dire que certains d’entre eux sont rédigés dans une langue, d’autres dans une autre et d’autres encore dans une troisième. Par exemple, si vous disposez d'une sorte d'application Web qui traite d'énormes quantités d'informations, les appels aux disques (pas même aux bases de données, ils sont si énormes que même une base de données ne peut en gérer aucune déjà écrite) sont probablement écrits dans une sorte de puis du C de bas niveau, pour écrire très rapidement sur le disque et tout ça. Naturellement, cela ne vaut pas la peine d’écrire l’intégralité du projet en C. Il existe peut-être une sorte de logique intermédiaire écrite en Java qui appelle les fonctions C pour des appels rapides. Eh bien, le frontend (ce que l'utilisateur regarde), bien sûr, est déjà écrit dans quelque chose, dans certains scripts, dans quelque chose qui est directement exécuté par le navigateur (JavaScript). Et tout cela vit ensemble et interagit avec succès.

Lors du développement de certaines applications, même les plus volumineuses, que font parfois les gens ? Ils le prennent et écrivent un prototype en Python (comment tout cela fonctionnera), l'esquissent, réfléchissent à une sorte d'architecture. Écrire dessus est vraiment très rapide - ils ont créé un prototype, l'ont expérimenté et ont dit : « Wow ! Ce est tellement cool!" Et ils l'ont complètement réécrit. Il semblerait qu'ils aient fait le travail deux fois, ce qui a pris deux fois plus de temps (enfin, un et demi). Mais non! Il s'avère souvent que cette méthode n'est pas mauvaise, car si vous écrivez quelque chose tout de suite, par exemple en Java, et que vous décidez ensuite : « Non, refactorisons, changeons complètement l'architecture et tout ça », alors vous dépenserez 10 fois plus temps . De telles choses existent et vivent aussi.

Conditions du succès de tout langage de programmation

Parlons maintenant des raisons pour lesquelles certaines belles langues n'ont pas survécu ou vivent dans un espace très limité. Lorsque Wirth a vu ce que les mauvaises entreprises Apple, Borland et tout cela ont fait à son Pascal, il a proposé un langage encore meilleur : Oberon. C'était tout simplement extrêmement minimaliste - c'est-à-dire qu'il y avait très peu de commandes (des chaînes ? Pourquoi avons-nous besoin de chaînes ? Nous allons créer un tableau de caractères !). Eh bien, quelque chose n’a pas fonctionné pour lui, dans la mesure où cela aurait pu fonctionner.

Encore une chose. L’armée américaine leur a demandé de développer un langage sympa dans lequel tout fonctionne et tout peut être écrit. Le résultat fut un langage Ada plutôt monstrueux, dans lequel, cependant, ils écrivent toujours quelque chose, mais encore une fois, uniquement pour les militaires.

Quel est le problème? Pourquoi certains langages comme Python, qu'aucune entreprise ne prenait en charge au début, ont conquis le marché. PHP, qui est également mal conçu, a également pris le contrôle du marché (en grande partie) à lui seul. Et toutes sortes de milliards de dollars ont été investis (le conférencier montre Ada) et ne sont allés nulle part, rien ne s'est passé. A quoi est-ce lié ? Cela est dû au fait qu’il n’existe aucune infrastructure autour de ces langues. Autrement dit, le langage est peut-être excellent, mais il n'y a pas encore de documentation, il n'y a pas de communauté capable de répondre aux questions (sur Stack Overflow) et, enfin, plus important encore, il n'y a pas grande quantité bibliothèques, la langue ne tire pas. Autrement dit, vous souhaitiez rédiger un site Web sur Oberon. Qu'est-ce que c'est, pourquoi pas ? Et les tracas commencent... Vous ne pouvez pas configurer votre propre serveur Web sur Oberon pour le tester à la légère, vous ne pouvez connecter aucune bibliothèque, car Oberon n'en a pas. Et tout cela se fait avec quelques béquilles, la force s'en va, et en général vous abandonnez et écrivez votre site en C pur au lieu d'Oberon. Et ces langues qui vivent bien sont celles qui savent utiliser les bibliothèques d'autres langues. Le même Python dans les endroits où il ralentit. Eh bien, en général, toutes sortes de choses standard comme le tri et autre chose sont écrites en C, et il (Python) peut interagir avec elles.

Java dispose également d'une interface native Java. Il s'agit essentiellement de C, c'est-à-dire que là (à mon avis, ils veulent toujours l'interdire, mais il semble qu'ils ne l'aient pas encore interdit) ces langages peuvent interagir avec des bibliothèques déjà existantes (principalement C). Et à cause de cela, ils le prennent et travaillent. L’idée que j’essaie de vous transmettre est claire, non ? N'écrivez pas dans des langages qui ne prennent pas en charge la bibliothèque C. Eh bien, si vous voulez utiliser quelque chose de cool. Eh bien, progressivement, elles (les langues) acquièrent leur propre infrastructure. Et ils vivent bien.

Langage de programmation et orientation professionnelle

Parlons maintenant de la façon de comprendre ce que vous voulez dans la vie. Quelles sont les choses les plus cool ? Vous pouvez faire de la programmation système, n'est-ce pas ? C'est génial pour vous de compter ces bits, vous voulez lancer des quadricoptères, des sortes de caméras et faire autre chose. Alors, probablement, C est votre choix.

Si vous voulez écrire, ce n'est peut-être pas les applications les plus intéressantes de la vie, mais c'est cool pour vous de les concevoir, de penser à tout et de gagner beaucoup d'argent en restant assis et en vous ennuyant la plupart du temps (vous devez payer pour cela si vous êtes doué), les voici - Java, .Net. Tu vas travailler dans une banque, tu écris, tu vas travailler à neuf heures en chemise blanche, tu as un bon salaire et tu écris selon les recommandations des meilleurs développeurs Java, des moutons .Net et tout ça...

Si vous souhaitez écrire des applications, une sorte de navigateur, une sorte de jouet ou autre chose, alors le C++ est génial. Si vous souhaitez écrire des sites Web, alors les voici, langages de votre choix (le conférencier montre Perl, Python, PHP, Ruby), il n'y a pas beaucoup de différence. La seule chose est que PHP mourra avant Python, donc si vous êtes paresseux pour apprendre de nouvelles choses, apprenez Python. Vous ne remarquerez pas beaucoup de différence, mais vous durerez plus longtemps.

Ce qui se passe avec Ruby n'est pas non plus clair. Eh bien, vous pouvez faire du PHP si vous l’avez déjà appris, heureusement c’est si simple qu’il ne faut pas si longtemps pour réapprendre.

Et enfin, il existe un autre domaine d'application des langages de programmation : c'est lorsqu'un non-programmeur les utilise. Disons que vous êtes mathématicien, physicien, chimiste, analyste, n'importe qui, et que vous avez besoin de calculer rapidement quelque chose, d'analyser certaines données (pour les biologistes, par exemple, combien de renards arctiques vivent sur les îles du Commandeur). Vous pouvez mettre tout cela dans un tableau dans Excel ou l'analyser avec quelque chose. Python est également bon pour cela, il peut fonctionner avec du texte et il existe de nombreuses bibliothèques, statistiques et tout ça. Si vous souhaitez faire une sorte d'apprentissage automatique, traiter certaines données, faire des prédictions, cela se fait également en Python de la manière la plus rapide actuellement. Certes, il convient de noter que les tâches sont très différentes. Par exemple, si vous souhaitez négocier instantanément en bourse dans des conditions où les cotations changent tout le temps, peu importe à quel point vous écrivez du Machine Learning en Python, les personnes qui l'ont écrit dans quelque chose de plus rapide auront le temps de tout acheter avant tout. seront comptés pour vous, même si leurs algorithmes sont pires. Par conséquent, même ces tâches d'apprentissage automatique (certaines d'entre elles) nécessitent des performances élevées (et extrêmement élevées) et, par conséquent, d'autres langages.

La seule façon de comprendre ce que vous voulez est de tout essayer. Maintenant, je vais le dire comme l’une des visions de la façon dont vous pouvez tout essayer. Comment devenir programmeur et heureux ? Donc. Commençons par une table rase. Ici, vous étudiez les mathématiques, la langue russe et d'autres matières obligatoires et facultatives à l'école, et vos connaissances dans le domaine de la programmation se reflètent actuellement au tableau (le conférencier montre un tableau vide). Et vous voulez devenir une personne heureuse, faire ce que vous aimez, gagner beaucoup d'argent et ne rien vous priver et être heureux.

Une façon d’y parvenir. Il existe bien sûr toutes sortes d’histoires inspirantes sur des personnes qui ne sont pas allées à l’université du tout, ou qui ont abandonné leurs études et sont devenues milliardaires, propriétaires d’entreprises, etc. Mais il convient de noter que la plupart des gens qui ne sont peut-être pas devenus milliardaires, mais qui vivent aussi bien, obtiennent néanmoins un diplôme universitaire à un moment donné.

Quelle est la situation avec l'admission à l'université (étudiez-vous actuellement à l'école) ? Pendant que vous êtes à l’école, vous devez comprendre que la prochaine étape consiste à vous inscrire et à vous en occuper. Réussissez l'examen d'État unifié ou remportez l'Olympiade. Lors de l'examen d'État unifié, vous pouvez utiliser Pascal, C++ (y compris le C pur), Python (je ne les mentionnerai pas davantage). A l'Olympiade il y a le même Pascal, le même C++, le même Python (nous allons maintenant parler de ses problèmes) et, le plus souvent, il y a Java. Il y a d’autres choses qui se produisent en fonction des Jeux olympiques, mais ce n’est pas le sujet.

À quoi ressemble le graphique de la répartition des langues à l'Olympiade panrusse d'informatique ? Les gens qui participent aux Jeux olympiques panrusses, les plus cool, qu'écrivent-ils ? Cela ressemble à ceci (ici cela signifie Pascal, et ici c'est environ 2000, et ici c'est environ zéro, ici c'est C++, et ici c'est 2015).

En 2000, presque personne n’écrivait du C++. 15 ans ont passé, et presque personne n'écrit en Pascal, malgré le fait que Pascal soit moderne. C’est un langage qui peut presque tout faire de la même manière. C'est juste que tout le monde est devenu trop paresseux pour apprendre cela, chaque nouvelle tendance, et ils continuent à tout écrire en Borland Pascal, ce qui bien sûr ne peut rien faire. En C++, les gens écrivent des algorithmes (STL) pour trier - super, ils ont écrit sort() et c'est tout. Sur Pascal, sur Regular, sur l'ancien - c'est un problème. Nous avons écrit une sorte d'ensemble (c'était nécessaire) - super, nous l'avons écrit en C++, mais en Pascal, c'était encore une fois une véritable galère. Bien sûr, vous pouvez le faire avec de nouveaux Pascal, mais ils coûtent généralement de l'argent. Vous ne l’avez peut-être pas remarqué, mais c’est vrai.

Il existe aussi Java, mais Java a beaucoup de lettres. C'est pour les grands projets, mais pour les petits programmes ponctuels, cela s'avère très mauvais, car il y a beaucoup de lettres supplémentaires. Mais certaines personnes écrivent aussi, on peut apprendre à écrire dessus. Mais cela ne figure pas à l’examen d’État unifié, et la majorité devra quand même passer l’examen d’État unifié.

Qu'est-ce qui est le mieux pour l'examen d'État unifié ? Pour l'examen d'État unifié, il est préférable (si vous ne savez rien et qu'on ne vous apprend rien à l'école) d'apprendre Python. Certains problèmes d'examen peuvent être parfaitement résolus. Aux Olympiades, en général, il s'avère que C++ est utilisé, car Python est très lent, tout n'y est pas résolu.

Ainsi, vous avez étudié un petit sous-ensemble du langage et quelques algorithmes (éventuellement) et résolu de nombreux problèmes afin de recevoir un diplôme de votre Olympiade et d'entrer à l'université pour recevoir un enseignement supérieur.

Je vais maintenant parler de la façon dont nous structurons le cours au HSE, dans quel ordre les langues sont enseignées, comment elles sont étudiées en mathématiques appliquées et en informatique à la Faculté des sciences appliquées, ce que nous faisons avec Yandex. Au premier semestre - Python (pas dans son intégralité, à peu près comme vous devriez l'apprendre à l'école) et C++ (déjà plus large, beaucoup plus large que ce qui est habituellement enseigné dans les écoles). Laissez-moi vous le dire tout de suite pour que vous n'ayez pas peur, si d'un coup vous avez envie de vous inscrire, vous direz : « Quoi, je sais déjà tout ça, pourquoi devrais-je aller étudier quelque part ? Je préfère aller ailleurs. Pour ceux qui savent déjà bien programmer, il existe la possibilité de passer immédiatement à l'étude des algorithmes, et dans le cadre d'une préparation assez théorique. Nous ne les regardons pas maintenant, ceci (montre le tableau) est pour ceux qui sont des programmeurs intermédiaires ou pas du tout.

Au premier semestre, les bases de Python sont enseignées, histoire que les gens apprennent à programmer et que personne ne soit trop offensé. Python est rarement enseigné dans les écoles ; la plupart des gens ont des connaissances en Pascal ou en C++. Surtout même Pascal, s'il s'agit d'une école de masse. Eh bien, pour que personne ne soit offensé, tout le monde apprend une nouvelle langue (comme s'ils étaient dans des conditions égales). Et C++ tout simplement parce qu’à partir de C++, vous pouvez aller n’importe où.

Vient ensuite le cours Algorithmes et un projet de cours distinct. Algorithmes classiques avec implémentation. Ce n’est pas que nous ayons pris quelque chose en théorie et calculé sa complexité. Lors du cours, nous l'avons suivi, calculé la complexité, lors du séminaire, nous l'avons suivi et implémenté l'algorithme. Un projet est l'endroit où les étudiants réalisent quelque chose de complet. Par exemple, l'un des projets était : compter... Disons que vous avez beaucoup d'appartements à Moscou et que vous comprenez : « Oh, j'ai beaucoup de choses en trop, je vais en louer. Et ils fixent un certain prix, et pour une raison quelconque, personne ne veut vous louer un appartement - c'est probablement trop cher. Ou ils ont fixé un prix, ils vous l'ont immédiatement pris et vous pensez : « Oh, je l'ai probablement vendu à bas prix » - et vous êtes également contrarié. C'est-à-dire qu'il fallait calculer combien coûte la location d'un appartement ? Vous entrez les données - cela crée une estimation pour vous. Un tel site, qui consistait en plusieurs choses : prendre des phrases, les analyser, appliquer une sorte d'algorithme d'apprentissage automatique (probablement) simple et créer une belle interface Web dans laquelle vous pouvez sélectionner quelque chose, saisir quelque chose, quelques mètres, un certain nombre de pièces , nombre de saunas, nombre de jacuzzi dans votre appartement et estimez grossièrement le coût. C'est-à-dire une sorte de chose finie et pas très compliquée. Ici, cela signifie (le professeur montre le cours sur les algorithmes) un tel noyau C++, avec des entrées-sorties de console. Eh bien, ici (le conférencier montre l'inscription « projet ») quelque chose sous la direction d'un mentor, peut-être avec des bases de données, peut-être avec une analyse de texte et autre chose.
Ensuite, il y a le troisième semestre - il s'agit d'un cours intitulé « Systèmes informatiques ». Il y a pas mal de langage assembleur à comprendre (très peu) et puis quelque chose de similaire au C pur et à l'interaction avec les systèmes d'exploitation, la programmation système en substance. Et le projet du séminaire porte aussi sur le thème de toutes sortes d'interactions réseau, d'assez bas niveau : développer une sorte d'utilitaire, par exemple rsync (la synchronisation, vous savez peut-être. En C pur, plus ou moins, écrivez un analogue de rsync, que vous aurez sur le réseau pour synchroniser les dossiers avec tous les accès aux fichiers, etc.).

Et enfin, le quatrième. Je ne sais même pas comment l’appeler, c’est une telle vinaigrette de technologies nécessaires au vrai développement, par exemple le développement web. C'est-à-dire qu'il s'agit d'une application pratique des bases de données, encore une fois quelque chose de similaire à ce qui a été fait dans le projet (le professeur montre le projet de 2ème année) mais plus approfondi. Autrement dit, ce sont des choses plus ou moins spécifiques, une programmation pratique. Parallèlement à cela, il y a toutes les théories, et ici ils font aussi de la science.

Et après deux cours, les gens partent faire ce qui les intéresse, car cela couvre assez largement les bases de la programmation et à ce moment-là, les gens comprennent déjà qu'ils ne veulent en aucun cas travailler avec des systèmes informatiques (ils ne l'ont pas fait). comme la programmation système, par exemple), mais ils veulent travailler sur des algorithmes théoriques, calculer des complexités, proposer de nouvelles choses, distribuées ou autre. Ou au contraire, ils pensent qu’ils n’ont pas grand-chose ici ( le professeur pointe la ligne du premier cours avec Python et C++) est parti, puis ( le conférencier pointe vers la troisième ligne de cours, avec la programmation système) - Je n'aime pas compter les octets et définir toutes sortes de restrictions sur la lecture et l'écriture, créer des flux, des threads et autre chose. Et conformément à cela, les gens choisissent une direction et étudient. C'est, en principe, pour que vous ne développiez pas le « syndrome du caneton » - vous avez été le premier à voir votre Pascal et vous dites maintenant « Pascal, c'est le pouvoir » ; ou plus avancé - vous avez vu le C++ et avez commencé à dire à tout le monde que le C++ est fort, mais que tout le reste n'est pas très bon.

Il faut maintenant voir cela plus largement (le professeur montre la liste des cours au tableau) - c'est une des méthodes qui a été choisie, notamment à HSE (elle est apparue récemment, donc elle est assez moderne). Il existe d'autres moyens de faire connaissance. Dans d’autres bonnes universités, l’ordre est un peu différent et d’autres accents sont mis. Mais ils essaient aussi de faire découvrir aux gens tout ce qu’ils ont.

Comment chercher un emploi en tant que programmeur

Tu es ( le professeur montre la liste des cours) a tout fait, étudié à l'université, fait autre chose pendant deux ans de manière plus productive et il faut aller travailler. Comment choisir quelque chose pour le travail ? Premièrement, vous vous êtes familiarisé avec tout, vous êtes allé plus loin quelque part et vous savez déjà ce que vous aimez. Vous devez choisir ce que vous aimez, naturellement. Parce que si vous aimez, vous faites des efforts, vous aurez de la motivation et en général tout ira bien. Parce qu’il ne s’agit pas seulement d’argent, il s’agit de le rendre intéressant et agréable pour vous. Eh bien, vous voulez entrer dans une entreprise sympa et trouver un emploi. Quel genre de personne aimerais-je voir personnellement ? Disons qu'une centaine d'étudiants viennent me voir - dois-je en embaucher deux ou un. Pourquoi viennent-ils, je ne comprends pas du tout, qui ils sont, ce qu’ils sont, comment ils sont ? DANS le meilleur cas de scenario ils me montreront le diplôme qu'ils ont reçu à l'université, et je dirai : « Wow ! C'est un diplôme sympa, mais celui-ci n'est pas si cool ! Et je peux me tromper, d'ailleurs. Peut-être que la personne avait beaucoup de temps libre et qu’elle avait beaucoup mieux appris.

Qu'est-ce qui serait génial ? Tout d’abord, un projet open source que vous avez écrit du début à la fin. De préférence, si je crée une sorte d’infrastructure permettant de lire rapidement les données, ou autre chose, alors, bien sûr, je serais intéressé à ce que quelque chose d’open source soit écrit pour moi. Ils n’ont pas fait de site internet, mais quelque chose sur le sujet. Pourquoi est-ce que ça m'intéresse ? Je peux regarder votre code, je peux voir à quelle fréquence vous vous êtes engagé, je peux voir comment vous avez réagi aux bugs des utilisateurs, aux bugs des développeurs qui l'utilisent - tout est enregistré, je regarde tout et je pense : « Wow, ce bug n'a pas été résolu. "Je n'y suis plus depuis deux ans maintenant." Fermé, ici vous avez répondu impoliment à l'utilisateur, voici autre chose - je ne l'accepterai pas. Autrement dit, c'est votre projet personnel.

Ensuite, quoi d'autre serait cool ? J'aimerais voir comment vous avez fait le travail d'équipe. C'est-à-dire que vous venez me voir pour un entretien et me dites : « Les gars de l'université et moi avons fait une bonne candidature. Je faisais une base de données là-bas, ils faisaient une sorte de application mobile, et nous avions aussi un gars qui travaillait là-bas, une fille en tant que designer et un garçon au support technique. Nous étions cinq et nous avons réalisé un projet sympa. Bon, je vois que c'est bien ton projet, je dis : "C'est quoi le tien ?" Je regarde à nouveau le code et je comprends que vous savez travailler en équipe avec des gens.

Un programmeur n’est pas quelqu’un qui s’assoit seul (indépendant) dans un garage, quelque part avec les lumières éteintes, qui ne parle à personne, se laisse pousser la barbe et écrit. Il y a encore une certaine interaction avec les gens. Avec un patron par exemple qui peut parfois vous injurier (les patrons, ils sont comme ça, ne sont pas toujours gentils). Et je vois que vous savez travailler avec les gens et cela me rend heureux si vous avez une sorte de bonne équipe. Même si ce n’est pas bon, c’est mieux que de ne pas en avoir.

Qu’est-ce que j’aimerais personnellement d’autre ? Si vous avez fait vos preuves dans de grands projets. Par exemple, vous avez commis quelque chose dans le noyau Linux, si vous êtes dans la programmation système, et avez corrigé un bug. Autrement dit, ils ont montré que vous savez lire le code de quelqu’un d’autre et comment y apporter des modifications. Je regarde : « Oh, vraiment, tu as compris quelque chose de compliqué et tu as corrigé quelques bugs ! Et je commence à en être très heureux. Parce que j'ai... eh bien, je ne sais pas... mon programmeur a démissionné parce que ses concurrents lui proposaient un salaire plus élevé, et j'ai besoin de toute urgence de quelqu'un pour le remplacer - avec vous. Je vois que vous n'avez écrit qu'à partir de zéro, mais vous ne savez pas comment lire et modifier le code de quelqu'un d'autre, et je suis contrarié.

Et enfin, selon le poste spécifique, il y a diverses autres choses. Si vous obtenez un emploi d'analyste, j'aimerais que vous résolviez des problèmes d'analyse de données sur Kaggle. Si vous postulez pour des tâches algorithmiques, j'aimerais que vous fassiez quelques algorithmes dans la programmation sportive. Et enfin, si vous avez réfléchi au métier, lu comment se déroulent les entretiens, vous avez vu que certaines personnes expriment un grand mécontentement : « Je suis venu et ils m'ont demandé quel était mon passe-temps. Je m’assois comme un hibou et je ne réponds pas parce que je n’ai pas de passe-temps », et ils pensent que ce sont les RH qui font ça. En fait, ils essaient de comprendre à quel point vous êtes amical et adéquat. Si vous êtes hostile et inadéquat, peu importe à quel point vous êtes un génie et un bourreau de travail, un spécialiste coriace doté de grandes connaissances, il sera difficile pour l'équipe de travailler avec vous et vous ne pourrez pas mener à bien le projet seul. De plus, même si vous le retirez, vous pouvez imaginer quel est le fardeau pour l'entreprise. Et si tu venais demain et disais : « Augmente mon salaire 10 fois, sinon je te quitte. » Il est clair que les entreprises ne souhaitent pas se retrouver dans une telle situation. Par conséquent, cultiver l'adéquation et la bonne volonté en soi est aussi important (au minimum) que de développer certaines compétences professionnelles.

Pour résumer, que dire ? Quelles langues sont bonnes et lesquelles sont mauvaises ? Eh bien, au sein d'un certain groupe de langages, par exemple entre Ruby, Python et PHP, que choisir ? Bien sûr, la bonne réponse est Python, mais en fait la différence entre eux réside dans le nombre de bugs autorisés, dans le nombre d'autre chose - 5 %, enfin, peut-être 10 %. Autrement dit, si vous avez déjà un projet prêt à l'emploi écrit en PHP, personne sensé ne dirait : « Réécrivons tout en Python ». Ils diront : « Embauchons plus de développeurs PHP et continuons à écrire en PHP. » Super, c'est un bon choix. Il est clair que si vous décidez soudainement d’écrire un projet, il serait peut-être judicieux de choisir Python maintenant. Mais cela dépend aussi. Peut-être avez-vous beaucoup de développeurs PHP bon marché sur le marché, et ceux en Python sont chers, et vous pensez : « Oui, la technologie est plus cool, mais j'économiserai de l'argent sur les développeurs prêts à l'emploi. Et tout va bien, vous venez déjà y travailler.
Comment choisir entre Java et C++ ? Oui, il se passe à peu près la même chose. Je pense qu'au moment où vous déciderez dans quelle langue démarrer un nouveau grand projet, vous aurez acquis des connaissances dans votre domaine professionnel et serez en mesure de faire le bon choix. Maintenant, vous n'êtes pas encore obligé de faire ce choix, je vous conseille donc de faire ce que vous aimez.

Les bases, comme je l'ai déjà dit, les bases mêmes de la programmation (qu'est-ce qu'une fonction, que sont les if'ics, les for'ics, les tableaux, autre chose) peuvent être apprises dans plus ou moins n'importe quel langage. Par exemple, en C++, car il y a beaucoup de similitudes, et il y a le moins de détails (à ce niveau), et il y a le moins de lettres supplémentaires à écrire. Eh bien, lorsque vous apprendrez des choses architecturales complexes, vous apprendrez et vous n’aurez pas à trop vous en soucier. Autrement dit, l'essentiel est d'essayer, de chercher ce que vous aimez, et quand vous réalisez qu'il est déjà 4 heures du matin et que vous êtes assis et écrivez pour vous amuser, parce que vous aimez ça - probablement à ce moment-là il est clair que vous avez trouvé le vôtre.

Les utilisateurs de Recoursia se demandent souvent quel langage de programmation vaut la peine d'être appris. Nous avons préparé un petit guide pour ceux qui décident de leur premier langage de programmation. Nous tenons à souligner qu'il n'est pas censé être exhaustif - il s'agit simplement d'un aperçu très rapide de ce que font les développeurs aujourd'hui et du langage de programmation qui peut ou non être le premier.

L'un des langages de programmation Web assez populaires, qui, cependant, sur le marché du travail biélorusse n'est pas toujours en mesure de fournir à son locuteur natif les meilleurs salaires lieu de travail. Les cours Ruby ne valent guère la peine d'étudier pour maîtriser le premier langage de programmation, car avec un degré de probabilité élevé, la recherche d'un employeur sera retardée, car les postes vacants pour les juniors en Ruby apparaissent assez rarement.

Il y a seulement cinq à sept ans, Delphi était le premier langage de programmation standard - bien sûr, parce que le langage Pascal, qui est le prédécesseur de Delphi, a été inventé pour enseigner la programmation aux écoliers et aux étudiants. Mais pour vrai vie Delphi est déjà un très mauvais choix, car la programmation y est nettement inférieure à la moyenne et vous ne trouverez pas de nouveaux grands projets dans ce langage. Je recommande donc

Titre du rapport

Langages de programmation modernes et leur utilisation

Auteur du projet

Structure du projet

● Schéma de classification des langages de programmation

● Classification des langages de programmation

● Présentation des langages de programmation

● Ressources utiles

Schéma de classification des langages de programmation

Classification des langages de programmation

Programmation procédurale- est le reflet de l'architecture informatique de von Neumann. Un programme écrit dans un langage procédural est une séquence de commandes qui définissent un algorithme permettant de résoudre un problème. idée principale programmation procédurale- utilisation de la mémoire pour le stockage des données. La commande principale est l'affectation, avec laquelle la mémoire de l'ordinateur est déterminée et modifiée. Le programme transforme le contenu de la mémoire, en la faisant passer de l'état initial à celui résultant.

Il existe les langages de programmation procédurale suivants :

 Le langage Fortran a été créé au début des années 50 du 20ème siècle pour programmer des problèmes scientifiques et techniques ;

 COBOL – créé à la fin des années 60 du 20e siècle pour résoudre les problèmes de traitement de grandes quantités de données stockées sur divers supports de stockage de données ;

 ALGOL (1960) est un langage de programmation avancé polyvalent. Il a introduit pour la première fois les concepts de « structure de programme en bloc » et d'« allocation dynamique de mémoire » ;

 Au milieu des années 60 du 20e siècle, un langage de programmation spécialisé pour les débutants a été créé - BASIC. Il se caractérise par la facilité d'apprentissage et la présence d'outils universels pour résoudre des problèmes scientifiques, techniques et économiques, ainsi que des problèmes, par exemple liés aux jeux.

Tous les langages répertoriés ci-dessus étaient axés sur différentes classes de tâches, mais ils étaient, à un degré ou à un autre, liés à une architecture informatique spécifique.

 En 1963-1966, le langage universel polyvalent PL-1 est créé. Ce langage est bien adapté à la recherche et à la planification de processus informatiques, à la modélisation, à la résolution de problèmes logiques et au développement de systèmes logiciels.

 Le langage Pascal (PASCAL) (1968-1971) est le langage de programmation procédurale le plus populaire pour PC, qui est encore utilisé avec succès aujourd'hui. Le langage Pascal est basé sur l'approche de tâche commune aux privés (plus simples et de moindre volume). Les principes de base de Pascal comprennent : a) une programmation structurée, basée sur l'utilisation de sous-programmes et de structures de données indépendantes ; b) Programmation descendante, lorsqu'un problème est divisé en problèmes simples résolus indépendamment. Ensuite, la solution au problème initial se construit entièrement de haut en bas.

 Les langages de programmation procédurale incluent le langage ADA (1979), qui porte le nom de la première programmeuse Ada Lovelace, la fille de Byron. Il se distingue par sa conception modulaire.

 Le langage SI (début des années 70) fait également partie des langages de programmation procédurale. Sa version initiale était prévue comme langage d'implémentation Systèmes Unix au lieu du langage Assembly. L'une des particularités du langage SI est que les différences entre expressions et opérateurs sont lissées, ce qui le rapproche des langages de programmation fonctionnels. De plus, le langage SI n'a pas la notion de procédure, et l'utilisation de sous-programmes repose sur la notion de fonction, qui peut combiner les capacités d'une procédure. D'une part, sur la base d'un ensemble de constructions de contrôle et de structures de données, il peut être classé comme un langage de haut niveau et, d'autre part, il dispose d'un ensemble d'outils permettant d'accéder directement aux unités fonctionnelles d'un ordinateur, qui signifie qu’il peut être utilisé comme langage opérationnel.

Programmation orientée objet (POO) est une méthode de programmation dans laquelle les principaux éléments des programmes sont des objets. Dans les langages de programmation, le concept d'objet est implémenté comme un ensemble de propriétés (structures de données caractéristiques d'un objet donné), de méthodes pour les traiter (sous-programmes pour modifier leurs propriétés) et d'événements, auxquels cet objet peuvent réagir et qui conduisent, en règle générale, à une modification des propriétés de l'objet. La combinaison des données et de leurs procédures de traitement inhérentes dans un seul objet est appelée encapsulation et constitue l'un des principes les plus importants de la POO.

Un autre concept fondamental est la classe. Une classe est un modèle sur la base duquel un objet logiciel spécifique peut être créé ; elle décrit les propriétés et les méthodes qui déterminent le comportement des objets de cette classe. Chaque objet concret ayant la structure de cette classe est appelé une instance de la classe.

Les prochains principes les plus importants de la POO sont l’héritage et le polymorphisme. L'héritage implique la création de nouvelles classes basées sur celles existantes et permet à une classe descendante d'avoir (hériter) de toutes les propriétés de la classe parent.

Le polymorphisme signifie que les objets nés disposent d'informations sur les méthodes qu'ils doivent utiliser en fonction de leur position dans la chaîne.

Un autre principe important de la POO est la modularité - les objets contiennent une définition complète de leurs caractéristiques, aucune définition de méthodes et de propriétés ne doit être située en dehors d'elle, cela permet de copier et d'implémenter librement un objet dans d'autres.

Les langages de programmation les plus modernes sont C++ et Java. Depuis le milieu des années 90, de nombreux langages orientés objet ont été implémentés en tant que systèmes de conception visuelle, dans lesquels la partie interface d'un produit logiciel est créée de manière interactive, sans pratiquement aucune écriture d'instructions de programme. Les systèmes de conception visuelle orientés objet incluent Visual Basic, Delphi, C++ Builder, Visual C++. Langage VBA (Visual Basic pour Application) - langage Applications Microsoft Bureautique (Excel, Word, Power Point, etc.). VBA suit la syntaxe de base du langage et les règles de programmation des langages Basic - dialectes, permet de créer des macros pour automatiser l'exécution de certaines opérations et une interface utilisateur graphique, l'intégration entre divers produits logiciels.

Langages de programmation déclaratifs

Ceux-ci incluent des langages de programmation fonctionnels et logiques. La programmation fonctionnelle est une manière d'écrire des programmes dans laquelle la seule action est d'appeler une fonction. La programmation fonctionnelle n'utilise pas la mémoire comme emplacement pour stocker des données et n'utilise donc pas de variables intermédiaires, d'instructions d'affectation ou de boucles. Le concept clé dans les langages fonctionnels est l'expression. Un programme écrit dans un langage fonctionnel est une séquence de descriptions de fonctions et d'expressions. L'expression est calculée en réduisant le complexe au simple. Toutes les expressions sont écrites sous forme de listes. Le premier langage fut le langage Lisp (LISP, LIST Processing) créé en 1959. Ce langage vous permet de traiter de grandes quantités d'informations textuelles. La programmation logique est une programmation en termes de logique. En 1973, le langage d'intelligence artificielle Prolog (PROLOG) (Programming in Logic) est créé. Un programme Prolog est construit à partir d'une séquence de faits et de règles, puis une déclaration est formulée, que Prolog tente de prouver à l'aide des règles. Le langage lui-même recherche une solution à l’aide des méthodes de recherche et de correspondance qui y sont intégrées. Les programmes logiques ne se caractérisent pas par des performances élevées, car le processus de leur exécution se résume à la construction de chaînes de raisonnement avant et arrière à l'aide de diverses méthodes de recherche.

Présentation des langages de programmation

Assembleur

Les langages de programmation informatique sont divisés en 2 groupes principaux :

1) langages de bas niveau ;

2) langues de haut niveau.

Les langages de bas niveau incluent les langages Assembly. Ils tirent leur nom du programme système Assembler, qui convertit les programmes sources écrits dans ces langages directement en codes d'instructions machine. Les pièces ici sont des opérateurs et le résultat de l'assemblage est une séquence de commandes machine. Le langage d'assemblage combine les avantages d'un langage de commande machine et certaines fonctionnalités des langages de haut niveau. L'assembleur offre la possibilité d'utiliser des noms symboliques dans le programme source et évite au programmeur le travail fastidieux (inévitable lors de la programmation dans un langage d'instruction machine) consistant à allouer de la mémoire informatique aux instructions, variables et constantes.

L'assembleur permet également une utilisation flexible et complète des capacités techniques de l'ordinateur, tout comme le langage de commande de la machine. Traducteur programmes sources Le langage assembleur est plus simple que le traducteur requis pour un langage de programmation de haut niveau. En assembleur, vous pouvez écrire un programme aussi efficace en termes de taille et de temps d'exécution qu'un programme en langage d'instruction machine. Cet avantage est absent dans les langages de haut niveau. Ce langage est souvent utilisé pour programmer des systèmes temps réel, processus technologiques et équipements, assurant le fonctionnement des systèmes d’information et de mesure. De tels systèmes ont généralement des exigences élevées quant à la quantité de mémoire informatique qu’ils occupent. Souvent, le langage Assembleur est complété par des outils de génération de macro-instructions, dont chacune équivaut à tout un groupe d'instructions machine. Ce langage est appelé langage de macroassemblage. L'utilisation de blocs de construction Poppy rapproche le langage Assembly d'un langage de haut niveau. Le langage assembleur est un langage dépendant de la machine, c'est-à-dire qu'il reflète les caractéristiques architecturales d'un type particulier d'ordinateur.

Pascal

Le langage de programmation Pascal a été développé par Nicolas Wirth, professeur au Département d'informatique de l'École polytechnique fédérale de Suisse, en 1968 comme alternative aux langages de programmation existants et de plus en plus complexes tels que PL/1, Algol et Fortran. . Le développement intensif de Pascal a conduit à l'apparition de son standard sous la forme d'un message révisé en 1973, et le nombre de traducteurs de cette langue en 1979 dépassait les 80. Au début des années 80, Pascal renforce encore sa position avec l'avènement du Traducteurs MS-Pascal et Turbo -Pascal pour PC. Depuis lors, Pascal est devenu l’un des langages de programmation les plus importants et les plus utilisés. Il est significatif que la langue dépasse depuis longtemps les intérêts académiques et professionnels étroits et qu’elle soit utilisée dans la plupart des universités des pays hautement développés, et non seulement comme outil de travail pour les utilisateurs. La caractéristique la plus importante de Pascal est l'incarnation de l'idée de programmation structurée. Une autre caractéristique importante est le concept de structure des données comme l'un des concepts fondamentaux.

Les principales raisons de la popularité de Pascal sont les suivantes :

La simplicité du langage vous permet de le maîtriser rapidement et de créer des programmes algorithmiquement complexes

Les moyens développés pour représenter les structures de données garantissent une facilité de travail avec des informations numériques, symboliques et binaires.

La présence de techniques spéciales pour créer des traducteurs de Pascal a simplifié leur développement et a contribué à la large diffusion de la langue

Les propriétés d'optimisation des traducteurs Pascal vous permettent de créer des programmes efficaces. C'est l'une des raisons pour lesquelles Pascal a été utilisé comme langage de programmation système.

Le langage Pascal implémente les idées de programmation structurée, ce qui rend le programme visuel et donne bonnes opportunités pour le développement et le débogage

Denis Ritchie, employé des Bell Labs, a créé le langage C en 1972 alors qu'il travaillait avec Ken Thompson. outil Cependant, pour implémenter le système d'exploitation Unix, la popularité de ce langage a rapidement dépassé la portée d'un système d'exploitation spécifique et de tâches de programmation système spécifiques. Actuellement, tout outil et système d’exploitation ne peut être considéré comme complet s’il n’inclut pas un compilateur en langage C. Ritchie n'a pas simplement inventé C de sa tête : le prototype était le langage B développé par Thompson. Le langage de programmation C a été conçu comme un outil destiné aux programmeurs en exercice. Conformément à cela, l'objectif principal de son auteur était de créer un langage pratique et utile à tous égards.

C est un outil de programmeur système et vous permet d'approfondir les mécanismes les plus subtils du traitement de l'information sur un ordinateur. Bien que le langage exige une grande discipline de la part du programmeur, il n’est pas strict dans ses exigences formelles et permet des formulations brèves.

C est un langage moderne. Il comprend les structures de contrôle recommandées par la théorie et la pratique de la programmation. Sa structure encourage le programmeur à utiliser la conception descendante, la programmation structurée et le développement de modules incrémentiels dans son travail.

C est un langage puissant et flexible. La plupart des systèmes d'exploitation Unix, des compilateurs et des interprètes des langages Fortran, Pascal, Lisp et BASIC sont écrits avec son aide.

C est un langage pratique. Il est suffisamment structuré pour prendre en charge un bon style de programmation sans être trop restrictif. Dans un sens, le langage C est le plus universel, car... Outre un ensemble d'outils inhérents aux langages de programmation modernes de haut niveau (structure, modularité, certains types de données), il comprend des outils de programmation presque au niveau assembleur. Un large éventail d'opérateurs et d'outils exigent que le programmeur soit prudent, précis et bonne connaissance la langue avec tous ses avantages et inconvénients.

Le langage C++ est apparu au début des années 80. Créé par Bjarne Stroustrup dans le but initial de se libérer, lui et ses amis, de la programmation en assembleur, en C ou dans divers autres langages de haut niveau.

Selon l'auteur du langage, la différence entre l'idéologie du C et du C++ est à peu près la suivante : un programme C reflète la « façon de penser » du processeur, et C++ reflète la façon de penser du programmeur. Répondant aux exigences de la programmation moderne, le C++ met l'accent sur le développement de nouveaux types de données qui correspondent le mieux aux concepts du domaine de connaissances choisi et aux tâches d'application. La classe est un concept clé en C++. La description de la classe contient une description des données nécessaires pour représenter des objets de ce type et un ensemble d'opérations pour travailler avec des objets similaires.

Contrairement aux structures traditionnelles en C et Pascal, les membres d'une classe ne sont pas seulement des données, mais aussi des fonctions. Les fonctions membres d'une classe ont un accès privilégié aux données contenues dans les objets de cette classe et fournissent une interface entre ces objets et le reste du programme. Lors de travaux ultérieurs, il n'est pas du tout nécessaire de se souvenir de la structure interne de la classe et du mécanisme de fonctionnement des fonctions intégrées. En ce sens, une classe est comme un appareil électrique : peu de gens connaissent sa structure, mais tout le monde sait comment l’utiliser.

Le langage C++ est un langage de programmation objet, une technique émergente de conception et de mise en œuvre de programmes susceptible de remplacer la programmation procédurale traditionnelle au cours de la décennie en cours. L'objectif principal du créateur du langage, le Dr Björn Stroustrup, était de doter le langage C++ de constructions qui augmenteraient la productivité des programmeurs et faciliteraient le processus de maîtrise de gros produits logiciels.

L'abstraction, l'implémentation, l'héritage et le polymorphisme sont les propriétés nécessaires du langage C++, grâce auxquelles il est non seulement universel, comme le langage C, mais aussi un langage objet. Fortran Fortran est un langage largement utilisé, notamment parmi les utilisateurs qui font de la modélisation numérique. Cela est dû à plusieurs raisons :

L'existence d'énormes fonds de programmes d'application Fortran accumulés au fil des années, ainsi que la présence d'un grand nombre de programmeurs qui utilisent efficacement ce langage ;

La présence de traducteurs Fortran efficaces sur tous les types d'ordinateurs et les versions pour différentes machines sont assez standardisées et le transfert de programmes d'une machine à l'autre n'est généralement pas très difficile ;

L'objectif initial de Fortran était les applications physiques, mathématiques et techniques ; en particulier, cela s'est manifesté par le fait qu'il est resté pendant longtemps le seul langage doté d'un type de variable complexe intégré et d'un large ensemble de fonctions intégrées pour travailler avec de telles variables.

Au cours de la période écoulée, une nouvelle méthodologie et philosophie de programmation ont été formées. Depuis le début des années 1970, Fortran fait l’objet de critiques méritées. En 1977, une nouvelle norme linguistique, Fortran 77, a été adoptée. Il a fallu beaucoup de temps pour créer un nouveau standard, mais nous pouvons désormais considérer que son développement est terminé et que le nouveau standard Fortran-90 a commencé à entrer dans la pratique des utilisateurs de Fortran. Uniquement sur des machines comme IBM PC, il existe plusieurs traducteurs, par exemple Watfor, Lap-Fortran, etc. Mais les plus largement utilisées sur des machines de ce type sont différentes versions du traducteur Fortran-77. Sorti en 1990, le traducteur MS-Fortran 5.0 est presque entièrement conforme à la norme Fortran-90. La plupart des grands programmes d'applications scientifiques et techniques sont écrits en Fortran parce qu'il est portable et stable, mais aussi en raison de la présence de logiciels mathématiques et techniques intégrés. fonctions trigonométriques. Une partie supplémentaire et intégrante de tout programme d'application Fortran est une bibliothèque graphique étendue qui permet l'utilisation de diverses données graphiques et images.

Le langage a été créé principalement entre 1975 et 1980 à la suite d'un projet grandiose entrepris par le ministère américain de la Défense dans le but de développer un langage de programmation unifié pour les systèmes dits embarqués (c'est-à-dire les systèmes de contrôle pour complexes automatisés fonctionnant en temps réel). . Il s'agissait tout d'abord de systèmes de contrôle embarqués pour des objets militaires (navires, avions, chars, missiles, obus, etc.). Par conséquent, les décisions prises par les auteurs d’Ada ne doivent pas être considérées comme universelles. Ils doivent être perçus dans le contexte des caractéristiques du domaine choisi. La langue Ada est née d'un concours international de projets linguistiques organisé en 1978-1979. Les participants devaient répondre à des exigences assez strictes, élaborées en détail sous les auspices du département américain de la Défense. Fait intéressant, toutes les langues qui ont atteint les phases finales de ce concours étaient basées sur le Pascal. À cet égard, Ada peut être provisoirement qualifiée de Pascal, développée en tenant compte des cinq exigences fondamentales énumérées ci-dessus. Dans le même temps, les auteurs ont principalement suivi la voie consistant à élargir Pascal avec de nouveaux éléments. Le résultat était un langage beaucoup plus complexe.

COBOL

COBOL est un langage relativement ancien développé principalement pour la recherche économique. Le langage vous permet de travailler efficacement avec une grande quantité de données, il est riche de diverses capacités de recherche, de tri et de distribution. Les programmes Cobol, basés sur l'utilisation généralisée de la langue anglaise, sont réputés compréhensibles même pour ceux qui ne parlent pas Cobol, puisque les textes dans ce langage de programmation ne nécessitent aucun commentaire particulier. De tels programmes sont généralement appelés auto-documentés. Les autres avantages de Cobol incluent généralement sa structure. Des compilateurs assez puissants de ce langage sont développés pour les ordinateurs personnels. Certains d'entre eux sont si efficaces qu'un programme débogué sur un ordinateur personnel peut être facilement transféré vers des ordinateurs centraux.

En énumérant les inconvénients, on ne peut s'empêcher de rappeler que seuls des calculs algébriques simples peuvent être programmés en Cobol. Ce langage n'est pas adapté aux calculs techniques. Une autre raison qui freine dans une certaine mesure le développement de la langue est la présence aux États-Unis d'un comité industriel spécialement créé qui élabore des normes dont le respect est contrôlé par une commission gouvernementale. Comme cela arrive toujours dans de tels cas, les entreprises impliquées dans le développement de logiciels ne sont pas pressées d'adapter leurs pièces aux exigences strictes de la commission, il n'y a pas de concurrence entre les versions et, à la fin, la diffusion du langage perd

PL/1 a été développé en 1964-1965 par IBM. PL/1 fait partie des langages universels, c'est à dire qu'il permet de résoudre des problèmes dans différents domaines : calculs numériques, traitement de texte, problèmes économiques, etc. En termes de capacités, il couvre des langages tels que Fortran, Algol-60 (créé pour les calculs numériques), Cobol (pour les problèmes économiques), bien que pour un certain nombre de raisons, PL/1 n'ait pas pu remplacer ces langues.

PL/1 contient toutes les constructions de base caractéristiques des langages dits de haut niveau, ainsi qu'un certain nombre d'outils spécifiques pratiques pour la programmation pratique. Le langage ressemble à un kit de construction avec un grand nombre de détails - l'utilisateur n'a besoin de maîtriser que les parties du langage qui lui sont pratiquement nécessaires. Ses opérateurs sont assez concis, ce qui permet souvent d'écrire le programme de manière plus compacte que dans d'autres langages. Un programmeur connaissant PL/1 peut facilement maîtriser n’importe quel autre langage de la même classe ou d’une classe similaire.

Dans le même temps, le PL/1 présente également un certain nombre d’inconvénients qui rendent difficile l’apprentissage et l’utilisation de la langue. Les principaux sont les suivants. Premièrement, il existe de nombreux outils qui se dupliquent, ils sont difficiles à retenir, on ne sait pas quoi utiliser quand, en plus, cela réduit à la fois la vitesse de traduction et la vitesse d'exécution du programme. Deuxièmement, les programmes ne sont pas totalement indépendants de la machine.

Module

On peut considérer que l'histoire du langage Modula commence en 1980, lorsque Niklaus Wirth, l'un des éminents théoriciens de l'information, connu de la plupart des informaticiens principalement comme le créateur du langage Pascal, a publié une description d'un nouveau langage de programmation qu'il a appelé Modula. . Contrairement à Pascal, qui était destiné à être un langage d'enseignement de la programmation, Modula était dès le début un langage destiné aux programmeurs système professionnels, poursuivant les meilleures traditions de son prédécesseur et les enrichissant de nouvelles idées qui répondent aux exigences des langages de programmation tels que la structure, la modularité et la capacité d'expansion. Comme beaucoup d'autres langages de programmation, Modula a subi une évolution, au cours de laquelle son nom d'origine a été refait en Modula-2. Parallèlement au développement du langage Modula, de nouveaux compilateurs ont été créés pour celui-ci, mais aucun d'entre eux ne pouvait rivaliser avec les meilleures implémentations des langages Pascal et C, par exemple développés par Borland. Durant cette période de transition pour le langage Modula, les meilleures implémentations ont été considérées comme celles réalisées par Logitech, qui en termes de caractéristiques étaient inférieurs à Turbo Pascal et Turbo C. Ce n'est qu'en 1988, après l'apparition du système Top Speed ​​​​sur le marché américain, que Modula-2 a pris la place qui lui revient parmi les langages procéduraux destinés à la programmation système. Plusieurs facteurs ont contribué à la popularité croissante du système Top Speed : un environnement d'exploitation pratique et, en outre, facilement modifiable à la demande des utilisateurs, un compilateur rapide et un éditeur de liens sélectif. Mais le plus important s'est avéré être que programmes créés Ils étaient très rapides et ne prenaient pas beaucoup d’espace mémoire.

BASIQUE

BASIC (Basic - Code d'instruction symbolique polyvalent pour débutants - "code d'instruction symbolique universel pour les débutants"). Un descendant direct de Fortran et toujours le langage de programmation le plus populaire pour les ordinateurs personnels. BASIC est apparu en 1963 (il serait difficile d'en nommer l'auteur, mais le principal mérite de son apparition appartient sans aucun doute aux Américains John Kemeny et Thomas Kurtz). Comme tous les avantages, la simplicité du BASIC s'est concrétisée, notamment dans versions précédentes difficultés de structuration ; De plus, BASIC ne permettait pas la récursivité - une technique intéressante qui permet d'écrire des programmes efficaces et en même temps courts.

De puissants compilateurs BASIC ont été développés, qui offrent non seulement un vocabulaire riche et des performances élevées, mais également la possibilité d'une programmation structurée. Selon certains programmeurs, les versions les plus intéressantes sont GWBASIC, Turbo-Basic et Quick Basic.

A une époque, l'apparition de Quick Basic marquait la naissance de la deuxième génération de systèmes de programmation en langage BASIC. Il offrait la possibilité de programmer de manière modulaire et procédurale, de créer des bibliothèques, de compiler des programmes prêts à l'emploi, etc., ce qui l'a amené au niveau de langages de programmation classiques tels que C, Pascal, Fortran, etc. De plus, en raison du manque d'un standard officiel du langage BASIC, son implémentation sous la forme de Quick Basic est devenue le standard de facto. Leaders incontestés parmi différentes versions BASIC était Quick Basic 4.5 et PDS 7.1 de Microsoft, apparus à la fin des années 80.

Zézayer

Le langage Lisp a été proposé par J. McCarthy en 1960 et vise à développer des programmes permettant de résoudre des problèmes non numériques. Le nom anglais de ce langage, LISP, est une abréviation de l'expression LISt Processing (list traitement) et met bien en évidence le domaine principal de son application. Le concept de « liste » s'est avéré très vaste. Il est pratique de représenter des expressions algébriques, des graphiques, des éléments de groupes finis, des ensembles, des règles d'inférence et de nombreux autres objets complexes sous forme de listes. Les listes constituent la forme la plus flexible de représentation d’informations dans la mémoire de l’ordinateur. Il n’est donc pas surprenant qu’un langage pratique spécialement conçu pour le traitement des listes ait rapidement gagné en popularité.

Après l'apparition de Lisp, divers auteurs ont proposé un certain nombre d'autres langages algorithmiques axés sur la résolution de problèmes dans le domaine de l'intelligence artificielle, parmi lesquels Planner, Snoball, Refal, Prolog. Cependant, cela n'a pas empêché Lisp de rester le langage le plus populaire pour résoudre de tels problèmes. Au cours de près de quarante ans d'histoire de son existence, un certain nombre de dialectes de cette langue sont apparus : Common LISP, Mac LISP, Inter LISP, Standard LISP, etc. Les différences entre eux ne sont pas fondamentales et se résument principalement à un langage légèrement différent. ensemble de fonctions intégrées et quelques différences dans les programmes de forme de notation. Par conséquent, un programmeur qui a appris à travailler sur l’un d’eux peut facilement en maîtriser un autre. Le grand avantage de Lisp est son orientation fonctionnelle, c'est-à-dire que la programmation s'effectue à l'aide de fonctions. De plus, une fonction est comprise comme une règle qui fait correspondre les éléments d'une certaine classe avec les éléments correspondants d'une autre classe. Le processus de correspondance lui-même n'a aucun effet sur le fonctionnement du programme, seul son résultat est important - la valeur de la fonction. Cela rend relativement facile l’écriture et le débogage de grands systèmes logiciels. La clarté des programmes, une délimitation claire de leurs fonctions et l'absence d'effets secondaires délicats lors de leur exécution sont des exigences obligatoires pour programmer des tâches aussi logiquement complexes que celles de l'intelligence artificielle. La discipline en programmation devient particulièrement importante lorsque non pas une seule personne, mais tout un groupe de programmeurs travaillent sur un programme.

Le langage de programmation Lisp est principalement conçu pour traiter des informations symboliques. Par conséquent, il est naturel que dans le monde du Lisp, les nombres ne jouent pas le rôle principal. Les types de données de base en Lisp sont appelés paires atome et point.

Prologue

Un langage de programmation logique est conçu pour représenter et utiliser les connaissances sur un certain domaine. Les programmes dans ce langage sont constitués d'un certain ensemble de relations, et son exécution se réduit à la dérivation d'une nouvelle relation basée sur celles données. Prolog implémente une approche déclarative, dans laquelle il suffit de décrire un problème à l'aide de règles et d'instructions concernant des objets donnés. Si cette description est suffisamment précise, l'ordinateur peut alors trouver indépendamment la solution requise.

Objet PAL

Object PAL est un langage de programmation puissant. Object PAL est un langage de programmation visuel orienté objet, piloté par événements. Sur niveau d'entrée Avec la fonctionnalité Object PAL, vous pouvez effectuer des opérations sur les données, créer des menus spéciaux et gérer la session de saisie de données. Les événements dans Object PAL génèrent des commandes qui simulent l'effet de l'utilisation interactive de Paradox. Il est possible d'automatiser les tâches fréquemment effectuées, ainsi que d'effectuer des actions sur des tableaux, formulaires et rapports qui n'étaient pas disponibles lors du travail interactif. Object PAL fournit également toutes les fonctionnalités d'un langage de programmation complet dans Environnement Windows. Vous pouvez utiliser Object PAL pour créer des systèmes complets qui implémentent système spécial menu, système d'aide, ainsi que diverses vérifications de données. Dans Object PAL, vous pouvez enregistrer votre travail dans une bibliothèque liée dynamiquement, accessible par plusieurs formulaires. De plus, vous pouvez établir des liens avec d'autres bibliothèques dynamiques contenant des programmes écrits dans des langages tels que C, C++ ou Pascal.

Object PAL peut être utilisé comme outil pour créer des programmes autonomes. Vous pouvez écrire une application Windows complète et l'exécuter sous Paradox.

Object PAL prend en charge un mécanisme d'échange de données dynamique à la fois en tant que client et serveur. De plus, Object PAL prend en charge un mécanisme permettant de travailler avec des documents composés en tant que client. En plus de ce qui précède, il est possible d'inclure du multimédia dans votre application en fournissant à l'application en cours d'exécution des effets sonores et d'animation.

L'implémentation par Borland du langage dBase est un hybride réussi d'orientation objet et méthodes traditionnelles la programmation. Il a permis la création de systèmes utilisant la conception d'objets et l'utilisation de techniques conventionnelles de traitement d'enregistrements. La grande réussite de la société Borland a été de combiner avec beaucoup de succès les techniques de programmation objet et procédurale. La première version pour Windows offrait à l'utilisateur l'outil basé sur les objets le plus puissant du marché des logiciels de bases de données. Il vous permet de créer de nouvelles classes d'objets possédant les propriétés d'héritage, d'encapsulation et de polymorphisme. Il permet également de programmer ces objets à l'aide des commandes dBase traditionnelles, idéales pour gérer des bases de données tabulaires simples. Tout cela donne un avantage indéniable : réaliser sans trop de difficultés la transition vers les techniques de programmation objet, une transition aussi difficile, par exemple, que dans le SGBD Paradox.

Le langage Java est né dans le cadre d'un projet visant à créer des logiciels avancés pour divers appareils ménagers. Le projet a démarré en C++, mais un certain nombre de problèmes sont rapidement apparus, la meilleure façon de les résoudre était de changer l'outil lui-même - le langage de programmation. Il est devenu évident qu'un langage de programmation indépendant de la plate-forme était nécessaire, permettant de créer des programmes qui n'auraient pas besoin d'être compilés séparément pour chaque architecture et pourraient être utilisés sur différents processeurs sous différents systèmes d'exploitation. Le langage Java était nécessaire pour créer des produits interactifs pour Internet. En fait, la plupart des décisions architecturales prises au cours création de Java, a été dicté par la volonté de fournir une syntaxe similaire au C et au C++. Java utilise des conventions presque identiques pour déclarer des variables, transmettre des paramètres, transmettre des opérateurs et pour contrôler le flux d'exécution du code. Tout ajouté à Java bonnes fonctionnalités C++.

Trois éléments clés sont réunis pour former la technologie du langage Java

Java permet une utilisation généralisée de ses applets - des applications réseau actives petites, robustes, dynamiques et indépendantes de la plate-forme, intégrées dans les pages Web. Les applets Java peuvent être personnalisées et distribuées aux consommateurs aussi facilement que n'importe quel document HTML.

Java libère la puissance du développement d'applications orientées objet en combinant une syntaxe simple et familière avec un environnement de développement robuste et facile à utiliser. Cela permet à un large éventail de programmeurs de créer rapidement de nouveaux programmes et de nouvelles applets.

Java fournit au programmeur un riche ensemble de classes d'objets pour résumer clairement de nombreuses fonctions système utilisées dans le fenêtrage, la mise en réseau et les E/S. La principale caractéristique de ces classes est qu’elles fournissent des abstractions indépendantes de la plate-forme pour un large éventail d’interfaces système.

Langages de programmation pour réseaux informatiques

Les langages de programmation pour les réseaux informatiques sont interprétés. Les interprètes pour eux sont distribués gratuitement et les programmes eux-mêmes sont en code source. Ces langages sont appelés langages de script.

Perl est un langage interprété créé par le programmeur Larry Wall pour traiter des textes et des fichiers volumineux et signifie Practical Extraction and Report Language. Avec Perl, par exemple, vous pouvez créer un script qui ouvre un ou plusieurs fichiers, traite les informations et écrit les résultats.

Perl est un langage adapté au traitement arbitraire fichiers texte, en extrayant information nécessaire et émettre des messages. Perl est également utile pour écrire divers programmes système. Ce langage est simple à utiliser, efficace, mais il est difficile de dire qu’il soit élégant et compact. La syntaxe des expressions Perl est proche de la syntaxe du C. La récursivité peut avoir une profondeur arbitraire. Bien que Perl soit conçu pour analyser des fichiers texte, il peut également traiter des données binaires. Perl vous permet d'utiliser des expressions régulières, de créer des objets, d'insérer des morceaux de code Perl dans un programme C ou C++, et vous permet également d'accéder à des bases de données, notamment Oracle.

Avec invention Mondial Web, Perl s'est avéré être un excellent outil pour interagir avec les serveurs Web via la Common Gateway Interface (CGI). Les commandes Perl peuvent facilement récupérer des données depuis Formulaires HTML ou une autre source et effectuez une action avec eux.

Langue PHP(1995-1997) dispose d'outils d'accès aux bases de données et est utilisé par les créateurs de sites dynamiques du monde entier.

Langue Tcl/Tk(fin des années 80) se compose de commandes puissantes conçues pour fonctionner avec des objets abstraits non typés et vous permet de créer des programmes avec une interface graphique.

Langue VRML(1994) a été créé pour organiser des interfaces virtuelles tridimensionnelles sur Internet.

Langue XML. Depuis 1996, des travaux sont en cours pour créer un langage universel de structure de documents. Peut remplacer le HTML.

Conclusion

Ressources utiles

Évaluation par Aizili

Où est le rapport ?

Donnez votre avis sur Ranifka

Re : Où est le rapport ?
Tout ira bien :-D

Avis de Shamagulova Elite

Commentaire de Mishina Alexandra

Excellent rapport. J'ai appris beaucoup de nouvelles choses sur les langages de programmation.

Critique d'Alexandra Morozova

Bien sûr, j'aimerais voir un rapport ou au moins une présentation sous une forme ou une autre.