DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
View Events Video Library
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Migrate, Modernize and Build Java Web Apps on Azure: This live workshop will cover methods to enhance Java application development workflow.

Modern Digital Website Security: Prepare to face any form of malicious web activity and enable your sites to optimally serve your customers.

Kubernetes in the Enterprise: The latest expert insights on scaling, serverless, Kubernetes-powered AI, cluster security, FinOps, and more.

E-Commerce Development Essentials: Considering starting or working on an e-commerce business? Learn how to create a backend that scales.

Avatar

Alex Tkachman

[Deactivated] [Suspended]

COO at MB Technologies

Saint Petersburg, RU

Joined Nov 2005

About

Entrepreneur. Creator of Groovy++

Stats

Reputation: 59
Pageviews: 517.4K
Articles: 2
Comments: 172
  • Articles
  • Comments

Articles

article thumbnail
Kotlin + Guice Example
While Kotlin programming language prepares for the public early access program I want to share with you one an example how easly it can be used with existing Java codebases. This short note does not intend to teach the reader how to use Kotlin but only to make him/her intersted to learn. We will create small toy application using Kotlin and the charming Guice framework. The application is nothing more than the usual "Hello, World!" but it contains an application service and logging service and each service will have two incarnations - for testing and for production use. Let us start with an abstract LoggingService. It will be an abstract class with only one abstract method to output the passed string. Most probably the code below does not require much explaination. abstract class LoggingService() { abstract fun info(message: String?) } Now we will define a simple implementation, which prints the given message to the standard output class StdoutLoggingService() : LoggingService(){ override fun info(message: String?) = println("INFO: $message") } override modifier tells the compiler that the method overrides some method of a superclass. Note also string interpolation Now we will create a little more sophisticated implementation, which we will use in production :) class JdkLoggingService [Inject] (protected val jdkLogger: Logger) : LoggingService() { override fun info(message: String?) = jdkLogger.info(message) } [Inject] annotation on constructor tells Guice how to create JdkLoggerService. val on constructor parameter asks to create final property initialized by given value. var asks for non-final one and neither of them define simple constructor parameter Now we are ready to define the abstract application service and both implementations of it for test and production use. abstract class AppService(protected val logger: LoggingService, protected val mode: String) { fun run() { logger.info("Application started in '$mode' mode with ${logger.javaClass.getName()} logger") logger.info("Hello, World!") } } class RealAppService [Inject] (logger: LoggingService) : AppService(logger, "real") class TestAppService [Inject] (logger: LoggingService) : AppService(logger, "test") Note how elegantly Kotlin allows us to define properties and pass values to superconstructor Now we go to more interesting part - creating min-DSL for Guice. But let us start with how we want our application to look like. fun main(args: Array) { fun configureInjections(test: Boolean) = injector { +module { if(test) { bind().toInstance (StdoutLoggingService()) bind().to () } else { bind().to() bind().to () } } } configureInjections(test=false).getInstance ().run() } There are few things to notice here We use local function to configure injections. It is not necessary but allow some nice code grouping. Return type of function configureInjections is inferred from it's body (call to finction injector - root of our DSL which we will define soon) We call configureInjections using named arguments syntax. It is not necessary in our case but very convinient when we have many parameters and some of them are optional. Now it is time to define simple parts of our DSL. It will be three extension functions for some Guice classes. fun Binder.bind() = bind(javaClass()).sure() fun AnnotatedBindingBuilder.to() = to(javaClass()).sure() fun Injector.getInstance() = getInstance(javaClass()) Please read about extension functions in Kotlin documentation Note in variance used in function 'to'. Please read about generics and variance in Kotlin documentation. It is really interesting javaClass() call is Kotlin standard library for Java (remember that Kotlin can be compiled for other platforms like javascript as well) is equivalent to T.class in Java. The huge difference here is that in Kotlin it applicable not only to real classes but also to generic type parameters (thanks to runtime type information). Call to method sure() is Kotlin way (soon to be replaced by special language construct) to ensure non-nullability. As Java has not notation of nullable and non-nullable types we need to take some care on integration point. Please read amazing story of null-safety in Kotlin documentation. Finally we are ready to most complex part - definition of method injector. fun injector(config: ModuleCollector.() -> Any?) : Injector { val collector = ModuleCollector() collector.config() return Guice.createInjector(collector.collected).sure() } It has one parameter of type ModuleCollector.()->Any? which means "extension function for ModuleCollector(we will define ModuleCollector few lines below), which does not accept any parameters and returns value of any type potentially nullable" The implementation is very straight-forward we create ModuleCollector we use it as receiver to call given configuration function we ask Guice to create Injector for all modules configured (consult Guice documentation for details) This is extremely powerful method of defining DSLs in Kotlin As we saw above we call method injector with function block expression. The fact that parameter is extension function makes all (modulo visibility rules) methods of ModuleCollector available inside function block. The last part of our DSL is definition of ModuleCollector. It contains internal list of collected modules and only two methods method module - uses variation of the same extension-function-as-parameter trick - we use extension function to implement method of anonimous class. Please consult Kotlin documentation on object expressions method plus - overrides unary plus operation Please consult Kotlin documentation on operator overloading. It is very important to note that this method is both extension method and member of class ModuleCollector. It allows very good context catching on call site. In our case above we call this method inside extention function with ModuleCollectoror receiver and apply it to Module created by call to method Module. class ModuleCollector() { val collected = ArrayList () fun module (config: Binder.()->Any?) : Module = object: Module { override fun configure(binder: Binder?) { binder.sure().config() } } fun Module.plus() { collected.add(this) } } We are done. I hope that was interesting. This note is a very brief and non-detailed introduction on goodies of Kotlin. If this has motivated you to read more about Kotlin then my goal is achieved. Thank you and till next time!
February 4, 2012
· 31,897 Views · 3 Likes
article thumbnail
512000 concurrent websockets with Groovy++ and Gretty
We are staying in front of new world - all major browsers either support already or plan to support in next major version HTML5 (not in scope of this article) & WebSockets (main subject of the article). In 6 to 9 months we as application developers will have in our hands extremely powerful client side tools to build new generation of the Web. But are we ready on server side? And if not, what the point in having powerful and reliable communication channel between browser and server and non-utilising it. In this article I will talk about my expirience of handling 512K concurrent websockets using Groovy++ & Gretty. Why 512K and not 1M? This is very fair question and my initial goal was to handle exactly 1M concurrent websockets on one machine. It seems that due my lack of knowledge of tuning TCP/IP on Linux I was not able to achieve more. I had enough free CPU power and a lot of free memory but after 524285 open connections (always the same number) the server stopped to accept new connections. The magical number 524285 is so close to 524288=512*1024 that I can guess (and only guess) that we deal either with some limitation of Linux setup or with something in settings of Amazon network infrastructure (where I run my tests) . So what was the experiment about? In general it was my way to estimate (or at least to have feeling) how many (virtual) hardware units do we need if we hope to handle A LOT of concurrent users. The server itself is very simple. It does the following: On HTTP request from a client it responds with text document containing Groovy script to be executed by client. It accepts and keeps websocket connections from clients and respond to every received message (just plain string) with the same string in upper case The client program (running on separate machine) request the server for a scenario and then compile and execute it. Why do we need this trick with sending script to client? Truly speaking we don't. When I started writing the application I had illusion that it will simplify deployment to many clients. In fact, it did not and I had rsync all clients with my development machine after recompilation anyway. The scenario itself is also very straight forward. Client program opens 64000 concurrent web socket connections and approximately every 25 seconds sends to the server short string (approximately 30 characters). So server need to handle around 20000 requests per second or around 600K/s traffic in and the same amount out. Someone can argue if such structure of traffic is realistic or not. I don't want to go in to deep dispute here as it simulates very well one of applications under development in my company. To emulate 512000 concurrent clients I used 8 machines and 1 machine was the server. All machine was of the same "m1.large" Amazon EC2 instances with 7.5GB memory and 2 virtual cores running Fedora 11. 2.5GB memory was used by Java heap (around 5K per connection but of course not including kernel structures) and total CPU utilization was under 30% The server is written on Groovy++ using Gretty, which is lightweight server based on brilliant Netty framework and developed as part of Groovy++ standard library. More information on both can be found at Groovy++ home Gretty is extremely lightweight and fully non-blocking event driven web server. Gretty itself is written on Groovy++ and fully utilize concurrency libabry. It is not servlet container or any other relative of JavaEE. Right now it supports only static files http requests (including modern /param1/param2 REST-like requests) web sockets (including long-polling emulation protocol for old browsers) Here is essentially the whole server code. Obviously it is statically typed Groovy++ code. GrettyServer server = [ webContexts: [ "/" : [ public: { get("/scenario") { response.text = """ .............. here is client scenario code ................... """ } websocket("/ws",[ onMessage: { msg -> socket.send(msg.toUpperCase()) }, onConnect: { socket.send("Welcome!") }, onDisconnect: { } ]) } ] ] ] server.start() I don't want to explain more than written in the code above because I really hope the code is self explaiining. I hope it was interesting. Get Gretty and Groovy++ a try and let us know what do you think. Till next time.
July 29, 2010
· 55,656 Views · 0 Likes

