Skip to main content

JavaOne Desktop Report: 20M Brazilians File Tax Returns with Swing Application

Posted by hansmuller on July 15, 2005 at 3:23 PM PDT

JavaOne 2005, Moscone Hall in San Francisco, Thursday at 2:30.

It was the very end of a very long week. A week that ended on June
29th and began in March.

Chet Haase

and I had just debuted the GUI Puzzlers technical session and despite
some lunch and wandering around, we were both exhausted. We took our
seats for the last desktop session on the last day of the conference.
Weaker men would have nodded off to sleep. If only those Moscone Hall
seats had been a little more comfortable.

Late last year I attended the JavaPolis conference in Belgium. It's
held in a large cinema multiplex and sessions are held in the
individual theaters. It's really the perfect venue for holding a
conference save for one tragic flaw: the seats are really comfortable.
The perfect storm of jet-lag, soft lighting, a reclining seat (with a
beverage caddy!), and a speaker who's beginning to drone a little, can
have tragic consequences. At one point, I woke up to discover that my
entire row had nodded off.

At any rate.

While waiting for the session to begin,
I might have submitted to the urge to just catnap, just for a second,
if I hadn't been distracted by a strange vision. Striding purposefully
towards the stage, wearing a green cape and cradling what appeared to be
a large parrot puppet, was

Bruno Souza
I was probably the only
person on the Java planet who didn't know Bruno. He's part
of the contingent of Java developers from Brazil; the contingent
that conference keynoters relied on for a rousing shout, whenever
a burst of enthusiasm was called for.
The session wasn't
due to start for a few minutes and Bruno filled the time by talking
to the crowd with the

. It was a little surreal and very
entertaining. I stayed awake.

Bruno is a good speaker and he launched the "Desktop Java Technology
on a Massive Scale: Brazil's Swing-Based Income Tax Application"
session. Bruno pointed out that Brazil is larger than the continental
US, however there are only 170M inhabitants. About 42M Brazilians
paid tax electronically last year, which is 95% of eligible individuals
and 100% of corporations.

The IRPF desktop Tax Reporting application was created
in Java/Swing by a company called


that handles data processing for the Brazilian government.
It is used by all Brazilian tax payers to file their
returns electronically - over the internet. Brazil has
been supporting online tax returns for some time:

  • 1991 - MSDOS "clipper" app written with DBase
  • 1996 - New version is Delphi1 based
  • 2002 - Win32 version based on Delphi2; still in use today

With each of these versions there were concerns about
long-term vendor lock-in. There's a strong desire to enable
alternative desktop platforms, notably Linux. In fact the
Brazilian government is providing tax incentives to companies that sell
PCs with Linux for less than $500.

The current version of tax reporting app was built entirely
in Java, with a Swing GUI.
Development started in September 2003, beta release was
December 2004, and the app was deployed and used by about
20 million tax payers
in April 2005. Next year the old Win32 app will be retired
and all tax returns will be delivered with Java.

All of the work, from UI to docs, was done by about a dozen developers.
Linux, Windows, and OSX are officially supported although, ironically,
most of the development was done on Windows! As it turns out
the app actually landed on more than 15 different platforms.
That explains the need for platform independence and it's a nice
indication that Java really is succeeding at "run anywhere".
The Java platform deployed in Brazil is J2SE 1.4 and

JGoodies FormLayout

was used extensively for the GUI.

Bruno's colleague Serge delivered the second half of the session,
which focused on the architecture of the application. The engineering
team created an app framework called PGD that supports data binding
and forms and so on. Completed tax returns are compressed and
encrypted and transmitted back to the Secretaria de Receita SRF tax
collectors over the internet. The server "Receitanet" that handles
incoming returns is also written in Java.


  • More tax specialized forms
  • Web Start next year!
  • Transmission with digital certificates (e-CPF and e-CNPJ)
  • A multiuser version
  • Target open source JVMs

In conclusion Serge reported that their experience building
the application had been very good:

  • From a user standpoint: performance (no complaints!), installation
  • For the developer GUI development was fast

And best of all: it runs better than the Win32 version.

Related Topics >>