No estoy empezando con mi típico "¡Hola, Habr! Tenemos otra versión interesante aquí "y con" Hola, mi nombre es Nastya, soy PMM en JetBrains y soy responsable de nuestras herramientas C ++ ". O no, lo intentaré de nuevo de esta manera: "Hola, un desarrollador de C ++ con 8 años de experiencia te escribe, quien hace 5 años encontró su aplicación en su querida y familiar compañía de sueños: JetBrains, y luego el reloj se acabó de repente en un día, y todas las ideas se quedan ".
No, esta no es una publicación tradicional sobre la búsqueda de candidatos para una vacante. Trataré de hablar sobre
por qué tenemos varias herramientas de C ++ y
qué ideas y planes tenemos para ellas , y por
qué no olvidará C ++ si deja de escribir en él como desarrollador y se convierte en PMM (spoiler si Como usted no es miembro del comité de estandarización del lenguaje C ++, tiene una buena oportunidad de aprender un idioma aún mejor). Y si después de eso desea participar en esto como PMM, me complacerá tener su currículum en
anastasia.kazakova@jetbrains.com .
¿Por qué no puedes simplemente obtener y hacer un IDE para C ++?
A muchos les parece que es muy fácil hacer un analizador para un IDE desde un compilador de lenguaje C ++. En las conferencias ACCU, C ++ Now y CppCon hace un par de años, comencé a hablar sobre por qué las cosas no son tan simples. Por ejemplo, puede ver registros de 2017 con ACCU (
Una mirada a C ++ a través de las gafas de una herramienta de lenguaje ) y CppCon (
Nuevos estándares para el rescate: la vista a través de las gafas de un IDE ). Puntos clave: cuanto más inteligente es el entorno, más difícil es con C ++:
- mantener un buen rendimiento del editor (y capacidad de respuesta),
- para poder trabajar con código incorrecto (el compilador solo emitirá un error y dejará de funcionar), y
- "Pensar" no en unidades de traducción (TU), sino en la escala de todo el proyecto (porque Rename desea un símbolo de contexto, no solo un nombre coincidente, y en todo el proyecto).
Entonces, en 2014, no nacieron uno, sino hasta 2 (o incluso más correctamente 3) entornos para el desarrollo de C ++. Y todo sucedió de repente. Acabamos de hacer Objective-C en AppCode, y luego resultó que estábamos escribiendo un analizador C ++. Y lejos nos vamos! Por cierto, conté esta divertida historia en una entrevista en la reciente conferencia C ++ Rusia 2019 en Moscú:
Como resultado, parte del equipo decidió hacer un IDE basado en la plataforma IntelliJ - CLion. Y la otra parte comenzó a implementar un enfoque diferente en una arquitectura diferente: ReSharper C ++, una extensión para Visual Studio. Y luego apareció otro analizador basado en clangd. En general, tenemos varios productos y muchos analizadores.
Dragón de tres cabezas y cómo venderlo
Al mismo tiempo, nuestros productos para C ++ tienen un público ligeramente diferente.
CLion se centra en el desarrollo multiplataforma en C ++, es decir, para aquellos que desean ejecutar IDE en varias plataformas (incluido Linux, donde no hay muchas opciones). Este es un entorno independiente totalmente funcional en el que muchas integraciones (directamente y a través de complementos, tanto de terceros como nuestros) con otras herramientas (Valgrind Memcheck, Google Sanitizers, DTrace, Perf, Conan) e idiomas (Python, Rust, Swift, Kotlin / Native ) Es en CLion donde ahora estamos trabajando para apoyar
el mercado de desarrollo integrado . IDE es popular en el sector financiero, en el mercado de desarrollo de automóviles autónomos y otras áreas. Incluso se nos mostró recientemente en
un anuncio de BMW .
ReSharper C ++ es una extensión para Visual Studio, diseñada para aquellos que se están desarrollando en un entorno Windows y se centran en la cadena de herramientas correspondiente (msbuild, MSVC). Aquí no estamos tratando de implementar las características que ya están en Visual Studio, pero estamos tratando de hacer que trabajar con código sea más conveniente, rápido y productivo, especialmente con C ++ moderno. Por lo tanto, el producto tiene muchas características geniales geniales que pueden convertirlo en un gurú del desarrollo de C ++. Ahora puede ver el trabajo activo que estamos haciendo en ReSharper C ++ para apoyar a los desarrolladores de juegos en Unreal Engine. Esto es bastante lógico, ya que la audiencia principal de tales juegos se desarrolla en Windows, en el entorno MS. Por lo tanto,
retomamos la
optimización del
rendimiento y las características especiales específicamente para juegos en UE4 .
Además, el soporte C ++ de CLion está presente en
AppCode (donde, de hecho, se originó) y
Android Studio (que Google hace en función de nuestra plataforma IntelliJ).
Y para explicar esto de alguna manera a los usuarios, se nos ocurrió una campaña de marketing, que llamamos
porque C ++ . Si alguna vez ha visto nuestro stand en las conferencias de C ++, o ha visto grabaciones de la conferencia
C ++ Now (que apoyamos como patrocinadores de video), o ha tomado botellas verdes o íconos de C ++ como folleto, comprenderá exactamente de qué se trata:

