Scala newbie.

View: New views
9 Messages — Rating Filter:   Alert me  

Scala newbie.

by rneto167 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I am reading Programming in Scala and liking a lot. But i am with a doubt: Should i learn Java (i really tried a lot of times, but i find it a lot boring) or go only with Scala ?

--
http://rneto167.wordpress.com
https://twitter.com/rneto167

Re: Scala newbie.

by bearfeeder :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



On Mon, Jul 6, 2009 at 2:32 PM, rneto167 <rneto167@...> wrote:
Hi,

I am reading Programming in Scala and liking a lot. But i am with a doubt: Should i learn Java (i really tried a lot of times, but i find it a lot boring) or go only with Scala ?

Go only with Scala.
 


--
http://rneto167.wordpress.com
https://twitter.com/rneto167



--
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Git some: http://github.com/dpp

Re: Scala newbie.

by Daniel Sobral :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

That depends on your purpose. From a professional point of view as an IT person, know Java is very important. I assume, though that's not a consideration for you, given that you haven't yet.
 
So, I'll rephrase your question as "Is learning Scala enough, or do I need to learn Java too to program in Scala?".
 
Learning Scala is enough, and I think Programming in Scala does a great job of doing it, but, then again, I know a lot about Java.
 
There are two things about Java that you might miss, though:
 
1. The whole Java infrastructure.
 
You may want to make "jar" files (or even "war" files or similar stuff), run it on web servers or computers without Scala installed, and things like that. This kind of stuff is not covered by Programming in Scala. Then again, this kind of stuff is usually learned through experience, not books.
 
2. Java libraries.
 
There are many, many Java libraries that you might be interested in. There is no shame in that. After all, Scala itself uses Java's standard library extensively, and there are tons of good stuff out there. There is no sense in spending days to display a simple graph of data when there are libraries which will display your data in dozens of different graphic formats.
 
It's important that you are able to read API documents, and understand simple examples.
 
I don't think either of these two things require a more formal Java education. If you can get by, it should be enough.


 
On Mon, Jul 6, 2009 at 6:32 PM, rneto167 <rneto167@...> wrote:
Hi,

I am reading Programming in Scala and liking a lot. But i am with a doubt: Should i learn Java (i really tried a lot of times, but i find it a lot boring) or go only with Scala ?

--
http://rneto167.wordpress.com
https://twitter.com/rneto167



--
Daniel C. Sobral

Something I learned in academia: there are three kinds of academic reviews: review by name, review by reference and review by value.

Re: Scala newbie.

by braver :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I think this is a common case for many FP folks who avoided Java but  
had come over for Scala.  Furthermore, I see an opening for a book  
called, roughly, "Java and its Ecosystem for Scala lovers."  E.g.,  
"thanks" to some Scala projects I got first, I learned Maven and found  
it very useful.  Thanks to IRC #scala folks, I've heard about IDEA and  
found it the best IDE I used in a long time, and  supports Scala so  
well already, and is in fact an excellent Maven GUI.  Maven allows to  
plug in various Java libraries and makes their discovery and usage  
super easy.   Scala is the best thing which happened to Java in a long  
time!

Cheers,
Alexy


Re: Scala newbie.

by Ricky Clarkson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Minor niggle, running scala:console from maven within IDEA seems not
to accept input.

2009/7/7 Alexy Khrabrov <deliverable@...>:

> I think this is a common case for many FP folks who avoided Java but had
> come over for Scala.  Furthermore, I see an opening for a book called,
> roughly, "Java and its Ecosystem for Scala lovers."  E.g., "thanks" to some
> Scala projects I got first, I learned Maven and found it very useful.
>  Thanks to IRC #scala folks, I've heard about IDEA and found it the best IDE
> I used in a long time, and  supports Scala so well already, and is in fact
> an excellent Maven GUI.  Maven allows to plug in various Java libraries and
> makes their discovery and usage super easy.   Scala is the best thing which
> happened to Java in a long time!
>
> Cheers,
> Alexy
>
>



