
Baruch Sadogursky - Developer advocate in the company JFrog. Duke Awards in 2011 and 2013, JavaOne Rock Star in 2014
The interview was conducted by
Vladimir Sonkin , an expert of Luxoft Training in the field of software development in Java.
')
LT: Baruch, how do you see the technology stack for an Enterprise project today?
BS: As a basis for the project - Java, you can take Spring, which is needed everywhere, then depends on the requirements. If there is a web-interface, then you can look at various frameworks, starting from whether it is a product for internal use or external, how much all sorts of “whistles” are needed in the user interface. The choice will depend on what exactly we are doing, what our business task is: whether it is processing BigData or working with files, or something else.
In terms of assembly also, Apache Maven is a solid, reliable choice, Gradle is a more stylish, youth tool with its own risks. Git - as source control system, CI server - Jenkins. Today's stack is quite understandable. And somewhere, maybe around the edges, try something fresh, for example, write tests on Spok. Of course, it is not new, but for Enterprise developers it is a fairly fresh choice. However, since tests do not go into production, you can touch and experiment in this area.
LT: But if you look at Scala - in general, it is already a mature language. Some small enterprise projects choose Scala out of interest. Do you think this makes sense?
BS: I am somewhat scared of what is happening with Scala now, because there is a trend of leaving Scala, for example, TypeSafe, which tried to make money on Scala-related libraries. Some time ago, it was announced that TypeSafe was leaving a strong Scala focus on a much greater emphasis in Java, because most of the Java enterprise development, where the money itself is. Therefore, they hired a lot of new people who are pulling up some kind of Java interface, which they didn’t have before, because there was basically an emphasis on Scala.
We also see other libraries that were very Scala-oriented. For example, Spark, where we see in the new release, how the Java API is pulled up to the Scala level, and it looks like they will develop no worse than the Scala API, if not better.
I would say that in the global picture we see some reversal towards Java. And I am absolutely not surprised by this, because Scala, as an academic language, is an absolutely wonderful creation, but for Enterprise hardcore to drive code into production, it is not suitable, because it is difficult for developers who solve real business problems that need powerful, but, at the same time, not a very complicated tool, which have things in life more important than understanding the Scala type system.
That is why I have never been a big fan of Scala, and the trend of leaving Scala does not surprise me. Of course, Scala will not go anywhere and will continue to develop, but in a much more niche format.
LT: So Scala killed its excessive complexity?
BS: Not that complexity. I would say academic. It seems to me that from the very beginning Scala was not a very good choice for mass development. And when Scala was called the next Java, it was crazy enough for me to hear, because everything is very academic and not easy for such a mass language, which will have to replace Java.
LT : Do Kotlin, for example, have a lower entry threshold than Scala?
BS : Yes, it's taller than Groovy, but much lower than Scala. It is very nice to learn after Java. With Kotlin, everything is different, because the guys from JetBrains tried to choose the features that are needed. We will see how things will go further, because adoption in the industry depends not only on the quality of the language itself, but also on many other reasons. For example, as you know, if the creator of the language
had a beard , then the language would be popular :).
The creators of S - Ken Thomson and Denis Richie are brilliant guys with brilliant beards.LT : Do you think the growth of Java popularity is due to the fact that Java SE 8 was released, which brought a lot of good from the same Scala?
BS : Of course, this played a role - as the end of Java stagnation. This is a big plus. We see a revolutionary release of Java 8, we hear that there will be a lot of interesting things in Java 9. In general, some kind of life in Java has reappeared. Escape from java in many companies may be over. You can write in Java and be more productive.
LT: And if you started the Enterpeise project now, would you choose Apache Maven as a framework for building?
BS: It really depends on who you have to work with: the stronger the team and the more we rely on the fact that people can thoroughly understand the build system - the more we can get away from Apache Maven. But in reality, the reality is different: usually developers are not up to the nuances of my build scripts, and in general, you should have a simple and reliable Apache Maven assembler. Therefore, the choice will depend on the materials with which you need to work, and the timing of whether people will have time to understand the subtleties of build scripts.
LT: If we speak in the same section about programming languages: Java is the de facto standard for enterprise development. And what technologies and languages ​​seem to you the most promising today?
BS : Very good comparison, I believe that we can compare Apache Maven with Java, because this is a de facto standard, because everyone knows, because it is quite predictable and understandable. I would not say that they are simple, but you can count on the fact that people will know about them.
Gradle is increasingly tied to other programming languages, because you can write scripts in Groovy, and soon you can write in Kotlin, and this gives you some flexibility compared to Java.
Therefore, if we are talking about interesting languages ​​that I would look at today, then Groovy is a great opportunity to expand your horizons with little investment, because Groovy is very similar to Java. Well, Kotlin now looks very promising, as the guys from JetBrains tried to collect all the best from other languages. We can see a lot of good things out there from Scala, Groovy and Java. Therefore, you need to closely monitor all this. For a large Enterprise project, tomorrow I would not take Kotlin, but to play, poke, figure it out - yes.
LT: In September in Luxoft we will have your master class on Apache Maven, Java performance, profiling.
BS: Yes, the master class will be on Apache Maven, and on Java production, profiling and defagging there will be a lecture as a bonus track.
LT: Tell me, please, why was Maven chosen, since there are many other popular collectors now? Why come to your master class?
BS: With Apache Maven, everything is quite simple - as usual with us in the industry: we have advanced, innovative, interesting, modern and unusual tools that are not always the most popular, and we also have de facto standards that are not They include all the latest and most interesting things, but they are the workhorses that do what is needed. And in the assembly systems we have a similar situation: there is a Gradle on the market, which we all love to see and dig, which gushes with unusual solutions, and there are tools that you can simply rely on, which are with us for years and we know well. Large, large companies choose the second option as the working standards - that is, Apache Maven. And here everything is logical: it is understandable, more controlled, tested over the years.
Therefore, my workshop will be useful for those people who need to watch one assembly language in order to work in a large company and understand what is happening with the assembly. But I think that we will not restrain ourselves and in the second half of the master class we'll take a look at Gradle in the overview format, let's talk about the difference.
LT: Will you tell about some basic things or some subtleties and secrets?
BS: We have plenty of time to talk about everything. We will start with basic things to close all the white spots, even for those who are already familiar with Apache Maven. And of course we will talk about more advanced things: writing plugins, configuration profiles. Therefore, I hope that everything will be interesting: to those who are familiar with Apache Maven, at some basic level and to those who have never worked with it.
The master class of Baruch Sadogur will be held
on September 8, 2016 in Moscow.