¿Pero qué hay de los unicornios?
El unicornio en toda esta diversidad es ahora uno: soy yo. Si no está familiarizado con el concepto de "unicornio en JetBrains", aquí hay una publicación de
abreslav , que describe con bastante precisión la
posición de PMM en JetBrains . Y una vez invertimos mucha energía (mental y física) en la Escuela de Verano PMM y nos dimos cuenta mucho de nosotros mismos mientras les decíamos a los demás quiénes somos y qué hacemos.
Paullarionov aquí en Habré contó cómo fue (al mismo tiempo hay enlaces a diapositivas de conferencias). El espectador no es de JetBrains, si alguien está interesado.
No soy una persona de marketing inicialmente. Llegué a JetBrains desde el desarrollo de C / C ++: 5 años en outsourcing incrustado, 3 años en Yota / Roox / Scartel (hay muchos nombres, básicamente uno) hicieron PCRF y optimizaron todo lo que voló mal (y luego
escribieron sobre ello en Habré ) , y luego de repente ... De hecho, con C ++ no me crucé menos. Por supuesto, no escribo sistemas comerciales listos para usar, sino que profundizo en las complejidades del lenguaje, rompo el soporte en el IDE junto con nuestro valioso control de calidad, y luego lo describo todo en los blogs de productos. Evalúo qué tan bien los escritores técnicos han descrito bien este o aquel escenario de la próxima característica, me comunico constantemente con los usuarios finales (es decir, desarrolladores de C ++) y les muestro todo tipo de "casos interesantes". Discuto los planes de productos y los problemas actuales con el equipo, trabajo con abogados desarrolladores y la comunidad. Además, comenzamos a comunicarnos más estrechamente con el comité de estandarización e ir a sus reuniones. También me gusta
hablar sobre C ++ y su ecosistema en conferencias y organizar
reuniones de la comunidad C ++ en San Petersburgo.
Pero los productos para PMM tienen menos tareas técnicas: campañas publicitarias, preparación de conferencias, diversos materiales de marketing y más. Todo esto también está en mi creciente lista de TODO.
Si lees hasta este lugar y te das cuenta de que el trabajo soñado probablemente esté justo aquí junto a ti, entonces tenemos
dos vacantes , que son esencialmente lo mismo. No planeo dejar JetBrains, pero el tiempo en días se está agotando rápidamente, por lo que necesito otro jefe que me ayude a realizar muchas ideas existentes y nos traiga nuevas ideas. Las tareas se basarán en gran medida en ReSharper C ++ y, por supuesto, también serán comunes. Porque C ++, como decimos;)
PD: Escribe audazmente las preguntas en los comentarios. ¡Me gustaría responder sobre Habré!
¡Y ven, será divertido! ¡El impulso para desarrollar garantizado!