H Viktori, regarding this code:
*case class Person(var name : String)* So does Scala generate/impy a sensible hashCode and equals implementation or why are they omitted in your Scala example? I'm a total Scala newby so I would be glad to be enlightened. Thanks a lot, Sebastian On 6 Mai, 10:22, Viktor Klang <[email protected]> wrote: > On Wed, May 6, 2009 at 3:37 AM, Alexey Zinger <[email protected]> wrote: > > > This is gonna be about verbosity of generics, isn't it? > > Hi Alexey! > > The switch to Java 5 certainly added alot of cruft for API developers with > regards to the addition of Generics. > But this is not about Generics, this is about all the small things adding up > - turning Java into a boilerplatey language when building abstractions/APIs. > > When I switched from Java to Scala, I suddenly noticed a rather striking > difference: In Java there's alot of "supporting" code; and in Scala, there > is alot less. > This means that you spend less time writing code, and more time thinking > about the solution. > > Compare: > > Scala: > > *case class Person(var name : String)* > > Java: > > *public class Person > { > public Person(String name) > { > super(); > this.name = name; > } > > private String name; > > public String getName() > { > return name; > } > > public void setName(String name) > { > this.name = name; > } > > @Override > public int hashCode() > { > final int prime = 31; > int result = 1; > result = prime * result + ((name == null) ? 0 : name.hashCode()); > return result; > } > > @Override > public boolean equals(Object obj) > { > if (this == obj) > return true; > if (obj == null) > return false; > if (getClass() != obj.getClass()) > return false; > Person other = (Person) obj; > if (name == null) > { > if (other.name != null) > return false; > } > else if (!name.equals(other.name)) > return false; > return true; > }} > > * > > While the above is just a trivial example, it would think it accentuates my > point. > > I spent a couple of hours the day before yesterday rewriting an event > dispatch API in Java, trying to expose the most clean consumer interface as > possible, and I really felt I had to jump through hoops in order to be able > to do just that. But when written in Scala, not only was the resulting API > code about 30% of the LoC, but it also exposed a _cleaner_ interface. > > That's when the question to write libraries in Scala to be consumed by Java > application code. > Hence this thread. > > Viktor > > > > > > > Alexey > > > --- On Tue, 5/5/09, Dave Watson <[email protected]> wrote: > > > > From: Dave Watson <[email protected]> > > > Subject: [The Java Posse] Re: Java as API language, its days numbered? > > > To: "The Java Posse" <[email protected]> > > > Date: Tuesday, May 5, 2009, 9:10 PM > > > What does this mean, exactly? Can you elaborate more about > > > the 85% of > > > your code that is boilerplate? > > > > Not trying to argue, I'm just very puzzled by what this > > > might mean.... > > > > On May 5, 5:27 pm, Viktor Klang > > > <[email protected]> wrote: > > > > Greetings posse, > > > > > having spent more than half a decade writing API:s in > > > Java I feel that since > > > > Java 5 was introduced, more and more time has to be > > > spent writing > > > > boilerplate API code to try to save the API consumers > > > from jumping through > > > > hoops in order to get stuff done. Because we all want > > > easily consumable > > > > libraries, don't we? > > > > > Having jumped onto the Scala bandwagon about 1½ years > > > ago I feel like the > > > > ratio of business end code of Java is appro 15% while > > > in Scala it's more > > > > like 65% > > > > > <observation>You can most likely substitute > > > "Scala" in the text below with > > > > any non-Java JVM language</observation> > > > > > With Scala getting more and more cleaner to be > > > consumed by Java code, isn't > > > > there plenty of good reasons to switch to Scala for > > > library code, while > > > > letting the application developers stay i Java-land? > > > > > -- > > > > Viktor Klang > > > > Known from the Internet > > -- > Viktor Klang > Senior Systems Analyst --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/javaposse?hl=en -~----------~----~----~----~------~----~------~--~---
