This page is no longer maintained — Please continue to the home page at www.scala-lang.org

Scala vs. Python for FOSS

5 replies
Russ P.
Joined: 2009-01-31,
User offline. Last seen 1 year 26 weeks ago.
This may be slightly off topic here, but I'd be interested in hearing what people think about the relative merits of Scala vs. Python for free, open-source software (FOSS).

I've been having a friendly discussion/debate on this topic with Keith Curtis. Keith is a former Microsoft employee who has become a strong advocate of FOSS. He wrote an online book on it called Software Wars (http://keithcu.com/wordpress/?page_id=407).

I don't write a lot of FOSS, but I have recently converted some of my research prototype ATC (air traffic control) software from Python to Scala, so you know where I come down in this debate. I have found that Scala is much faster than Python, and I like the structure provided by static typing. Having never been a Java fan, I certainly appreciate Scala's many improvements over Java. Also, I work with experts in static software analysis, and I would like to eventually have them analyze my code. They can't deal with Python, but their main language is Java, and they can work with Scala.

Keith claims that Java is "dead" in the FOSS community. That was a surprise to me. Is that true? He also claims that static typing is "nice, but not necessary." Yeah, I realize that's almost a religious debate, but I find it interesting. In Python, I find it somewhat disconcerting that I can write "foo.bar = 0" anywhere that foo is in scope, and I will create an attribute called bar if one did exist before that. Is that a bit risky or what? What if I really wanted to zero foo.ban but forgot the name?

I told Keith that Python has a clean syntax and is great for getting something up and running quickly, but I don't think it is the best choice for computationally intensive, large, or safety-critical/mission-critical software systems. What do you think?

Russ P.

