Updated on September 16, 2015
Summer 2015 Update: Scala, DSL’s and the BBC Freedom Festival
My aim for this post is for it be an informal update on what I have been doing this summer. So far I’ve been working for the Hull Computer Science department researching the Scala programming language with internal domain specific languages (DSL’s). So far this area of research has been incredibly rewarding. Scala is a fascinating language that offers a huge amount of features to explore, especially in the functional side of the language. I find this intriguing, coming from more of a procedural language background, as it is a new way to approach and solve problems. I’ve dramatically improved my programming expertise, bringing techniques and styles from a functional paradigm that I could incorporate into my existing projects. I’d strongly recommend all programmers to learn different paradigms, as it can change the way you think and therefor approach code.
Throughout this summer I’ve been experimenting will Scala and some of the small projects that I have created as a result of my research includes producing a predictive grade calculator. This program accepts what modules you are taking, weightings and currently known grades to predict what you may get and what you have to get in pieces of work to achieve your target grade. Furthermore, I wrote a C Syntax Highlighting IDE as well as a book ordering system that uses a DSL front end to order large batches of books. The aim of these small projects was to test specific features of Scala and how they may be used in potential DSLs. I then progressed to work on converting an existing Java based model simulation framework to Scala in order to explore the conciseness and expressiveness of the language as compared with Java. Furthermore using an existing Java framework allowed me to test the interoperability of numerous Scala and Java classes. This work is still ongoing and I am currently building and testing different DSL design patterns using Scala to create a DSL front end for the framework. Some of the patterns I am researching include nested functions, literal extensions though Scala Implicits, closures, method chaining and function sequences. So far this work has been extremely fun and rewarding, and I’m really enthusiastic to keep researching in this area.
More recently I have taken part in the BBC Freedom Festival at Hull, this was a festival promoting programming for children. I represent my university and Computer Science department at the event. We were housed in the main BBC booth where we’d each give demonstrations of numerous virtual reality environments to the public using the Oculus Rift’s DK2’s. All the environments we were demonstrating were made by the Computer Science department of Hull University. The research being conducted through the use of the virtual environments was to train people to operate safely in a potentially dangerous environments, such as scaling a wind turbine in the ocean or operating heavy machinery. These modern virtual reality headsets offer an immersive experience through stereoscopic 3D and motion sensing using accelerometers and gyroscopes. This provides a unique opportunity to explore its uses in a visual education context. During the two day event, 17, 268 people turned up and we’ve were told after the event that our demos were one of the most popular at the festival. This was an amazing experience working along side the BBC and my colleagues, as well as getting to show and explain to people what exciting things my department has been doing. Overall I had a fantastic time.