Contributor Developer coming aboard

OvermindDL1

New Member
Contributor
Greetings,

I am starting work on the Terasology codebase so I figured I should probably introduce myself here. I will primarily be on the IRC rather than the forums so that will be the easiest way to speak to me.

My quick history, C++ dev for over 20 years, java dev for about 6, primarily due to Minecraft (awful codebase) and MinecraftForge (also not a great codebase, not my choice...). The languages I know very well: C, C++, Python, Erlang, Shell, Perl, Java, Scala, and more, in addition to a host of languages that I know but do not know 'well'.

I love the component style, something that was pushed back against on my attempted conversions in the MC world. And yes, I am a scala-buff, I consider it Java done right, and considering their pure interoperability and can mix them in a project without issue, I may try to garner a movement to add it to Terasology (which involves just including the scala libs as well as adding a gradle plugin). And another thing on my opinions, SBT > Gradle. ;)
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Good to have you onboard! :)

@Skaldarnar - ping for Scala!

As for SBT I figure if Gradle is Maven in Groovy then SBT is Maven in Scala. That sound about right? Major simplication, I realize.

I haven't looked at it before, but it sounds like it would be close enough that I might like it. Just as long as we can avoid the pointy XML :D
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
Heyo and welcome :)

To keep the Scala libs out of the main project I put together this little module some time ago. Let me know what you think about it, and if it will actually come into use we can add it to the official line-up :)
 

manu3d

Active Member
Contributor
Architecture
Welcome aboard!

[EDIT] P.S. this Scala thing sounds intriguing. I'm not particularly fond of Java in general and any improvement to it might be worth looking into it!
 
Last edited:

OvermindDL1

New Member
Contributor
Getting the Scala libs into the engine would certainly be nice, could use Scala in the engine then as well as mods. ;)
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
I think we should answer ourselves the question what for we need Scala, and where. We were swinging back and forth between a clean and lightweight engine and including any kind of fancy and fun libs and/or languages. One of the reasons why Scala did not make it into engine was that it is not strictly needed. Furthermore, how do we justify that you can use Scala but not Groovy or Clojure? Should they be included as well?

Another point is the question how Scala should be used when part of engine. You can use it as a better Java and most developers will easily understand what's happening. On the other hand, you can write unreadable functional one-liners. Maybe Java 8's lambdas are just the right thing in the middle, maybe they're not. Probably one way to go is to keep the engine pure Java, and have language binding modules included in the minimal default line-up (Iota).

I'm no Java or Scala expert, nor do I have nearly as much experience as you ;) I'm just posting my thoughts on this and I'd like to hear your opinion, especially on what you think would be a good way to use Scala in terms of programming practices.
 

OvermindDL1

New Member
Contributor
<devils-advocate>

I think we should answer ourselves the question what for we need Scala, and where. We were swinging back and forth between a clean and lightweight engine and including any kind of fancy and fun libs and/or languages. One of the reasons why Scala did not make it into engine was that it is not strictly needed. Furthermore, how do we justify that you can use Scala but not Groovy or Clojure? Should they be included as well?
I would argue that Scala could, though not Groovy or Clojure, due to the fact that Scala has a direct correspondence with Java, there is not special closures that have to be used everywhere at integration points as in groovy and clojure both. Scala just 'is' Java, with significantly better syntax and code cleanliness constructs.

Another point is the question how Scala should be used when part of engine. You can use it as a better Java and most developers will easily understand what's happening. On the other hand, you can write unreadable functional one-liners. Maybe Java 8's lambdas are just the right thing in the middle, maybe they're not. Probably one way to go is to keep the engine pure Java, and have language binding modules included in the minimal default line-up (Iota).
You can write unreadable one-liners in any language, that is the point of code review. ;)

I'm no Java or Scala expert, nor do I have nearly as much experience as you ;) I'm just posting my thoughts on this and I'd like to hear your opinion, especially on what you think would be a good way to use Scala in terms of programming practices.
I can go in to great detail if preferred, but overall I prefer Scala as it encourages better coding practices than Java. You can write the same code in both sure, but the way the Scala language is helps encourage doing things correctly in a variety of ways. Remember, it was designed to be 'Java done right' as per one of the original Java developers.

</devils-advocate>
 
Top