Comments

New kids on the data management block

Feb 06, 2012 · Mr B Loid

It is com.google.inject.Inject
New kids on the data management block

Feb 06, 2012 · Mr B Loid

It is com.google.inject.Inject
New kids on the data management block

Feb 06, 2012 · Mr B Loid

It is com.google.inject.Inject
Kotlin + Guice Example

Feb 06, 2012 · Alex Tkachman

It is com.google.inject.Inject
Kotlin + Guice Example

Feb 06, 2012 · Alex Tkachman

It is com.google.inject.Inject
Kotlin + Guice Example

Feb 06, 2012 · Alex Tkachman

It is com.google.inject.Inject
New kids on the data management block

Feb 04, 2012 · Mr B Loid

If you need explicit type you can do val collected : List = ArrayList ()
New kids on the data management block

Feb 04, 2012 · Mr B Loid

If you need explicit type you can do val collected : List = ArrayList ()
New kids on the data management block

Feb 04, 2012 · Mr B Loid

If you need explicit type you can do val collected : List = ArrayList ()
Kotlin + Guice Example

Feb 04, 2012 · Alex Tkachman

If you need explicit type you can do val collected : List = ArrayList ()
Kotlin + Guice Example

Feb 04, 2012 · Alex Tkachman

If you need explicit type you can do val collected : List = ArrayList ()
Kotlin + Guice Example

Feb 04, 2012 · Alex Tkachman

If you need explicit type you can do val collected : List = ArrayList ()
Better monitors for Java: A Hoare-style monitor package for multithreaded programming in Java

Aug 24, 2011 · Peter Stofferis

I sent pull request with groovy++ version. https://github.com/alextkachman/josephus/blob/master/combined/Chain2.groovy It seems on my runs that groovy++ variant is a bit faster. Java stdout: List Reduction 26 0.31163 0.29596 0.283381 0.28165 0.285807 0.287432 0.289497 0.291614 0.285251 0.286823 Element Recursion 26 1.583925 1.442605 1.505588 1.433845 1.456347 1.438894 1.432915 1.440296 1.426699 1.446555 Groovy++ stdout List Reduction 26 0.251423 0.250963 0.252625 0.257004 0.246969 0.247984 0.249604 0.248851 0.252108 0.2497 Element Recursion 26 1.439778 1.389024 1.403437 1.381297 1.395777 1.391326 1.449968 1.38277 1.408966 1.406037
Better monitors for Java: A Hoare-style monitor package for multithreaded programming in Java

Aug 24, 2011 · Peter Stofferis

I sent pull request with groovy++ version. https://github.com/alextkachman/josephus/blob/master/combined/Chain2.groovy It seems on my runs that groovy++ variant is a bit faster. Java stdout: List Reduction 26 0.31163 0.29596 0.283381 0.28165 0.285807 0.287432 0.289497 0.291614 0.285251 0.286823 Element Recursion 26 1.583925 1.442605 1.505588 1.433845 1.456347 1.438894 1.432915 1.440296 1.426699 1.446555 Groovy++ stdout List Reduction 26 0.251423 0.250963 0.252625 0.257004 0.246969 0.247984 0.249604 0.248851 0.252108 0.2497 Element Recursion 26 1.439778 1.389024 1.403437 1.381297 1.395777 1.391326 1.449968 1.38277 1.408966 1.406037
Better monitors for Java: A Hoare-style monitor package for multithreaded programming in Java

Aug 24, 2011 · Peter Stofferis

I sent pull request with groovy++ version. https://github.com/alextkachman/josephus/blob/master/combined/Chain2.groovy It seems on my runs that groovy++ variant is a bit faster. Java stdout: List Reduction 26 0.31163 0.29596 0.283381 0.28165 0.285807 0.287432 0.289497 0.291614 0.285251 0.286823 Element Recursion 26 1.583925 1.442605 1.505588 1.433845 1.456347 1.438894 1.432915 1.440296 1.426699 1.446555 Groovy++ stdout List Reduction 26 0.251423 0.250963 0.252625 0.257004 0.246969 0.247984 0.249604 0.248851 0.252108 0.2497 Element Recursion 26 1.439778 1.389024 1.403437 1.381297 1.395777 1.391326 1.449968 1.38277 1.408966 1.406037
Better monitors for Java: A Hoare-style monitor package for multithreaded programming in Java

