Sedikit lirik teknis tentang C ++ Tools dari JetBrains, dan apa yang harus dilakukan unicorn dengannya

Saya tidak memulai dengan tipikal "Halo, Habr! Kami memiliki rilis keren lainnya di sini, "dan dengan" Halo, nama saya Nastya, saya PMM di JetBrains dan saya bertanggung jawab atas alat C ++ kami. " Atau tidak, saya akan coba lagi, seperti ini: "Halo, pengembang C ++ dengan 8 tahun pengalaman menulis kepada Anda, yang 5 tahun lalu menemukan aplikasi yang sama di perusahaan impiannya yang terkenal - JetBrains, dan kemudian jam tiba-tiba habis dalam sehari, dan semua ide melekat. "

Tidak, ini bukan pos biasa tentang mencari kandidat untuk lowongan. Saya akan mencoba membahas tentang mengapa kami memiliki beberapa alat C ++ dan gagasan serta rencana apa yang kami miliki untuk mereka , dan mengapa Anda tidak akan melupakan C ++ jika Anda berhenti menulis sebagai pengembang dan menjadi PMM (spoiler jika Karena Anda bukan anggota komite standardisasi bahasa C ++, Anda memiliki peluang bagus untuk belajar bahasa lebih baik). Dan jika setelah itu Anda ingin berpartisipasi dalam ini sebagai PMM, maka saya akan senang memiliki resume Anda di anastasia.kazakova@jetbrains.com .

Mengapa Anda tidak bisa mendapatkan dan membuat IDE untuk C ++?


Tampaknya banyak yang sangat mudah untuk membuat parser untuk IDE dari kompiler bahasa C ++. Di konferensi ACCU, C ++ Now dan CppCon beberapa tahun yang lalu, saya mulai berbicara tentang mengapa segala sesuatunya tidak begitu sederhana. Misalnya, Anda dapat melihat catatan dari 2017 dengan ACCU ( Pandangan pada C ++ melalui kacamata alat bahasa ) dan CppCon ( Standar baru untuk penyelamatan: tampilan melalui kacamata IDE ). Poin-poin penting: semakin pintar lingkungan, semakin sulit dengan C ++:

  • mempertahankan kinerja editor yang baik (dan responsif),
  • untuk dapat bekerja dengan kode yang salah (kompiler hanya akan mengeluarkan kesalahan dan berhenti bekerja), dan
  • "Pikirkan" bukan dalam unit terjemahan (TU), tetapi pada skala seluruh proyek (karena Ganti nama Anda ingin persis simbol kontekstual, dan bukan hanya nama yang sama, dan pada seluruh proyek).

Jadi kembali pada tahun 2014, bukan satu, tetapi sebanyak 2 (atau bahkan lebih tepatnya 3) lingkungan untuk pengembangan C ++ lahir. Dan itu semua terjadi dengan tiba-tiba. Kami baru saja melakukan Objective-C di AppCode, dan kemudian ternyata kami sedang menulis parser C ++. Dan kita pergi! Ngomong-ngomong, saya menceritakan kisah lucu ini dalam sebuah wawancara di konferensi C ++ Russia 2019 baru-baru ini di Moskow:


Akibatnya, bagian dari tim memutuskan untuk membuat IDE berdasarkan Platform IntelliJ - CLion. Dan bagian lain mulai menerapkan pendekatan yang berbeda dalam arsitektur yang berbeda - ReSharper C ++, ekstensi untuk Visual Studio. Dan kemudian parser berbasis dentang lain muncul. Secara umum, kami memiliki beberapa produk dan banyak parser.

Naga berkepala tiga, dan cara menjualnya


Pada saat yang sama, produk kami untuk C ++ memiliki audiens yang sedikit berbeda.

CLion berfokus pada pengembangan lintas-platform di C ++, yaitu, bagi mereka yang ingin menjalankan IDE pada beberapa platform (termasuk Linux, di mana tidak ada banyak pilihan). Ini adalah lingkungan berfungsi penuh yang berdiri bebas di mana banyak integrasi (langsung dan melalui plugin, baik pihak ketiga maupun milik kita) dengan alat lain (Valgrind Memcheck, Google Sanitizers, DTrace, Perf, Conan) dan bahasa (Python, Karat, Cepat, Kotlin / Asli) ) Di CLion kita sekarang berupaya mendukung pasar pengembangan Tertanam . IDE populer di sektor keuangan, di pasar pengembangan mobil self-driving dan bidang lainnya. Kami bahkan baru-baru ini ditampilkan di iklan BMW .