--
http://RussP.us
Justin du coeur
Joined: 2009-03-04,
User offline. Last seen 42 years 45 weeks ago.
Re: Scala vs. Python for FOSS
Saying that Java is dead in FOSS borders on nonsensical -- sure, it's not being used to start as many projects as it used to, but it's still very popular.  I was involved in a startup FOSS project a few months back, and Java was by a mile the consensus choice.  And it's at the heart of a huge number of popular packages.
So while I'd agree that Java is declining (and heaven knows I can't stand using it myself any more), "dead" is quite an exaggeration.
In general, I agree with your conclusion.  Dynamic typing is great for quick projects, and is why I've been enamored of Ruby since it came on the scene ten years ago.  But when I'm programming something larger, the lift I get from static typing, simply from catching errors and inconsistencies early (ideally while I'm typing in the IDE) is an enormous win, saving me loads of debugging time and helping me refactor constantly with much higher confidence, resulting in far better code.  So I use Ruby for small personal projects, but Scala (or, in practice, usually C#) for serious commercial-grade work...

On Fri, Dec 31, 2010 at 9:25 PM, Russ Paielli <russ [dot] paielli [at] gmail [dot] com> wrote:
This may be slightly off topic here, but I'd be interested in hearing what people think about the relative merits of Scala vs. Python for free, open-source software (FOSS).

I've been having a friendly discussion/debate on this topic with Keith Curtis. Keith is a former Microsoft employee who has become a strong advocate of FOSS. He wrote an online book on it called Software Wars (http://keithcu.com/wordpress/?page_id=407).

I don't write a lot of FOSS, but I have recently converted some of my research prototype ATC (air traffic control) software from Python to Scala, so you know where I come down in this debate. I have found that Scala is much faster than Python, and I like the structure provided by static typing. Having never been a Java fan, I certainly appreciate Scala's many improvements over Java. Also, I work with experts in static software analysis, and I would like to eventually have them analyze my code. They can't deal with Python, but their main language is Java, and they can work with Scala.

Keith claims that Java is "dead" in the FOSS community. That was a surprise to me. Is that true? He also claims that static typing is "nice, but not necessary." Yeah, I realize that's almost a religious debate, but I find it interesting. In Python, I find it somewhat disconcerting that I can write "foo.bar = 0" anywhere that foo is in scope, and I will create an attribute called bar if one did exist before that. Is that a bit risky or what? What if I really wanted to zero foo.ban but forgot the name?

I told Keith that Python has a clean syntax and is great for getting something up and running quickly, but I don't think it is the best choice for computationally intensive, large, or safety-critical/mission-critical software systems. What do you think?

Russ P.

--
http://RussP.us

Russ P.
Joined: 2009-01-31,
User offline. Last seen 1 year 26 weeks ago.
Re: Scala vs. Python for FOSS
Thanks for the reply. Although it is probably fairly obvious, I forgot to mention that Keith is promoting Python as the "lingua franca" of FOSS. I tried to sell him on Scala, but he does not seem interested.

--Russ P.


On Fri, Dec 31, 2010 at 6:36 PM, Justin du coeur <jducoeur [at] gmail [dot] com> wrote:
Saying that Java is dead in FOSS borders on nonsensical -- sure, it's not being used to start as many projects as it used to, but it's still very popular.  I was involved in a startup FOSS project a few months back, and Java was by a mile the consensus choice.  And it's at the heart of a huge number of popular packages.
So while I'd agree that Java is declining (and heaven knows I can't stand using it myself any more), "dead" is quite an exaggeration.
In general, I agree with your conclusion.  Dynamic typing is great for quick projects, and is why I've been enamored of Ruby since it came on the scene ten years ago.  But when I'm programming something larger, the lift I get from static typing, simply from catching errors and inconsistencies early (ideally while I'm typing in the IDE) is an enormous win, saving me loads of debugging time and helping me refactor constantly with much higher confidence, resulting in far better code.  So I use Ruby for small personal projects, but Scala (or, in practice, usually C#) for serious commercial-grade work...

On Fri, Dec 31, 2010 at 9:25 PM, Russ Paielli <russ [dot] paielli [at] gmail [dot] com> wrote:
This may be slightly off topic here, but I'd be interested in hearing what people think about the relative merits of Scala vs. Python for free, open-source software (FOSS).

I've been having a friendly discussion/debate on this topic with Keith Curtis. Keith is a former Microsoft employee who has become a strong advocate of FOSS. He wrote an online book on it called Software Wars (http://keithcu.com/wordpress/?page_id=407).

I don't write a lot of FOSS, but I have recently converted some of my research prototype ATC (air traffic control) software from Python to Scala, so you know where I come down in this debate. I have found that Scala is much faster than Python, and I like the structure provided by static typing. Having never been a Java fan, I certainly appreciate Scala's many improvements over Java. Also, I work with experts in static software analysis, and I would like to eventually have them analyze my code. They can't deal with Python, but their main language is Java, and they can work with Scala.

Keith claims that Java is "dead" in the FOSS community. That was a surprise to me. Is that true? He also claims that static typing is "nice, but not necessary." Yeah, I realize that's almost a religious debate, but I find it interesting. In Python, I find it somewhat disconcerting that I can write "foo.bar = 0" anywhere that foo is in scope, and I will create an attribute called bar if one did exist before that. Is that a bit risky or what? What if I really wanted to zero foo.ban but forgot the name?

I told Keith that Python has a clean syntax and is great for getting something up and running quickly, but I don't think it is the best choice for computationally intensive, large, or safety-critical/mission-critical software systems. What do you think?

Russ P.

--
http://RussP.us




--
http://RussP.us
Tony Morris 2
Joined: 2009-03-20,
User offline. Last seen 42 years 45 weeks ago.
Re: Scala vs. Python for FOSS

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Keith might like to know What to Know Before Debating Type Systems
http://blogs.perl.org/users/ovid/2010/08/what-to-know-before-debating-type-systems.html

I'm also unclear what it means for Java to be "dead" as if it were
once "alive"? Yet another broken metaphor?

Experts in static software analysis do not deal exclusively with Java,
if at all. I submit the call of shenanigans of the highest order.

On 01/01/11 12:25, Russ Paielli wrote:
> This may be slightly off topic here, but I'd be interested in
> hearing what people think about the relative merits of Scala vs.
> Python for free, open-source software (FOSS).
>
> I've been having a friendly discussion/debate on this topic with
> Keith Curtis. Keith is a former Microsoft employee who has become a
> strong advocate of FOSS. He wrote an online book on it called
> Software Wars (http://keithcu.com/wordpress/?page_id=407).
>
> I don't write a lot of FOSS, but I have recently converted some of
> my research prototype ATC (air traffic control) software from
> Python to Scala, so you know where I come down in this debate. I
> have found that Scala is much faster than Python, and I like the
> structure provided by static typing. Having never been a Java fan,
> I certainly appreciate Scala's many improvements over Java. Also,
> I work with experts in static software analysis, and I would like
> to eventually have them analyze my code. They can't deal with
> Python, but their main language is Java, and they can work with
> Scala.
>
> Keith claims that Java is "dead" in the FOSS community. That was a
> surprise to me. Is that true? He also claims that static typing is
> "nice, but not necessary." Yeah, I realize that's almost a
> religious debate, but I find it interesting. In Python, I find it
> somewhat disconcerting that I can write "foo.bar = 0" anywhere
> that foo is in scope, and I will create an attribute called bar if
> one did exist before that. Is that a bit risky or what? What if I
> really wanted to zero foo.ban but forgot the name?
>
> I told Keith that Python has a clean syntax and is great for
> getting something up and running quickly, but I don't think it is
> the best choice for computationally intensive, large, or
> safety-critical/mission-critical software systems. What do you
> think?
>
> Russ P.
>
> -- http://RussP.us


- --
Tony Morris
http://tmorris.net/

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk0epdYACgkQmnpgrYe6r61H8gCfQ34/rTFVRujtOOkMMm3cfwlh
NnAAn37lA4M1LsrN4I4YWbHhICJm4kGz
=OP9u
-----END PGP SIGNATURE-----

Randall R Schulz
Joined: 2008-12-16,
User offline. Last seen 1 year 29 weeks ago.
Re: Scala vs. Python for FOSS

On Friday December 31 2010, Russ Paielli wrote:
> Thanks for the reply. Although it is probably fairly obvious, I
> forgot to mention that Keith is promoting Python as the "lingua
> franca" of FOSS. I tried to sell him on Scala, but he does not seem
> interested.
>
> --Russ P.

We'll keep an eye on him in our rear-view mirror for as long as we can
and if he's in trouble, we'll try to help.

RRS

Russ P.
Joined: 2009-01-31,
User offline. Last seen 1 year 26 weeks ago.
Re: Scala vs. Python for FOSS
On Fri, Dec 31, 2010 at 7:56 PM, Tony Morris <tonymorris [at] gmail [dot] com> wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Keith might like to know What to Know Before Debating Type Systems
http://blogs.perl.org/users/ovid/2010/08/what-to-know-before-debating-type-systems.html

I'm also unclear what it means for Java to be "dead" as if it were
once "alive"? Yet another broken metaphor?


Actually, let me be a bit more precise about what Keith said: "Java is dead on the Linux desktop."

 
Experts in static software analysis do not deal exclusively with Java,
if at all. I submit the call of shenanigans of the highest order.

I did not mean to imply that all experts in static software analysis deal exclusively with Java, but my understanding is that Java is the main language for the few that I know personally.
 Russ P.

--
http://RussP.us

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland