GWT vs AngularJS

6,457 views
Skip to first unread message

Stefan Falk

unread,
Feb 18, 2016, 5:34:24 PM2/18/16
to GWT Users
Hi!

From time to time I look at Google Trends to compare AngularJS and GWT [1] trends. 

I really don't understand why AngularJS appears to be a lot more popular than GWT. The main reason why I want to use GWT is of course that I can do this in Java. 
Not that Java is my overall favorite programming language but how could one chose JavaScript over Java if he has the choice?

What I wonder is if GWT will ever have a comeback or if it will slowly die as the Google Trend chart suggests.

BR; Stefan


Marko

unread,
Feb 18, 2016, 6:50:07 PM2/18/16
to GWT Users

... but how could one chose JavaScript over Java if he has the choice?

Because:
1) beginners have a running web app in JavaScript in 1 minute, whereby they need 1 day to setup development environment for building web apps in Java and even more for GWT
2) beginners don't know that Java is better than JavaScript, they lack experience

Stefan Falk

unread,
Feb 18, 2016, 8:02:09 PM2/18/16
to GWT Users
Those are actually two good points. It's very unfortunate that there is nothing that can help you to setup a GWT app a little faster.

I am still using gwt-maven-archetype and create my modular app(s) by hand. XD

Thanos

unread,
Feb 18, 2016, 8:31:12 PM2/18/16
to GWT Users
AngularJS has pure HMTL templating, which is very popular. As it allows html people to do the user design side, and the code just hooks into that. And directive provides a nice component model. UiBinder is xml and unfamiliar to some and cannot be authored by a standard html develop. 

Projects like  Singular and ErraiUI provide alternatives to this. ErraiUI also provides strong annotation driven development, which can help reduce GWT boiler plate code.

Mark

Gilberto

unread,
Feb 18, 2016, 9:30:49 PM2/18/16
to GWT Users
Hi again Stefan ;-)

In my opinion its just a matter of preference. If you like Java and are productive with it, use GWT, if you like Javascript and are productive with it, use Angular.

I'm on the Java side, so it's quite unfair for me to make a list of pros and cons of each language. You can have good and bad programmers in any of it, good and bad code in any of it.

But talking about the trending, Javascript is far less "complicated" than Java. It's faster to get the job done, at least on the web. Remember the old days of C++ vs. Java? Same story: Java is less "complicated" than C++, you don't have to worry about memory management, platform issues, different compilers and so on. Now Javascript says similar things to Java: no worry about types, strong hierarchy of classes, static compilation, inner classes and so on.

Did Java killed C++? Not by far. Will Javascript kill Java? No, it won't. Which should you pick to create your next web project? It's up to you.

An interesting note: Angular 2 uses Typescript - which support strong typing (aka. becoming "more complicated"). And GWT is becoming more interoperable with Javascript, allowing code to be reused and accessed in a much better way that JSNI (aka. becoming "less complicated"). Do you see where is this leading to? I think both technologies are going "merge" at some point. Javascript is becoming the bytecode, the lower-level language of the web, the same way C and assembly are the lower-level languages of the operating systems. Code written is any language that compiles to Javascript will be reusable in other languages/frameworks, just like C libraries are today.

If you are hiring developers for your company, you have an interesting scenario: since Javascript as a serious programming language is something relatively new (there are still people that thinks Javascript is just for animations on static web pages), it's harder to find senior Javascript developers than senior Java developers. But if you are looking for people with less than 3~5 years of experience, you may find easier to recruit Javascript developers.

In my opinion Java developers shouldn't judge Javascript the same way they were judged by C++ developers in the past. They are just tools. Pick the tool which you consider is the right one for the job. Hammers can't "kill" screwdrivers.

Kirill Prazdnikov

unread,
Feb 19, 2016, 4:08:12 AM2/19/16
to GWT Users
My 2 cents. 
We write portable code.
We build it for GWT, iOS, Android.
GWT is a java compiler, a way to have portable logic.
More portable logic, less code to maintain, less bugs.

-Kirill

Alain Ekambi

unread,
Feb 19, 2016, 5:04:19 AM2/19/16
to google-we...@googlegroups.com
Someone wrote it earlier.
Angular2 is written using TypeScript.

I think that said it all. Why not simply use vanilla JS to build Angular JS 2 ?
Because JS sucks at scale. Bottom line.  I know some JS ninjas will disagree.

If you are going to use something on top of JS to generate JS (TypeScript) why note use Java(GWT) ?

The main problem of GWT has always been advertising.
Google does not help much with advertissement

Sencha, Vaadin, etc are following their own agenda. You cant blame them. We all have to make money somehow.