Aug 24, 2011 · Peter Stofferis

I sent pull request with groovy++ version. https://github.com/alextkachman/josephus/blob/master/combined/Chain2.groovy It seems on my runs that groovy++ variant is a bit faster. Java stdout: List Reduction 26 0.31163 0.29596 0.283381 0.28165 0.285807 0.287432 0.289497 0.291614 0.285251 0.286823 Element Recursion 26 1.583925 1.442605 1.505588 1.433845 1.456347 1.438894 1.432915 1.440296 1.426699 1.446555 Groovy++ stdout List Reduction 26 0.251423 0.250963 0.252625 0.257004 0.246969 0.247984 0.249604 0.248851 0.252108 0.2497 Element Recursion 26 1.439778 1.389024 1.403437 1.381297 1.395777 1.391326 1.449968 1.38277 1.408966 1.406037
Contrasting Performance : Languages, styles and VMs – Java, Scala, Python, Erlang, Clojure, Ruby, Groovy, Javascript

Aug 24, 2011 · James Sugrue

I sent pull request with groovy++ version. https://github.com/alextkachman/josephus/blob/master/combined/Chain2.groovy It seems on my runs that groovy++ variant is a bit faster. Java stdout: List Reduction 26 0.31163 0.29596 0.283381 0.28165 0.285807 0.287432 0.289497 0.291614 0.285251 0.286823 Element Recursion 26 1.583925 1.442605 1.505588 1.433845 1.456347 1.438894 1.432915 1.440296 1.426699 1.446555 Groovy++ stdout List Reduction 26 0.251423 0.250963 0.252625 0.257004 0.246969 0.247984 0.249604 0.248851 0.252108 0.2497 Element Recursion 26 1.439778 1.389024 1.403437 1.381297 1.395777 1.391326 1.449968 1.38277 1.408966 1.406037
Contrasting Performance : Languages, styles and VMs – Java, Scala, Python, Erlang, Clojure, Ruby, Groovy, Javascript

Aug 24, 2011 · James Sugrue

I sent pull request with groovy++ version. https://github.com/alextkachman/josephus/blob/master/combined/Chain2.groovy It seems on my runs that groovy++ variant is a bit faster. Java stdout: List Reduction 26 0.31163 0.29596 0.283381 0.28165 0.285807 0.287432 0.289497 0.291614 0.285251 0.286823 Element Recursion 26 1.583925 1.442605 1.505588 1.433845 1.456347 1.438894 1.432915 1.440296 1.426699 1.446555 Groovy++ stdout List Reduction 26 0.251423 0.250963 0.252625 0.257004 0.246969 0.247984 0.249604 0.248851 0.252108 0.2497 Element Recursion 26 1.439778 1.389024 1.403437 1.381297 1.395777 1.391326 1.449968 1.38277 1.408966 1.406037
Contrasting Performance : Languages, styles and VMs – Java, Scala, Python, Erlang, Clojure, Ruby, Groovy, Javascript

Aug 24, 2011 · James Sugrue

I sent pull request with groovy++ version. https://github.com/alextkachman/josephus/blob/master/combined/Chain2.groovy It seems on my runs that groovy++ variant is a bit faster. Java stdout: List Reduction 26 0.31163 0.29596 0.283381 0.28165 0.285807 0.287432 0.289497 0.291614 0.285251 0.286823 Element Recursion 26 1.583925 1.442605 1.505588 1.433845 1.456347 1.438894 1.432915 1.440296 1.426699 1.446555 Groovy++ stdout List Reduction 26 0.251423 0.250963 0.252625 0.257004 0.246969 0.247984 0.249604 0.248851 0.252108 0.2497 Element Recursion 26 1.439778 1.389024 1.403437 1.381297 1.395777 1.391326 1.449968 1.38277 1.408966 1.406037
Contrasting Performance : Languages, styles and VMs – Java, Scala, Python, Erlang, Clojure, Ruby, Groovy, Javascript

Aug 24, 2011 · James Sugrue

I sent pull request with groovy++ version. https://github.com/alextkachman/josephus/blob/master/combined/Chain2.groovy It seems on my runs that groovy++ variant is a bit faster. Java stdout: List Reduction 26 0.31163 0.29596 0.283381 0.28165 0.285807 0.287432 0.289497 0.291614 0.285251 0.286823 Element Recursion 26 1.583925 1.442605 1.505588 1.433845 1.456347 1.438894 1.432915 1.440296 1.426699 1.446555 Groovy++ stdout List Reduction 26 0.251423 0.250963 0.252625 0.257004 0.246969 0.247984 0.249604 0.248851 0.252108 0.2497 Element Recursion 26 1.439778 1.389024 1.403437 1.381297 1.395777 1.391326 1.449968 1.38277 1.408966 1.406037
Language Comparison: Compute Factorial - Groovy, Java, and ColdFusion

May 19, 2011 · mitchp

Groovy++ tail recursive version long fact(int n, long acc = 1) { n > 1 ? fact(n-1, n*acc) : acc }
Language Comparison: Compute Factorial - Groovy, Java, and ColdFusion

May 19, 2011 · mitchp

Groovy++ tail recursive version long fact(int n, long acc = 1) { n > 1 ? fact(n-1, n*acc) : acc }
Groovy++, How Java Can Be Better

May 18, 2011 · Alex Tkachman

Why exactly should I pick one when both are good for some tasks?
Groovy++ in action: how to make $5000 in one hour

Feb 10, 2011 · Alex Tkachman

I am Groovy Core developer responsible for many performance optimizations in Groovy Core and I DON'T believe that invokeDynamic will seriously help to Groovy performance
Groovy++ in action: how to make $5000 in one hour

Feb 10, 2011 · Alex Tkachman

I am Groovy Core developer responsible for many performance optimizations in Groovy Core and I DON'T believe that invokeDynamic will seriously help to Groovy performance
Groovy++ in action: how to make $5000 in one hour

Feb 10, 2011 · Alex Tkachman

I am Groovy Core developer responsible for many performance optimizations in Groovy Core and I DON'T believe that invokeDynamic will seriously help to Groovy performance
Groovy++ in action: how to make $5000 in one hour

Feb 09, 2011 · Alex Tkachman

Good point. In Groovy (and G++) an exception if not caught will be simply thrown to caller method
Groovy++ in action: how to make $5000 in one hour

Feb 09, 2011 · Alex Tkachman

Good point. In Groovy (and G++) an exception if not caught will be simply thrown to caller method
Groovy++ in action: how to make $5000 in one hour

