In order to improve bkz (A book recommendation algorithm my friend and I are working on) we decided to build a website entirely in Go (Github). Although this statement is simple, the challenge is definitely foreboding.
- There is a fair amount of documentation on Go, but it is still young! The recent update to Go (1.2) was released this month and added several significant improvements. This may sound like good news, and it is, however the frequency and leaps Go has made the past year from Go 1.0 to Go 1.2 has made it difficult to find examples, as well as (in some cases) proper documentation. Personally, it is enjoyable to figure out something new, and it is an excellent skill to acquire, on the other hand it is challenging to use a programming language that is both new to both myself (and the world) to develop a website.
- Due to the fact that Go is relatively new there is a lack of libraries, therefore most of our time has been devoted towards creating many simple functions.
- I am learning a ton! It’s interesting to note that I learned more in the past 24 hours of programming in Go than in the last month of a computer science course I took covering web servers.
- Go seems to be getting the job done, it is relatively simple to code, and due to the fact it is a relatively new programming language I feel it is a good language to learn. It seems relatively intuitive to program in and easy to construct a web server out of. Hopefully it will do alright analyzing data (although we may do that in C++/C).
- Go is fun to program in.
Over all, I feel creating a website in Go from the bottom up will be an excellent learning experience. Go is hot on the market right now, it seems simple to use and has an active community (and Google) supporting it. It seems to be able to handle everything as well or better than Python or Ruby and over time I feel has the potential to surpass both languages in performance. I look forward to continuing the project.
Currently, in the past 24 ours we have created a MongoDB database which stores user data when a user registers, created a login page, and created a cookie which can be used to keep track if a user is logged-in/returning. It may currently look pretty shabby, but one must build the foundation before a building may rise.