This article was originally published on February 5, 2008. When a new piece of coding material comes out, the entire coding community tends to get pretty excited about it. They care because they know that it means that there are new applications that they can play around with, and it is entirely possible that there will be some incredible new creations that come out of all of this as well. Thus, there has been a lot of buzz around the Grails 1.0 release, and we are so excited to share with you some of the reasons why this is exciting. Web Development Is More Complicated Than It Needs To Be One universal truth about website development as it stands today is the fact that it is more complex than it honestly needs to be. There are many tools that one may use to work their way through some of it, but few things simplify it down enough for the average person to hop on and feel good about what they are creating. People will tell you that they feel shaky at best about their creations, and that is really saying something. Java is what most people use when they are coding, and it is likely to remain the dominant player for a very long time to come. That said, there are tools like Grail 1.0 that seek to help users get a better sense of what is going on within the coding that they are doing. The hope is that by explaining what is happening, users of Grail 1.0 can get a firmer grip on the concepts that they are working with. What Makes Grail Different? There are plenty of coding languages out there, so what makes Grail so different, and why should people honestly care about it at all? It turns out that the main reason we need to care about it is that it works with Java and leverages Spring to make things even more straightforward and easy to understand. Grail has typically been used for web applications in the past, but the role that it has is now expanding to desktop applications as well. There are different types of people looking to access it at this time, and it seems that allowing them to view it over as wide of a scope as possible is a great way to make sure everyone gets a crack at it even if they don't yet realize that this is something that they want in their lives. Is Grail Catching On? You could say that Grail 1.0 has made quite the splash in the coding community. This is not just some niche product. The makers of this program anticipate that they will see between 5,000 to 10,000 downloads of it per month as it gets kicked off. That is a lot of interest to be circulating around a single product in the coding world. It means that they are expecting an explosion of users to want to hop on and check out what it is all about. If they are right in their projects, then this download could prove to be something very big indeed. It may even become a must-have product in coding. When you have something that catches on with that big of a segment of the population, it is often the case that it has struck some kind of chord with them, and it means that there is a lot to be excited about on the product development side. It is a huge deal that things have gotten as far as they have, and we must recognize that there is still room to grow this project out even more, but it is exciting that it is doing as well as it is already. Graeme Rocher just announced on the Grails mailing list the release of Grails 1.0. I'm very happy to announce this news here on Groovy Zone since more than 2 years ago I stood at the cradle of Grails together with Graeme, Guillaume La Forge and Dierk Koenig. Grails, Groovy and the entire Java community has gone a long way since then. Grails has seen the rise of many competitors since its inception. JRuby on Rails has become a reality. Seam is going strong. Yet the popularity of Groovy and Grails is undeniable, as the traffic on Groovy Zone indicates. Thanks to the Grails development team for all the hard work. Grails went through quite a few refactorings. Out of this came ExpandoMetaClass which helped to re-write the Meta-Object Protocol in Groovy 1.5. I also like BeanBuilder, a Groovy builder for configuring a Spring ApplicationContext. For me Grails is the ultimate rapid prototyping platform for Java. I've built numerous applications by dropping in existing Hibernate-configured classes and generating scaffolding views. It gets you started really quickly and helps you to focus on the application you're building. GSP and the Grails tag libraries are amazing, they're so much better than JSP tags. And let's not forget the numerous Grails plugins. The Search plugin is terrific, it instantly adds search functionality to your application. Check out all the Grails plugins for your needs. Download Grails 1.0 here. Read the user guide here. Watch the screen casts here. Check out the Grails and Groovy books here. An Open Source Product As with many things these days, Grail 1.0 is an open-source product. That is a huge deal simply for the fact that it means that you can access the Grail 1.0 program that you need without having to pay a penny for it. It also means that people are constantly adding more features to the program as time goes on. You will want to check in on this regularly because it means that there may be some interesting updates that are added to it from time to time. You certainly don't want to let those pass you by. There is a whole world of developers out there who are adding their own personal touches to projects like this. You will discover that many of them are extremely well-versed and great at what they do. You may even learn a thing or two about how you need to structure your own coding projects in the future. There may be some critical information that you learn from other coders and discover that you can tweak your own codes to make them even more functional. Add it to Your List of Tools You may love Grail 1.0, or you may feel more uncertain about it. At the end of the day, it doesn't matter all that much. What is ultimately important is if you can use it as part of your overall routine for getting more information out into the world. You likely have tools that can help the rest of humanity, and you need to just add it to the other tools that you have for coding. It might come in handy someday, and it is unclear when that day will be. Think about this and make sure you throw it in there with everything else that you have going for you. It could prove to be extremely useful at some point in time.
Time to talk about creating new classes at runtime in Groovy. There seems to be some fear, uncertainty and doubt about memory leaks and evaluating code with Groovy in the form of calling an eval() method. The code that seems to cause consternation is this: def shell = new GroovyShell() 1000.times { shell.evaluate "x = 100" } The groovy.lang.GroovyShell instance will call the parseClass() method on an internal groovy.lang.GroovyClassLoader instance, which will create a 1000 new classes. The classes will all extend the groovy.lang.Script class. With every new Class created a little bit more memory will be used. As long as the groovy.lang.GroovyShell instance and thus its internal groovy.lang.GroovyClassLoader instance is not garbage collected this memory will remain occupied, even if you don't keep a reference to these classes. This is standard Java ClassLoader behavior. So, how to solve this problem? Well, ClassLoaders in Java are somewhat hard to handle, but it's not so hard once you understand how they work. But lets also consider the root of the problem, namely the fact that Groovy creates a new Class for each script that is evaluated. Before answering why Groovy always creates new Class objects when evaluating code let's first try to fix the code above. One way to fix it is this: def shell = new GroovyShell() 1000.times { shell.evaluate "x = 100" } shell = null By setting the shell variable to null, will the GroovyClassLoader instance be garbage collected? We can guarantee it will in this bit of code. But then again this code does not do anything useful :-) Here's another way to fix it: def shell = new GroovyShell() def script = shell.parse "x = 100" 1000.times { script.run() } By evaluating - parsing - the code only once and calling the run() method on the groovy.lang.Script instance a 1000 times we only use 1/1000th of the memory :-) The parse() method returns a groovy.lang.Script instance. But again, let's consider a more realistic use case. After all, the article that originally critized Groovy for causing memory leaks implies that evaluating code any number of times is a valid requirement in entreprise applications. Let's say it's more of a corner case but still, the functionality is there and it can solve real-world problems. Evaluating Groovy code may be particularly useful and critical when evaluating code on demand. This could happen when an application reads code from file or a database to execute custom business logic. Let's consider the case where developers create a DSL or Domain Specific Language like this: assert customer instanceof Customer assert invoice instanceof Invoice letterHead { customer { name = customer.name address { line1 = "${customer.streetName}, ${customer.streetNumber}" line2 = "${customer.zipCode} ${customer.location}, ${customer.state}" } } invoiceSummary { number = invoice.id creationDate = invoice.createdOn dueDate = invoice.payableOn } } To parse this DSL developers wrote this code (using the iText PDF library): import com.lowagie.text.* import com.lowagie.text.pdf.* class LetterHeadFormatter { static byte[] createLetterHeadForInvoice(Customer cust, Invoice inv, String dsl) { Script dslScript = new GroovyShell().parse(dsl) dslScript.binding.variables.customer = cust dslScript.binding.variables.invoice = inv Document doc = new Document(PageSize.A4) def out = new ByteArrayOutputStream() PdfWriter writer = PdfWriter.getInstance(doc, out) doc.open() dslScript.metaClass = createEMC(writer, dslScript) dslScript.run() doc.close() return out.toByteArray() } static ExpandoMetaClass createEMC(PdfWriter writer, Script script) { ExpandoMetaClass emc = new ExpandoMetaClass(script.class, false) emc.letterHead = { Closure cl -> PdfContentByte content = writer.directContent cl.delegate = new LetterHeadDelegate(content) cl.resolveStrategy = Closure.DELEGATE_FIRST cl() } emc.initialize() return emc } } (Check the attachements of this article to download this code. Read the README.txt file if you want to run the load test yourself, and please report back the results. Also, check the PDF file for the output of the DSL.) On line 6 the parse() method is called. I wrote a load test that calls the createLetterHeadForInvoice() method 1 million (!) times (with regular calls to System.gc()). On my Windows XP machine, when I run the load test with Ant the java process memory usage fluctuates between 32 and 37Mb and remains stable over the course of several hours. Are the GroovyShell and internal GroovyClassLoader instances garbage collected? Yes they are. Is there a memory leak? No. So why does Groovy create Classes when evaluating scripts? Every bit of code in Groovy is a java.lang.Class. This means that it's loaded by a java.lang.ClassLoader and remains in memory unless the ClassLoader can be garbage collected. Why isn't a Class object garbage collected as soon as it's no longer used? Why does the ClassLoader itself have to be garbage collected before the classes it has loaded are removed from memory? If classes would be automatically discarded and reloaded their static variables and static initialization would be executed on each reload. That would be quite surprising and unpredictable. That's why ClassLoaders have to keep hold of their classes, to assure predictable behavior. There may be other technical reasons, but this is the most obvious one. Once the ClassLoader object itself gets garbage collected (because it's no longer referenced in any stack) the garbage collector will attempt to unload all its Class objects. Obviously, creating a lot of classes at runtime in the same ClassLoader will increase the memory usage and will typically create a memory leak. On the other hand, since every Groovy class is a real Java Class (without exception) you don't have to make the distinction. In conclusion: there is no memory leak in GroovyShell or GroovyClassLoader. Download the sample code and verify for yourself. Your code can create a memory leak by the way ClassLoaders are used - either explicitly by your code or implicitly.
supporting Java code for writing build scripts come with a lot of technical hurdles
What are those hurdles? I don't see any technical problem.
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
supporting Java code for writing build scripts come with a lot of technical hurdles
What are those hurdles? I don't see any technical problem.
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
supporting Java code for writing build scripts come with a lot of technical hurdles
What are those hurdles? I don't see any technical problem.
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
supporting Java code for writing build scripts come with a lot of technical hurdles
What are those hurdles? I don't see any technical problem.
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
supporting Java code for writing build scripts come with a lot of technical hurdles
What are those hurdles? I don't see any technical problem.
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
supporting Java code for writing build scripts come with a lot of technical hurdles
What are those hurdles? I don't see any technical problem.
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
supporting Java code for writing build scripts come with a lot of technical hurdles
What are those hurdles? I don't see any technical problem.
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
supporting Java code for writing build scripts come with a lot of technical hurdles
What are those hurdles? I don't see any technical problem.
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
I don't provide an over-arching definition for a dynamic programming language. I do say Groovy, Ruby and Python have a MOP. That does not mean a MOP is distinctive for all dynamic languages. Typical, maybe.
The main problem I see with build systems is that actually you need one. People were very happy with Visual Basic and Deplhi because they let programmers draw a screen, press a button and see it working. Why can't we do that with a web application? Because we want to write operations in Java, therefore recompile, then redeploy, so that instad of "a = b + c;" now it says "a = b - c;". That is a waste of time. The UI, the business rules and the database should be configured, not programmed. This way, as in Smalltalk, the application would be always running, you would just change the behavior on the fly by changing the UI, the business rules and the database, but not a single line of code should change.
The main problem I see with build systems is that actually you need one. People were very happy with Visual Basic and Deplhi because they let programmers draw a screen, press a button and see it working. Why can't we do that with a web application? Because we want to write operations in Java, therefore recompile, then redeploy, so that instad of "a = b + c;" now it says "a = b - c;". That is a waste of time. The UI, the business rules and the database should be configured, not programmed. This way, as in Smalltalk, the application would be always running, you would just change the behavior on the fly by changing the UI, the business rules and the database, but not a single line of code should change.
The main problem I see with build systems is that actually you need one. People were very happy with Visual Basic and Deplhi because they let programmers draw a screen, press a button and see it working. Why can't we do that with a web application? Because we want to write operations in Java, therefore recompile, then redeploy, so that instad of "a = b + c;" now it says "a = b - c;". That is a waste of time. The UI, the business rules and the database should be configured, not programmed. This way, as in Smalltalk, the application would be always running, you would just change the behavior on the fly by changing the UI, the business rules and the database, but not a single line of code should change.
The main problem I see with build systems is that actually you need one. People were very happy with Visual Basic and Deplhi because they let programmers draw a screen, press a button and see it working. Why can't we do that with a web application? Because we want to write operations in Java, therefore recompile, then redeploy, so that instad of "a = b + c;" now it says "a = b - c;". That is a waste of time. The UI, the business rules and the database should be configured, not programmed. This way, as in Smalltalk, the application would be always running, you would just change the behavior on the fly by changing the UI, the business rules and the database, but not a single line of code should change.
The main problem I see with build systems is that actually you need one. People were very happy with Visual Basic and Deplhi because they let programmers draw a screen, press a button and see it working. Why can't we do that with a web application? Because we want to write operations in Java, therefore recompile, then redeploy, so that instad of "a = b + c;" now it says "a = b - c;". That is a waste of time. The UI, the business rules and the database should be configured, not programmed. This way, as in Smalltalk, the application would be always running, you would just change the behavior on the fly by changing the UI, the business rules and the database, but not a single line of code should change.
The main problem I see with build systems is that actually you need one. People were very happy with Visual Basic and Deplhi because they let programmers draw a screen, press a button and see it working. Why can't we do that with a web application? Because we want to write operations in Java, therefore recompile, then redeploy, so that instad of "a = b + c;" now it says "a = b - c;". That is a waste of time. The UI, the business rules and the database should be configured, not programmed. This way, as in Smalltalk, the application would be always running, you would just change the behavior on the fly by changing the UI, the business rules and the database, but not a single line of code should change.
Please consider using Java for your future build systems. As others have mentioned you can use a declarative syntax in any language, including Java. By letting developers specify a build file using normal Java code you leverage the existing Java tools and lower the learning barrier to entry. The key is to spend a lot of time in the design phase, to ensure the API is very clean and intuitive.
That's certainly something we're considering, although supporting Java code for writing build scripts come with a lot of technical hurdles. I think it can be done technical. Remains to be seen if writing this Java code will be easy and straightforward enough.
Please consider using Java for your future build systems. As others have mentioned you can use a declarative syntax in any language, including Java. By letting developers specify a build file using normal Java code you leverage the existing Java tools and lower the learning barrier to entry. The key is to spend a lot of time in the design phase, to ensure the API is very clean and intuitive.
That's certainly something we're considering, although supporting Java code for writing build scripts come with a lot of technical hurdles. I think it can be done technical. Remains to be seen if writing this Java code will be easy and straightforward enough.
Please consider using Java for your future build systems. As others have mentioned you can use a declarative syntax in any language, including Java. By letting developers specify a build file using normal Java code you leverage the existing Java tools and lower the learning barrier to entry. The key is to spend a lot of time in the design phase, to ensure the API is very clean and intuitive.
That's certainly something we're considering, although supporting Java code for writing build scripts come with a lot of technical hurdles. I think it can be done technical. Remains to be seen if writing this Java code will be easy and straightforward enough.
Please consider using Java for your future build systems. As others have mentioned you can use a declarative syntax in any language, including Java. By letting developers specify a build file using normal Java code you leverage the existing Java tools and lower the learning barrier to entry. The key is to spend a lot of time in the design phase, to ensure the API is very clean and intuitive.
That's certainly something we're considering, although supporting Java code for writing build scripts come with a lot of technical hurdles. I think it can be done technical. Remains to be seen if writing this Java code will be easy and straightforward enough.
Please consider using Java for your future build systems. As others have mentioned you can use a declarative syntax in any language, including Java. By letting developers specify a build file using normal Java code you leverage the existing Java tools and lower the learning barrier to entry. The key is to spend a lot of time in the design phase, to ensure the API is very clean and intuitive.
That's certainly something we're considering, although supporting Java code for writing build scripts come with a lot of technical hurdles. I think it can be done technical. Remains to be seen if writing this Java code will be easy and straightforward enough.
Please consider using Java for your future build systems. As others have mentioned you can use a declarative syntax in any language, including Java. By letting developers specify a build file using normal Java code you leverage the existing Java tools and lower the learning barrier to entry. The key is to spend a lot of time in the design phase, to ensure the API is very clean and intuitive.
That's certainly something we're considering, although supporting Java code for writing build scripts come with a lot of technical hurdles. I think it can be done technical. Remains to be seen if writing this Java code will be easy and straightforward enough.
Such a build system will become available in 2008 and this list is just a teaser. This build system will offer features most developers probably have never thought about.
Now all the Maven bashing in previous posts finally makes sense.
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Such a build system will become available in 2008 and this list is just a teaser. This build system will offer features most developers probably have never thought about.
Now all the Maven bashing in previous posts finally makes sense.
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Such a build system will become available in 2008 and this list is just a teaser. This build system will offer features most developers probably have never thought about.
Now all the Maven bashing in previous posts finally makes sense.
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Such a build system will become available in 2008 and this list is just a teaser. This build system will offer features most developers probably have never thought about.
Now all the Maven bashing in previous posts finally makes sense.
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Such a build system will become available in 2008 and this list is just a teaser. This build system will offer features most developers probably have never thought about.
Now all the Maven bashing in previous posts finally makes sense.
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Such a build system will become available in 2008 and this list is just a teaser. This build system will offer features most developers probably have never thought about.
Now all the Maven bashing in previous posts finally makes sense.
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Such a build system will become available in 2008 and this list is just a teaser. This build system will offer features most developers probably have never thought about.
Now all the Maven bashing in previous posts finally makes sense.
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Such a build system will become available in 2008 and this list is just a teaser. This build system will offer features most developers probably have never thought about.
Now all the Maven bashing in previous posts finally makes sense.
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Maven is an excellent tool to force common conventions regarding development environment, build & release management across team/projects.
These conventions are valuable. There is however no value in enforcing them.
Will it slow down developers, of course it will until they learn the new way as with any adoption of new technology.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Maven is an excellent tool to force common conventions regarding development environment, build & release management across team/projects.
These conventions are valuable. There is however no value in enforcing them.
Will it slow down developers, of course it will until they learn the new way as with any adoption of new technology.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Maven is an excellent tool to force common conventions regarding development environment, build & release management across team/projects.
These conventions are valuable. There is however no value in enforcing them.
Will it slow down developers, of course it will until they learn the new way as with any adoption of new technology.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Maven is an excellent tool to force common conventions regarding development environment, build & release management across team/projects.
These conventions are valuable. There is however no value in enforcing them.
Will it slow down developers, of course it will until they learn the new way as with any adoption of new technology.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Maven is an excellent tool to force common conventions regarding development environment, build & release management across team/projects.
These conventions are valuable. There is however no value in enforcing them.
Will it slow down developers, of course it will until they learn the new way as with any adoption of new technology.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Maven is an excellent tool to force common conventions regarding development environment, build & release management across team/projects.
These conventions are valuable. There is however no value in enforcing them.
Will it slow down developers, of course it will until they learn the new way as with any adoption of new technology.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Maven is an excellent tool to force common conventions regarding development environment, build & release management across team/projects.
These conventions are valuable. There is however no value in enforcing them.
Will it slow down developers, of course it will until they learn the new way as with any adoption of new technology.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Maven is an excellent tool to force common conventions regarding development environment, build & release management across team/projects.
These conventions are valuable. There is however no value in enforcing them.
Will it slow down developers, of course it will until they learn the new way as with any adoption of new technology.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
But sadly, I am still forced to write a lot of stuff into my project descriptors that I shouldn't have to... like for generating an assembly or an RPM - these should just work out of the box. I just want to label my project as "webapp", "library", "user application" or whatever, tell it my dependencies, and have it all just work.
But sadly, I am still forced to write a lot of stuff into my project descriptors that I shouldn't have to... like for generating an assembly or an RPM - these should just work out of the box. I just want to label my project as "webapp", "library", "user application" or whatever, tell it my dependencies, and have it all just work.
But sadly, I am still forced to write a lot of stuff into my project descriptors that I shouldn't have to... like for generating an assembly or an RPM - these should just work out of the box. I just want to label my project as "webapp", "library", "user application" or whatever, tell it my dependencies, and have it all just work.
But sadly, I am still forced to write a lot of stuff into my project descriptors that I shouldn't have to... like for generating an assembly or an RPM - these should just work out of the box. I just want to label my project as "webapp", "library", "user application" or whatever, tell it my dependencies, and have it all just work.
But sadly, I am still forced to write a lot of stuff into my project descriptors that I shouldn't have to... like for generating an assembly or an RPM - these should just work out of the box. I just want to label my project as "webapp", "library", "user application" or whatever, tell it my dependencies, and have it all just work.
But sadly, I am still forced to write a lot of stuff into my project descriptors that I shouldn't have to... like for generating an assembly or an RPM - these should just work out of the box. I just want to label my project as "webapp", "library", "user application" or whatever, tell it my dependencies, and have it all just work.
But sadly, I am still forced to write a lot of stuff into my project descriptors that I shouldn't have to... like for generating an assembly or an RPM - these should just work out of the box. I just want to label my project as "webapp", "library", "user application" or whatever, tell it my dependencies, and have it all just work.
But sadly, I am still forced to write a lot of stuff into my project descriptors that I shouldn't have to... like for generating an assembly or an RPM - these should just work out of the box. I just want to label my project as "webapp", "library", "user application" or whatever, tell it my dependencies, and have it all just work.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It is fine that you don't like Groovy, no problem its a free world. However, this is the first article I have seen (and as I said I disagree with it and it is not the view of the Groovy community) that has stated Groovy is going to replace Java, most of that noise has come from the Ruby/Scala/Erlang/x language camps.
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
Groovy offers joint Java compilation, meaning that .java and .groovy files get compiled at the same time. Java classes can thus extend Groovy classes without a glitch.
As Groovy IDE support improves - which is already decent for IntelliJ - more and more frameworks for Java will be written - at least in part - in Groovy. This is already happening.
As Groovy starts to play an increasing role in software development an increasing number of developers will be touched. Think Grails, think easyb, think of some novel new use of Groovy yourself.
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
"Building a better Maven with Ant"? Do you guys know the history of Maven? Maven was once a layer on top of Ant (say: "a better Ant" ;-) ). After the developers discovered, that Ant is not flexible enough, they created their own stack.
If this is true they made a huge mistake. One word: AntBuilder.
Maven is not just for dependency management. Its strengths lie in a comprehensive project structure and plugins, that make project management easy. With maven, you only set up a project descriptor. With Ant you have to create all the steps for yourself. With a working project descriptor, Maven can execute many reports and tools, such as building a website, creating documentation, running tests, publishing files etc. With Ant you have to do it all by yourself. Want some more? With a project descriptor, you can create IDE specific project files on the fly. You work with Netbeans, but your co-worker works with Eclipse? No problem.
Great ideas, unfortunately not very well implemented. These ideas are not unique to Maven. A Maven killer could easily provide them while at the same time make users happy, like Maven should do.
"Building a better Maven with Ant"? Do you guys know the history of Maven? Maven was once a layer on top of Ant (say: "a better Ant" ;-) ). After the developers discovered, that Ant is not flexible enough, they created their own stack.
If this is true they made a huge mistake. One word: AntBuilder.
Maven is not just for dependency management. Its strengths lie in a comprehensive project structure and plugins, that make project management easy. With maven, you only set up a project descriptor. With Ant you have to create all the steps for yourself. With a working project descriptor, Maven can execute many reports and tools, such as building a website, creating documentation, running tests, publishing files etc. With Ant you have to do it all by yourself. Want some more? With a project descriptor, you can create IDE specific project files on the fly. You work with Netbeans, but your co-worker works with Eclipse? No problem.
Great ideas, unfortunately not very well implemented. These ideas are not unique to Maven. A Maven killer could easily provide them while at the same time make users happy, like Maven should do.
"Building a better Maven with Ant"? Do you guys know the history of Maven? Maven was once a layer on top of Ant (say: "a better Ant" ;-) ). After the developers discovered, that Ant is not flexible enough, they created their own stack.
If this is true they made a huge mistake. One word: AntBuilder.
Maven is not just for dependency management. Its strengths lie in a comprehensive project structure and plugins, that make project management easy. With maven, you only set up a project descriptor. With Ant you have to create all the steps for yourself. With a working project descriptor, Maven can execute many reports and tools, such as building a website, creating documentation, running tests, publishing files etc. With Ant you have to do it all by yourself. Want some more? With a project descriptor, you can create IDE specific project files on the fly. You work with Netbeans, but your co-worker works with Eclipse? No problem.
Great ideas, unfortunately not very well implemented. These ideas are not unique to Maven. A Maven killer could easily provide them while at the same time make users happy, like Maven should do.
"Building a better Maven with Ant"? Do you guys know the history of Maven? Maven was once a layer on top of Ant (say: "a better Ant" ;-) ). After the developers discovered, that Ant is not flexible enough, they created their own stack.
If this is true they made a huge mistake. One word: AntBuilder.
Maven is not just for dependency management. Its strengths lie in a comprehensive project structure and plugins, that make project management easy. With maven, you only set up a project descriptor. With Ant you have to create all the steps for yourself. With a working project descriptor, Maven can execute many reports and tools, such as building a website, creating documentation, running tests, publishing files etc. With Ant you have to do it all by yourself. Want some more? With a project descriptor, you can create IDE specific project files on the fly. You work with Netbeans, but your co-worker works with Eclipse? No problem.
Great ideas, unfortunately not very well implemented. These ideas are not unique to Maven. A Maven killer could easily provide them while at the same time make users happy, like Maven should do.
"Building a better Maven with Ant"? Do you guys know the history of Maven? Maven was once a layer on top of Ant (say: "a better Ant" ;-) ). After the developers discovered, that Ant is not flexible enough, they created their own stack.
If this is true they made a huge mistake. One word: AntBuilder.
Maven is not just for dependency management. Its strengths lie in a comprehensive project structure and plugins, that make project management easy. With maven, you only set up a project descriptor. With Ant you have to create all the steps for yourself. With a working project descriptor, Maven can execute many reports and tools, such as building a website, creating documentation, running tests, publishing files etc. With Ant you have to do it all by yourself. Want some more? With a project descriptor, you can create IDE specific project files on the fly. You work with Netbeans, but your co-worker works with Eclipse? No problem.
Great ideas, unfortunately not very well implemented. These ideas are not unique to Maven. A Maven killer could easily provide them while at the same time make users happy, like Maven should do.
"Building a better Maven with Ant"? Do you guys know the history of Maven? Maven was once a layer on top of Ant (say: "a better Ant" ;-) ). After the developers discovered, that Ant is not flexible enough, they created their own stack.
If this is true they made a huge mistake. One word: AntBuilder.
Maven is not just for dependency management. Its strengths lie in a comprehensive project structure and plugins, that make project management easy. With maven, you only set up a project descriptor. With Ant you have to create all the steps for yourself. With a working project descriptor, Maven can execute many reports and tools, such as building a website, creating documentation, running tests, publishing files etc. With Ant you have to do it all by yourself. Want some more? With a project descriptor, you can create IDE specific project files on the fly. You work with Netbeans, but your co-worker works with Eclipse? No problem.
Great ideas, unfortunately not very well implemented. These ideas are not unique to Maven. A Maven killer could easily provide them while at the same time make users happy, like Maven should do.
I can assure you that "Maven sucks" exists in the real world. As the Don Brown interview indicated, as I have repeated on numerous occasions and as other people continuously repeat Maven 2 makes its users loose time.
What's hard about big Ant files is the chore of setting up and maintaining them. Understanding the individual Ant tasks is not very hard, most if not all of them have decent documentation.
I've used the kind of common Ant files that Xavier proposes, they included Ivy support. The problems they caused for me is similar to my Maven 2 experience: when some unexpected error occurs, I may have to understand the internals of the black box I'm using in order to figure out the cause of my error.
This is a waste of time when it happens often. The effort required is frustrating because I'm unsure whether or not the complex abstraction is the cause of my error. The effort is not rewarding since often the complex abstraction makes it harder to understand the cause of certain errors.
A common set of Ant files and Maven's plugin system both enforces such a complex abstraction on their users. I believe that build systems need to have these layers of complex abstraction. The only way to avoid frustration and waste of time with your users as much as possible is then to:
Design, design, get feedback, re-iterate, design, design, keep on designing, ... until your users are happy. The Maven brotherhood is doing some of this but far too little. Being religious about your design decisions does not help your users at all.
Focus on your users, a lot. If your users are complaining, listen to them. Try to understand their complaints and try to help them. Again, the Maven brotherhood comes across as a religious sect that thinks it is right and nagging users are wrong.
In my experience Xavier has a history of listening to his users and helping them so I'm looking forward to study the design of his proposal. The big problem for me is the Maven culture where a few people are deemed to have the right opinions and everybody else is wrong or "doesn't get Maven". Maven sucks because they get some things right yet using Maven hurts and there's no medicine.
I can assure you that "Maven sucks" exists in the real world. As the Don Brown interview indicated, as I have repeated on numerous occasions and as other people continuously repeat Maven 2 makes its users loose time.
What's hard about big Ant files is the chore of setting up and maintaining them. Understanding the individual Ant tasks is not very hard, most if not all of them have decent documentation.
I've used the kind of common Ant files that Xavier proposes, they included Ivy support. The problems they caused for me is similar to my Maven 2 experience: when some unexpected error occurs, I may have to understand the internals of the black box I'm using in order to figure out the cause of my error.
This is a waste of time when it happens often. The effort required is frustrating because I'm unsure whether or not the complex abstraction is the cause of my error. The effort is not rewarding since often the complex abstraction makes it harder to understand the cause of certain errors.
A common set of Ant files and Maven's plugin system both enforces such a complex abstraction on their users. I believe that build systems need to have these layers of complex abstraction. The only way to avoid frustration and waste of time with your users as much as possible is then to:
Design, design, get feedback, re-iterate, design, design, keep on designing, ... until your users are happy. The Maven brotherhood is doing some of this but far too little. Being religious about your design decisions does not help your users at all.
Focus on your users, a lot. If your users are complaining, listen to them. Try to understand their complaints and try to help them. Again, the Maven brotherhood comes across as a religious sect that thinks it is right and nagging users are wrong.
In my experience Xavier has a history of listening to his users and helping them so I'm looking forward to study the design of his proposal. The big problem for me is the Maven culture where a few people are deemed to have the right opinions and everybody else is wrong or "doesn't get Maven". Maven sucks because they get some things right yet using Maven hurts and there's no medicine.
interesting perspective. I never thought of builders as a state machine (which they are, of course). However, the most useful part would be to allow IDEs to provide developer support when using a builder, i.e. mark state machine violations. To that end, a machine definition like yours could help.
Yep, that's on the todo list. I'm not sure how an IDE would inspect this builder though so I need to hook up with people who can explain me this.
The "builder-builder-DSL" could still be improved, though. I wouldn’t go for the ".once()" approach because it is too limiting (it’s the Java-style of doing builders). How about something that follows more the route of groovy MockFor?
Sure, this needs to be improved. If you look at the StateMachine.groovy file you'll find the Transformation class. Any such methods need to be added there.
Another approach would be to define it in terms of a grammar (think DTD or EBNF).
Do you mean creating a builder from a BNF file?
Speaking in terms of state machines would also suggest to define the structure as a state-transition-matrix.
What this example does not show is that each level in the state machine definition is actually a separate state machine. The transitions (which are implicit here) create a link between two state machines. Once you go down one state machine you can't transform to a state defined in a higher state machine. So you can go down one level, not up, which is typical for builders. Steven
interesting perspective. I never thought of builders as a state machine (which they are, of course). However, the most useful part would be to allow IDEs to provide developer support when using a builder, i.e. mark state machine violations. To that end, a machine definition like yours could help.
Yep, that's on the todo list. I'm not sure how an IDE would inspect this builder though so I need to hook up with people who can explain me this.
The "builder-builder-DSL" could still be improved, though. I wouldn’t go for the ".once()" approach because it is too limiting (it’s the Java-style of doing builders). How about something that follows more the route of groovy MockFor?
Sure, this needs to be improved. If you look at the StateMachine.groovy file you'll find the Transformation class. Any such methods need to be added there.
Another approach would be to define it in terms of a grammar (think DTD or EBNF).
Do you mean creating a builder from a BNF file?
Speaking in terms of state machines would also suggest to define the structure as a state-transition-matrix.
What this example does not show is that each level in the state machine definition is actually a separate state machine. The transitions (which are implicit here) create a link between two state machines. Once you go down one state machine you can't transform to a state defined in a higher state machine. So you can go down one level, not up, which is typical for builders. Steven
interesting perspective. I never thought of builders as a state machine (which they are, of course). However, the most useful part would be to allow IDEs to provide developer support when using a builder, i.e. mark state machine violations. To that end, a machine definition like yours could help.
Yep, that's on the todo list. I'm not sure how an IDE would inspect this builder though so I need to hook up with people who can explain me this.
The "builder-builder-DSL" could still be improved, though. I wouldn’t go for the ".once()" approach because it is too limiting (it’s the Java-style of doing builders). How about something that follows more the route of groovy MockFor?
Sure, this needs to be improved. If you look at the StateMachine.groovy file you'll find the Transformation class. Any such methods need to be added there.
Another approach would be to define it in terms of a grammar (think DTD or EBNF).
Do you mean creating a builder from a BNF file?
Speaking in terms of state machines would also suggest to define the structure as a state-transition-matrix.
What this example does not show is that each level in the state machine definition is actually a separate state machine. The transitions (which are implicit here) create a link between two state machines. Once you go down one state machine you can't transform to a state defined in a higher state machine. So you can go down one level, not up, which is typical for builders. Steven
interesting perspective. I never thought of builders as a state machine (which they are, of course). However, the most useful part would be to allow IDEs to provide developer support when using a builder, i.e. mark state machine violations. To that end, a machine definition like yours could help.
Yep, that's on the todo list. I'm not sure how an IDE would inspect this builder though so I need to hook up with people who can explain me this.
The "builder-builder-DSL" could still be improved, though. I wouldn’t go for the ".once()" approach because it is too limiting (it’s the Java-style of doing builders). How about something that follows more the route of groovy MockFor?
Sure, this needs to be improved. If you look at the StateMachine.groovy file you'll find the Transformation class. Any such methods need to be added there.
Another approach would be to define it in terms of a grammar (think DTD or EBNF).
Do you mean creating a builder from a BNF file?
Speaking in terms of state machines would also suggest to define the structure as a state-transition-matrix.
What this example does not show is that each level in the state machine definition is actually a separate state machine. The transitions (which are implicit here) create a link between two state machines. Once you go down one state machine you can't transform to a state defined in a higher state machine. So you can go down one level, not up, which is typical for builders. Steven
interesting perspective. I never thought of builders as a state machine (which they are, of course). However, the most useful part would be to allow IDEs to provide developer support when using a builder, i.e. mark state machine violations. To that end, a machine definition like yours could help.
Yep, that's on the todo list. I'm not sure how an IDE would inspect this builder though so I need to hook up with people who can explain me this.
The "builder-builder-DSL" could still be improved, though. I wouldn’t go for the ".once()" approach because it is too limiting (it’s the Java-style of doing builders). How about something that follows more the route of groovy MockFor?
Sure, this needs to be improved. If you look at the StateMachine.groovy file you'll find the Transformation class. Any such methods need to be added there.
Another approach would be to define it in terms of a grammar (think DTD or EBNF).
Do you mean creating a builder from a BNF file?
Speaking in terms of state machines would also suggest to define the structure as a state-transition-matrix.
What this example does not show is that each level in the state machine definition is actually a separate state machine. The transitions (which are implicit here) create a link between two state machines. Once you go down one state machine you can't transform to a state defined in a higher state machine. So you can go down one level, not up, which is typical for builders. Steven
interesting perspective. I never thought of builders as a state machine (which they are, of course). However, the most useful part would be to allow IDEs to provide developer support when using a builder, i.e. mark state machine violations. To that end, a machine definition like yours could help.
Yep, that's on the todo list. I'm not sure how an IDE would inspect this builder though so I need to hook up with people who can explain me this.
The "builder-builder-DSL" could still be improved, though. I wouldn’t go for the ".once()" approach because it is too limiting (it’s the Java-style of doing builders). How about something that follows more the route of groovy MockFor?
Sure, this needs to be improved. If you look at the StateMachine.groovy file you'll find the Transformation class. Any such methods need to be added there.
Another approach would be to define it in terms of a grammar (think DTD or EBNF).
Do you mean creating a builder from a BNF file?
Speaking in terms of state machines would also suggest to define the structure as a state-transition-matrix.
What this example does not show is that each level in the state machine definition is actually a separate state machine. The transitions (which are implicit here) create a link between two state machines. Once you go down one state machine you can't transform to a state defined in a higher state machine. So you can go down one level, not up, which is typical for builders. Steven
interesting perspective. I never thought of builders as a state machine (which they are, of course). However, the most useful part would be to allow IDEs to provide developer support when using a builder, i.e. mark state machine violations. To that end, a machine definition like yours could help.
Yep, that's on the todo list. I'm not sure how an IDE would inspect this builder though so I need to hook up with people who can explain me this.
The "builder-builder-DSL" could still be improved, though. I wouldn’t go for the ".once()" approach because it is too limiting (it’s the Java-style of doing builders). How about something that follows more the route of groovy MockFor?
Sure, this needs to be improved. If you look at the StateMachine.groovy file you'll find the Transformation class. Any such methods need to be added there.
Another approach would be to define it in terms of a grammar (think DTD or EBNF).
Do you mean creating a builder from a BNF file?
Speaking in terms of state machines would also suggest to define the structure as a state-transition-matrix.
What this example does not show is that each level in the state machine definition is actually a separate state machine. The transitions (which are implicit here) create a link between two state machines. Once you go down one state machine you can't transform to a state defined in a higher state machine. So you can go down one level, not up, which is typical for builders. Steven
interesting perspective. I never thought of builders as a state machine (which they are, of course). However, the most useful part would be to allow IDEs to provide developer support when using a builder, i.e. mark state machine violations. To that end, a machine definition like yours could help.
Yep, that's on the todo list. I'm not sure how an IDE would inspect this builder though so I need to hook up with people who can explain me this.
The "builder-builder-DSL" could still be improved, though. I wouldn’t go for the ".once()" approach because it is too limiting (it’s the Java-style of doing builders). How about something that follows more the route of groovy MockFor?
Sure, this needs to be improved. If you look at the StateMachine.groovy file you'll find the Transformation class. Any such methods need to be added there.
Another approach would be to define it in terms of a grammar (think DTD or EBNF).
Do you mean creating a builder from a BNF file?
Speaking in terms of state machines would also suggest to define the structure as a state-transition-matrix.
What this example does not show is that each level in the state machine definition is actually a separate state machine. The transitions (which are implicit here) create a link between two state machines. Once you go down one state machine you can't transform to a state defined in a higher state machine. So you can go down one level, not up, which is typical for builders. Steven
Notice that I nowhere in the article claim that Spring MVC is paramount to writing web applications. If you're happy with EJB3, suit yourself. Grails is not based on EJB3 so I didn't mention Rails-istas dismiss it as well.
# 1.) Concept of transitive dependencies works well, but there is lack of well defined POM descriptors in most cases for OSS libraries. Absolut classic is Jakarta Commons Logging with Servlet API dependency. This is not problem of concept Atransitive dependencies, but crap POMs. There is simple solution, use an internal repository and maintain POMs itself. This approach may work for internal project, but doesn`t work for OSS projects. Therefore repo1.maven.org should be maintained in a better way.
No it doesn't. I have project that has 10 dependencies. I depend on this project, but at runtime I only need 3 of those 10 libraries. What do I do?
# 2.) Use dependency management and collect all you dependencies and plugins to a central project POM.
It's not a problem of configuration. Problem is that users are exposed to arbitrary upgrades of plugins. Also, most of the time there is no serious release management of plugins because it's not part of the Maven culture. Instead new versions of plugins are literally dumped in the Maven repository without much concern. And sometimes plugin JAR files are updated without updating the version number.
# 3.) It`s funny because it isn`t problem of Maven. It is as saying that Eclipse is bad since there are poorly implemented plugins.
Maven is nothing without the plugins, and the Maven team also develops the core plugins. Considering Maven and its plugins are discrete things is a production of the Maven brotherhood. For Maven users there is no such distinction. Btw, Eclipse does ship with a lot of default plugins.
# 4.) From my point of view is better to depend on something what`ve been tested.
That's your opinion. My build system should automatically build the projects I depend on when I build my project if I choose so. What's the added value of being confronted with your or anybody else's opinions when building my software?
# 1.) Concept of transitive dependencies works well, but there is lack of well defined POM descriptors in most cases for OSS libraries. Absolut classic is Jakarta Commons Logging with Servlet API dependency. This is not problem of concept Atransitive dependencies, but crap POMs. There is simple solution, use an internal repository and maintain POMs itself. This approach may work for internal project, but doesn`t work for OSS projects. Therefore repo1.maven.org should be maintained in a better way.
No it doesn't. I have project that has 10 dependencies. I depend on this project, but at runtime I only need 3 of those 10 libraries. What do I do?
# 2.) Use dependency management and collect all you dependencies and plugins to a central project POM.
It's not a problem of configuration. Problem is that users are exposed to arbitrary upgrades of plugins. Also, most of the time there is no serious release management of plugins because it's not part of the Maven culture. Instead new versions of plugins are literally dumped in the Maven repository without much concern. And sometimes plugin JAR files are updated without updating the version number.
# 3.) It`s funny because it isn`t problem of Maven. It is as saying that Eclipse is bad since there are poorly implemented plugins.
Maven is nothing without the plugins, and the Maven team also develops the core plugins. Considering Maven and its plugins are discrete things is a production of the Maven brotherhood. For Maven users there is no such distinction. Btw, Eclipse does ship with a lot of default plugins.
# 4.) From my point of view is better to depend on something what`ve been tested.
That's your opinion. My build system should automatically build the projects I depend on when I build my project if I choose so. What's the added value of being confronted with your or anybody else's opinions when building my software?
# 1.) Concept of transitive dependencies works well, but there is lack of well defined POM descriptors in most cases for OSS libraries. Absolut classic is Jakarta Commons Logging with Servlet API dependency. This is not problem of concept Atransitive dependencies, but crap POMs. There is simple solution, use an internal repository and maintain POMs itself. This approach may work for internal project, but doesn`t work for OSS projects. Therefore repo1.maven.org should be maintained in a better way.
No it doesn't. I have project that has 10 dependencies. I depend on this project, but at runtime I only need 3 of those 10 libraries. What do I do?
# 2.) Use dependency management and collect all you dependencies and plugins to a central project POM.
It's not a problem of configuration. Problem is that users are exposed to arbitrary upgrades of plugins. Also, most of the time there is no serious release management of plugins because it's not part of the Maven culture. Instead new versions of plugins are literally dumped in the Maven repository without much concern. And sometimes plugin JAR files are updated without updating the version number.
# 3.) It`s funny because it isn`t problem of Maven. It is as saying that Eclipse is bad since there are poorly implemented plugins.
Maven is nothing without the plugins, and the Maven team also develops the core plugins. Considering Maven and its plugins are discrete things is a production of the Maven brotherhood. For Maven users there is no such distinction. Btw, Eclipse does ship with a lot of default plugins.
# 4.) From my point of view is better to depend on something what`ve been tested.
That's your opinion. My build system should automatically build the projects I depend on when I build my project if I choose so. What's the added value of being confronted with your or anybody else's opinions when building my software?
# 1.) Concept of transitive dependencies works well, but there is lack of well defined POM descriptors in most cases for OSS libraries. Absolut classic is Jakarta Commons Logging with Servlet API dependency. This is not problem of concept Atransitive dependencies, but crap POMs. There is simple solution, use an internal repository and maintain POMs itself. This approach may work for internal project, but doesn`t work for OSS projects. Therefore repo1.maven.org should be maintained in a better way.
No it doesn't. I have project that has 10 dependencies. I depend on this project, but at runtime I only need 3 of those 10 libraries. What do I do?
# 2.) Use dependency management and collect all you dependencies and plugins to a central project POM.
It's not a problem of configuration. Problem is that users are exposed to arbitrary upgrades of plugins. Also, most of the time there is no serious release management of plugins because it's not part of the Maven culture. Instead new versions of plugins are literally dumped in the Maven repository without much concern. And sometimes plugin JAR files are updated without updating the version number.
# 3.) It`s funny because it isn`t problem of Maven. It is as saying that Eclipse is bad since there are poorly implemented plugins.
Maven is nothing without the plugins, and the Maven team also develops the core plugins. Considering Maven and its plugins are discrete things is a production of the Maven brotherhood. For Maven users there is no such distinction. Btw, Eclipse does ship with a lot of default plugins.
# 4.) From my point of view is better to depend on something what`ve been tested.
That's your opinion. My build system should automatically build the projects I depend on when I build my project if I choose so. What's the added value of being confronted with your or anybody else's opinions when building my software?
# 1.) Concept of transitive dependencies works well, but there is lack of well defined POM descriptors in most cases for OSS libraries. Absolut classic is Jakarta Commons Logging with Servlet API dependency. This is not problem of concept Atransitive dependencies, but crap POMs. There is simple solution, use an internal repository and maintain POMs itself. This approach may work for internal project, but doesn`t work for OSS projects. Therefore repo1.maven.org should be maintained in a better way.
No it doesn't. I have project that has 10 dependencies. I depend on this project, but at runtime I only need 3 of those 10 libraries. What do I do?
# 2.) Use dependency management and collect all you dependencies and plugins to a central project POM.
It's not a problem of configuration. Problem is that users are exposed to arbitrary upgrades of plugins. Also, most of the time there is no serious release management of plugins because it's not part of the Maven culture. Instead new versions of plugins are literally dumped in the Maven repository without much concern. And sometimes plugin JAR files are updated without updating the version number.
# 3.) It`s funny because it isn`t problem of Maven. It is as saying that Eclipse is bad since there are poorly implemented plugins.
Maven is nothing without the plugins, and the Maven team also develops the core plugins. Considering Maven and its plugins are discrete things is a production of the Maven brotherhood. For Maven users there is no such distinction. Btw, Eclipse does ship with a lot of default plugins.
# 4.) From my point of view is better to depend on something what`ve been tested.
That's your opinion. My build system should automatically build the projects I depend on when I build my project if I choose so. What's the added value of being confronted with your or anybody else's opinions when building my software?
# 1.) Concept of transitive dependencies works well, but there is lack of well defined POM descriptors in most cases for OSS libraries. Absolut classic is Jakarta Commons Logging with Servlet API dependency. This is not problem of concept Atransitive dependencies, but crap POMs. There is simple solution, use an internal repository and maintain POMs itself. This approach may work for internal project, but doesn`t work for OSS projects. Therefore repo1.maven.org should be maintained in a better way.
No it doesn't. I have project that has 10 dependencies. I depend on this project, but at runtime I only need 3 of those 10 libraries. What do I do?
# 2.) Use dependency management and collect all you dependencies and plugins to a central project POM.
It's not a problem of configuration. Problem is that users are exposed to arbitrary upgrades of plugins. Also, most of the time there is no serious release management of plugins because it's not part of the Maven culture. Instead new versions of plugins are literally dumped in the Maven repository without much concern. And sometimes plugin JAR files are updated without updating the version number.
# 3.) It`s funny because it isn`t problem of Maven. It is as saying that Eclipse is bad since there are poorly implemented plugins.
Maven is nothing without the plugins, and the Maven team also develops the core plugins. Considering Maven and its plugins are discrete things is a production of the Maven brotherhood. For Maven users there is no such distinction. Btw, Eclipse does ship with a lot of default plugins.
# 4.) From my point of view is better to depend on something what`ve been tested.
That's your opinion. My build system should automatically build the projects I depend on when I build my project if I choose so. What's the added value of being confronted with your or anybody else's opinions when building my software?
# 1.) Concept of transitive dependencies works well, but there is lack of well defined POM descriptors in most cases for OSS libraries. Absolut classic is Jakarta Commons Logging with Servlet API dependency. This is not problem of concept Atransitive dependencies, but crap POMs. There is simple solution, use an internal repository and maintain POMs itself. This approach may work for internal project, but doesn`t work for OSS projects. Therefore repo1.maven.org should be maintained in a better way.
No it doesn't. I have project that has 10 dependencies. I depend on this project, but at runtime I only need 3 of those 10 libraries. What do I do?
# 2.) Use dependency management and collect all you dependencies and plugins to a central project POM.
It's not a problem of configuration. Problem is that users are exposed to arbitrary upgrades of plugins. Also, most of the time there is no serious release management of plugins because it's not part of the Maven culture. Instead new versions of plugins are literally dumped in the Maven repository without much concern. And sometimes plugin JAR files are updated without updating the version number.
# 3.) It`s funny because it isn`t problem of Maven. It is as saying that Eclipse is bad since there are poorly implemented plugins.
Maven is nothing without the plugins, and the Maven team also develops the core plugins. Considering Maven and its plugins are discrete things is a production of the Maven brotherhood. For Maven users there is no such distinction. Btw, Eclipse does ship with a lot of default plugins.
# 4.) From my point of view is better to depend on something what`ve been tested.
That's your opinion. My build system should automatically build the projects I depend on when I build my project if I choose so. What's the added value of being confronted with your or anybody else's opinions when building my software?
# 1.) Concept of transitive dependencies works well, but there is lack of well defined POM descriptors in most cases for OSS libraries. Absolut classic is Jakarta Commons Logging with Servlet API dependency. This is not problem of concept Atransitive dependencies, but crap POMs. There is simple solution, use an internal repository and maintain POMs itself. This approach may work for internal project, but doesn`t work for OSS projects. Therefore repo1.maven.org should be maintained in a better way.
No it doesn't. I have project that has 10 dependencies. I depend on this project, but at runtime I only need 3 of those 10 libraries. What do I do?
# 2.) Use dependency management and collect all you dependencies and plugins to a central project POM.
It's not a problem of configuration. Problem is that users are exposed to arbitrary upgrades of plugins. Also, most of the time there is no serious release management of plugins because it's not part of the Maven culture. Instead new versions of plugins are literally dumped in the Maven repository without much concern. And sometimes plugin JAR files are updated without updating the version number.
# 3.) It`s funny because it isn`t problem of Maven. It is as saying that Eclipse is bad since there are poorly implemented plugins.
Maven is nothing without the plugins, and the Maven team also develops the core plugins. Considering Maven and its plugins are discrete things is a production of the Maven brotherhood. For Maven users there is no such distinction. Btw, Eclipse does ship with a lot of default plugins.
# 4.) From my point of view is better to depend on something what`ve been tested.
That's your opinion. My build system should automatically build the projects I depend on when I build my project if I choose so. What's the added value of being confronted with your or anybody else's opinions when building my software?
From a technical perspective Grails is clearly the winner compared to Rails, with a big margin. It's easier to deploy, easier to cluster, easier to integrate with Java applications, ... .
For many people these arguments do not matter and for many other they do. Saying that any one of both Rails or Grails is better in general is according to me baseless. It all depends on what you need.
And like with previous battles of the frameworks many people will continue to choose frameworks for the wrong reasons.
From a technical perspective Grails is clearly the winner compared to Rails, with a big margin. It's easier to deploy, easier to cluster, easier to integrate with Java applications, ... .
For many people these arguments do not matter and for many other they do. Saying that any one of both Rails or Grails is better in general is according to me baseless. It all depends on what you need.
And like with previous battles of the frameworks many people will continue to choose frameworks for the wrong reasons.
Every application is different, and one testing strategy may be a better fit than an other.
We test in the container a lot and it has helped us to increase the quality of our software dramatically, something that we could not achieve before when we focused on unit testing. Running tests takes a lot of time, we gladly accept that and have found ways to work around that problem.
Naturally, if you didn't specify exact version of plugin you are using in your pom.xml Maven will look for updates and will alsways use the latest version. That is why it is a good idea to always specify plugin versions and I would call it one of the most critical maven best practices.
That would indeed work if it were not that the old version is called 1.0-SNAPSHOT and the new version is called .... 1.0-SNAPSHOT.
Please, just release plugins together with the build system. Why be so persistent in doing the wrong thing?
Naturally, if you didn't specify exact version of plugin you are using in your pom.xml Maven will look for updates and will alsways use the latest version. That is why it is a good idea to always specify plugin versions and I would call it one of the most critical maven best practices.
That would indeed work if it were not that the old version is called 1.0-SNAPSHOT and the new version is called .... 1.0-SNAPSHOT.
Please, just release plugins together with the build system. Why be so persistent in doing the wrong thing?
Naturally, if you didn't specify exact version of plugin you are using in your pom.xml Maven will look for updates and will alsways use the latest version. That is why it is a good idea to always specify plugin versions and I would call it one of the most critical maven best practices.
That would indeed work if it were not that the old version is called 1.0-SNAPSHOT and the new version is called .... 1.0-SNAPSHOT.
Please, just release plugins together with the build system. Why be so persistent in doing the wrong thing?
Naturally, if you didn't specify exact version of plugin you are using in your pom.xml Maven will look for updates and will alsways use the latest version. That is why it is a good idea to always specify plugin versions and I would call it one of the most critical maven best practices.
That would indeed work if it were not that the old version is called 1.0-SNAPSHOT and the new version is called .... 1.0-SNAPSHOT.
Please, just release plugins together with the build system. Why be so persistent in doing the wrong thing?
Naturally, if you didn't specify exact version of plugin you are using in your pom.xml Maven will look for updates and will alsways use the latest version. That is why it is a good idea to always specify plugin versions and I would call it one of the most critical maven best practices.
That would indeed work if it were not that the old version is called 1.0-SNAPSHOT and the new version is called .... 1.0-SNAPSHOT.
Please, just release plugins together with the build system. Why be so persistent in doing the wrong thing?
Naturally, if you didn't specify exact version of plugin you are using in your pom.xml Maven will look for updates and will alsways use the latest version. That is why it is a good idea to always specify plugin versions and I would call it one of the most critical maven best practices.
That would indeed work if it were not that the old version is called 1.0-SNAPSHOT and the new version is called .... 1.0-SNAPSHOT.
Please, just release plugins together with the build system. Why be so persistent in doing the wrong thing?
As for JavaRebel, those are some extraordinary claims. Since there are no technical details and its not open source there's no way to know what is and what is not.
Ehmh... This really isn't some cat in a bag. Just download and try. We have a lot of happy users, which will testify for that as well.
Eh eh, no can do. I'm an open-source developer. I can't look at closed-source, IP-protected, subpoena-able software.
As for JavaRebel, those are some extraordinary claims. Since there are no technical details and its not open source there's no way to know what is and what is not.
Ehmh... This really isn't some cat in a bag. Just download and try. We have a lot of happy users, which will testify for that as well.
Eh eh, no can do. I'm an open-source developer. I can't look at closed-source, IP-protected, subpoena-able software.
As for JavaRebel, those are some extraordinary claims. Since there are no technical details and its not open source there's no way to know what is and what is not.
Ehmh... This really isn't some cat in a bag. Just download and try. We have a lot of happy users, which will testify for that as well.
Eh eh, no can do. I'm an open-source developer. I can't look at closed-source, IP-protected, subpoena-able software.
As for JavaRebel, those are some extraordinary claims. Since there are no technical details and its not open source there's no way to know what is and what is not.
Ehmh... This really isn't some cat in a bag. Just download and try. We have a lot of happy users, which will testify for that as well.
Eh eh, no can do. I'm an open-source developer. I can't look at closed-source, IP-protected, subpoena-able software.
As for JavaRebel, those are some extraordinary claims. Since there are no technical details and its not open source there's no way to know what is and what is not.
Ehmh... This really isn't some cat in a bag. Just download and try. We have a lot of happy users, which will testify for that as well.
Eh eh, no can do. I'm an open-source developer. I can't look at closed-source, IP-protected, subpoena-able software.
As for JavaRebel, those are some extraordinary claims. Since there are no technical details and its not open source there's no way to know what is and what is not.
Ehmh... This really isn't some cat in a bag. Just download and try. We have a lot of happy users, which will testify for that as well.
Eh eh, no can do. I'm an open-source developer. I can't look at closed-source, IP-protected, subpoena-able software.
So this expensive product actually can not reload applications when things get hairy. On top of that, it does nothing more than what Grails does in terms of reloading or what any other web framework could implement.
It reloads any changes to classes and works for all containers and all frameworks. Whereas Grails only works for Grails. And you will never get anything near the same level of support in web frameworks (at least not the Tap5 way). It works for pretty special cases, when the whole state of the instances is reconstructible, since without dropping all existing instances the classes will not reload. And even at that there are cases when it will fail due to classloader conflicting. JavaRebel uses a completely different approach.
What works for Grails can work for any other web framework. It just takes a guy - me? - to write a few classes and open-source them. As for JavaRebel, those are some extraordinary claims. Since there are no technical details and its not open source there's no way to know what is and what is not.
So this expensive product actually can not reload applications when things get hairy. On top of that, it does nothing more than what Grails does in terms of reloading or what any other web framework could implement.
It reloads any changes to classes and works for all containers and all frameworks. Whereas Grails only works for Grails. And you will never get anything near the same level of support in web frameworks (at least not the Tap5 way). It works for pretty special cases, when the whole state of the instances is reconstructible, since without dropping all existing instances the classes will not reload. And even at that there are cases when it will fail due to classloader conflicting. JavaRebel uses a completely different approach.
What works for Grails can work for any other web framework. It just takes a guy - me? - to write a few classes and open-source them. As for JavaRebel, those are some extraordinary claims. Since there are no technical details and its not open source there's no way to know what is and what is not.
So this expensive product actually can not reload applications when things get hairy. On top of that, it does nothing more than what Grails does in terms of reloading or what any other web framework could implement.
It reloads any changes to classes and works for all containers and all frameworks. Whereas Grails only works for Grails. And you will never get anything near the same level of support in web frameworks (at least not the Tap5 way). It works for pretty special cases, when the whole state of the instances is reconstructible, since without dropping all existing instances the classes will not reload. And even at that there are cases when it will fail due to classloader conflicting. JavaRebel uses a completely different approach.
What works for Grails can work for any other web framework. It just takes a guy - me? - to write a few classes and open-source them. As for JavaRebel, those are some extraordinary claims. Since there are no technical details and its not open source there's no way to know what is and what is not.
So this expensive product actually can not reload applications when things get hairy. On top of that, it does nothing more than what Grails does in terms of reloading or what any other web framework could implement.
It reloads any changes to classes and works for all containers and all frameworks. Whereas Grails only works for Grails. And you will never get anything near the same level of support in web frameworks (at least not the Tap5 way). It works for pretty special cases, when the whole state of the instances is reconstructible, since without dropping all existing instances the classes will not reload. And even at that there are cases when it will fail due to classloader conflicting. JavaRebel uses a completely different approach.
What works for Grails can work for any other web framework. It just takes a guy - me? - to write a few classes and open-source them. As for JavaRebel, those are some extraordinary claims. Since there are no technical details and its not open source there's no way to know what is and what is not.
So this expensive product actually can not reload applications when things get hairy. On top of that, it does nothing more than what Grails does in terms of reloading or what any other web framework could implement.
It reloads any changes to classes and works for all containers and all frameworks. Whereas Grails only works for Grails. And you will never get anything near the same level of support in web frameworks (at least not the Tap5 way). It works for pretty special cases, when the whole state of the instances is reconstructible, since without dropping all existing instances the classes will not reload. And even at that there are cases when it will fail due to classloader conflicting. JavaRebel uses a completely different approach.
What works for Grails can work for any other web framework. It just takes a guy - me? - to write a few classes and open-source them. As for JavaRebel, those are some extraordinary claims. Since there are no technical details and its not open source there's no way to know what is and what is not.
So this expensive product actually can not reload applications when things get hairy. On top of that, it does nothing more than what Grails does in terms of reloading or what any other web framework could implement.
It reloads any changes to classes and works for all containers and all frameworks. Whereas Grails only works for Grails. And you will never get anything near the same level of support in web frameworks (at least not the Tap5 way). It works for pretty special cases, when the whole state of the instances is reconstructible, since without dropping all existing instances the classes will not reload. And even at that there are cases when it will fail due to classloader conflicting. JavaRebel uses a completely different approach.
What works for Grails can work for any other web framework. It just takes a guy - me? - to write a few classes and open-source them. As for JavaRebel, those are some extraordinary claims. Since there are no technical details and its not open source there's no way to know what is and what is not.
If this expensive product can keep a Hibernate SessionFactory object working after a reload of domain classes, I'd be impressed.
Domain classes will update without a glitch, but of course you need to rebuild the session factory at the moment. It's really not that much of a problem, as database schema does not update too often. Of more concern are Dependency Injection frameworks like Spring, since business layer is updated much more often. We do have some plans for those.
So this expensive product actually can not reload applications when things get hairy. On top of that, it does nothing more than what Grails does in terms of reloading or what any other web framework could implement.
If this expensive product can keep a Hibernate SessionFactory object working after a reload of domain classes, I'd be impressed.
Domain classes will update without a glitch, but of course you need to rebuild the session factory at the moment. It's really not that much of a problem, as database schema does not update too often. Of more concern are Dependency Injection frameworks like Spring, since business layer is updated much more often. We do have some plans for those.
So this expensive product actually can not reload applications when things get hairy. On top of that, it does nothing more than what Grails does in terms of reloading or what any other web framework could implement.
If this expensive product can keep a Hibernate SessionFactory object working after a reload of domain classes, I'd be impressed.
Domain classes will update without a glitch, but of course you need to rebuild the session factory at the moment. It's really not that much of a problem, as database schema does not update too often. Of more concern are Dependency Injection frameworks like Spring, since business layer is updated much more often. We do have some plans for those.
So this expensive product actually can not reload applications when things get hairy. On top of that, it does nothing more than what Grails does in terms of reloading or what any other web framework could implement.
If this expensive product can keep a Hibernate SessionFactory object working after a reload of domain classes, I'd be impressed.
Domain classes will update without a glitch, but of course you need to rebuild the session factory at the moment. It's really not that much of a problem, as database schema does not update too often. Of more concern are Dependency Injection frameworks like Spring, since business layer is updated much more often. We do have some plans for those.
So this expensive product actually can not reload applications when things get hairy. On top of that, it does nothing more than what Grails does in terms of reloading or what any other web framework could implement.
If this expensive product can keep a Hibernate SessionFactory object working after a reload of domain classes, I'd be impressed.
Domain classes will update without a glitch, but of course you need to rebuild the session factory at the moment. It's really not that much of a problem, as database schema does not update too often. Of more concern are Dependency Injection frameworks like Spring, since business layer is updated much more often. We do have some plans for those.
So this expensive product actually can not reload applications when things get hairy. On top of that, it does nothing more than what Grails does in terms of reloading or what any other web framework could implement.
If this expensive product can keep a Hibernate SessionFactory object working after a reload of domain classes, I'd be impressed.
Domain classes will update without a glitch, but of course you need to rebuild the session factory at the moment. It's really not that much of a problem, as database schema does not update too often. Of more concern are Dependency Injection frameworks like Spring, since business layer is updated much more often. We do have some plans for those.
So this expensive product actually can not reload applications when things get hairy. On top of that, it does nothing more than what Grails does in terms of reloading or what any other web framework could implement.
One of the bigger issues in Maven's design is that plugins are not released with the build system.
Automatically updating plugins is non-sense. For example, just yesterday the Emma plugin was updated, out of the blue. We had to upgrade to Maven 2.0.8 on all our developer machines and CI machines.
Maven is supposed to be about gaining time and not developing the build system, remember?
One of the bigger issues in Maven's design is that plugins are not released with the build system.
Automatically updating plugins is non-sense. For example, just yesterday the Emma plugin was updated, out of the blue. We had to upgrade to Maven 2.0.8 on all our developer machines and CI machines.
Maven is supposed to be about gaining time and not developing the build system, remember?
And thats where "expensive" products come in. JavaRebel really does reload everything and always.
It's not the actual reloading that is hard, it's letting an application work without a glitch after reloading. If this expensive product can keep a Hibernate SessionFactory object working after a reload of domain classes, I'd be impressed.
And thats where "expensive" products come in. JavaRebel really does reload everything and always.
It's not the actual reloading that is hard, it's letting an application work without a glitch after reloading. If this expensive product can keep a Hibernate SessionFactory object working after a reload of domain classes, I'd be impressed.
And thats where "expensive" products come in. JavaRebel really does reload everything and always.
It's not the actual reloading that is hard, it's letting an application work without a glitch after reloading. If this expensive product can keep a Hibernate SessionFactory object working after a reload of domain classes, I'd be impressed.
And thats where "expensive" products come in. JavaRebel really does reload everything and always.
It's not the actual reloading that is hard, it's letting an application work without a glitch after reloading. If this expensive product can keep a Hibernate SessionFactory object working after a reload of domain classes, I'd be impressed.
And thats where "expensive" products come in. JavaRebel really does reload everything and always.
It's not the actual reloading that is hard, it's letting an application work without a glitch after reloading. If this expensive product can keep a Hibernate SessionFactory object working after a reload of domain classes, I'd be impressed.
And thats where "expensive" products come in. JavaRebel really does reload everything and always.
It's not the actual reloading that is hard, it's letting an application work without a glitch after reloading. If this expensive product can keep a Hibernate SessionFactory object working after a reload of domain classes, I'd be impressed.
Actually, reloading a controller/action class is pretty easy to implement. Grails and Tapestry 5 have it. Spring supports reloading of Groovy classes.
It's important to understand that reloading classes involves playing with the Java ClassLoader so there's no difference between Java and Groovy. You also don't need expensive products :-)
Actually, reloading a controller/action class is pretty easy to implement. Grails and Tapestry 5 have it. Spring supports reloading of Groovy classes.
It's important to understand that reloading classes involves playing with the Java ClassLoader so there's no difference between Java and Groovy. You also don't need expensive products :-)
I wrote a Builder once with BuilderSupport and I found it not intuitive at all. BuilderSupport is a good solution if you want to write a Builder in Java, but in Groovy EMC and delegates is in my opinion more interesting.
You can still call upon propertyMissing() and methodMissing() if you want to. Actually, it would be nice if
I wrote a Builder once with BuilderSupport and I found it not intuitive at all. BuilderSupport is a good solution if you want to write a Builder in Java, but in Groovy EMC and delegates is in my opinion more interesting.
You can still call upon propertyMissing() and methodMissing() if you want to. Actually, it would be nice if
Honestly, I've never needed a distributed cache or anything of the sorts. I did need JMS queues and distributed transactions a lot. No matter who buys it, WebLogic simply is the best application server out there. They leave JBoss, Geronimo and GlassFish far behind them (hint: try to use a DataSource remotely with any of these three). GigaSpaces does not help me either. As a WebLogic customer I wouldn't know how to get started to tackle my problems with GigaSpaces and Tomcat.
Some of the more serious Maven problems: - no difference is made between dependencies on other projects and dependencies on libraries - Maven pom files are horrible and a terrible joke - remove your local repository cache and plugin hell ensues - plugins are updated ad hoc, without warning - you invariably have 3 to 4 versions of commons-collection, commons-lang, asm and junit in your local repository due to plugin depedencies - painful XML configuration - writing a plugin is much more painful than it should be - good luck adding new life-cycles - Godspeed adding existing plugins to new life-cycles - Maven code quality is very bad - Very few updates and no work on serious problems - Plugin development is so complicated that even the Maven brotherhood doesn't bother anymore Some easy enough solutions that the Maven brotherhood refuses to apply: - release your plugins with your build tool, no automagic updates - if you don't want to go through the trouble of updating the dependencies of a plugin then what's the plugin worth? Some solutions that are harder to implement (mainly due to poor code quality of the core Maven code): - easier plugins - other configuration options than XML - more regular updates - stupid and annoying bugs due to lack of design And then there's the design debate. Build tools can and should be much better designed and far more extensible than Maven is.
These 2313 guys are supposed to be "usability experts", they care about the human interaction. While I'm watching their video I'm struck with awe and am disgusted at the same time. These people maybe look like 23 year olds but they talk like 13 year olds. Their message is: "we're better than you", "desktop 2.0 is far better than web2.0". They may even be right about what they're saying and they certainly know how to create beautiful applications. But the way they bring their messages is all wrong. I went to their website. It's again amazingly well designed: very easy to look at and you find your way around things without a hitch. But when you start to read the text on the home page you're back at the 13 year old bullies. Awe and disgust, interesting combination but not at all interesting for me. Is this industry really doomed to be bullied by DHH clones?
*Rolling over the floor laughing* Seriously, better exceptions has been in Spring for 3 years now. In JDBC 4 the exception you get depends on the quality of your JDBC driver. You can still get lousy exceptions if you're driver, well has problems. Or, if you don't have a JDBC 4 driver for your database. Spring simply looks at the database type and does the translation regarless of JDBC drivers. And it works for any JDBC driver. Many years too late and not adequate.
I just want to warn everybody this article risks to confuse you more than anything else. Look here for more detail: http://www.jroller.com/page/sdevijver?entry=don_t_test_java_in
Comments
Feb 19, 2008 · Chevol Davis
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
Feb 19, 2008 · Chevol Davis
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
Feb 19, 2008 · Chevol Davis
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
Feb 19, 2008 · Chevol Davis
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
Feb 19, 2008 · Steven Devijver
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
Feb 19, 2008 · Steven Devijver
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
Feb 19, 2008 · Steven Devijver
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
Feb 19, 2008 · Steven Devijver
Before running the Java code it needs to be compiled. And after compiling it it needs to be loaded by a ClassLoader. Only then can the Java code actually be executed. This brings up all kinds of questions, like which class name and package name to use. Also, this Java code won't be compiled before the build system runs which is not what Java developers are used to.
This needs to be looked in to. It probably works technically - at least on paper - but if it becomes too weird and cumbersome for developers to write Java build code it may not be worth the while.
Feb 19, 2008 · Steven Devijver
Feb 19, 2008 · Chevol Davis
There's a lot of room for innovation.
Feb 19, 2008 · Chevol Davis
There's a lot of room for innovation.
Feb 19, 2008 · Chevol Davis
There's a lot of room for innovation.
Feb 19, 2008 · Steven Devijver
There's a lot of room for innovation.
Feb 19, 2008 · Steven Devijver
There's a lot of room for innovation.
Feb 19, 2008 · Steven Devijver
There's a lot of room for innovation.
Feb 18, 2008 · Steven Devijver
Feb 18, 2008 · Chevol Davis
That's certainly something we're considering, although supporting Java code for writing build scripts come with a lot of technical hurdles. I think it can be done technical. Remains to be seen if writing this Java code will be easy and straightforward enough.
Feb 18, 2008 · Chevol Davis
That's certainly something we're considering, although supporting Java code for writing build scripts come with a lot of technical hurdles. I think it can be done technical. Remains to be seen if writing this Java code will be easy and straightforward enough.
Feb 18, 2008 · Chevol Davis
That's certainly something we're considering, although supporting Java code for writing build scripts come with a lot of technical hurdles. I think it can be done technical. Remains to be seen if writing this Java code will be easy and straightforward enough.
Feb 18, 2008 · Steven Devijver
That's certainly something we're considering, although supporting Java code for writing build scripts come with a lot of technical hurdles. I think it can be done technical. Remains to be seen if writing this Java code will be easy and straightforward enough.
Feb 18, 2008 · Steven Devijver
That's certainly something we're considering, although supporting Java code for writing build scripts come with a lot of technical hurdles. I think it can be done technical. Remains to be seen if writing this Java code will be easy and straightforward enough.
Feb 18, 2008 · Steven Devijver
That's certainly something we're considering, although supporting Java code for writing build scripts come with a lot of technical hurdles. I think it can be done technical. Remains to be seen if writing this Java code will be easy and straightforward enough.
Feb 18, 2008 · Chevol Davis
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Feb 18, 2008 · Chevol Davis
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Feb 18, 2008 · Chevol Davis
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Feb 18, 2008 · Chevol Davis
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Feb 18, 2008 · Steven Devijver
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Feb 18, 2008 · Steven Devijver
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Feb 18, 2008 · Steven Devijver
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Feb 18, 2008 · Steven Devijver
LOL
Hopefully this new build system makes sense. If Maven 2 works for you then we're happy about that. We just want to offer an alternative for people that are interested.
About the Maven bashing, I'm guilty as charged. However, I've been bashing Maven 2 long before I got involved in this new build system. Actually, I got involved because I think build systems can and should be better than Maven 2.
Feb 17, 2008 · Chevol Davis
These conventions are valuable. There is however no value in enforcing them.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Feb 17, 2008 · Chevol Davis
These conventions are valuable. There is however no value in enforcing them.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Feb 17, 2008 · Chevol Davis
These conventions are valuable. There is however no value in enforcing them.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Feb 17, 2008 · Chevol Davis
These conventions are valuable. There is however no value in enforcing them.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Feb 17, 2008 · Steven Devijver
These conventions are valuable. There is however no value in enforcing them.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Feb 17, 2008 · Steven Devijver
These conventions are valuable. There is however no value in enforcing them.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Feb 17, 2008 · Steven Devijver
These conventions are valuable. There is however no value in enforcing them.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Feb 17, 2008 · Steven Devijver
These conventions are valuable. There is however no value in enforcing them.
Criticism on Maven 2 is founded. The core Maven 2 build system and its core plugins is poorly implemented. Bug fix releases are too few. Maven 2 and its developer team just don't seem to have what it takes to take developers down the new road.
Blaming developers is too easy. One interesting thing to notice though is that as far as I know there is today no other build system that tries to mimic Maven 2's conventions. That's about to change.
Feb 17, 2008 · Chevol Davis
We want the same thing ;-)
Feb 17, 2008 · Chevol Davis
We want the same thing ;-)
Feb 17, 2008 · Chevol Davis
We want the same thing ;-)
Feb 17, 2008 · Chevol Davis
We want the same thing ;-)
Feb 17, 2008 · Steven Devijver
We want the same thing ;-)
Feb 17, 2008 · Steven Devijver
We want the same thing ;-)
Feb 17, 2008 · Steven Devijver
We want the same thing ;-)
Feb 17, 2008 · Steven Devijver
We want the same thing ;-)
Feb 17, 2008 · Steven Devijver
Feb 14, 2008 · Ahmed Hashim
Feb 14, 2008 · Alex Miller
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Tony Colston
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Graeme, I feel I have to respond before this gets out of hand. Does my article say Groovy will replace Java?
I can't believe I have to quote the article on top, but here goes:
(Grails and easyb built on top of the fact that Groovy integrates so well with Java)
Groovy will become very, very popular is what I'm saying. As such its market share will become so important that it will gradually close in on the Java language. Groovy's perfect integration with Java will probably be the main reason for its popularity.
Steven
Feb 13, 2008 · Steven Devijver
Feb 13, 2008 · Steven Devijver
Feb 13, 2008 · Tony Colston
Hey Graeme,
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
Steven
Feb 13, 2008 · Tony Colston
Hey Graeme,
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
Steven
Feb 13, 2008 · Tony Colston
Hey Graeme,
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
Steven
Feb 13, 2008 · Tony Colston
Hey Graeme,
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
Steven
Feb 13, 2008 · Steven Devijver
Hey Graeme,
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
Steven
Feb 13, 2008 · Steven Devijver
Hey Graeme,
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
Steven
Feb 13, 2008 · Steven Devijver
Hey Graeme,
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
Steven
Feb 13, 2008 · Steven Devijver
Hey Graeme,
It depends how you count. If Groovy is used together with Java it's a 0.5 for Groovy and 0.5 for Java.
However, applications written with Grails are likely to have no Java code at all, so that's 1 for Groovy and 0 for Java. Given five more years of Groovy and Java evolution - both share the same ecosystem - things could turn out in surprising ways.
Steven
Feb 12, 2008 · admin
If this is true they made a huge mistake. One word: AntBuilder.
Great ideas, unfortunately not very well implemented. These ideas are not unique to Maven. A Maven killer could easily provide them while at the same time make users happy, like Maven should do.
Feb 12, 2008 · admin
If this is true they made a huge mistake. One word: AntBuilder.
Great ideas, unfortunately not very well implemented. These ideas are not unique to Maven. A Maven killer could easily provide them while at the same time make users happy, like Maven should do.
Feb 12, 2008 · admin
If this is true they made a huge mistake. One word: AntBuilder.
Great ideas, unfortunately not very well implemented. These ideas are not unique to Maven. A Maven killer could easily provide them while at the same time make users happy, like Maven should do.
Feb 12, 2008 · Matt Raible
If this is true they made a huge mistake. One word: AntBuilder.
Great ideas, unfortunately not very well implemented. These ideas are not unique to Maven. A Maven killer could easily provide them while at the same time make users happy, like Maven should do.
Feb 12, 2008 · Matt Raible
If this is true they made a huge mistake. One word: AntBuilder.
Great ideas, unfortunately not very well implemented. These ideas are not unique to Maven. A Maven killer could easily provide them while at the same time make users happy, like Maven should do.
Feb 12, 2008 · Matt Raible
If this is true they made a huge mistake. One word: AntBuilder.
Great ideas, unfortunately not very well implemented. These ideas are not unique to Maven. A Maven killer could easily provide them while at the same time make users happy, like Maven should do.
Feb 12, 2008 · admin
Hey Matt,
I can assure you that "Maven sucks" exists in the real world. As the Don Brown interview indicated, as I have repeated on numerous occasions and as other people continuously repeat Maven 2 makes its users loose time.
What's hard about big Ant files is the chore of setting up and maintaining them. Understanding the individual Ant tasks is not very hard, most if not all of them have decent documentation.
I've used the kind of common Ant files that Xavier proposes, they included Ivy support. The problems they caused for me is similar to my Maven 2 experience: when some unexpected error occurs, I may have to understand the internals of the black box I'm using in order to figure out the cause of my error.
This is a waste of time when it happens often. The effort required is frustrating because I'm unsure whether or not the complex abstraction is the cause of my error. The effort is not rewarding since often the complex abstraction makes it harder to understand the cause of certain errors.
A common set of Ant files and Maven's plugin system both enforces such a complex abstraction on their users. I believe that build systems need to have these layers of complex abstraction. The only way to avoid frustration and waste of time with your users as much as possible is then to:
In my experience Xavier has a history of listening to his users and helping them so I'm looking forward to study the design of his proposal. The big problem for me is the Maven culture where a few people are deemed to have the right opinions and everybody else is wrong or "doesn't get Maven". Maven sucks because they get some things right yet using Maven hurts and there's no medicine.
Steven
Feb 12, 2008 · Matt Raible
Hey Matt,
I can assure you that "Maven sucks" exists in the real world. As the Don Brown interview indicated, as I have repeated on numerous occasions and as other people continuously repeat Maven 2 makes its users loose time.
What's hard about big Ant files is the chore of setting up and maintaining them. Understanding the individual Ant tasks is not very hard, most if not all of them have decent documentation.
I've used the kind of common Ant files that Xavier proposes, they included Ivy support. The problems they caused for me is similar to my Maven 2 experience: when some unexpected error occurs, I may have to understand the internals of the black box I'm using in order to figure out the cause of my error.
This is a waste of time when it happens often. The effort required is frustrating because I'm unsure whether or not the complex abstraction is the cause of my error. The effort is not rewarding since often the complex abstraction makes it harder to understand the cause of certain errors.
A common set of Ant files and Maven's plugin system both enforces such a complex abstraction on their users. I believe that build systems need to have these layers of complex abstraction. The only way to avoid frustration and waste of time with your users as much as possible is then to:
In my experience Xavier has a history of listening to his users and helping them so I'm looking forward to study the design of his proposal. The big problem for me is the Maven culture where a few people are deemed to have the right opinions and everybody else is wrong or "doesn't get Maven". Maven sucks because they get some things right yet using Maven hurts and there's no medicine.
Steven
Feb 07, 2008 · Steven Devijver
Feb 06, 2008 · Bling Fu
Feb 06, 2008 · Matt Raible
Feb 05, 2008 · John Croucher
Feb 05, 2008 · John Croucher
Feb 05, 2008 · John Croucher
Feb 05, 2008 · John Croucher
Feb 05, 2008 · Steven Devijver
Feb 05, 2008 · Steven Devijver
Feb 05, 2008 · Steven Devijver
Feb 05, 2008 · Steven Devijver
Feb 03, 2008 · Steven Devijver
Jan 31, 2008 · Kevin Long
Jan 31, 2008 · Kevin Long
Jan 31, 2008 · Kevin Long
Jan 31, 2008 · Kevin Long
Jan 31, 2008 · Steven Devijver
Jan 31, 2008 · Steven Devijver
Jan 31, 2008 · Steven Devijver
Jan 31, 2008 · Steven Devijver
Jan 31, 2008 · Michael Jouravlev
Troggan, your comment doesn't add any value or insight and is passive aggressive.
I clearly said that the "stupid dog" works for our small team and that it's not proven for remote teams.
And since I assume you haven't tried "the stupid dog" you're in no position to make any judgment on how it compares to Teamcity.
Frankly, your comment is lame and I'd appreciate it if you defer from ever making such comments on DZone again.
Jan 31, 2008 · Michael Jouravlev
Troggan, your comment doesn't add any value or insight and is passive aggressive.
I clearly said that the "stupid dog" works for our small team and that it's not proven for remote teams.
And since I assume you haven't tried "the stupid dog" you're in no position to make any judgment on how it compares to Teamcity.
Frankly, your comment is lame and I'd appreciate it if you defer from ever making such comments on DZone again.
Jan 31, 2008 · Michael Jouravlev
Troggan, your comment doesn't add any value or insight and is passive aggressive.
I clearly said that the "stupid dog" works for our small team and that it's not proven for remote teams.
And since I assume you haven't tried "the stupid dog" you're in no position to make any judgment on how it compares to Teamcity.
Frankly, your comment is lame and I'd appreciate it if you defer from ever making such comments on DZone again.
Jan 31, 2008 · Steven Devijver
Troggan, your comment doesn't add any value or insight and is passive aggressive.
I clearly said that the "stupid dog" works for our small team and that it's not proven for remote teams.
And since I assume you haven't tried "the stupid dog" you're in no position to make any judgment on how it compares to Teamcity.
Frankly, your comment is lame and I'd appreciate it if you defer from ever making such comments on DZone again.
Jan 31, 2008 · Steven Devijver
Troggan, your comment doesn't add any value or insight and is passive aggressive.
I clearly said that the "stupid dog" works for our small team and that it's not proven for remote teams.
And since I assume you haven't tried "the stupid dog" you're in no position to make any judgment on how it compares to Teamcity.
Frankly, your comment is lame and I'd appreciate it if you defer from ever making such comments on DZone again.
Jan 31, 2008 · Steven Devijver
Troggan, your comment doesn't add any value or insight and is passive aggressive.
I clearly said that the "stupid dog" works for our small team and that it's not proven for remote teams.
And since I assume you haven't tried "the stupid dog" you're in no position to make any judgment on how it compares to Teamcity.
Frankly, your comment is lame and I'd appreciate it if you defer from ever making such comments on DZone again.
Jan 30, 2008 · Kirit Sælensminde
From a technical perspective Grails is clearly the winner compared to Rails, with a big margin. It's easier to deploy, easier to cluster, easier to integrate with Java applications, ... .
For many people these arguments do not matter and for many other they do. Saying that any one of both Rails or Grails is better in general is according to me baseless. It all depends on what you need.
And like with previous battles of the frameworks many people will continue to choose frameworks for the wrong reasons.
Jan 30, 2008 · Matt Raible
From a technical perspective Grails is clearly the winner compared to Rails, with a big margin. It's easier to deploy, easier to cluster, easier to integrate with Java applications, ... .
For many people these arguments do not matter and for many other they do. Saying that any one of both Rails or Grails is better in general is according to me baseless. It all depends on what you need.
And like with previous battles of the frameworks many people will continue to choose frameworks for the wrong reasons.
Jan 30, 2008 · Vasanth Dharmaraj
Every application is different, and one testing strategy may be a better fit than an other.
We test in the container a lot and it has helped us to increase the quality of our software dramatically, something that we could not achieve before when we focused on unit testing. Running tests takes a lot of time, we gladly accept that and have found ways to work around that problem.
Jan 28, 2008 · Lebon Bon Lebon
Jan 28, 2008 · Andres Almiray
Jan 26, 2008 · Lebon Bon Lebon
Jan 26, 2008 · Sebastien Arbogast
Jan 26, 2008 · Schalk Neethling
Jan 26, 2008 · Dalton Filho
Jan 26, 2008 · Lebon Bon Lebon
Jan 26, 2008 · Lebon Bon Lebon
Jan 26, 2008 · Lebon Bon Lebon
Jan 26, 2008 · Rick Ross
Jan 26, 2008 · Rick Ross
Jan 26, 2008 · Rick Ross
Jan 26, 2008 · Gregory Pierce
Jan 26, 2008 · Steven Devijver
Jan 26, 2008 · Lebon Bon Lebon
That would indeed work if it were not that the old version is called 1.0-SNAPSHOT and the new version is called .... 1.0-SNAPSHOT.
Please, just release plugins together with the build system. Why be so persistent in doing the wrong thing?
Jan 26, 2008 · Lebon Bon Lebon
That would indeed work if it were not that the old version is called 1.0-SNAPSHOT and the new version is called .... 1.0-SNAPSHOT.
Please, just release plugins together with the build system. Why be so persistent in doing the wrong thing?
Jan 26, 2008 · Lebon Bon Lebon
That would indeed work if it were not that the old version is called 1.0-SNAPSHOT and the new version is called .... 1.0-SNAPSHOT.
Please, just release plugins together with the build system. Why be so persistent in doing the wrong thing?
Jan 26, 2008 · [deleted]
That would indeed work if it were not that the old version is called 1.0-SNAPSHOT and the new version is called .... 1.0-SNAPSHOT.
Please, just release plugins together with the build system. Why be so persistent in doing the wrong thing?
Jan 26, 2008 · [deleted]
That would indeed work if it were not that the old version is called 1.0-SNAPSHOT and the new version is called .... 1.0-SNAPSHOT.
Please, just release plugins together with the build system. Why be so persistent in doing the wrong thing?
Jan 26, 2008 · [deleted]
That would indeed work if it were not that the old version is called 1.0-SNAPSHOT and the new version is called .... 1.0-SNAPSHOT.
Please, just release plugins together with the build system. Why be so persistent in doing the wrong thing?
Jan 26, 2008 · Lebon Bon Lebon
Jan 26, 2008 · Roger Voss
Jan 26, 2008 · Lebon Bon Lebon
Jan 26, 2008 · Lebon Bon Lebon
Jan 26, 2008 · Lebon Bon Lebon
Jan 26, 2008 · Matt Raible
Jan 26, 2008 · Matt Raible
Jan 26, 2008 · Matt Raible
Jan 25, 2008 · Lebon Bon Lebon
Jan 25, 2008 · Lebon Bon Lebon
Jan 25, 2008 · Lebon Bon Lebon
Jan 25, 2008 · Matt Raible
Jan 25, 2008 · Matt Raible
Jan 25, 2008 · Matt Raible
Jan 25, 2008 · Lebon Bon Lebon
Jan 25, 2008 · Lebon Bon Lebon
Jan 25, 2008 · Lebon Bon Lebon
Jan 25, 2008 · Matt Raible
Jan 25, 2008 · Matt Raible
Jan 25, 2008 · Matt Raible
Jan 25, 2008 · Lebon Bon Lebon
One of the bigger issues in Maven's design is that plugins are not released with the build system.
Automatically updating plugins is non-sense. For example, just yesterday the Emma plugin was updated, out of the blue. We had to upgrade to Maven 2.0.8 on all our developer machines and CI machines.
Maven is supposed to be about gaining time and not developing the build system, remember?
Jan 25, 2008 · [deleted]
One of the bigger issues in Maven's design is that plugins are not released with the build system.
Automatically updating plugins is non-sense. For example, just yesterday the Emma plugin was updated, out of the blue. We had to upgrade to Maven 2.0.8 on all our developer machines and CI machines.
Maven is supposed to be about gaining time and not developing the build system, remember?
Jan 25, 2008 · Lebon Bon Lebon
Jan 25, 2008 · Lebon Bon Lebon
Jan 25, 2008 · Lebon Bon Lebon
Jan 25, 2008 · Matt Raible
Jan 25, 2008 · Matt Raible
Jan 25, 2008 · Matt Raible
Jan 25, 2008 · Lebon Bon Lebon
Actually, reloading a controller/action class is pretty easy to implement. Grails and Tapestry 5 have it. Spring supports reloading of Groovy classes.
It's important to understand that reloading classes involves playing with the Java ClassLoader so there's no difference between Java and Groovy. You also don't need expensive products :-)
The hard part is reloading domain classes ...
Jan 25, 2008 · Matt Raible
Actually, reloading a controller/action class is pretty easy to implement. Grails and Tapestry 5 have it. Spring supports reloading of Groovy classes.
It's important to understand that reloading classes involves playing with the Java ClassLoader so there's no difference between Java and Groovy. You also don't need expensive products :-)
The hard part is reloading domain classes ...
Jan 24, 2008 · Gregory Pierce
Jan 24, 2008 · Steven Devijver
Jan 23, 2008 · Mr B Loid
Jan 21, 2008 · Peter Stofferis
Jan 21, 2008 · Peter Stofferis
Jan 21, 2008 · Steven Devijver
Jan 21, 2008 · Steven Devijver
Jan 20, 2008 · Lebon Bon Lebon
Yeah, it's my MO :-)
I wrote a Builder once with BuilderSupport and I found it not intuitive at all. BuilderSupport is a good solution if you want to write a Builder in Java, but in Groovy EMC and delegates is in my opinion more interesting.
You can still call upon propertyMissing() and methodMissing() if you want to. Actually, it would be nice if
you could overload these methods, like:
void methodMissing(String name, Closure cl) { }
or
void methodMissing(String name, Map params = [:], String[] names, Closure cl) {}
That would make DSL support code even more concise.
Jan 20, 2008 · Steven Devijver
Yeah, it's my MO :-)
I wrote a Builder once with BuilderSupport and I found it not intuitive at all. BuilderSupport is a good solution if you want to write a Builder in Java, but in Groovy EMC and delegates is in my opinion more interesting.
You can still call upon propertyMissing() and methodMissing() if you want to. Actually, it would be nice if
you could overload these methods, like:
void methodMissing(String name, Closure cl) { }
or
void methodMissing(String name, Map params = [:], String[] names, Closure cl) {}
That would make DSL support code even more concise.
Jan 20, 2008 · Geva Perry
Jan 20, 2008 · Thomas Hansen
Dec 29, 2007 · Mr B Loid
Dec 21, 2007 · Mr B Loid
Dec 07, 2007 · Kirill Grouchnikov
Nov 26, 2007 · Srini Penchikala
Nov 09, 2007 · Gerd Storm
Oct 04, 2007 · Franco Martinig
Oct 02, 2007 · Mr B Loid
Sep 28, 2007 · Gerd Storm
Sep 25, 2007 · Steven Devijver
Jun 14, 2007 · Tony Thomas
Jun 11, 2007 · Steven Devijver
Apr 11, 2007 · Eran Kampf
Feb 03, 2007 · Mr B Loid
Oct 19, 2006 · Muhammad Ali
Apr 02, 2006 · Scott Parrish