ReSharper C ++ adalah ekstensi untuk Visual Studio, dirancang untuk mereka yang berkembang di lingkungan Windows dan fokus pada toolchain yang sesuai (msbuild, MSVC). Di sini kami tidak mencoba untuk mengimplementasikan fitur-fitur yang sudah ada di Visual Studio, tetapi kami mencoba untuk membuat bekerja dengan kode lebih nyaman, cepat dan produktif, terutama dengan C ++ modern. Oleh karena itu, produk ini memiliki banyak fitur geek keren yang dapat menjadikan Anda seorang guru pengembangan C ++. Sekarang Anda dapat melihat pekerjaan aktif yang kami lakukan di ReSharper C ++ untuk mendukung pengembang game di Unreal Engine. Ini cukup logis, karena pemirsa utama game tersebut dikembangkan di Windows, di lingkungan MS. Karena itu, kami melakukan optimalisasi kinerja dan fitur khusus khusus untuk game di UE4 .

Juga, dukungan C ++ dari CLion hadir di AppCode (di mana ia sebenarnya berasal) dan Android Studio (yang Google lakukan berdasarkan pada Platform IntelliJ kami).

Dan untuk menjelaskan hal ini kepada pengguna, kami membuat kampanye pemasaran, yang kami sebut Karena C ++ . Jika Anda pernah melihat stan kami di konferensi C ++, atau menonton rekaman dari konferensi C ++ Now (yang kami dukung sebagai sponsor video), atau menggunakan botol hijau atau ikon C ++ sebagai selebaran, Anda akan memahami dengan tepat apa ini:



Tapi bagaimana dengan unicorn?


Unicorn pada semua keragaman ini sekarang adalah satu - ini aku. Jika Anda tidak terbiasa dengan konsep "unicorn in JetBrains", maka inilah pos dari abreslav , yang cukup akurat menggambarkan posisi PMM di JetBrains . Dan kami pernah menginvestasikan banyak energi (mental dan fisik) di PMM Summer School dan menyadari banyak tentang diri kita sendiri sambil memberi tahu orang lain tentang siapa kita dan apa yang kita lakukan. paullarionov di sini di Habré menceritakan bagaimana keadaannya (pada saat yang sama ada tautan ke slide ceramah). Penampil bukan dari JetBrains, jika ada yang tertarik.

Saya bukan orang dari pemasaran pada awalnya. Saya datang ke JetBrains dari pengembangan C / C ++: 5 tahun di embedded outsourcing, 3 tahun di Yota / Roox / Scartel (ada banyak nama, pada dasarnya satu) melakukan PCRF dan mengoptimalkan semua yang terbang buruk (dan kemudian menulis tentang hal itu di Habré ) , dan kemudian tiba-tiba ... Bahkan, dengan C ++ saya tidak memotong kurang. Tentu saja, saya tidak menulis sistem komersial yang sudah jadi, tetapi mempelajari seluk beluk bahasa, mematahkan dukungan dalam IDE bersama dengan QA kami yang gagah berani, kemudian menggambarkan semuanya di blog produk. Saya mengevaluasi seberapa baik penulis teknis menggambarkan ini atau itu skenario fitur berikutnya dengan baik, terus berkomunikasi dengan pengguna akhir (yaitu, pengembang C ++) dan menunjukkan kepada mereka segala macam "kasus menarik". Saya membahas rencana produk dan masalah saat ini dengan tim, saya bekerja dengan pengacara pengembang dan masyarakat. Selain itu, kami mulai berkomunikasi lebih dekat dengan komite standardisasi dan pergi ke pertemuannya. Saya juga suka berbicara tentang C ++ dan ekosistemnya di konferensi dan mengatur pertemuan komunitas C ++ di St. Petersburg.

Tetapi produk untuk PMM kurang memiliki tugas teknis - kampanye iklan, persiapan konferensi, berbagai materi pemasaran, dan banyak lagi. Ini semua ada dalam daftar TODO saya yang terus berkembang juga.

Jika Anda membaca di tempat ini dan menyadari bahwa pekerjaan impian mungkin ada di sini di sebelah Anda, maka kami memiliki dua lowongan , yang pada dasarnya adalah tentang hal yang sama. Saya tidak berencana untuk meninggalkan JetBrains, tetapi waktu dalam berhari-hari dengan cepat habis, jadi saya membutuhkan kepala lain yang akan membantu saya mewujudkan banyak ide yang ada dan membawa kami ide-ide baru. Tugas akan sebagian besar didasarkan pada ReSharper C ++ dan, tentu saja, umum juga. Karena C ++, seperti yang kita katakan;)

PS Tulis pertanyaan dengan berani di komentar - Saya ingin menjawab tentang Habré!

Dan datang, itu akan menyenangkan! Drive to Develop dijamin!

Source: https://habr.com/ru/post/id451510/


All Articles