File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Scala and the fly likes Why Scala? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Languages » Scala
Bookmark "Why Scala?" Watch "Why Scala?" New topic
Author

Why Scala?

Vyas Sanzgiri
Ranch Hand

Joined: Jun 16, 2007
Posts: 686

I have a very simple question for Venkat. What is different in Scala? Why learn another language? I have attended many seminars and speaker sessions and one thing I see in everything is change. Every year I see a new language, a new paradigm being introduced.

Even though I know I can learn a new language. The company management (of course, I am not the boss!) would not allow me to introduce new aspects so easily. I understand there are "some new features" but then there is a learning curve (and I am tired with my Groovy learning curve) There there are plugins and documentation - most of which have one line code and I have raised issues about it. Do I get to concentrate on my business logic?

What is your argument?


===Vyas Sanzgiri===
My Blog
Gabriel Claramunt
Ranch Hand

Joined: May 26, 2007
Posts: 375
I would say:
* Sophisticated type system
* Functional Programming concepts
* Pure OO
* Runs in the JVM (industrial strength GC and JIT optimizations)
* In the CLR too!
* Oriented to embedded DSLs creation
* Lift web framework

Everything you would ask to the next Java and more!


Gabriel
Software Surgeon
Vyas Sanzgiri
Ranch Hand

Joined: Jun 16, 2007
Posts: 686

Gabriel,

Thanks for the information. But there are a few things I feel we should be confident of :-
1. Learning curve
2. Bugs and Issue list
3. Infrastructure environment
4. Proof of concept

Every language and framework has to go through phases and evolves around the user community. Where does Scala stand?
Venkat Subramaniam
Author
Ranch Hand

Joined: Jan 28, 2008
Posts: 79
Hi Vyas,

Different topics in this forum discuss the reasons for Scala. Here I will
address your question in general rather than specific to Scala.

I think of a language as a tool. When I am in my workshop, I can't imagine
declaring I will only use a hammer. I would switching between using a
hammer, a chisel, a screwdriver, etc. depending on the task on hand.
The reason to select a tool is that it is the right one for the job.

A few years ago, you had mostly one language to program on the JVM (not
considering SQL, XML, etc.). If someone wanted to take advantage of
another paradigm or framework because it make them productive, the only
option they had was to leave the Java platform. Quite a number of good
programmers I know did that.

Today, we have the benefit of staying on the rich powerful platform while
taking advantage of languages, libraries, and frameworks that can make
us productive.

It is important to keep learning. However, I am not a fan of jumping
on the next new languages or framework. It is important to learn and
experiment with different things on the side. Once you get a good
grasp of the main benefits, you should begin to use it on real projects
when and only when the gains clearly outweigh the cost.

We should take the time to learn different languages and at the same
time have the wisdom to chose the right ones for the problem on hand.
Burk Hufnagel
Ranch Hand

Joined: Oct 01, 2001
Posts: 814
    
    3
Vyas Sanzgiri wrote:I have a very simple question for Venkat. What is different in Scala? Why learn another language? I have attended many seminars and speaker sessions and one thing I see in everything is change. Every year I see a new language, a new paradigm being introduced.

What is your argument?

Vyas,
Seems to me you answered your own question. Even if you can't move to another language, learning a new on teaches you different ways of thinking about programming (a new paradigm) which you can probably apply in whatever language you're using. Even if you can't do it directly (no closures in Java yet) you can still think about different ways to approach a problem which can lead to better (cleaner and faster) solutions.

Just my two cents, but it works for me.
Burk


SCJP, SCJD, SCEA 5 "Any sufficiently analyzed magic is indistinguishable from science!" Agatha Heterodyne (Girl Genius)
Vyas Sanzgiri
Ranch Hand

Joined: Jun 16, 2007
Posts: 686

Venkat and Burk, thanks for your inputs. I was actually more interested in the 4 points I listed since there are some (prob many) aspects beyond a Simple Junior Developer's control.
Burk Hufnagel
Ranch Hand

Joined: Oct 01, 2001
Posts: 814
    
    3
Vyas,
By "4 points" I assume you meant these:
Vyas Sanzgiri wrote:1. Learning curve
2. Bugs and Issue list
3. Infrastructure environment
4. Proof of concept

Every language and framework has to go through phases and evolves around the user community. Where does Scala stand?


I'm not a Scala expert, so I can't address Scala specifically, but here's my take on it anyway:
1) It seems to me that the learning curve for any language depends on who's doing the learning and what their background is. For example it's probably easier for a C++ programmer to learn Java than it is for a Cobol programmer because they're both OO and the syntax is similar.

2) If you go to http://www.scala-lang.org/node/218 which is part of the official Scala web site, you can see that they're tracking all reported bugs and letting people see what's being worked on and by whom. There's a public process in place for reporting bugs and tracking their status.

3) Not sure what you mean by infrastructure, but if you go to the web site I listed above and check out the home page, you can see that there's a pretty good community around Scala. There's online documentation (as well as printed books, forums for developers, sample code, and plugins for IDE's (Eclipse and NetBeans) to make it easier to develop using Scala.

4) I have no idea what you mean by proof of concept, but as I mentioned in #3, the Scala web site includes sample code, as does Venkat's book. Is that what you meant?

Burk
Debbie Waltz
Greenhorn

Joined: May 12, 2008
Posts: 13
I would say: above all concurrent programming simpler than in Java.
If I had to develop a new system that does heavy concurrent computation I would seriously consider Scala.

Functional programming is also important: it takes a bit to get used to, but once you do, you really have a new powerful tool in your pocket.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Why Scala?