Why is Swing Called Swing?

Today I was asked about the product name of Swing, which of course, is the name of the Java SE package used for creating GUIs and related APIs. Since I started at Sun in June of '99 I only recalled that Swing was used as the code name and it stuck. So I asked Jeff Dinkins, one of the original Swing engineers and former manager of the Swing team. Here is the story, from Jeff.
Georges Saab came up with the name...

The story is: The team went to Hobees for lunch, and the topic turned to what to name the new toolkit we were writing. Up till then the name was code named KFC, which was chosen by our manager (Rick Levenson) as a way to ensure we'd come with with a better name before shipping; he knew there was no way "KFC", aka Kentucky Fried Chicken, would be allowed by the lawyers.

Some names that were tossed around included Juliet and Carousel. There were many more, but none felt "just right."

Finally after lunch, while driving back to Sun, Amy Fowler (lead engineer of the team) asked our most hip team member, Georges Saab, "Georges, you know what's up and coming... what's the new happening thing in San Francisco?"

Georges responded with "Swing dancing is getting to be really big." And that was it, we all knew it was perfect. When we got back to the office I did a global search and replace of "kfc" with "swing", and the rest is history.

Thanks for that bit of history, Jeff! Rick Levenson seems to be a manager capable of interesting motivational techniques.

Edited to add: Jeff has posted a link to this blog entry on javadesktop.org along with this most excellent graphic (Rick is on the left and Georges is on the right):

Thanks, Jeff!!

-- Sharon Zakhour

Comments:

ok so that old bit about how the MVC diagram looked like a swing was bs? - Peace

Posted by Dave King on December 19, 2006 at 02:34 AM PST #

Ah, I remember writing my first swing app (as an intern at Sun) and learning to swing dance the same summer.

Now I'm a member of the performance troupe Swing Cats (swingcats.net) and a NetBeans governance board member.

There ought to be a good application for this at JavaOne. The troupe's performed at Oracle's conference at Moscone, but not Sun's... :)

Posted by Rich Unger on December 19, 2006 at 04:20 AM PST #

"ok so that old bit about how the MVC diagram looked like a swing was bs? - Peace" Hah - I've not heard that one before. I like it though, wish I'd thought of it.

Posted by Jeff Dinkins on December 19, 2006 at 04:57 AM PST #

kfc is teh best

Posted by dillon on December 19, 2006 at 07:24 AM PST #

[Trackback] 昨晚在sun的网站上看到一篇文章比较有意思,简单翻译了一下为什么swing叫做swing今天我被问起swing这个产品的名字,也是JavaSEpackage中用来创建GUI和相关的API。因为我在...

Posted by Syhan on December 19, 2006 at 10:47 AM PST #

Now I got the reason! :)

Posted by Balakumar Muthu on December 19, 2006 at 07:08 PM PST #

this is so cool!!! I've been programming Swing since it first came out and I've been learning lindy hop for the last year. Up until now I had no idea these two were connected :))))

Posted by dmitry on December 21, 2006 at 01:28 AM PST #

There is more than that to the word Swing. In the movie industry, the Swing Gang is the team of carpenters who instantly prop up and take down sets and decors. The Swing Gang is part of the hidden infrastructure and organization that creates a movie's look and feel. This in itself make Swing a perfect nommer for what it is and does for programming.

Posted by Laurent Bilodeau on December 27, 2006 at 12:39 AM PST #

I AM A POLY STUDENT IAM DOING A SIMPLE PROJECT IN JAVA BUT IT GOT SO MANY PROBLEMS...CAN ANYBODY HELP ME TO DO IT...?MY PROGRAMMME CODE IS public class Pay { public static void main(String[]args)throws Exception { int i=0,k=0; double c=0,h,g=0; int[] j=new int[10]; //int[] b=new int[10]; double[] Salary=new double[10]; char a; String[] E_Name=new String[10]; String[] Chek=new String[10]; String[] Appo={"Programmer","Supervisor","Manager"}; System.out.println("Payroll Menu"); System.out.println("============"); do { System.out.println("1. Enter Name,Appointment and Years of Experiance"); System.out.println("2. List All Employees and Calculate Payout"); System.out.println("Q. Quit"); System.out.print("Please enter your choice < 1, 2 or Q>:"); a=(char)System.in.read(); System.in.read(); System.in.read(); switch(a) { case '1': System.out.println("Details of Employee "+(k+1)); System.out.println("====================="); System.out.print("Enter Name:"); E_Name[i]=CspInput.readString(); System.out.print("Select Appointment[1 for programmer],[2 for Supervisor],[3 for Manager]:"); do { j[i]=CspInput.readInt(); if(j[i]<0||j[i]>3) System.out.print("Wrong, Please re-enter:"); }while(j[i]<0||j[i]>3); //c=CspInput.readInt(); System.out.print("Years in this appointment:"); //b[i]=CspInput.readInt(); h=CspInput.readInt(); if(j[i]==1) c=getSalary(800,h,80); else if(j[i]==2) c=getSalary(1800,h,180); else if(j[i]==3) c=getSalary(3000,h,300); Salary[i]=c; System.out.println(E_Name[i]+"'s appointment is "+Appo[(j[i]-1)]+"; Earning "+Salary[i]+"\\n\\n"); k++; i++; break; case '2': i=0; System.out.println("List of "+(k)+" Employees"); System.out.println("==========================="); System.out.println("S/No\\tName\\t\\tSalary\\t\\tAppointment"); System.out.println("====\\t====\\t\\t======\\t\\t==========="); for(i=0;i<k;i++) { System.out.println((i+1)+"\\t"+E_Name[i]+"\\t\\t"+Salary[i]+"\\t\\t"+Appo[j[i]-1]); g=g+Salary[i]; } System.out.println("Total Payout per month:"+g+"\\n\\n"); break; case 'Q':break; case 'q':break; default:System.out.println("Error Please RE_ENTER"); break; } }while(a!='Q'&&a!='q'); } static double getSalary(int a,double b,int c) { return a+(b\*c); } } PLS DO IT FOR MEEE PLS PLS PLS...

Posted by arjun on January 31, 2007 at 11:31 AM PST #

I always thought swing was a tribute to the Java Mascotte, Duke and Duke Ellington, the king of Swing Music.

Posted by Jan de Rijke on March 17, 2007 at 07:32 PM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed
About

Blog about Java technology documentation and news about Java releases.

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today