The bottom line is that the more functionality the better. However, I would definitely argue that, when JetBrains adds such features, they be added as plug-ins. Contrary to refactoring (as someone was arguing) or even code-highlighting, both of which are core to any editor, more exotic features should be pluggable for those who choose to use them. It would keep IDEA light and still provide lots of useful features.
I agree: the plugin model is the best. Even more: the OPEN SOURCE PLUGIN is the best. I think that intellij should definitely develop plugins such as maven one, and open source them to ease the maintenance effort.
Well then, the same could be said of other features:
AspectJ CVS Generics GUI
In my current environment, I will probably have no chance to use any of those for quite a while.
The GUI is probably out because of the way they are currently implementing it; it is just not going to fly here(especially since I am the only one using IDEA right now at this sight).
Generics will be useful, one day. But, right now, we are still on 1.3.1. I will be happy if we can get to 1.4 within the year.
My client site is absolutely huge; I go against the grain using IDEA, since we all have WASD.
Hopefully, whether it is MAVEN, AspectJ, or whatever, they will come up a descent(that is, not the way MS does it) al carte way of selling this thing. I certainly am not going to pay for a bunch of features I can't even use, just to get out a few smaller ones(assuming they get implemented) that would be nice to have.
Seems that the number of votes cast for maven, does not actually reflect the small number of people who actually voted for it.
I'm not sure the negative vote thing will work, but I think that JetBrains needs to restrict the systems so that you can only cast one vote per feature.
Well then, the same could be said of other features:
AspectJ
But AspectJ can be used in about any project
CVS
CVS is very common
Generics
Generics will be added to Java 1.5 so it is essential to support them ...
GUI
Swing is integrated with Java, and it is one of the reason why a lot of people that code with a text editor will use an IDE : the GUI editor ... (and remember that it will be only a plugin)
The problem with Maven is that it is not a standard. Look ejb, those are specific methods of programming in java, but it became very common and many project works with them now. Maven is one option among probably several other options, so why Idea should choose Maven instead of another thing ? And if Idea support everything I could ask them to integrate the irc plugin because I think irc is cool. And why not an icq clone ?
None the less, none of these are used in my environment.
I did not say that these things were all bad. I did not say that IDEA should not look into them. But, I will not be able to use them for quite some time, and that is just plain facts.
For example, I actually do my work on my lap top, unit test it there, then load it to a main frame, recompile it, and system test it under Websphere on Z/OS.
To move those programs into production, I have to use a mainframe based version control system(which does not prevent multiple users from modifying the same web based files at the same time). The entire process to get our stuff into production is a modified version of the original main frame production control system. It is clunky and a pain, and literally takes hours(as you have to wait for different steps to run), but it is what we have to use.
When I refer to the GUI, I am talking about the byte code modification that have to occur if you use what IDEA is currently planning. I am not even sure I would be able to get that to work on the main frame side; not sure I would even want to try. And, there has been a huge outcry against the GUI, even more so than this issue of Maven.
As I said, I am going against the grain using IDEA, so there is not going to be any support for doing something different.
Not everyone works in the same type of environment, or even the same way.
Again, I didn't say it was bad for IDEA to work on these things, but I am not going to pay a couple hundred dollars extra for the next version to get a bunch of stuff I can't use.
So, I hope that they come up with some pricing scheme that will work for everyone.
With this, maybe it is the approach they should start looking at for major items, whether it is Aspects, GUI, or Maven.
That is, improve their plugin architecture and sell some of these items as registered plugin upgrades. Just a thought and my point of view. :)
On Fri, 27 Jun 2003 12:56:13 +0200, frank bengtsson wrote:
It could, but i dont have the time continue support the plugin for every new eap.
You wouldn't need to, unless the API's really broke. Failing that, throw the code/project up on java.net/sourceforge.net ( maybe IntelliJ could offer something similar for Idea plugins ) and if anyone else wants to patch it for the new EAP then they can
-- ...turn to the light - don't be frightened by the shadows it creates, ...turn to the light - turning away could be a terrible mistake ...dream theater - the great debate
To summarize, Maven is a stupid solution that is only required by people stupid enough to write applications with a zillion dependencies to start with. Instead of curing their illness, instead they choose to tackle the symptoms. The reason it doesn't belong in IDEA is that IDEA is a tool to promote good habits, and minimise retardation/bloat.
It's interesting though seeing how maven users are reacting to all this. They've become a small band of isolated people who desperately cling to their little tool in the face of all the adversity. The more people find out what a horrible thing maven is, the more obsessive that small core becomes and the more defensive and upset they get.
As usual your Maven rants are wrong. Maven is not REQUIRED for anything, it a tool for those who want to use their time developing software, not writing build scripts.
You really should try using it sometime. Either that, or shut up.
Stick with Ant if you must, but don't ruin Maven for everyone who could actually comprehend its usefulness. Someone could take you seriously by accident.
Could you give an example of dependencies which should/could be reduced? I don't use Maven, and the discussion of dependencies in your rant was a little too abstract for me.
It's not really configurable. You can't have a plugin inside the project. Reactor is not really useful. You can't build generics with Maven. If you are building the installation - you should still write your own Ant script. Often builds the goal several times. Project inheritance is nonworking for more than one inheritor. You can't specify the version of JDOM all projects should use. And so on, so on.
It's just a general approach of intelligently choosing your dependencies. Guidelines, if you will. For example, minimise your reliance on changing external libraries. A lot of the jakarta commons is like this, I've seen projects which depend on sandbox code! Always try to avoid using builds out of cvs, unless you really know what you're doing.
Also, don't use an external dependency unless it provides a clear win for your particular needs. An example is commons-logging. Everyone nowadays uses this, but also in 99% of the cases uses log4j, with no intention of ever switching. Thus, a somewhat pointless abstraction layer.
it's more about a certain mindset. The idea that increasing your dependencies is a bad thing, and so something to be avoided or worked around, if possible. It's no big deal if you're using well established highly stable libraries, but once you fall into the 'I'll just use a cvs version' trap, you're doomed.
I hate to wade into this thread, but what about Maven makes it a best of breed tool? I've never used it, but I also don't understand why I would. Does it simply my life in an reasonable way (by which I mean, will I get more out of it than I put into it, learning the tool and maintaining it)? If it is a great idea, are there any competitors, so that it might not be a "best of breed"?
OK, just a try to explain one of the so many interresting aspect of maven (sorry if you don't think this way, there are also people that vi is or emacs hundred times better than idea, there is nothing to reply to that...).
On a big projet (you know, stuff like J2EE, with struts, EJB (I know some people are going to say that is not serious... but yes some projects with ejb can succes...) and a lot of librairies to provide html, pdf, rtf, xml... outputs, for exemple), you quickly start to have tens of ant files, each with hundred of lines and jars everywhere... what maven brings you is a way to organize all you modules (what force you not to have a spagetti application !) so the build process is clear, normalized (you know when someone is hired, and that you have to explain him you complexe build process...). I agree the current documentation is very poor and that you really need to spend a lot of time before learning to use maven, but it really woth the time you spent I also love the jar name normalisation. I have spend so many time trying to know if my xerces.jar is version x or y (yes I know there is the manifest stuff...). with maven jars are postfixed by the project version, helping to keep good track of evolutions. Yes it took me one or two month to be able to move my previous big project to maven, writing a lot of custom script (you know maven script language is just like ant (I mean its jelly but you always insert ant sripts so nothing really knew to learn here) with some more features). An other point is the web site generation... so nice to have. Well I stop there, and just remember, maven is still beta, so you can expect better doc on 1.0 (I really hope... if not I promess, I will contribuate as I did for some plugins) and look around how many opensource project have know there build process and web site generated with maven...
So yes I think maven is almost the same evolution in build process than idea is the IDE world. So Maven should definitly be integrated as ant is... this is my point of view.
With all the emotional pro-maven discussion going on why doesn't somebody make a plugin? I've never used maven and I already dislike it because I feel like it's being forced on me
do you feel you have to use ant just because it is integrated into idea ?
The plugin answer is a wrong answer... I could say I am not interested in Generics, why not a plugin, not in JUnit integration why not plugin, and so on... (EJB integration, XML integration...).
What make most integration quite nice in idea is that usually if your not interrested in the feature, you just don't activate it (web app or ejb support for exemple) and you are not bothered by it... I guess that the kind of integration you can expect for something like maven (or any new feature)... that makes me think that I would like to be able to turn off the AOP integration (ex: the join point feature in the right click menu).
why is a plugin the wrong answer? I wanted UML and it's a plugin, I wanted a spell checker, it's a plugin. if jetbrains wrote it they might even write it as a plugin.
do you feel you have to use ant just because it is integrated into idea ?
ant is a slightly different case; there are probably enough people using it to warrant including support for it. Though IMO, it should be a plugin as well.
I could say I am not interested in Generics
It's going to part of the standard Java language. Maven is not.
(EJB integration, XML integration...)
Yes, should also b plugins, but since they are established standards used by a huge number of developers, then they are better choices for integration than Maven.
What make most integration quite nice in idea is that usually if your not interrested in the feature, you just don't activate it (web app or ejb support for exemple)
The more that is stuffed into the core, then the more likely it is that changes in a module, will affect other modules. The memory footprint of the app becomes uneccessarily huge, and the program becomes increasingly difficult to test. And if we look at the AspectJ support, there is no way to turn that off by the looks of it.
I agree: the plugin model is the best. Even more: the OPEN SOURCE PLUGIN is the best. I think that intellij should definitely develop plugins such as maven one, and open source them to ease the maintenance effort.
Jacob Bay Hansen wrote:
That is very simple : refactoring is useful for everyone, Maven isn't.
Well then, the same could be said of other features:
AspectJ
CVS
Generics
GUI
In my current environment, I will probably have no chance to use any of those for quite a while.
The GUI is probably out because of the way they are currently implementing it; it is just not going to fly here(especially since I am the only one using IDEA right now at this sight).
Generics will be useful, one day. But, right now, we are still on 1.3.1. I will be happy if we can get to 1.4 within the year.
My client site is absolutely huge; I go against the grain using IDEA, since we all have WASD.
Hopefully, whether it is MAVEN, AspectJ, or whatever, they will come up a descent(that is, not the way MS does it) al carte way of selling this thing. I certainly am not going to pay for a bunch of features I can't even use, just to get out a few smaller ones(assuming they get implemented) that would be nice to have.
Yep, that's the problem. Multiple votes cast for the same marginally useful feature.
http://www.intellij.net/forums/thread.jsp?forum=22&thread=33951
Seems that the number of votes cast for maven, does not actually reflect the small number of people who actually voted for it.
I'm not sure the negative vote thing will work, but I think that JetBrains needs to restrict the systems so that you can only cast one vote per feature.
zmbs wrote:
But AspectJ can be used in about any project
CVS is very common
Generics will be added to Java 1.5 so it is essential to support them ...
Swing is integrated with Java, and it is one of the reason why
a lot of people that code with a text editor will use an IDE : the GUI
editor ... (and remember that it will be only a plugin)
The problem with Maven is that it is not a standard. Look ejb, those are
specific methods of programming in java, but it became very common and
many project works with them now. Maven is one option among probably
several other options, so why Idea should choose Maven instead of
another thing ?
And if Idea support everything I could ask them to integrate the irc
plugin because I think irc is cool. And why not an icq clone ?
Stfu! :)
Maven is a tool you tool. A tool made by someone. Refactoring is not a tool.
None the less, none of these are used in my environment.
I did not say that these things were all bad. I did not say that IDEA should not look into them. But, I will not be able to use them for quite some time, and that is just plain facts.
For example, I actually do my work on my lap top, unit test it there, then load it to a main frame, recompile it, and system test it under Websphere on Z/OS.
To move those programs into production, I have to use a mainframe based version control system(which does not prevent multiple users from modifying the same web based files at the same time). The entire process to get our stuff into production is a modified version of the original main frame production control system. It is clunky and a pain, and literally takes hours(as you have to wait for different steps to run), but it is what we have to use.
When I refer to the GUI, I am talking about the byte code modification that have to occur if you use what IDEA is currently planning. I am not even sure I would be able to get that to work on the main frame side; not sure I would even want to try. And, there has been a huge outcry against the GUI, even more so than this issue of Maven.
As I said, I am going against the grain using IDEA, so there is not going to be any support for doing something different.
Not everyone works in the same type of environment, or even the same way.
Again, I didn't say it was bad for IDEA to work on these things, but I am not going to pay a couple hundred dollars extra for the next version to get a bunch of stuff I can't use.
So, I hope that they come up with some pricing scheme that will work for everyone.
With this, maybe it is the approach they should start looking at for major items, whether it is Aspects, GUI, or Maven.
That is, improve their plugin architecture and sell some of these items as registered plugin upgrades. Just a thought and my point of view. :)
Substitute "Refactoring" for any tool you like. I was attacking your argumentation, not refactoring.
this thread has really caused some high emotions. I suggest 3 more threads just to get everyones bloofd flowing
1. Which is the best editor vi or emacs
2. where do i put my curly braces (same line or new line)?
3. what is the correct pronunciation of char ?
ok #1 is easy idea is the best right? :)
In article <16916290.1056901507212.JavaMail.itn@is.intellij.net>, charles decroes wrote:
vim of course ;)
1. I was going to say TECO, but, let's face it, real programmers use edlin. :)
2. If you program in byte code, you don't need curly braces. :)
3. Isn't it pronounced: k - har, with an emphasis on the 'k'. :)
No, real programmers send control messages directly to the hard drive. Hardcore programmers use a turing machine ;)
wimp:p VI rulez:p
what the hell is the difference bettween maven and ant?
On Fri, 27 Jun 2003 12:56:13 +0200, frank bengtsson wrote:
You wouldn't need to, unless the API's really broke. Failing that, throw
the code/project up on java.net/sourceforge.net ( maybe IntelliJ could offer something
similar for Idea plugins ) and if anyone else wants to patch it for the
new EAP then they can
--
...turn to the light - don't be frightened by the shadows it creates,
...turn to the light - turning away could be a terrible mistake
...dream theater - the great debate
Ant is a useful tool with some hacks. Maven is one big fat hack. I got irritated enough at maven that I summoned up the energy a few weeks back to post a rant against it. Go see http://www.freeroller.net/page/fate/20030610#why_maven_sucks
To summarize, Maven is a stupid solution that is only required by people stupid enough to write applications with a zillion dependencies to start with. Instead of curing their illness, instead they choose to tackle the symptoms. The reason it doesn't belong in IDEA is that IDEA is a tool to promote good habits, and minimise retardation/bloat.
It's interesting though seeing how maven users are reacting to all this. They've become a small band of isolated people who desperately cling to their little tool in the face of all the adversity. The more people find out what a horrible thing maven is, the more obsessive that small core becomes and the more defensive and upset they get.
As usual your Maven rants are wrong. Maven is not REQUIRED for anything, it a tool for those who want to use their time developing software, not writing build scripts.
You really should try using it sometime. Either that, or shut up.
Stick with Ant if you must, but don't ruin Maven for everyone who could actually comprehend its usefulness. Someone could take you seriously by accident.
Well, we had... Migrated back to Ant after several months of Maven usage.
--
Best regards,
Mike Aizatsky.
-
JetBrains, Inc / IntelliJ Software
http://www.intellij.com
"Develop with pleasure!"
Really? I'm never going back.
What didn't you like?
Could you give an example of dependencies which should/could be reduced? I don't use Maven, and the discussion of dependencies in your rant was a little too abstract for me.
It's not really configurable. You can't have a plugin inside the project.
Reactor is not really useful. You can't build generics with Maven. If you
are building the installation - you should still write your own Ant script.
Often builds the goal several times. Project inheritance is nonworking for
more than one inheritor. You can't specify the version of JDOM all projects
should use. And so on, so on.
--
Best regards,
Mike Aizatsky.
-
JetBrains, Inc / IntelliJ Software
http://www.intellij.com
"Develop with pleasure!"
It's just a general approach of intelligently choosing your dependencies. Guidelines, if you will. For example, minimise your reliance on changing external libraries. A lot of the jakarta commons is like this, I've seen projects which depend on sandbox code! Always try to avoid using builds out of cvs, unless you really know what you're doing.
Also, don't use an external dependency unless it provides a clear win for your particular needs. An example is commons-logging. Everyone nowadays uses this, but also in 99% of the cases uses log4j, with no intention of ever switching. Thus, a somewhat pointless abstraction layer.
it's more about a certain mindset. The idea that increasing your dependencies is a bad thing, and so something to be avoided or worked around, if possible. It's no big deal if you're using well established highly stable libraries, but once you fall into the 'I'll just use a cvs version' trap, you're doomed.
To each his own, I guess.
Our projects have none of the requirements you describe. We mostly do server-side programming, with a few web-applications thrown in.
I hate to wade into this thread, but what about Maven makes it a best of breed tool? I've never used it, but I also don't understand why I would. Does it simply my life in an reasonable way (by which I mean, will I get more out of it than I put into it, learning the tool and maintaining it)? If it is a great idea, are there any competitors, so that it might not be a "best of breed"?
Just curious...
OK, just a try to explain one of the so many interresting aspect of maven (sorry if you don't think this way, there are also people that vi is or emacs hundred times better than idea, there is nothing to reply to that...).
On a big projet (you know, stuff like J2EE, with struts, EJB (I know some people are going to say that is not serious... but yes some projects with ejb can succes...) and a lot of librairies to provide html, pdf, rtf, xml... outputs, for exemple), you quickly start to have tens of ant files, each with hundred of lines and jars everywhere... what maven brings you is a way to organize all you modules (what force you not to have a spagetti application !) so the build process is clear, normalized (you know when someone is hired, and that you have to explain him you complexe build process...).
I agree the current documentation is very poor and that you really need to spend a lot of time before learning to use maven, but it really woth the time you spent
I also love the jar name normalisation. I have spend so many time trying to know if my xerces.jar is version x or y (yes I know there is the manifest stuff...). with maven jars are postfixed by the project version, helping to keep good track of evolutions. Yes it took me one or two month to be able to move my previous big project to maven, writing a lot of custom script (you know maven script language is just like ant (I mean its jelly but you always insert ant sripts so nothing really knew to learn here) with some more features). An other point is the web site generation... so nice to have.
Well I stop there, and just remember, maven is still beta, so you can expect better doc on 1.0 (I really hope... if not I promess, I will contribuate as I did for some plugins) and look around how many opensource project have know there build process and web site generated with maven...
So yes I think maven is almost the same evolution in build process than idea is the IDE world. So Maven should definitly be integrated as ant is... this is my point of view.
With all the emotional pro-maven discussion going on why doesn't somebody make a plugin? I've never used maven and I already dislike it because I feel like it's being forced on me
do you feel you have to use ant just because it is integrated into idea ?
The plugin answer is a wrong answer... I could say I am not interested in Generics, why not a plugin, not in JUnit integration why not plugin, and so on... (EJB integration, XML integration...).
What make most integration quite nice in idea is that usually if your not interrested in the feature, you just don't activate it (web app or ejb support for exemple) and you are not bothered by it... I guess that the kind of integration you can expect for something like maven (or any new feature)... that makes me think that I would like to be able to turn off the AOP integration (ex: the join point feature in the right click menu).
why is a plugin the wrong answer? I wanted UML and it's a plugin, I wanted a spell checker, it's a plugin. if jetbrains wrote it they might even write it as a plugin.
do you feel you have to use ant just because it is integrated into idea ?
ant is a slightly different case; there are probably enough people using it to warrant including support for it. Though IMO, it should be a plugin as well.
I could say I am not interested in Generics
It's going to part of the standard Java language. Maven is not.
(EJB integration, XML integration...)
Yes, should also b plugins, but since they are established standards used by a huge number of developers, then they are better choices for integration than Maven.
What make most integration quite nice in idea is that usually if your not interrested in the feature, you just don't activate it (web app or ejb support for exemple)
The more that is stuffed into the core, then the more likely it is that changes in a module, will affect other modules. The memory footprint of the app becomes uneccessarily huge, and the program becomes increasingly difficult to test.
And if we look at the AspectJ support, there is no way to turn that off by the looks of it.
I agree with you. I think if the plugin architecture had been more stable/mature when they did these things they would have been plugins.