• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • paul wheaton
  • Liutauras Vilda
  • Ron McLeod
Sheriffs:
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
Saloon Keepers:
  • Scott Selikoff
  • Tim Holloway
  • Piet Souris
  • Mikalai Zaikin
  • Frits Walraven
Bartenders:
  • Stephan van Hulst
  • Carey Brown

Why Scala?

 
Ranch Hand
Posts: 686
Netbeans IDE Chrome Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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?
 
Ranch Hand
Posts: 376
Scala Monad
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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!
 
Vyas Sanzgiri
Ranch Hand
Posts: 686
Netbeans IDE Chrome Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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?
 
Author
Posts: 135
10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
Ranch Hand
Posts: 883
3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
 
Vyas Sanzgiri
Ranch Hand
Posts: 686
Netbeans IDE Chrome Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 883
3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
 
Greenhorn
Posts: 18
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
Grow a forest with seedballs and this tiny ad:
Smokeless wood heat with a rocket mass heater
https://woodheat.net
reply
    Bookmark Topic Watch Topic
  • New Topic