Je ne commence pas par mon typique "Bonjour, Habr! Nous avons une autre version sympa ici, "et avec" Bonjour, je m'appelle Nastya, je suis PMM chez JetBrains et je suis responsable de nos outils C ++. " Ou non, je vais réessayer, comme ceci: "Bonjour, un développeur C ++ avec 8 ans d'expérience vous écrit, qui il y a 5 ans a trouvé la même application dans sa société de rêve bien-aimée et familière - JetBrains, puis l'horloge s'est soudainement éteinte en une journée, et toutes les idées collent. "
Non, ce n'est pas un poste traditionnel sur la recherche de candidats pour un poste vacant. Je vais essayer de vous
expliquer pourquoi nous avons plusieurs outils C ++ et
quelles idées et plans nous avons pour eux , et pourquoi
vous n'oublierez pas C ++ si vous arrêtez d'écrire dessus en tant que développeur et devenez PMM (spoiler si Puisque vous n'êtes pas membre du comité de normalisation du langage C ++, vous avez de bonnes chances d'apprendre un langage encore mieux). Et si, après cela, vous souhaitez participer en tant que PMM, je serai heureux d'avoir votre CV à
anastasia.kazakova@jetbrains.com .
Pourquoi ne pouvez-vous pas simplement obtenir et créer un IDE pour C ++?
Il semble à beaucoup qu'il est très facile de faire un analyseur pour un IDE à partir d'un compilateur de langage C ++. Lors des conférences ACCU, C ++ Now et CppCon il y a quelques années, j'ai commencé à expliquer pourquoi les choses n'étaient pas si simples. Par exemple, vous pouvez voir des enregistrements de 2017 avec ACCU (
Un regard sur C ++ à travers les lunettes d'un outil de langage ) et CppCon (
Nouvelles normes à la rescousse: la vue à travers les lunettes d'un IDE ). Points clés: plus l'environnement est intelligent, plus il est difficile avec C ++:
- maintenir de bonnes performances (et réactivité) de l'éditeur,
- pour pouvoir travailler avec un code incorrect (le compilateur émettra simplement une erreur et cessera de fonctionner), et
- «Penser» non pas dans les unités de traduction (UT), mais à l'échelle de l'ensemble du projet (car Renommer vous voulez un symbole de contexte, pas seulement un nom correspondant, et sur l'ensemble du projet).
Donc, en 2014, pas un, mais autant que 2 (ou même plus correctement 3) environnement pour le développement C ++ était né. Et tout cela est arrivé tout à coup. Nous venons de faire Objective-C dans AppCode, puis il s'est avéré que nous écrivions un analyseur C ++. Et c'est parti! Au fait, j'ai raconté cette histoire drôle dans une interview à la récente conférence C ++ Russia 2019 à Moscou:
En conséquence, une partie de l'équipe a décidé de créer un IDE basé sur la plateforme IntelliJ - CLion. Et l'autre partie a commencé à implémenter une approche différente dans une architecture différente - ReSharper C ++, une extension pour Visual Studio. Et puis un autre analyseur basé sur Clangd est apparu. En général, nous avons plusieurs produits et de nombreux analyseurs.
Dragon à trois têtes et comment le vendre
Dans le même temps, nos produits pour C ++ ont un public légèrement différent.
CLion se concentre sur le développement multiplateforme en C ++, c'est-à-dire pour ceux qui souhaitent exécuter IDE sur plusieurs plates-formes (y compris Linux, où il n'y a pas beaucoup d'options). Il s'agit d'un environnement autonome entièrement fonctionnel dans lequel de nombreuses intégrations (directement et via des plugins, tiers et les nôtres) avec d'autres outils (Valgrind Memcheck, Google Sanitizers, DTrace, Perf, Conan) et des langages (Python, Rust, Swift, Kotlin / Native ) C'est au sein de CLion que nous travaillons actuellement pour soutenir
le marché du développement Embedded . IDE est populaire dans le secteur financier, sur le marché du développement des voitures autonomes et dans d'autres domaines. Nous avons même récemment été montrés dans
une publicité BMW .
ReSharper C ++ est une extension pour Visual Studio, conçue pour ceux qui développent dans un environnement Windows et se concentrent sur la chaîne d'outils correspondante (msbuild, MSVC). Ici, nous n'essayons pas d'implémenter les fonctionnalités qui sont déjà dans Visual Studio, mais nous essayons de rendre le travail avec le code plus pratique, plus rapide et plus productif, en particulier avec le C ++ moderne. Par conséquent, le produit possède de nombreuses fonctionnalités geek intéressantes qui peuvent faire de vous un gourou du développement C ++. Vous pouvez maintenant voir le travail actif que nous faisons dans ReSharper C ++ pour soutenir les développeurs de jeux sur le moteur Unreal. C'est tout à fait logique, puisque le public principal de ces jeux est développé sur Windows, dans l'environnement MS. Par conséquent, nous avons repris l'
optimisation des performances et les fonctionnalités spéciales spécifiquement pour les jeux sur UE4 .
En outre, la prise en charge C ++ de CLion est présente dans
AppCode (d'où elle provient, en fait) et
Android Studio (ce que Google fait sur la base de notre plateforme IntelliJ).
Et afin d'expliquer cela aux utilisateurs, nous avons mis au point une campagne de marketing, que nous avons appelée
Parce que C ++ . Si vous avez déjà vu notre stand lors de conférences C ++, ou regardé des enregistrements de la conférence
C ++ Now (que nous soutenons en tant que sponsors vidéo), ou avez pris des bouteilles vertes ou des icônes C ++ comme document, vous comprendrez exactement de quoi il s'agit:

Mais qu'en est-il des licornes?
La licorne sur toute cette diversité est maintenant une - c'est moi. Si vous n'êtes pas familier avec le concept de «licorne dans JetBrains», voici un article d'
abreslav , qui décrit assez précisément la
position de PMM dans JetBrains . Et une fois, nous avons investi beaucoup d'énergie (mentale et physique) dans les cours d'été de PMM et avons réalisé beaucoup de choses sur nous-mêmes tout en disant aux autres qui nous sommes et ce que nous faisons.
paullarionov ici sur Habré a raconté comment c'était (en même temps il y a des liens vers des diapositives de conférences). Le spectateur n'est pas de JetBrains, si quelqu'un est intéressé.
Je ne suis pas une personne du marketing au départ. Je suis arrivé chez JetBrains à partir du développement C / C ++: 5 ans dans l'externalisation embarquée, 3 ans dans Yota / Roox / Scartel (il y a beaucoup de noms, essentiellement un) a fait PCRF et optimisé tout ce qui volait mal (puis
écrit à ce sujet sur Habré ) , puis tout à coup ... En fait, avec C ++ je ne me croisais pas moins. Bien sûr, je n'y écris pas de systèmes commerciaux prêts à l'emploi, mais je plonge dans les subtilités du langage, je brise le support dans l'IDE avec notre vaillant AQ, puis je décris tout cela dans les blogs de produits. J'évalue dans quelle mesure les rédacteurs techniques ont bien décrit tel ou tel scénario de la fonctionnalité suivante, communique constamment avec les utilisateurs finaux (c'est-à-dire les développeurs C ++) et leur montre toutes sortes de «cas intéressants». Je discute des plans de produits et des problèmes actuels avec l'équipe, je travaille avec des avocats développeurs et la communauté. De plus, nous avons commencé à communiquer plus étroitement avec le comité de normalisation et à aller à ses réunions. J'aime aussi
parler du C ++ et de son écosystème lors de conférences et organiser des
réunions de la communauté C ++ à Saint-Pétersbourg.
Mais les produits pour PMM ont moins de tâches techniques - campagnes publicitaires, préparation de conférence, divers supports marketing et plus encore. Tout cela figure également sur ma liste TODO en constante augmentation.
Si vous lisez cet endroit et réalisez que le travail de rêve est probablement juste à côté de vous, alors nous avons
deux postes vacants , qui sont essentiellement à peu près la même chose. Je n'ai pas l'intention de quitter JetBrains, mais le temps en jours s'épuise rapidement, j'ai donc besoin d'une autre tête qui m'aidera à réaliser de nombreuses idées existantes et à nous apporter de nouvelles idées. Les tâches seront largement basées sur ReSharper C ++ et, bien sûr, communes aussi. Parce que C ++, comme on dit;)
PS Écrivez hardiment des questions dans les commentaires - j'aime répondre sur Habré!
Et viens, ça va être amusant! Le Drive to Develop garanti!