25.01.2012
Meeting notes authors:
Oksana Buyak
Olga Barshay
Experts:
Meeting Topics:
1. International Product Companies. R&D Organization in a Product Company
2. Organization Aspects of a New Language Development and Introduction to Community
Contents
Part I: International Product Companies. R&D Organization in a Product Company
Part 2 Organization Aspects of a New Language Development and Introduction to Community
In this part keynote is Oleg Stepanov . He came to JetBrains when he was a student. His professional path started from developer to project lead. Oleg managed .NET Division. Now he is involved in new products development.
(read more here)
… begins in 1999 year when 3 young developers (Valentin Kipyatkov - developer, Sergey Dmitriev - director and Eugene Belyaev) worked in Prague in TogetherSoft (acquired by Borland). They decided to create an intelligent system for developers to help in usual process of writing program code. The main idea was create an IDE that understands code and can significantly help by using pop-ups in program interface and simplify the way of development on Java. They’ve started with a plug-in for JBuilder 2000 which parsed the code and helped in renaming variables, classes, etc.
The plug-in became popular by word of mouth because of its usefulness and the project gathered people around. Founders decided to move to St. Petersburg (the reason - Oleg explains that it was hard to find adequate developers in Prague and at the same time developers in St. Petersburg are much better and cheaper). Initially JetBrains was oriented on the world market and its products were in English interface. IntelliJ® IDEA - the first JetBrains’s product “knows” about code, is very flexible, and is highly competitive due to innovative features that JetBrains introduce in their software before any others.
By 2003 Java language began to raise doubts, alternatives appeared: .NET platform & VisualStudio from Microsoft. Working with .NET you should just support new update packages, in Java you also need to choose which packages to support. So JetBrains decided to create plug-in for Visual Studio. This product was called ReSharper. It was created for .NET developers and provided them with IDEA’s intelligence letting them save time during development by fast inserts, tips and advices.
There were fails when ideas weren’t brought to the finish line: OMEA (from ‘Omnia Mea’ - ‘все свое ношу с собой’, integration of logs from ICQ, blogposts, etc.). People on company came to conclusion that their best ability is understanding of programmer’s needs and continue to create products in these direction. Company policy: unsuccessful solutions - it’s just hypothesis testing. Other popular products - TeamCity (Java-based build management and continuous integration server), YouTrack (bug-tracker).
Now it’s ~250 employees , 200 of which are developers (10 of which are not Russians).
Branches: Prague (10 men), Mosсow (4), Munich (30), Boston (4). (Munich branch was opened last year and 30 of developers moved there). Also there are developers in Minsk. In Spain there is a Evangelist. There are some obstacles with spoken language because of low quality of communication in English, but it’s ok with writing in English.
Very horizontal structure in the company: developers, project managers, head of department (3 persons for Java and one person for .Net), company president. Also it’s administration, sales, marketing:
Introducing of Andrew Breslav.
239 lyceum student, NRU ITMO student, Borland (together with Andrey Ivanov, who moved to JetBrains as VP of administration later), teacher at NRU ITMO and Computer Science Center.
Came to JetBrains after he had heard about ideas of new programming language creation there.
Now in the company he’s formally a developer, and a team lead by fact. Member of JSR-335 "Lambda Expressions".
How does such idea appears? - Developers inside the company complains to each other about disadvantages of languages they used to work with. From a certain point there is an understanding of what they would like to change in these languages. Why then not create own language, especially if consider the fact that it fits into the overall JetBrains concept to create "smart" and convenient development tools.?
About current situation with languages in IT:
Languages survive when they co-exists with appropriate platforms (for Java - JVM, C# - .NET, Ruby on Rails...). It make them heavy, not universal.
There are many dynamic languages - .Their pluses balanced by the minuses:
There were some attempts to create language-cocktails: Groovy = Java+Ruby; Mirah = Ruby+types,...
JavaScript is stand-alone because of it was only client-side language (before server Java appearance).
Functional languages as generally assumed to be impossible to use in industrial programming, but could fast solve some tasks.
Logic languages was popular in 90’s, created mostly for expert systems.
Scala and Kotlin pretend to be in Middle between functional and imperative languages. Benefits of Scala: it’s “more functional” than Java, solves some problems with parallel computing which Java has.
In 2011 there are 4 new programming languages on Java platform appeared :
What are Kotlin’s benefits? All other languages from the same segment try to create their own platform due to difficulties of communication with Java libraries. Kotlin doesn’t have such problems.
Now in JetBrains’s Kotlin project there are 7 members (and 50 outside programmers already test this language via Early Access Program). Current plans are to develop the language in 2 years and get on board 25% of Java Programmers (in ideal).
For the first official Kotlin’s presentation see ‘JetBrain's new statically typed JVM language unveiled’ by Andrey Breslav and Dmitry Jemerov at JVM Language Summit 2011 http://drdobbs.com/jvm/231500204