--
Ricky Clarkson
Java Programmer, AD Holdings
+44 1565 770804
Skype: ricky_clarkson
Google Talk: ricky.clarkson@...

RE: Scala newbie.

by Detering Dirk-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Sorry guys, but I somewhat feel the need to
disillusion a bit about Scala and Java.

> That depends on your purpose.

Absolutely. But often the purpose is to write some
app with UI and persistence. Scala is --at least currently--
not in an autonomous position here.

> So, I'll rephrase your question as "Is learning Scala enough,
> or do I need to learn Java too to program in Scala?".

In my opinion, at least at the current state of
the Scala infrastructure, you have.  No way around.

> Learning Scala is enough, and I think Programming in Scala
> does a great job of doing it, but, then again, I know a lot
> about Java.

Right. And that will make us blind for so much problems of
Non-Javaists.

> There are two things about Java that you might miss, though:
>  
> 1. The whole Java infrastructure.
>  
> You may want to make "jar" files (or even "war" files or
> similar stuff), run it on web servers or computers without
> Scala installed, and things like that. This kind of stuff is
> not covered by Programming in Scala. Then again, this kind of
> stuff is usually learned through experience, not books.

"Experience" does not mean "not books" in the sense of "no Java
literature" or "no Java learning". It means to first take
some literature and work through it "hands on".
So even without "books": Without the typical "getting started"
stuff, "tutorials" or "user manuals" you will have a BAD experience.
You need some guidance to know where to start and where to go.
This guidance stuff is mostly written in context of Java today.
(Not Scala, nor Clojure, nor Groovy, not JRuby, not Jython ...)

> 2. Java libraries.
>  
> There are many, many Java libraries that you might be
> interested in. There is no shame in that. After all, Scala
> itself uses Java's standard library extensively, and there
> are tons of good stuff out there. There is no sense in
> spending days to display a simple graph of data when there
> are libraries which will display your data in dozens of
> different graphic formats.
>  
> It's important that you are able to read API documents, and
> understand simple examples.
>  
> I don't think either of these two things require a more
> formal Java education. If you can get by, it should be enough.

You mean reading about scala.swing is enough to work with the
Swing framework?  I doubt. At least if you want to do some
things beyond simple basic GUIs.

You mean reading about scala.io is enough to work with the
file system?  I doubt too. You will have to learn about
java.io.File and its tricky Java semantics, about all the
different pluggable Reader/Writer things a.s.o.
There is no sophisticated scala file system handling beyond
scala.io.Source imho.

And even if you could write such stuff without deep knowledge
of the Java below, you will experience a shock when first
trying to debug some less obvious bug.

My statement: As long as a JVM-language does not completely
replace rt.jar on user level, you will not do without Java
knowledge. That's the "thin wrapper layer" problem of today's
JVM-languages.

Much more if you want to use tools which have Java, but not
Scala APIs. For example try to use OOo's UNO bridge without
Java knowledge...  No chance. And there is much more that
you can easily Scala-fy AFTER you understood the Java stuff.

After you have done all this, what big is the distance to
"having learned Java"?  The question was not about formal
education IMHO.  "Learning Java" just starts at a much simpler
level.

Hopefully some day much more basic stuff will be written
originally in Scala....


Just my 2ct
Dirk



Re: Scala newbie.

by Ricky Clarkson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I think that's overly pessimistic.  You might need to learn the Java
ecosystem, but not really that much of the language.

2009/7/7 Detering Dirk <Dirk.Detering@...>:

