HaliteChallenge / Halite

@twosigma's first artificial intelligence programming challenge
https://2016.halite.io
MIT License
194 stars 97 forks source link

Concatenate Library Files #155

Open mammothbane opened 8 years ago

mammothbane commented 8 years ago

Why are there 'starter packages'? Mightn't this all just be provided as a bunch of normal pip/maven/nuget/cargo/etc. libraries (with a static lib for C++)?

The main reason to do this is that there is currently no namespacing or clear separation between library code and user code. Obviously it's not terribly difficult to figure this distinction out, but it's pretty ugly.

truell20 commented 8 years ago

From our experience with our own internal Halite competition, many users end up rewriting the "library" part of the starter packages to fit their needs. We want to emphasize that you can do this.

mammothbane commented 7 years ago

Ok, sure, I suppose that makes sense, but why not provide a canonical implementation and make it clear that it can be modified, forked, or not used at all? It's much easier for someone to get started with an API in place than an amorphous blob of code that they don't have ownership over. If it's obvious that the boundary for is the stdout communication protocol and this is well-documented, people can rewrite if they want, or they can fork the library.

It's not a huge deal, but as soon as I downloaded the scala package and figured out what everything was, I immediately started restructuring because I wanted my bot code namespaced away from the pre-written stuff.

truell20 commented 7 years ago

Point taken. We'll consider concatenating library files into single headers/jars or putting them on package managers.