Introducing Haskelly – Haskell extension for Visual Studio Code
Can I Introduce you to Haskelly team from University College London, System Engineering course.
Janos, Marco and Marti are three students, currently studying Computer Science at University College London. As part of their system engineering course they are undertaking a team based project. They have been working on a Visual Studio Code and Microsoft Azure Cloud project, to build a Visual Studio Code extension which supports the teaching and learning of Haskell.
Haskell is used widely in academia and also used in industry. But specifically many of the worlds Universities teach Haskell as the first FUNCTIONAL language. The opportunity with this extension and Azure really shows off the power of VSCode as the primary IDE on Windows, MacOS and Linux.
The team are developing an Azure hosted toolset entitled SEAT, SEAT Scaffolding Exercise Automation Toolkit provides a valuable teaching assistant to the Academics and TA in the evaluation of the Haskell learning from students. Students simply submit assignments and resources to the code validation engine assessing the students learning and competencies.
The Haskelly extension has been in development for the past 4 weeks and the team had a superbly impressive demo which shown the VS code Extension working intellisense code completion and quickcheck. The team successfully developed the extension and have made it available for FREE in the Visual Studio Marketplace https://marketplace.visualstudio.com/items?itemName=UCL.haskelly they have had over 2,000 downloads.
Last week the team and their academic supervisor, Dr Dean Mohamedally had the opportunity of meeting Simon Peyton Jones at Microsoft Research Cambridge. Simon is a major contributor to the design of the Haskell programming language, and a lead developer of the Glasgow Haskell Compiler (GHC).
Simon is also co-creator of the C-- programming language, designed for intermediate program representation between the language-specific front-end of a compiler and a general-purpose back-end code generator and optimiser. C-- is used in GHC. During the meeting Simon shared his experiences and insight with the team and they discussed potential new features for the extension.
- Syntax Highlighting
- Code completion
- Scripted Toolchain with Haskell's components (as programme or using GHCi)
SEAT for UCL
- AZURE Cloud Based
- Cloud based allows classroom analysis
- Students load encrypted file into VS Code
- Automatic Checking for Students
The intention is that the SEAT toolset will be used within UCL Functional programming courses and provide a Cloud Based classroom analysis Students load encrypted file into VS Code Automatic Checking for Students code.
Plugin with piping architecture overview
- Running code: stack runhaskell in the integrated terminal
- GHCi:running a JS file that pipes a process’s output to its own stdout and handles input
- QuickQueck: using a spawn process and parsing the output to display feedback
- Code completion: direct implementation using a dynamic spawn process
The intention is that SEAT Scaffolding Exercise Automation Tools will be used for all UCL students
Code hosted in a repository -> automatic deployment
Azure Web App manages Authentication
Azure Functions run on– demand
So in summary VS Code makes it easy to develop plugins for education
Azure Web Apps setup with auto. deployment
Institutions running O365 and AAD can utilise Azure Authentication for professors and Students providing single sign on to the necessary resources.
If your interested in learning more about developing Visual Studio Extensions see
If you interested in understanding what extension are currently available see https://visualstudiogallery.msdn.microsoft.com/