Feb 09, 2011 · Alex Tkachman

Good point. In Groovy (and G++) an exception if not caught will be simply thrown to caller method
Groovy++ in action: how to make $5000 in one hour

Feb 08, 2011 · Alex Tkachman

I am saying that rewriting from Groovy to Java was not an option at that moment. BTW, great story as well.
How statically typed meta programming can look

Nov 16, 2010 · Alex Tkachman

TestedController ctr = [ getRequest: {... }]
How statically typed meta programming can look

Nov 16, 2010 · Alex Tkachman

TestedController ctr = [ getRequest: {... }]
How statically typed meta programming can look

Nov 16, 2010 · Alex Tkachman

TestedController ctr = [ getRequest: {... }]
Peer-to-peer database synchronization

Nov 16, 2010 · Mr B Loid

In G++ mixed mode you have both.
Peer-to-peer database synchronization

Nov 16, 2010 · Mr B Loid

In G++ mixed mode you have both.
Groovy++ in action: statically typed dynamic dispatch

Nov 16, 2010 · Alex Tkachman

In G++ mixed mode you have both.
Groovy++ in action: statically typed dynamic dispatch

Nov 16, 2010 · Alex Tkachman

In G++ mixed mode you have both.
Developing in GWT (or How I Learned to Stop Worrying and Love Component-based Development)

Sep 27, 2010 · Mr B Loid

Of course, it is NOT TRUE if the code mutate internal data structures of even touch volatile fields
Developing in GWT (or How I Learned to Stop Worrying and Love Component-based Development)

Sep 27, 2010 · Mr B Loid

Of course, it is NOT TRUE if the code mutate internal data structures of even touch volatile fields
Developing in GWT (or How I Learned to Stop Worrying and Love Component-based Development)

Sep 27, 2010 · Mr B Loid

Of course, it is NOT TRUE if the code mutate internal data structures of even touch volatile fields
Call for concurrency benchmarks of JVM languages

Sep 27, 2010 · Alex Tkachman

Of course, it is NOT TRUE if the code mutate internal data structures of even touch volatile fields
Call for concurrency benchmarks of JVM languages

Sep 27, 2010 · Alex Tkachman

Of course, it is NOT TRUE if the code mutate internal data structures of even touch volatile fields
Call for concurrency benchmarks of JVM languages

Sep 27, 2010 · Alex Tkachman

Of course, it is NOT TRUE if the code mutate internal data structures of even touch volatile fields
Developing in GWT (or How I Learned to Stop Worrying and Love Component-based Development)

Sep 25, 2010 · Mr B Loid

In fact, I am talking about all of the above. I probably need to add something I did not say in the article. I AM NOT SUGGESTING COMPETITION! What I suggest is collaboration of experts on evaluating different algorithms with different languages. Especially as some languages already promote some concurrent paradigms
Developing in GWT (or How I Learned to Stop Worrying and Love Component-based Development)

Sep 25, 2010 · Mr B Loid

In fact, I am talking about all of the above. I probably need to add something I did not say in the article. I AM NOT SUGGESTING COMPETITION! What I suggest is collaboration of experts on evaluating different algorithms with different languages. Especially as some languages already promote some concurrent paradigms
Developing in GWT (or How I Learned to Stop Worrying and Love Component-based Development)

Sep 25, 2010 · Mr B Loid

In fact, I am talking about all of the above. I probably need to add something I did not say in the article. I AM NOT SUGGESTING COMPETITION! What I suggest is collaboration of experts on evaluating different algorithms with different languages. Especially as some languages already promote some concurrent paradigms
Developing in GWT (or How I Learned to Stop Worrying and Love Component-based Development)

Sep 25, 2010 · Mr B Loid

In fact, I am talking about all of the above. I probably need to add something I did not say in the article. I AM NOT SUGGESTING COMPETITION! What I suggest is collaboration of experts on evaluating different algorithms with different languages. Especially as some languages already promote some concurrent paradigms
Call for concurrency benchmarks of JVM languages

Sep 25, 2010 · Alex Tkachman

In fact, I am talking about all of the above. I probably need to add something I did not say in the article. I AM NOT SUGGESTING COMPETITION! What I suggest is collaboration of experts on evaluating different algorithms with different languages. Especially as some languages already promote some concurrent paradigms
Call for concurrency benchmarks of JVM languages

Sep 25, 2010 · Alex Tkachman

In fact, I am talking about all of the above. I probably need to add something I did not say in the article. I AM NOT SUGGESTING COMPETITION! What I suggest is collaboration of experts on evaluating different algorithms with different languages. Especially as some languages already promote some concurrent paradigms
Call for concurrency benchmarks of JVM languages

Sep 25, 2010 · Alex Tkachman

In fact, I am talking about all of the above. I probably need to add something I did not say in the article. I AM NOT SUGGESTING COMPETITION! What I suggest is collaboration of experts on evaluating different algorithms with different languages. Especially as some languages already promote some concurrent paradigms
Call for concurrency benchmarks of JVM languages

Sep 25, 2010 · Alex Tkachman

In fact, I am talking about all of the above. I probably need to add something I did not say in the article. I AM NOT SUGGESTING COMPETITION! What I suggest is collaboration of experts on evaluating different algorithms with different languages. Especially as some languages already promote some concurrent paradigms
Developing in GWT (or How I Learned to Stop Worrying and Love Component-based Development)

Sep 25, 2010 · Mr B Loid

Great Piter. Join Google Group and let us discuss how to structure github repo
Developing in GWT (or How I Learned to Stop Worrying and Love Component-based Development)

Sep 25, 2010 · Mr B Loid

Great Piter. Join Google Group and let us discuss how to structure github repo
Developing in GWT (or How I Learned to Stop Worrying and Love Component-based Development)

Sep 25, 2010 · Mr B Loid

Great Piter. Join Google Group and let us discuss how to structure github repo
Developing in GWT (or How I Learned to Stop Worrying and Love Component-based Development)

Sep 25, 2010 · Mr B Loid

Great Piter. Join Google Group and let us discuss how to structure github repo
Call for concurrency benchmarks of JVM languages

Sep 25, 2010 · Alex Tkachman

Great Piter. Join Google Group and let us discuss how to structure github repo
Call for concurrency benchmarks of JVM languages

Sep 25, 2010 · Alex Tkachman

Great Piter. Join Google Group and let us discuss how to structure github repo
Call for concurrency benchmarks of JVM languages

Sep 25, 2010 · Alex Tkachman

Great Piter. Join Google Group and let us discuss how to structure github repo
Call for concurrency benchmarks of JVM languages

Sep 25, 2010 · Alex Tkachman

