'. '

Scala

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(Scala Libraries Rant)
(Scala Libraries Rant)
Line 5: Line 5:
After being part of the first [[Scala]] unconference just after JavaOne 2008 and publishing a recipe how to write [[NetBeans]] module extensions in [[Scala]], I had given up on [[Scala]] for a longer time.
After being part of the first [[Scala]] unconference just after JavaOne 2008 and publishing a recipe how to write [[NetBeans]] module extensions in [[Scala]], I had given up on [[Scala]] for a longer time.
-
But as the activity of [http://www.artima.com/scalazine/articles/origins_of_scala.html Artima.com guys] is increasing with forthcomming JavaOne 2009, I dediced to give [[Scala]] one more try in early May 2009. I think I will be able to like it (as soon as I really learn it). However I am still far more productive in Java than in Scala, so I rewrote my early May project back to Java.
+
But as the activity of [http://www.artima.com/scalazine/articles/origins_of_scala.html Artima.com guys] is increasing with forthcomming JavaOne 2009, I dediced to give [[Scala]] one more try in early May 2009. I think I will be able to like it (as soon as I really learn it more). However I am still far more productive in [[Java]] than in [[Scala]], so I rewrote my early May project back to [[Java]].
-
Also I am still unsure what certain [[API]] promises in [[Scala]] mean for [[BackwardCompatibility]]. Martin Odersky seems to care more about the language design, than its libraries. Thus it will take time and a lot of trial and error for the other of us to find out how to write libraties that support easy [[upgradability]]. Someone will have to document all the [[evolution]] gotchas. So far I know I cannot backward compatibly add methods to traits (which sort of beats all their purpose, imho), but there is going to be more, much more hidden catches.
+
One reason for that also was my uncertainty. I am still unsure what promises some [[API]] construct in [[Scala]] mean for [[BackwardCompatibility]]. Martin Odersky seems to care more about the language design, than its libraries. Thus it will take time and a lot of trial and error for the other to find out how to write shared libraties that support easy [[upgradability]]. Someone will have to document all the [[evolution]] gotchas. So far I know I cannot backward compatibly add methods to traits (which sort of beats all their purpose, imho), but there is going to be more, much more hidden catches.
-
I am not sure how much you like the language, but I, as libraries [[API]] designer, I feel disgusted looking at core [[Scala]] [[API]]s. Have you seen the
+
I am not sure how much you like the language, but I, as libraries [[API]] designer, feel disgusted looking at core [[Scala]] [[API]]s. Have you seen the
[http://www.scala-lang.org/docu/files/api/index.html scaladoc]
[http://www.scala-lang.org/docu/files/api/index.html scaladoc]
and for example series of [http://www.scala-lang.org/docu/files/api/scala/Product1$object.html Product1], '''2''', '''3''', '''4''', ..., [http://www.scala-lang.org/docu/files/api/scala/Product13$object.html Product13], ... [http://www.scala-lang.org/docu/files/api/scala/Product20$object.html Product20]?
and for example series of [http://www.scala-lang.org/docu/files/api/scala/Product1$object.html Product1], '''2''', '''3''', '''4''', ..., [http://www.scala-lang.org/docu/files/api/scala/Product13$object.html Product13], ... [http://www.scala-lang.org/docu/files/api/scala/Product20$object.html Product20]?
-
Why has the so called language of future pollute its core libraries with trash like this? All the beauty one could potentially see when looking at the language is gone as soon as one see its libraries.
+
Why has the so called language of future pollute its core libraries with trash like this? All the beauty one could potentially feel when looking at the language has to be in vain as soon as one see its libraries.
 +
 
 +
[[Blogs:JaroslavTulach:Theory:DiamondsVsStars|APIs are like stars]], you can hardly make them disappear. Does that mean [[Scala]] programmers will have to live with this [[API]] madness until the end of their days?
--[[User:JaroslavTulach|JaroslavTulach]] 14:52, 28 May 2009 (UTC)
--[[User:JaroslavTulach|JaroslavTulach]] 14:52, 28 May 2009 (UTC)
<comments/>
<comments/>

Revision as of 15:01, 28 May 2009

Scala is a language capable to run on the Java virtual machine. It merges various functional languages concepts with object oritentation quite nicely and cooperates well with existing Java libraries.

Scala Libraries Rant

After being part of the first Scala unconference just after JavaOne 2008 and publishing a recipe how to write NetBeans module extensions in Scala, I had given up on Scala for a longer time.

But as the activity of Artima.com guys is increasing with forthcomming JavaOne 2009, I dediced to give Scala one more try in early May 2009. I think I will be able to like it (as soon as I really learn it more). However I am still far more productive in Java than in Scala, so I rewrote my early May project back to Java.

One reason for that also was my uncertainty. I am still unsure what promises some API construct in Scala mean for BackwardCompatibility. Martin Odersky seems to care more about the language design, than its libraries. Thus it will take time and a lot of trial and error for the other to find out how to write shared libraties that support easy upgradability. Someone will have to document all the evolution gotchas. So far I know I cannot backward compatibly add methods to traits (which sort of beats all their purpose, imho), but there is going to be more, much more hidden catches.

I am not sure how much you like the language, but I, as libraries API designer, feel disgusted looking at core Scala APIs. Have you seen the scaladoc and for example series of Product1, 2, 3, 4, ..., Product13, ... Product20? Why has the so called language of future pollute its core libraries with trash like this? All the beauty one could potentially feel when looking at the language has to be in vain as soon as one see its libraries.

APIs are like stars, you can hardly make them disappear. Does that mean Scala programmers will have to live with this API madness until the end of their days?

--JaroslavTulach 14:52, 28 May 2009 (UTC)

<comments/>

Personal tools
buy