> Sorry guys, but I somewhat feel the need to
> disillusion a bit about Scala and Java.
>
>> That depends on your purpose.
>
> Absolutely. But often the purpose is to write some
> app with UI and persistence. Scala is --at least currently--
> not in an autonomous position here.
>
>> So, I'll rephrase your question as "Is learning Scala enough,
>> or do I need to learn Java too to program in Scala?".
>
> In my opinion, at least at the current state of
> the Scala infrastructure, you have.  No way around.
>
>> Learning Scala is enough, and I think Programming in Scala
>> does a great job of doing it, but, then again, I know a lot
>> about Java.
>
> Right. And that will make us blind for so much problems of
> Non-Javaists.
>
>> There are two things about Java that you might miss, though:
>>
>> 1. The whole Java infrastructure.
>>
>> You may want to make "jar" files (or even "war" files or
>> similar stuff), run it on web servers or computers without
>> Scala installed, and things like that. This kind of stuff is
>> not covered by Programming in Scala. Then again, this kind of
>> stuff is usually learned through experience, not books.
>
> "Experience" does not mean "not books" in the sense of "no Java
> literature" or "no Java learning". It means to first take
> some literature and work through it "hands on".
> So even without "books": Without the typical "getting started"
> stuff, "tutorials" or "user manuals" you will have a BAD experience.
> You need some guidance to know where to start and where to go.
> This guidance stuff is mostly written in context of Java today.
> (Not Scala, nor Clojure, nor Groovy, not JRuby, not Jython ...)
>
>> 2. Java libraries.
>>
>> There are many, many Java libraries that you might be
>> interested in. There is no shame in that. After all, Scala
>> itself uses Java's standard library extensively, and there
>> are tons of good stuff out there. There is no sense in
>> spending days to display a simple graph of data when there
>> are libraries which will display your data in dozens of
>> different graphic formats.
>>
>> It's important that you are able to read API documents, and
>> understand simple examples.
>>
>> I don't think either of these two things require a more
>> formal Java education. If you can get by, it should be enough.
>
> You mean reading about scala.swing is enough to work with the
> Swing framework?  I doubt. At least if you want to do some
> things beyond simple basic GUIs.
>
> You mean reading about scala.io is enough to work with the
> file system?  I doubt too. You will have to learn about
> java.io.File and its tricky Java semantics, about all the
> different pluggable Reader/Writer things a.s.o.
> There is no sophisticated scala file system handling beyond
> scala.io.Source imho.
>
> And even if you could write such stuff without deep knowledge
> of the Java below, you will experience a shock when first
> trying to debug some less obvious bug.
>
> My statement: As long as a JVM-language does not completely
> replace rt.jar on user level, you will not do without Java
> knowledge. That's the "thin wrapper layer" problem of today's
> JVM-languages.
>
> Much more if you want to use tools which have Java, but not
> Scala APIs. For example try to use OOo's UNO bridge without
> Java knowledge...  No chance. And there is much more that
> you can easily Scala-fy AFTER you understood the Java stuff.
>
> After you have done all this, what big is the distance to
> "having learned Java"?  The question was not about formal
> education IMHO.  "Learning Java" just starts at a much simpler
> level.
>
> Hopefully some day much more basic stuff will be written
> originally in Scala....
>
>
> Just my 2ct
> Dirk
>
>
>



--
Ricky Clarkson
Java Programmer, AD Holdings
+44 1565 770804
Skype: ricky_clarkson
Google Talk: ricky.clarkson@...

RE: Scala newbie.

by Detering Dirk-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> I think that's overly pessimistic.  You might need to learn
> the Java ecosystem, but not really that much of the language.

Thanks Ricky, maybe you're right, but I'm sceptic.

So @rneto167: Perhaps you simply try without Java and
give us some feedback at how it works?
(Would be an interesting research).

Your questions here would give a hint about what a
non-Javaist would really need to know.

Parent Message unknown RE: Scala newbie.

by Naftoli Gugenheim :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Also I think you misunderstood Daniel. It seemed to me that he agreed with your last point: it's necessary to know enough Java to read documentation such as that of Swing or java.io, but not to have a "formal," thorough "education" in Java.

-------------------------------------
Detering Dirk<dirk.detering@...> wrote:

> I think that's overly pessimistic.  You might need to learn
> the Java ecosystem, but not really that much of the language.

Thanks Ricky, maybe you're right, but I'm sceptic.

So @rneto167: Perhaps you simply try without Java and
give us some feedback at how it works?
(Would be an interesting research).

Your questions here would give a hint about what a
non-Javaist would really need to know.