Posts: 135 / Nickname: fsommers / Registered: January 19, 2002 7:24 AM
JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 2, 2008 3:30 PM
|
In this wide-ranging interview with Artima, Jemerov discusses the main focus areas for the upcoming IntelliJ 8 release, as well as his views on IntelliJ's support for Flex and Scala:
http://www.artima.com/lejava/articles/javaone_2008_dmitry_jemerov.html What do you think about the directions for IntelliJ 8, and about Jemerov's comments concerning Scala? |
Posts: 11 / Nickname: jiry / Registered: November 15, 2007 2:29 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 3, 2008 7:52 AM
|
I'm calling BS on the "Scala is as complex as C++." I did C++ professionally for years and there are still strange dark corners that I never fully understood. I've been doing Scala for about a year now for personal projects and you have to do some pretty sophisticated type hacking to make me scratch my head.
|
Posts: 1 / Nickname: arikkfir / Registered: June 3, 2008 4:11 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 3, 2008 9:13 AM
|
Hi,
I haven't seen any comment about OSGI - is this something JetBrains are considering for inclusion in IDEA 8? |
Posts: 3 / Nickname: pk11 / Registered: April 7, 2008 2:52 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 3, 2008 3:46 PM
|
"That said, Scala support is probably the most asked-for thing from us at the moment. But I don't think people ask for it because they use Scala today. People ask us to support Scala because they think that that is what they're going to use in the future, and expect that they'll need it. Whether they'll actually be able to use that feature [Scala support], I'm not sure about."
this is a kind of chicken-and-egg problem. yes only just the early adopters are using the language right now, but precisely because of the lack of good tools. people are asking for the plugin not because they are already using scala but because they could consider scala seriously only with good IDE support (how could someone sell scala to a random shop with full of java developers who are used to good tools? it's a cool language, dude, but you have to go back to vim? which I personally do not mind btw) a good scala plugin would boost the adaption of the language (and the IDE) overnight! |
Posts: 9 / Nickname: roybatty / Registered: September 15, 2003 4:57 PM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 4, 2008 3:16 PM
|
I pretty much agree with Dmitry on his assessment of Scala and Groovy in the whole ecosystem of JVM development for the future - not that I'm agreeing with his assessment of the strengths or weaknesses of the languages.
The JVM seriously needs something like Boo http://boo.codehaus.org |
Posts: 11 / Nickname: johnyboyd / Registered: April 26, 2007 3:17 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 2, 2008 4:40 PM
|
Admittedly my knowledge of Scala is very minimal - I just started working thru the artima book a few weeks ago, but at this point I agree with the sentiments. It feels 'academic' - which interests me personally, but I wouldn't want to impose it on my team at this point. Feels too complex; and I fear I'll need quite a lot of practice before I can really grok it. The comparison with C++ is sort of how I feel too.
We're embarking on a new, no-legacy code project; and I just don't see any scenarios where Scala offers any advantage over Java from a development/deployment point of view. If Scala's capabilities show up in some 'killer scenarios' - like reducing the ORM mismatch (the EJB, Hibernate complexities), or DI needs (Spring, etc.), or the Web-middletier mismatches, I think that'll convince the masses to cross-over. My .02 -jb |
Posts: 18 / Nickname: 55548 / Registered: May 16, 2008 6:33 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 3, 2008 2:31 AM
|
> We're embarking on a new, no-legacy code project; and I
> just don't see any scenarios where Scala offers any > advantage over Java from a development/deployment point of > view. I've read 1/2 of the artima book, and so far I've been very pleasantly suprised. It's a very good read, very well written and formatted. To me scala doesn't come across as complex. However, it definitely seems possible to misuse the language, as it is far more flexible (particularly syntactically) than Java. Very easy to create a DSL like set of operators and then create code that looks completely foreign. > If Scala's capabilities show up in some 'killer scenarios' > - like reducing the ORM mismatch (the EJB, Hibernate > complexities), or DI needs (Spring, etc.), or the > Web-middletier mismatches, I think that'll convince the > masses to cross-over. The killer combination for me is the ability to mould the syntax. I'm looking for something less verbose than Java, having finally gotten tired of the line count to power ration. The inference, closure support, delayed eval, and full operator support (including things like "?") give me a workable alternative to Oz/Mozart, but on the JVM where I can leverage existing libraries. So, perhaps not a team language at the moment -- it's too "sharp". But for the original article to compare it to C++ is perhaps unfair. I did commercial C++ for 7 years, and I'd never wish that on anyone. Andrew |
Posts: 11 / Nickname: johnyboyd / Registered: April 26, 2007 3:17 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 3, 2008 9:43 AM
|
>
> I've read 1/2 of the artima book, and so far I've been > very pleasantly suprised. It's a very good read, very > well written and formatted. Yup, it's indeed a good read - so far. > > > If Scala's capabilities show up in some 'killer > scenarios' > > - like reducing the ORM mismatch (the EJB, Hibernate > > complexities), or DI needs (Spring, etc.), or the > > Web-middletier mismatches, I think that'll convince the > > masses to cross-over. > > The killer combination for me is the ability to mould the > syntax. I'm looking for something less verbose than Java, > having finally gotten tired of the line count to power > ration. The inference, closure support, delayed eval, and > full operator support (including things like "?") give me > a workable alternative to Oz/Mozart, but on the JVM where > I can leverage existing libraries. For me, when I yearn for something less verbose than Java, Python fits quite well. Higher line count to power, easier to program than Scala, a nice set of libraries .... With Scala, if I've been off reading or dabbling in it for a week, takes me some mental cycles before I can understand the code again ... I suspect folks will have to use Scala as a 'richer Java' initially (just as with C++ and C) - using a subset of its features. -jb |
Posts: 18 / Nickname: 55548 / Registered: May 16, 2008 6:33 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 4, 2008 1:34 AM
|
> For me, when I yearn for something less verbose than
> Java, > Python fits quite well. Higher line count to power, easier > to program than Scala, a nice set of libraries .... I agree, python is very nice. However, I find that I can't live without static typing, particularly in a large system. I used python intensively for a year, and then stopped just like that. Although I loved it for it's natural expressability, I didn't miss it. I also got tired of the hacks for things like accessibility, the self parameter etc. Andrew |
Posts: 8 / Nickname: alexstojan / Registered: June 20, 2005 0:51 PM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 3, 2008 0:09 PM
|
> To me scala doesn't come across as complex. However, it
> definitely seems possible to misuse the language, as it is > far more flexible (particularly syntactically) than Java. > Very easy to create a DSL like set of operators and then > n create code that looks completely foreign. No language seems complex when you read a textbook about it. Maybe after you start using Scala for large projects you would get a different perspective on it and form a different opinion about its complexity. > So, perhaps not a team language at the moment -- it's too > "sharp". But for the original article to compare it to > C++ is perhaps unfair. I did commercial C++ for 7 years, > and I'd never wish that on anyone. You're comparing your 7 years commercial C++ experience with 0 years home-projects Scala experience and drawing conclusions based on that. What I'm trying to say here is that a true language comparison is possible only when you know both languages equally well (including the idioms and all programming techniques it directly supports) and when you used both languages on projects of comparable complexity - not an easy experience to achieve. |
Posts: 18 / Nickname: 55548 / Registered: May 16, 2008 6:33 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 4, 2008 1:46 AM
|
> > To me scala doesn't come across as complex. However,
> it > > definitely seems possible to misuse the language, as it > is > > far more flexible (particularly syntactically) than > Java. > > Very easy to create a DSL like set of operators and > then > > n create code that looks completely foreign. > > > No language seems complex when you read a textbook about > it. Maybe after you start using Scala for large projects > you would get a different perspective on it and form a > different opinion about its complexity. No need for misdirected aggression; I was clearly stating my opinion (e.g. "To me..."), and I clearly indicated that I've only read about it and made toy programs in it. However, I'm extrapolating having build large commercial systems in various languages: C, C++, Smalltalk, Java, Lisp. I've also come to the language having programmed smaller systems in Mozart/Oz which meshes well with the Scala approach. > > So, perhaps not a team language at the moment -- it's > too > > "sharp". But for the original article to compare it to > > C++ is perhaps unfair. I did commercial C++ for 7 > years, > > and I'd never wish that on anyone. > > You're comparing your 7 years commercial C++ experience > with 0 years home-projects Scala experience and drawing > conclusions based on that. What I'm trying to say here is > that a true language comparison is possible only when you > know both languages equally well (including the idioms and > all programming techniques it directly supports) and when > you used both languages on projects of comparable > complexity - not an easy experience to achieve. I wasn't stating that I was doing a full comparison. I guarantee, however, that some of the problems in C++ won't haunt Scala programs. Wild pointers, odd memory errors and the like. As for complexities and misuse of the language (such as template metaprogramming), I doubt scala could rise to those painful "heights". I concur with one of the other poster -- In my 7 years of C++ programming, there were various dark areas of the language I still didn't know and wouldn't go near. As for getting first timers started in C++ (which happened occasionally when we brought in graduates), don't get me started. Enough about me: what's your experience with C++ and Scala in large projects? Andrew |
Posts: 8 / Nickname: alexstojan / Registered: June 20, 2005 0:51 PM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 4, 2008 9:49 AM
|
> No need for misdirected aggression; I was clearly stating
> my opinion (e.g. "To me..."), and I clearly indicated that > I've only read about it and made toy programs in it. I apologize if I sounded aggressive; it wasn't my intention :) > I guarantee, however, that some of the problems in C++ > won't haunt Scala programs. Wild pointers, odd memory > errors and the like. As for complexities and misuse of > the language (such as template metaprogramming), I doubt > scala could rise to those painful "heights". I concur > with one of the other poster -- In my 7 years of C++ > programming, there were various dark areas of the language > I still didn't know and wouldn't go near. As for getting > first timers started in C++ (which happened occasionally > when we brought in graduates), don't get me started. It's true that some C++ problems won't appear in Scala, but you might get all kinds of different problems. Java was supposed to eliminate lots of problems that C++ programmers have to deal with (pointers , memory issues), but if you look at those user groups there are other types of problems they complain about. The same will probably happen with Scala, it's just that the language is not being seriously used (yet). > Enough about me: what's your experience with C++ and Scala > in large projects? I don't have any experience with Scala - I just read the tutorial on their web site and I also liked what I saw there but, as I said above, I really don't know what would it be like to use Scala on a large project. I mostly use C++ and my experience with it seems to be quite different than yours. Specifically, we built a quite extensive C++ framework to use for our applications and I see very few pointer and memory problems. I admit, though, that our framework does not use template metaprogramming which, I agree, can get nasty. As always, there's more than one way to accomplish the same thing, so it all depends on the kind of C++ code we get to deal with, which ultimately affects our perception of the language. |
Posts: 11 / Nickname: johnyboyd / Registered: April 26, 2007 3:17 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 4, 2008 0:44 PM
|
>
> Enough about me: what's your experience with C++ and Scala > in large projects? I am curious about large-scale commercial or open source projects using Scala. I'm aware of Lift - the web framework, that's all. The scala website or googling yields nothing notable. rgds -jb |
Posts: 8 / Nickname: alexstojan / Registered: June 20, 2005 0:51 PM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 4, 2008 11:52 AM
|
> As for getting
> first timers started in C++ (which happened occasionally > when we brought in graduates), don't get me started. I'm just curious to know what problems did you encounter when trying to get new graduates up to speed with C++. Was it the syntax, the concepts (I don't mean the new C++0x 'concept' construct), the language inconsistencies, etc.? |
Posts: 18 / Nickname: 55548 / Registered: May 16, 2008 6:33 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 5, 2008 2:19 AM
|
> I'm just curious to know what problems did you encounter
> when trying to get new graduates up to speed with C++. Was > it the syntax, the concepts (I don't mean the new C++0x > 'concept' construct), the language inconsistencies, etc.? main problem was the fact that a small error in a piece of code written by the grad could mess up data structures of important things in other parts of the program a million miles away. for instance, on a large-ish (100kloc) intra-day risk reporting system, a grad was asked to change some code that was peripherally used in the main reconciliation logic. they overwrote an array, eating into another data structure. trouble was that this other structure was some of the reconciliation values, some of the time ;-) the error was non-deterministic and very costly to track down. the constructs were less of a problem, although we all tended to use a mainstream set and avoid things like pointers to member fns etc. Cheers, Andrew |
Posts: 15 / Nickname: modersky / Registered: September 14, 2003 9:46 PM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 4, 2008 11:49 PM
|
Regarding Scala complexity: It's true that Scala is quite a difficult language to implement, and I have a lot of respect for JetBrains' determination to write a complete compiler for it. But in my experience it's generally not a very difficult language to learn. I speak from experience: I have been teaching many hundreds of undergrads in it, and received overwhelmingly positive feedback.
Typically, I have been teaching a 56 hour course on ``advanced programming'' in Scala. The students taking that course had a one year experience in Java. The following year the same students took a course in compiler construction. For the (heavy) project of that latter course, students had an option to write their program in Java or in Scala. In recent years, 100% of the students chose to do it in Scala. If Scala would be such a difficult language to master, I think the students would have chosen differently, because project work was very important for the grade they received. |
Posts: 5 / Nickname: fredgarvin / Registered: January 4, 2008 3:43 PM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 5, 2008 8:19 AM
|
Martin,
Re: >>> In recent years, 100% of the students chose to do it in Scala. If Scala would be such a difficult language to master, I think the students would have chosen differently, because project work was very important for the grade they received. <<< My guess is that there are other forces at work. First, your teaching Scala is curiously odd, irrespective of the usefulness of Scala. Scala is only just now stabilizing (sort of). So, the fact that you've been teaching a 56 hour course on it is interesting. Perhaps you have a personal affection or bias toward the language with a sprinkle of distaste for Java. And perhaps that bias makes its way into the classroom. Such being the case I'm not at all surprised your students "chose" Scala over Java. The 100% stat is nearly proof positive of that -- an 80 or 90% figure would at least indicate students have some level of independent thought. In addition since Scala followed Java, your students probably learned more advanced programming techniques in Scala. So it is not surprising that they chose Scala for their project, regardless of what language they learned prior to that. Lastly, language choice in an academic setting is probably not a real indication of simplicity or usefulness relative to other languages. At MIT Scheme has been the language of choice for years, nuff said there. |
Posts: 4 / Nickname: terkans / Registered: January 5, 2005 2:30 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 5, 2008 8:30 AM
|
> ... First,
> your teaching Scala is curiously odd, irrespective of the > usefulness of Scala. Scala is only just now stabilizing > (sort of). Fred, It's not really odd for Martin to be teaching his students Scala. You must have missed the fact that he is the main designer of Scala. ;-) |
Posts: 5 / Nickname: fredgarvin / Registered: January 4, 2008 3:43 PM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 5, 2008 9:20 AM
|
Ha! Well, I suppose he is a bit biased then :)
|
Posts: 1 / Nickname: emmby / Registered: June 5, 2008 6:33 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 5, 2008 11:38 AM
|
I enjoyed hearing Dmitry's take on where IntelliJ is going. The refactoring project sounds exciting. My career has taken me to python+django recently and I've found the state of IDEs in the python world to be a bit lacking compared to IntelliJ on java. I'm getting along fine on WingIDE after finding Komodo to be much too primitive, but I would definitely pay for a python-oriented version of IntelliJ if it was anywhere near as good as the java one.
|
Posts: 5 / Nickname: fredgarvin / Registered: January 4, 2008 3:43 PM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 5, 2008 0:17 PM
|
Re:
>>> I would definitely pay for a python-oriented version of IntelliJ if it was anywhere near as good as the java one <<< Python is a dynamic language. No static typeing => No nice IDEs. |
Posts: 7 / Nickname: pdoubleya / Registered: June 17, 2005 11:28 PM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 5, 2008 1:05 PM
|
> What do you think about the directions for IntelliJ 8, and
It seems they are headed in a good direction. What I do miss with IDEA is having "super text editor" features that I get with jEdit (and previously with EditPlus on Windows, Emacs, others). I still open up jEdit or vi periodically to work with some non-Java files (shell scripts, data dumps, log files, etc.). jEdit does well in that regard with the encoding support, lots of utility scripts, quick per-buffer options access, among other things. OTOH, I wouldn't use jEdit again for Java projects unless I had no other choice. I'm happy with IDEA for working with Java-oriented projects and am excited about the Scala plugin, which I've been building and testing periodically. I also think it's brave of them to be committing resources to it when it's not clear what the uptake will be, long-term. It's unfortunate that Eclipse, NetBeans and IDEA have such different underlying models that more of the plugin code can't be shared between them. It's also cool to see that a chunk of the IDEA Scala plugin is being written in Scala itself. I hope JetBrains' moves to widen their market works for them; they do good work. > about Jemerov's comments concerning Scala? So far, my sense is that the flexibility of the language will be considered a plus in the long term, but that in the short term it can be a little daunting if you don't have the right background. I'm happy however that the community is already diverse, and that it includes people like Bill Venners--the sample code in http://www.artima.com/weblogs/viewpost.jsp?thread=232028 really leaves little for a post-Java programmer to complain about, and a lot to look forward to. |
Posts: 1 / Nickname: jkuhnert / Registered: August 2, 2006 11:20 AM
a good debugger might be enough
June 6, 2008 5:51 AM
|
I tried really hard to fully embrace the textmate method of ruby development my friends use but obviously found it lacking in a few important areas. (like good autocompletion) It's a nice editor and all but doesn't come close to the productivity gains realized with a good ide.
It felt like I was using emacs again - but in a bad way. (lots of browser tabs open with rubydoc pages and such) They do seem to have a sort of douche-y aversion to anything java related, but maybe a good debugger will be just enough to be too irresistible. At that point they would just be impractical / close-minded. good luck, that community definitely needs a good ide... |
Posts: 1 / Nickname: megagurka / Registered: December 9, 2007 9:26 PM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 4, 2008 10:19 PM
|
I think it's unfair to compare Scala to C++. Yes, you can write very complex type expressions in Scala (even emulate C++ meta programming), but those expressions would be complex in any language (but maybe more readable in Haskell for example). And in some sense Scala is simpler to use than Java generics because of declaration site variance.
Every feature in Scala is well founded and you can't really make it any simpler without sacrificing JVM compatibility or expressiveness. IMO, Scala is the best candidate for replacing Java and it would be mistake not to support it in IDEA. |
Posts: 3 / Nickname: kst / Registered: August 14, 2006 6:08 PM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 6, 2008 5:57 AM
|
I agree with Jesper. Looking from a different perspective, Is Java language better than Scala in any aspect?
And any powerful language looks complex for a newcomer. It takes reading a text book/specification and getting hands on experience with a project to get comfortable with the language. Everybody knows the biggest pain with C++ is memory management , and scala developers doesnt have to worry about that, so +1 for scala. And I feel, by incorporating Scala in to a team, we raise the IQ of the team members, and make them better programmers, producing better code, but I may be wrong! |
Posts: 1 / Nickname: jarober61 / Registered: June 26, 2003 1:36 PM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
June 8, 2008 4:01 PM
|
It would be nice if Dmitry had any awareness of what's been done in Smalltalk and Lisp. He could start by reading <a href="http://patricklogan.blogspot.com/2008/06/does-history-of-computing-matter .html">Patrick Logan</a>, and he could move on to reading <a href="http://www.cincomsmalltalk.com/blog/blogView?showComments=true&printT itle=When_you_dont_know_what_you_dont_know&entry=3390403242">my response</a>. Then he might try looking at a Lisp or Smalltalk image, and educating himself on what's actually possible in an IDE that's written in itself.
|
Posts: 1 / Nickname: xolotl / Registered: September 29, 2004 7:31 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
August 20, 2008 4:42 PM
|
What does Mr Jemerov mean by Scala doesn't have a specification in the sense that Java has ? On the contrary Scala is an exception among these emerging languages in that in does have a real spec, which is absolutely comparable to the JLS and was written before the first implementation of the language.
|
Posts: 1 / Nickname: mtran / Registered: October 15, 2009 8:32 AM
Re: JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala
October 15, 2009 2:27 PM
|
I feel that Scala's complexity is at a totally different level compared to C++. Scala complexity is in the features (trait, variance, pattern matching, etc) that enable advanced designs, while C++ complexity comes from just trying to prevent cosmic code chaos. Also, there's a choice in Scala to not make use of those features, i.e turning off the complexity, and you'll end up with Java-with-kickass-syntax. I can see that IDE support for Scala is probably difficult to implement, due to the breadth and depth of the advanced features, but that says nothing about the usefulness of the language itself. Scala is extremely well thought out, and it runs on JVM - why is it "just academic"?
|