Great Piter. Join Google Group and let us discuss how to structure github repo
Twitter Publisher for CruiseControl.NET

Aug 03, 2010 · Mr B Loid

Could you please address this question to Google Group http://groups.google.com/group/groovyplusplus It will be much more natural to discuss it there
Twitter Publisher for CruiseControl.NET

Aug 03, 2010 · Mr B Loid

Could you please address this question to Google Group http://groups.google.com/group/groovyplusplus It will be much more natural to discuss it there
Twitter Publisher for CruiseControl.NET

Aug 03, 2010 · Mr B Loid

Could you please address this question to Google Group http://groups.google.com/group/groovyplusplus It will be much more natural to discuss it there
Twitter Publisher for CruiseControl.NET

Aug 03, 2010 · Mr B Loid

Could you please address this question to Google Group http://groups.google.com/group/groovyplusplus It will be much more natural to discuss it there
512000 concurrent websockets with Groovy++ and Gretty

Aug 03, 2010 · Alex Tkachman

Could you please address this question to Google Group http://groups.google.com/group/groovyplusplus It will be much more natural to discuss it there
512000 concurrent websockets with Groovy++ and Gretty

Aug 03, 2010 · Alex Tkachman

Could you please address this question to Google Group http://groups.google.com/group/groovyplusplus It will be much more natural to discuss it there
512000 concurrent websockets with Groovy++ and Gretty

Aug 03, 2010 · Alex Tkachman

Could you please address this question to Google Group http://groups.google.com/group/groovyplusplus It will be much more natural to discuss it there
512000 concurrent websockets with Groovy++ and Gretty

Aug 03, 2010 · Alex Tkachman

Could you please address this question to Google Group http://groups.google.com/group/groovyplusplus It will be much more natural to discuss it there
Twitter Publisher for CruiseControl.NET

Jul 29, 2010 · Mr B Loid

It doesn't sound good but Gretty is so new that we have no documentation at all :(
Twitter Publisher for CruiseControl.NET

Jul 29, 2010 · Mr B Loid

It doesn't sound good but Gretty is so new that we have no documentation at all :(
512000 concurrent websockets with Groovy++ and Gretty

Jul 29, 2010 · Alex Tkachman

It doesn't sound good but Gretty is so new that we have no documentation at all :(
512000 concurrent websockets with Groovy++ and Gretty

Jul 29, 2010 · Alex Tkachman

It doesn't sound good but Gretty is so new that we have no documentation at all :(
Mobile Messaging with Exchange Server 2007 – Part 2: Managing Mobile Devices

May 11, 2010 · Tony Thomas

Groovy++ is as fast as Java
Mobile Messaging with Exchange Server 2007 – Part 2: Managing Mobile Devices

May 11, 2010 · Tony Thomas

Groovy++ is as fast as Java
Groovy concurrency in action: asynchronious resource pools with Groovy++

May 11, 2010 · Alex Tkachman

Groovy++ is as fast as Java
Groovy concurrency in action: asynchronious resource pools with Groovy++

May 11, 2010 · Alex Tkachman

Groovy++ is as fast as Java
IPTABLES explained: Creating a complex IPTables script easily

Apr 11, 2010 · Mike Stefanello

We obviously want to support Grails as well. For now we are in early research stage
IPTABLES explained: Creating a complex IPTables script easily

Apr 11, 2010 · Mike Stefanello

We obviously want to support Grails as well. For now we are in early research stage
IPTABLES explained: Creating a complex IPTables script easily

Apr 11, 2010 · Mike Stefanello

We obviously want to support Grails as well. For now we are in early research stage
IPTABLES explained: Creating a complex IPTables script easily

Apr 11, 2010 · Mike Stefanello

We obviously want to support Grails as well. For now we are in early research stage
Groovy++ v0.2 Small version number but huge milestone

Apr 11, 2010 · Alex Tkachman

We obviously want to support Grails as well. For now we are in early research stage
Groovy++ v0.2 Small version number but huge milestone

Apr 11, 2010 · Alex Tkachman

We obviously want to support Grails as well. For now we are in early research stage
Groovy++ v0.2 Small version number but huge milestone

Apr 11, 2010 · Alex Tkachman

We obviously want to support Grails as well. For now we are in early research stage
Groovy++ v0.2 Small version number but huge milestone

Apr 11, 2010 · Alex Tkachman

We obviously want to support Grails as well. For now we are in early research stage
IPTABLES explained: Creating a complex IPTables script easily

Apr 08, 2010 · Mike Stefanello

Thank you, Mark. We do our best to implement all (even hidden) promises of the project.
Groovy++ v0.2 Small version number but huge milestone

Apr 08, 2010 · Alex Tkachman

Thank you, Mark. We do our best to implement all (even hidden) promises of the project.
Groovy++ v0.2 Small version number but huge milestone

Apr 08, 2010 · Alex Tkachman

Thank you, Mark. We do our best to implement all (even hidden) promises of the project.
Groovy++ v0.2 Small version number but huge milestone

Apr 08, 2010 · Alex Tkachman

Thank you, Mark. We do our best to implement all (even hidden) promises of the project.
IPTABLES explained: Creating a complex IPTables script easily

Apr 08, 2010 · Mike Stefanello

Thank you, Mark. We do our best to implement all (even hidden) promises of the project.
IPTABLES explained: Creating a complex IPTables script easily

Apr 08, 2010 · Mike Stefanello

Thank you, Mark. We do our best to implement all (even hidden) promises of the project.
IPTABLES explained: Creating a complex IPTables script easily

Apr 08, 2010 · Mike Stefanello

Thank you, Mitchell. I believe that Groovy++ (if we achieve our goals) can seriously impact JVM landscape. It may be look that we post too much information about our project but the only reason for that is to make people aware.
IPTABLES explained: Creating a complex IPTables script easily

Apr 08, 2010 · Mike Stefanello

Thank you, Mitchell. I believe that Groovy++ (if we achieve our goals) can seriously impact JVM landscape. It may be look that we post too much information about our project but the only reason for that is to make people aware.
IPTABLES explained: Creating a complex IPTables script easily

Apr 08, 2010 · Mike Stefanello

Thank you, Mitchell. I believe that Groovy++ (if we achieve our goals) can seriously impact JVM landscape. It may be look that we post too much information about our project but the only reason for that is to make people aware.
IPTABLES explained: Creating a complex IPTables script easily

Apr 08, 2010 · Mike Stefanello

Thank you, Mitchell. I believe that Groovy++ (if we achieve our goals) can seriously impact JVM landscape. It may be look that we post too much information about our project but the only reason for that is to make people aware.
Groovy++ v0.2 Small version number but huge milestone

Apr 08, 2010 · Alex Tkachman

