If you want to write a simple “Employee” class with name and salary variables I had to write this code in Java most of the time.
//Java
public class Employee{
private String name;
private double salary;
//Hate to write this code
public Employee(){} //This is for the Java Beans
public Employee(String name,double salary){
this.name = name;
this.salary = salary;
}
}
Employee e1 = new Employee (“Sam”,20000);
C# 3.0 came up with the concept of object initializers which removed the need for having constructors.
//C#
public class Employee {
public String name {get;set;}
public double salary {get;set;}
}
Employee e1 = new Employee(name:”Sam”,salary:20000);
It was definitely better than Java, but you still had to write those silly {get;set;} block to designate name and salary as properties. Object initializers are available only for properties.
Groovy finally came to my rescue. It injected a lot of code and removed the need for writing code that I had always considered waste of effort and time.
//Groovy
class Employee{
String name
double salary
}
e1 = new Employee(name:”Sam”,salary:20000)
Happiness is always short lived. I have been writing classes in Ext JS4 like this off late.
//Ext JS4
Ext.define(“Com.durasoft.Employee”,{
constructor : function(name,salary){
this.name = name;
this.salary = salary;
}});
var e1 = new Com.durasoft.Employee(“Sam”,20000);
Though frameworks like Ext JS 4 have succeeded in making people take JavaScript as a serious OO language, it still has a long way to go in terms of providing concise syntax.
I hope the future releases of Ext JS4 come up with a groovier syntax.