95% of my time is convincing customers why they should use GWT when stuff like Angular are so hot.

My response is always "How much are you willing to pay to maintain this software ? "
Guess what technology they choose after that question :) :) )

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.
To post to this group, send email to google-we...@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.



--

Alain Ekambi

Co-Founder

Ahomé Innovation Technologies

http://www.ahome-it.com/

Luigi Bifulco

unread,
Feb 19, 2016, 6:03:22 PM2/19/16
to GWT Users
Where I work we have old projects written in GWT and new projects written on Angular. I was only involved in projects using GWT and I know Angular very well. I think GWT has been misunderstood. Beginners don't care about programming languages, beginners didn't understand that GWT is basically a compiler, and imho a little error made in the GWT project is that it provides a lot of things in addition to the compiler in one set of tools and API. Few people really have understood every piece of this great framework and all its advantages. Of course it has its own defects too, but nothing of unresolvable

Cristian Rinaldi

unread,
Feb 21, 2016, 8:04:54 PM2/21/16
to GWT Users

+Gilberto, excellent response!! 
+1  for this!

DavidN

unread,
Feb 22, 2016, 3:21:49 AM2/22/16
to GWT Users
Good point about Angular 2 and I totally agree with your remark about "advertising". But Angular 2 will gain more traction because of TypeScript since that language is more easily supported by development tools.

Angular also makes two-way binding look easy, I still don't understand how to do this properly in GWT, the docs are really superficial on that subject.

I think one of the main issues is that a lot of GWT apps are written by more experienced developers which don't need to flood stackoverflow or the internet with question and blog posts on how to write yet another TODO or Hello World app. As a consequence it does not get a lot of visibility.

The docs are one of the weak points of GWT. It is outdated and disorganised even for GWT 2.7. The main pages focus too much on widgets and GWT-RPC - the stuff that was in GWT since the begining. All the new features that were added later were added more as an appendix than actually documentation content. Most people only start with a HelloWorld and go from there, but the Hello World does not apply all the more advanced and time saving features of GWT.

On Friday, February 19, 2016 at 11:04:19 AM UTC+1, Alain wrote:
Someone wrote it earlier.
Angular2 is written using TypeScript.

I think that said it all. Why not simply use vanilla JS to build Angular JS 2 ?
Because JS sucks at scale. Bottom line.  I know some JS ninjas will disagree.

If you are going to use something on top of JS to generate JS (TypeScript) why note use Java(GWT) ?

The main problem of GWT has always been advertising.
Google does not help much with advertissement

Sencha, Vaadin, etc are following their own agenda. You cant blame them. We all have to make money somehow.

95% of my time is convincing customers why they should use GWT when stuff like Angular are so hot.

My response is always "How much are you willing to pay to maintain this software ? "
Guess what technology they choose after that question :) :) )
On 19 February 2016 at 10:08, Kirill Prazdnikov <pki...@gmail.com> wrote:
My 2 cents. 
We write portable code.
We build it for GWT, iOS, Android.
GWT is a java compiler, a way to have portable logic.
More portable logic, less code to maintain, less bugs.

-Kirill

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsub...@googlegroups.com.

To post to this group, send email to google-we...@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Luigi Bifulco

unread,
Feb 22, 2016, 9:31:50 AM2/22/16
to GWT Users
Check for Errai framework if you want two way data binding. It uses GWT compiler as core and make sense about all this discussion.A part the language, comparing GWT and Angular it's a bit confusing the first solves the problem to integrate and use a more complete language in the front end. The second solves the problem on how to use a more complicated language (for dummy developers) providing pattern implementations such as two way data binding, dependency injection etc.

Adolfo Rodriguez

unread,
Feb 24, 2016, 10:58:36 AM2/24/16
to GWT Users
In my opinion, the main problem of GWT is that you are irrelevant for crawlers, and this is a serious commercial drawback, despite I love GWT

If GWT would be able to generate the plain HTML it would beat any pure JS library

Ed

unread,
Feb 24, 2016, 12:14:18 PM2/24/16
to Google Web Toolkit
I update robots.txt to point to generated crawl able html files from the content.  The gwt content comes from a data base that makes this process much easier

Ed

On Wed, Feb 24, 2016 at 10:58 AM, Adolfo Rodriguez <business...@gmail.com> wrote:
In my opinion, the main problem of GWT is that you are irrelevant for crawlers, and this is a serious commercial drawback, despite I love GWT

If GWT would be able to generate the plain HTML it would beat any pure JS library

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.

Vassilis Virvilis