Thank you, Mitchell. I believe that Groovy++ (if we achieve our goals) can seriously impact JVM landscape. It may be look that we post too much information about our project but the only reason for that is to make people aware.
Groovy++ v0.2 Small version number but huge milestone

Apr 08, 2010 · Alex Tkachman

Thank you, Mitchell. I believe that Groovy++ (if we achieve our goals) can seriously impact JVM landscape. It may be look that we post too much information about our project but the only reason for that is to make people aware.
Groovy++ v0.2 Small version number but huge milestone

Apr 08, 2010 · Alex Tkachman

Thank you, Mitchell. I believe that Groovy++ (if we achieve our goals) can seriously impact JVM landscape. It may be look that we post too much information about our project but the only reason for that is to make people aware.
Groovy++ v0.2 Small version number but huge milestone

Apr 08, 2010 · Alex Tkachman

Thank you, Mitchell. I believe that Groovy++ (if we achieve our goals) can seriously impact JVM landscape. It may be look that we post too much information about our project but the only reason for that is to make people aware.
Finger Trees: A Simple General-purpose Data Structure

Feb 25, 2010 · Mr B Loid

Jevgeni, it is exactly my point. I have no goal of bashing Scala. My goal is to find right solution for message scheduling and I am big believer that flow control exceptions are evil (same for thread-locals used uncontrolably)
Finger Trees: A Simple General-purpose Data Structure

Feb 25, 2010 · Mr B Loid

Jevgeni, it is exactly my point. I have no goal of bashing Scala. My goal is to find right solution for message scheduling and I am big believer that flow control exceptions are evil (same for thread-locals used uncontrolably)
Finger Trees: A Simple General-purpose Data Structure

Feb 25, 2010 · Mr B Loid

Jevgeni, it is exactly my point. I have no goal of bashing Scala. My goal is to find right solution for message scheduling and I am big believer that flow control exceptions are evil (same for thread-locals used uncontrolably)
Why Scala actors slower compare to Jetlang and/or Groovy++ messaging

Feb 25, 2010 · Alex Tkachman

Jevgeni, it is exactly my point. I have no goal of bashing Scala. My goal is to find right solution for message scheduling and I am big believer that flow control exceptions are evil (same for thread-locals used uncontrolably)
Why Scala actors slower compare to Jetlang and/or Groovy++ messaging

Feb 25, 2010 · Alex Tkachman

Jevgeni, it is exactly my point. I have no goal of bashing Scala. My goal is to find right solution for message scheduling and I am big believer that flow control exceptions are evil (same for thread-locals used uncontrolably)
Why Scala actors slower compare to Jetlang and/or Groovy++ messaging

Feb 25, 2010 · Alex Tkachman

Jevgeni, it is exactly my point. I have no goal of bashing Scala. My goal is to find right solution for message scheduling and I am big believer that flow control exceptions are evil (same for thread-locals used uncontrolably)
Finger Trees: A Simple General-purpose Data Structure

Feb 25, 2010 · Mr B Loid

Hossam, thanks a lot. This modified code executed on my machine 5221ms Use of non-standard scheduler makes a lot of difference. I will separate post about it later today.
Finger Trees: A Simple General-purpose Data Structure

Feb 25, 2010 · Mr B Loid

Hossam, thanks a lot. This modified code executed on my machine 5221ms Use of non-standard scheduler makes a lot of difference. I will separate post about it later today.
Why Scala actors slower compare to Jetlang and/or Groovy++ messaging

Feb 25, 2010 · Alex Tkachman

Hossam, thanks a lot. This modified code executed on my machine 5221ms Use of non-standard scheduler makes a lot of difference. I will separate post about it later today.
Why Scala actors slower compare to Jetlang and/or Groovy++ messaging

Feb 25, 2010 · Alex Tkachman

Hossam, thanks a lot. This modified code executed on my machine 5221ms Use of non-standard scheduler makes a lot of difference. I will separate post about it later today.
Why Scala actors 15-20 times slower compare to Jetlang and/or Groovy++ messaging

Feb 24, 2010 · Alex Tkachman

I will appreciate if you post link to this discussion.
Why Scala actors 15-20 times slower compare to Jetlang and/or Groovy++ messaging

Feb 24, 2010 · Alex Tkachman

If you could provide better performing code I will be happy to post new article with updated results
Why Scala actors 15-20 times slower compare to Jetlang and/or Groovy++ messaging

Feb 24, 2010 · Alex Tkachman

This post has nothing to do with bashing Scala language. The post is about architecture of Scala actors, which has performance implications.
Security-Enhanced PostgreSQL Database

Feb 04, 2010 · Steven Nakhla

Groovy++ does catch compile time errors
Security-Enhanced PostgreSQL Database

Feb 04, 2010 · Steven Nakhla

Groovy++ does catch compile time errors
Security-Enhanced PostgreSQL Database

Feb 04, 2010 · Steven Nakhla

Groovy++ does catch compile time errors
Alex Tkachman on Static Groovy: the inside scoop

Feb 04, 2010 · Andres Almiray

Groovy++ does catch compile time errors
Alex Tkachman on Static Groovy: the inside scoop

Feb 04, 2010 · Andres Almiray

Groovy++ does catch compile time errors
Alex Tkachman on Static Groovy: the inside scoop

Feb 04, 2010 · Andres Almiray

Groovy++ does catch compile time errors
Security-Enhanced PostgreSQL Database

Feb 03, 2010 · Steven Nakhla

Artur, I am core developer of groovy and spent (and continue) huge amount of time making it better. I have zero intention to present plain groovy in bad light. Groovy is great dynamic language. Groovy++ is attempt to create statically typed story for it. Alex
Security-Enhanced PostgreSQL Database

Feb 03, 2010 · Steven Nakhla

Artur, I am core developer of groovy and spent (and continue) huge amount of time making it better. I have zero intention to present plain groovy in bad light. Groovy is great dynamic language. Groovy++ is attempt to create statically typed story for it. Alex
Security-Enhanced PostgreSQL Database

Feb 03, 2010 · Steven Nakhla

Artur, I am core developer of groovy and spent (and continue) huge amount of time making it better. I have zero intention to present plain groovy in bad light. Groovy is great dynamic language. Groovy++ is attempt to create statically typed story for it. Alex
Alex Tkachman on Static Groovy: the inside scoop

Feb 03, 2010 · Andres Almiray

Artur, I am core developer of groovy and spent (and continue) huge amount of time making it better. I have zero intention to present plain groovy in bad light. Groovy is great dynamic language. Groovy++ is attempt to create statically typed story for it. Alex
Alex Tkachman on Static Groovy: the inside scoop

Feb 03, 2010 · Andres Almiray

Artur, I am core developer of groovy and spent (and continue) huge amount of time making it better. I have zero intention to present plain groovy in bad light. Groovy is great dynamic language. Groovy++ is attempt to create statically typed story for it. Alex
Alex Tkachman on Static Groovy: the inside scoop

Feb 03, 2010 · Andres Almiray

Artur, I am core developer of groovy and spent (and continue) huge amount of time making it better. I have zero intention to present plain groovy in bad light. Groovy is great dynamic language. Groovy++ is attempt to create statically typed story for it. Alex
Yet Another JavaScript Library Without Documentation

Jan 14, 2010 · Mr B Loid

Adam, any chances you can share with us your java version, so we include it in our repo?
Yet Another JavaScript Library Without Documentation

Jan 14, 2010 · Mr B Loid

Adam, any chances you can share with us your java version, so we include it in our repo?
Yet Another JavaScript Library Without Documentation

Jan 14, 2010 · Mr B Loid

Adam, any chances you can share with us your java version, so we include it in our repo?
How come that Groovy++ overperform Java?

Jan 14, 2010 · Alex Tkachman

Adam, any chances you can share with us your java version, so we include it in our repo?
How come that Groovy++ overperform Java?

Jan 14, 2010 · Alex Tkachman

Adam, any chances you can share with us your java version, so we include it in our repo?
How come that Groovy++ overperform Java?

Jan 14, 2010 · Alex Tkachman

Adam, any chances you can share with us your java version, so we include it in our repo?
How come that Groovy++ overperform Java?

Jan 12, 2010 · Alex Tkachman

Charlie, I openly say that I didn't tune Java code and I don't claim that static groovy is faster than Java - it is obvious. And I am sorry, that you find name of my post provoking but I am sure you understand that it's done with purpose. Regarding files, if you read original posts comparing performance of different languages including Ruby, you will find link for zip with files. I also think that better place to discuss svn suggestions is dedicated group.
How come that Groovy++ overperform Java?

Jan 12, 2010 · Alex Tkachman

Charlie, I openly say that I didn't tune Java code and I don't claim that static groovy is faster than Java - it is obvious. And I am sorry, that you find name of my post provoking but I am sure you understand that it's done with purpose. Regarding files, if you read original posts comparing performance of different languages including Ruby, you will find link for zip with files. I also think that better place to discuss svn suggestions is dedicated group.
Yet Another JavaScript Library Without Documentation

Jan 12, 2010 · Mr B Loid

Charlie, I openly say that I didn't tune Java code and I don't claim that static groovy is faster than Java - it is obvious. And I am sorry, that you find name of my post provoking but I am sure you understand that it's done with purpose. Regarding files, if you read original posts comparing performance of different languages including Ruby, you will find link for zip with files. I also think that better place to discuss svn suggestions is dedicated group.
Yet Another JavaScript Library Without Documentation

Jan 12, 2010 · Mr B Loid

Charlie, I openly say that I didn't tune Java code and I don't claim that static groovy is faster than Java - it is obvious. And I am sorry, that you find name of my post provoking but I am sure you understand that it's done with purpose. Regarding files, if you read original posts comparing performance of different languages including Ruby, you will find link for zip with files. I also think that better place to discuss svn suggestions is dedicated group.
Yet Another JavaScript Library Without Documentation

Jan 12, 2010 · Mr B Loid

Charlie, I openly say that I didn't tune Java code and I don't claim that static groovy is faster than Java - it is obvious. And I am sorry, that you find name of my post provoking but I am sure you understand that it's done with purpose. Regarding files, if you read original posts comparing performance of different languages including Ruby, you will find link for zip with files. I also think that better place to discuss svn suggestions is dedicated group.
Yet Another JavaScript Library Without Documentation

Jan 12, 2010 · Mr B Loid

Charlie, I openly say that I didn't tune Java code and I don't claim that static groovy is faster than Java - it is obvious. And I am sorry, that you find name of my post provoking but I am sure you understand that it's done with purpose. Regarding files, if you read original posts comparing performance of different languages including Ruby, you will find link for zip with files. I also think that better place to discuss svn suggestions is dedicated group.
How come that Groovy++ overperform Java?

Jan 12, 2010 · Alex Tkachman

Charlie, I openly say that I didn't tune Java code and I don't claim that static groovy is faster than Java - it is obvious. And I am sorry, that you find name of my post provoking but I am sure you understand that it's done with purpose. Regarding files, if you read original posts comparing performance of different languages including Ruby, you will find link for zip with files. I also think that better place to discuss svn suggestions is dedicated group.
How come that Groovy++ overperform Java?

Jan 12, 2010 · Alex Tkachman

Charlie, I openly say that I didn't tune Java code and I don't claim that static groovy is faster than Java - it is obvious. And I am sorry, that you find name of my post provoking but I am sure you understand that it's done with purpose. Regarding files, if you read original posts comparing performance of different languages including Ruby, you will find link for zip with files. I also think that better place to discuss svn suggestions is dedicated group.
Yet Another JavaScript Library Without Documentation

Jan 12, 2010 · Mr B Loid

Artur, you are absolutely right and the benchmark is IO bound and OS cache plays huge role. It's exact reason why I use 10 measurements and drop highest and lowest.
Yet Another JavaScript Library Without Documentation

Jan 12, 2010 · Mr B Loid

Artur, you are absolutely right and the benchmark is IO bound and OS cache plays huge role. It's exact reason why I use 10 measurements and drop highest and lowest.
Yet Another JavaScript Library Without Documentation

Jan 12, 2010 · Mr B Loid

Artur, you are absolutely right and the benchmark is IO bound and OS cache plays huge role. It's exact reason why I use 10 measurements and drop highest and lowest.
Yet Another JavaScript Library Without Documentation

Jan 12, 2010 · Mr B Loid

Artur, you are absolutely right and the benchmark is IO bound and OS cache plays huge role. It's exact reason why I use 10 measurements and drop highest and lowest.
How come that Groovy++ overperform Java?

Jan 12, 2010 · Alex Tkachman

Artur, you are absolutely right and the benchmark is IO bound and OS cache plays huge role. It's exact reason why I use 10 measurements and drop highest and lowest.
How come that Groovy++ overperform Java?

Jan 12, 2010 · Alex Tkachman

Artur, you are absolutely right and the benchmark is IO bound and OS cache plays huge role. It's exact reason why I use 10 measurements and drop highest and lowest.
How come that Groovy++ overperform Java?

Jan 12, 2010 · Alex Tkachman

Artur, you are absolutely right and the benchmark is IO bound and OS cache plays huge role. It's exact reason why I use 10 measurements and drop highest and lowest.
How come that Groovy++ overperform Java?