unread,
Feb 24, 2016, 3:55:54 PM2/24/16
to google-we...@googlegroups.com
Newer googlebot can parse javascript. This is also true fr BingBot to a certain extent. I have seen the logs...

Furthermore the google ajax crawling proposal still stands although it is deprecated. That means googlebot will try to parse your urls containing #! with escaped_fragment.

So IMO the point that GWT is irrelevant for crawlers is not accurate..

--
Vassilis Virvilis

Thomas Broyer

unread,
Feb 25, 2016, 6:08:51 AM2/25/16
to GWT Users


On Wednesday, February 24, 2016 at 4:58:36 PM UTC+1, Adolfo Rodriguez wrote:
In my opinion, the main problem of GWT is that you are irrelevant for crawlers, and this is a serious commercial drawback, despite I love GWT

Isn't that the case for any webpage generated entirely through JavaScript? (whether that JS has been hand-written, generated from Java code through GWT, or from CoffeeScript, TypeScript, Scala, Closure, you name it)
(and specifically, this applies to AngularJS too, as we're in a "GWT vs AngularJS" thread)
 
If GWT would be able to generate the plain HTML it would beat any pure JS library

Something like http://dev.arcbees.com/gwtp/advanced/crawler-support.html ? (which I don't think is limited to applications using GWTP btw)
See also https://prerender.io/ (independent from the client-side technology, whether GWT, AngularJS, etc.)

But as Vassilis said, Google and Bing execute JS (to some extent) so at least there you're covered without additional work. Things are likely to be different with Baidu and DuckDuckGo (to name a few)

Gourab Panda

unread,
Mar 2, 2016, 11:11:52 PM3/2/16
to google-we...@googlegroups.com
My 2 cent.

I have been working with GWT for past 7 years. I have used plain GWT, GWT/GXT2, GWT/GXT2/GXT3 and GWT/GXT2/GXT3/GWTP in different project.

I like GWT because its Java and its Earlier Dev Mode support. And of course because of other benefits like Maintainability, Cross Browser Support etc.

I don't like GWT because:

- Generates Lots of Javascript code. Code splitting solve this problems, but still it generates double(or even more) JS code than that of pure JS app.
- You write code in Java, but you also consider(or Think) how the Javascript will be generated.
- Production mode debugging is easy in Javascript written app(of course if you have not minified it)
- Less Jobs in Market for GWT.(Though it has advantage of high Pay)
- As far as I know, no new product development uses GWT, lots of company still using it because they can't migrate easily.



Regards
Gourab.






--

Boris Brudnoy

unread,
Mar 3, 2016, 11:38:57 AM3/3/16
to google-we...@googlegroups.com
On Wed, Mar 2, 2016 at 11:11 PM Gourab Panda <gour...@gmail.com> wrote:
- Generates Lots of Javascript code. Code splitting solve this problems, but still it generates double(or even more) JS code than that of pure JS app.

Are you basing this on a Hello World example? GWT emulates JDK and so sets up a lot of operational infrastructure upfront. Do you have any specifics on whether all additionally written functionality linearly adds x2 or more JS code? When it comes to comparing applications with scores of screens and hundreds of function points, how do sizes stuck up?
 
- You write code in Java, but you also consider(or Think) how the Javascript will be generated.

You don't need to think much about JS generated from your Java code, but you do have to consider an app in its environment, the browser. In other words, GWT lets you use the Java toolchain but doesn't relieve you from familiarity with HTTP, HTML, CSS, JavaScript and browser behavior.
 
- As far as I know, no new product development uses GWT, lots of company still using it because they can't migrate easily.
 
What about Google Sheets or Inbox, Google's next generation email app? Both started relatively recently and are long term projects. Surely Google leads by example here?

Boris Brudnoy 


Regards
Gourab.






On Thu, Feb 25, 2016 at 4:38 PM, Thomas Broyer <t.br...@gmail.com> wrote:


On Wednesday, February 24, 2016 at 4:58:36 PM UTC+1, Adolfo Rodriguez wrote:
In my opinion, the main problem of GWT is that you are irrelevant for crawlers, and this is a serious commercial drawback, despite I love GWT

Isn't that the case for any webpage generated entirely through JavaScript? (whether that JS has been hand-written, generated from Java code through GWT, or from CoffeeScript, TypeScript, Scala, Closure, you name it)
(and specifically, this applies to AngularJS too, as we're in a "GWT vs AngularJS" thread)
 
If GWT would be able to generate the plain HTML it would beat any pure JS library

Something like http://dev.arcbees.com/gwtp/advanced/crawler-support.html ? (which I don't think is limited to applications using GWTP btw)
See also https://prerender.io/ (independent from the client-side technology, whether GWT, AngularJS, etc.)

But as Vassilis said, Google and Bing execute JS (to some extent) so at least there you're covered without additional work. Things are likely to be different with Baidu and DuckDuckGo (to name a few)

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.
To post to this group, send email to google-we...@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.
To post to this group, send email to google-we...@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.
--
BORIS BRUDNOY
Web Application Developer, Java/GWT Enthusiast (LinkedIn)

Rogelio Flores

unread,
Mar 3, 2016, 12:25:22 PM3/3/16
to GWT Users
@Boris I think exactly the opposite has been observed with respect to the output javascript size. GWT's transpiler does optimizations, minification, and obfuscation. You might be failing to consider that only one permutation of the javascript code is the one that actually runs on a given browser, which is what you should use to compare vs X JS library.
Using your favorite JS library, you have to basically ship all of its JS code, regardless if you use it (contrary to GWT's case).
In addition, ClientBundles allow you to optimize and reduce the CSS3 code size and the number of HTTP requests for images (sprites) and other files.


On Thursday, March 3, 2016 at 9:38:57 AM UTC-7, Boris Brudnoy wrote:
On Wed, Mar 2, 2016 at 11:11 PM Gourab Panda <gour...@gmail.com> wrote:
- Generates Lots of Javascript code. Code splitting solve this problems, but still it generates double(or even more) JS code than that of pure JS app.

Are you basing this on a Hello World example? GWT emulates JDK and so sets up a lot of operational infrastructure upfront. Do you have any specifics on whether all additionally written functionality linearly adds x2 or more JS code? When it comes to comparing applications with scores of screens and hundreds of function points, how do sizes stuck up?
 
- You write code in Java, but you also consider(or Think) how the Javascript will be generated.

You don't need to think much about JS generated from your Java code, but you do have to consider an app in its environment, the browser. In other words, GWT lets you use the Java toolchain but doesn't relieve you from familiarity with HTTP, HTML, CSS, JavaScript and browser behavior.
 
- As far as I know, no new product development uses GWT, lots of company still using it because they can't migrate easily.
 
What about Google Sheets or Inbox, Google's next generation email app? Both started relatively recently and are long term projects. Surely Google leads by example here?

Boris Brudnoy 


Regards
Gourab.






On Thu, Feb 25, 2016 at 4:38 PM, Thomas Broyer <t.br...@gmail.com> wrote:


On Wednesday, February 24, 2016 at 4:58:36 PM UTC+1, Adolfo Rodriguez wrote:
In my opinion, the main problem of GWT is that you are irrelevant for crawlers, and this is a serious commercial drawback, despite I love GWT

Isn't that the case for any webpage generated entirely through JavaScript? (whether that JS has been hand-written, generated from Java code through GWT, or from CoffeeScript, TypeScript, Scala, Closure, you name it)
(and specifically, this applies to AngularJS too, as we're in a "GWT vs AngularJS" thread)
 
If GWT would be able to generate the plain HTML it would beat any pure JS library

Something like http://dev.arcbees.com/gwtp/advanced/crawler-support.html ? (which I don't think is limited to applications using GWTP btw)
See also https://prerender.io/ (independent from the client-side technology, whether GWT, AngularJS, etc.)

But as Vassilis said, Google and Bing execute JS (to some extent) so at least there you're covered without additional work. Things are likely to be different with Baidu and DuckDuckGo (to name a few)

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsub...@googlegroups.com.

To post to this group, send email to google-we...@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsub...@googlegroups.com.

To post to this group, send email to google-we...@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Boris Brudnoy

unread,
Mar 3, 2016, 12:36:32 PM3/3/16
to google-we...@googlegroups.com
On Thu, Mar 3, 2016 at 12:25 PM Rogelio Flores <rogelio...@gmail.com> wrote:
@Boris I think exactly the opposite has been observed with respect to the output javascript size. GWT's transpiler does optimizations, minification, and obfuscation. You might be failing to consider that only one permutation of the javascript code is the one that actually runs on a given browser, which is what you should use to compare vs X JS library.
Using your favorite JS library, you have to basically ship all of its JS code, regardless if you use it (contrary to GWT's case).
In addition, ClientBundles allow you to optimize and reduce the CSS3 code size and the number of HTTP requests for images (sprites) and other files.

@Rogelio Flores I was driving towards your points by questioning Gourab Panda's assertion that GWT produces twice as much JS code as an app written purely in JS. A hello world example might indicate that GWT produces JS bloat but a real world app would probably belie conclusions from such an example.

On Thursday, March 3, 2016 at 9:38:57 AM UTC-7, Boris Brudnoy wrote:
On Wed, Mar 2, 2016 at 11:11 PM Gourab Panda <gour...@gmail.com> wrote:
- Generates Lots of Javascript code. Code splitting solve this problems, but still it generates double(or even more) JS code than that of pure JS app.

Are you basing this on a Hello World example? GWT emulates JDK and so sets up a lot of operational infrastructure upfront. Do you have any specifics on whether all additionally written functionality linearly adds x2 or more JS code? When it comes to comparing applications with scores of screens and hundreds of function points, how do sizes stuck up?
 
- You write code in Java, but you also consider(or Think) how the Javascript will be generated.

You don't need to think much about JS generated from your Java code, but you do have to consider an app in its environment, the browser. In other words, GWT lets you use the Java toolchain but doesn't relieve you from familiarity with HTTP, HTML, CSS, JavaScript and browser behavior.
 
- As far as I know, no new product development uses GWT, lots of company still using it because they can't migrate easily.
 
What about Google Sheets or Inbox, Google's next generation email app? Both started relatively recently and are long term projects. Surely Google leads by example here?

Boris Brudnoy 


Regards
Gourab.






On Thu, Feb 25, 2016 at 4:38 PM, Thomas Broyer <t.br...@gmail.com> wrote:


On Wednesday, February 24, 2016 at 4:58:36 PM UTC+1, Adolfo Rodriguez wrote:
In my opinion, the main problem of GWT is that you are irrelevant for crawlers, and this is a serious commercial drawback, despite I love GWT

Isn't that the case for any webpage generated entirely through JavaScript? (whether that JS has been hand-written, generated from Java code through GWT, or from CoffeeScript, TypeScript, Scala, Closure, you name it)
(and specifically, this applies to AngularJS too, as we're in a "GWT vs AngularJS" thread)
 
If GWT would be able to generate the plain HTML it would beat any pure JS library

Something like http://dev.arcbees.com/gwtp/advanced/crawler-support.html ? (which I don't think is limited to applications using GWTP btw)
See also https://prerender.io/ (independent from the client-side technology, whether GWT, AngularJS, etc.)

But as Vassilis said, Google and Bing execute JS (to some extent) so at least there you're covered without additional work. Things are likely to be different with Baidu and DuckDuckGo (to name a few)

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.
To post to this group, send email to google-we...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.
To post to this group, send email to google-we...@googlegroups.com.
--
BORIS BRUDNOY
Web Application Developer, Java/GWT Enthusiast (LinkedIn)

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.

To post to this group, send email to google-we...@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Vassilis Virvilis

unread,
Mar 3, 2016, 1:24:52 PM3/3/16
to google-we...@googlegroups.com
Real world anecdotal evidence here (meaning comparing apple to oranges really).

We have recently rewrite an old flash app in GWT. The new version is more modern (naturally since it is more recent) and does loads of more stuff.

The client asked how it compared with old flash app.

They both weight around 600K uncompressed. GWT version is a bit heavier - don't remember the numbers let's say 5-10% bigger.
When compressed though the GWT version is easily 30% smaller. than the flash version.

Doesn't prove anything but it's a point: GWT compares favorably in terms of size with 8-10 year old tech,

     Vassilis

Vassilis Virvilis

Gourab Panda

unread,
Mar 3, 2016, 2:29:38 PM3/3/16
to google-we...@googlegroups.com
Hi,

In our current product development we use GWT 2.6.1, along with GWT we use GWTP.
And the application we have developed is quite big, with many functionalities. 

Recently I have implemented a 'Create Object Dialog' which contains a Tab panel consists of 4 tabs, each tab contains grids, Multiple Fields etc. We also use GIN to inject presenter, views etc. This dialog is launched from a Listing page  which has a Tree Grid(which also contain another similar dialog 'Create OldObject Dialog').

And the listing page is code splitted using GWTP way. Each page is represented by its own place. This page loading(navigating to this page/place from another page/place) time is bit slow, and it downloads around 1.9MBs.

I have used Angular JS in my personal development, which loads very fast, I could not even noticed the download time complete angular-min.js 
Launching a Dailog from this JS page is very smooth. Also I have used router(similar to places in GWT) still all the navigation are very smooth.
Not sure, if the performance will degrade later when application grow bigger.

I understand the benefit of ClientBundles, different JS Permutations but not sure if it out stand AngularJS.  Minification, and Obfuscation is seamless in GWT compare to writing minificationable code in AngularJS.

AFAIK Google used GWT for Gmail as well, but fallback to its previous implementation later. I understand that GWT has improved a lot since then, and its generate better Javascript/Html code now.

Regards
Gourab.
Reply all
Reply to author
Forward
0 new messages