Jan 12, 2010 · Alex Tkachman

Artur, you are absolutely right and the benchmark is IO bound and OS cache plays huge role. It's exact reason why I use 10 measurements and drop highest and lowest.
Conversation With X/HTML 5 Team

Dec 12, 2009 · Mr B Loid

Not yet. I will start EAP program soon.
Conversation With X/HTML 5 Team

Dec 12, 2009 · Mr B Loid

Not yet. I will start EAP program soon.
Conversation With X/HTML 5 Team

Dec 12, 2009 · Mr B Loid

Not yet. I will start EAP program soon.
Conversation With X/HTML 5 Team

Dec 12, 2009 · Mr B Loid

Not yet. I will start EAP program soon.
Mixing dynamic and static code in Groovy

Dec 12, 2009 · Alex Tkachman

Not yet. I will start EAP program soon.
Mixing dynamic and static code in Groovy

Dec 12, 2009 · Alex Tkachman

Not yet. I will start EAP program soon.
Mixing dynamic and static code in Groovy

Dec 12, 2009 · Alex Tkachman

Not yet. I will start EAP program soon.
Mixing dynamic and static code in Groovy

Dec 12, 2009 · Alex Tkachman

Not yet. I will start EAP program soon.
On static compilation of Groovy

Nov 11, 2009 · Alex Tkachman

Charles, I am sorry but I don't understand what hash lookup are you talking about - there is no any lookup at all. Example in the article is standard functional algorithm
On static compilation of Groovy

Nov 09, 2009 · Alex Tkachman

Thank you, Lari.

I am very well aware about both efforts

On static compilation of Groovy

Nov 09, 2009 · Alex Tkachman

Thank you, Lari.

I am very well aware about both efforts

underground php oracle pdf

Feb 13, 2008 · Tony Colston

Absolutely correct. To Enhance not To Replace.

Groovy allows you to leverage your existing skills and infrastructure. There is no point to drop off all great staff you already have.

underground php oracle pdf

Feb 13, 2008 · Tony Colston

Absolutely correct. To Enhance not To Replace.

Groovy allows you to leverage your existing skills and infrastructure. There is no point to drop off all great staff you already have.

underground php oracle pdf

Feb 13, 2008 · Tony Colston

Absolutely correct. To Enhance not To Replace.

Groovy allows you to leverage your existing skills and infrastructure. There is no point to drop off all great staff you already have.

Groovy will replace the Java language as dominant language

Feb 13, 2008 · Steven Devijver

Absolutely correct. To Enhance not To Replace.

Groovy allows you to leverage your existing skills and infrastructure. There is no point to drop off all great staff you already have.

Groovy will replace the Java language as dominant language

Feb 13, 2008 · Steven Devijver

Absolutely correct. To Enhance not To Replace.

Groovy allows you to leverage your existing skills and infrastructure. There is no point to drop off all great staff you already have.

Groovy will replace the Java language as dominant language

Feb 13, 2008 · Steven Devijver

Absolutely correct. To Enhance not To Replace.

Groovy allows you to leverage your existing skills and infrastructure. There is no point to drop off all great staff you already have.

Create an RSS feeds generator in PHP

Feb 04, 2008 · Srirangan Srinivasan

Just for protocol, as we say in Russian police...

We (Groovy community) put huge efforts to make Groovy as fast as possible by dynamic nature of the language and we already achieved huge progress compare to what we had in 1.0 and next version 1.6 has good chances to become much more faster compare to 1.5.x.

Create an RSS feeds generator in PHP

Feb 04, 2008 · Srirangan Srinivasan

Just for protocol, as we say in Russian police...

We (Groovy community) put huge efforts to make Groovy as fast as possible by dynamic nature of the language and we already achieved huge progress compare to what we had in 1.0 and next version 1.6 has good chances to become much more faster compare to 1.5.x.

Create an RSS feeds generator in PHP

Feb 04, 2008 · Srirangan Srinivasan

Just for protocol, as we say in Russian police...

We (Groovy community) put huge efforts to make Groovy as fast as possible by dynamic nature of the language and we already achieved huge progress compare to what we had in 1.0 and next version 1.6 has good chances to become much more faster compare to 1.5.x.

Create an RSS feeds generator in PHP

Feb 04, 2008 · Srirangan Srinivasan

Just for protocol, as we say in Russian police...

We (Groovy community) put huge efforts to make Groovy as fast as possible by dynamic nature of the language and we already achieved huge progress compare to what we had in 1.0 and next version 1.6 has good chances to become much more faster compare to 1.5.x.

From Java to Groovy, part 2: Closures and Native Syntax for Lists

Feb 04, 2008 · Guillaume Laforge

Just for protocol, as we say in Russian police...

We (Groovy community) put huge efforts to make Groovy as fast as possible by dynamic nature of the language and we already achieved huge progress compare to what we had in 1.0 and next version 1.6 has good chances to become much more faster compare to 1.5.x.

From Java to Groovy, part 2: Closures and Native Syntax for Lists

Feb 04, 2008 · Guillaume Laforge

Just for protocol, as we say in Russian police...

We (Groovy community) put huge efforts to make Groovy as fast as possible by dynamic nature of the language and we already achieved huge progress compare to what we had in 1.0 and next version 1.6 has good chances to become much more faster compare to 1.5.x.

From Java to Groovy, part 2: Closures and Native Syntax for Lists

Feb 04, 2008 · Guillaume Laforge

Just for protocol, as we say in Russian police...

We (Groovy community) put huge efforts to make Groovy as fast as possible by dynamic nature of the language and we already achieved huge progress compare to what we had in 1.0 and next version 1.6 has good chances to become much more faster compare to 1.5.x.

From Java to Groovy, part 2: Closures and Native Syntax for Lists

Feb 04, 2008 · Guillaume Laforge

Just for protocol, as we say in Russian police...

We (Groovy community) put huge efforts to make Groovy as fast as possible by dynamic nature of the language and we already achieved huge progress compare to what we had in 1.0 and next version 1.6 has good chances to become much more faster compare to 1.5.x.

IntelliJ IDEAL Plugin Contest Winners Announced!

Dec 12, 2006 · Alex Tkachman

Thank you, Rick!
The Road To Build Enlightenment

Nov 14, 2006 · Peter Stofferis

alext reported this link as spam on 11/14/2006 @ 09:24:09 The link goes to product site - not to interesting article.
IDE Watch - GWT Plugin for IntelliJ

Jun 26, 2006 · Dietrich Kappe

"GWT Studio" plugin will be bundled with coming IDEA 6.0. It is already available in EAP builds. Just try it - http://www.intellij.net/eap/

User has been successfully modified

Failed to modify user

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: