Go for client side development
Go is a programming language that embraces concurrency right on a language-design level. It engraves policy decisions within the language specification and the compiler. A vibrant community of developers is using Go for developing large-scale server-side applications and successful applications written in Go have been reported all over the industry.
This blueprint covers the essential steps to enable Go for client side development, both as an integral part of the platform as well as another runtime exposed via the Ubuntu SDK.
Blueprint information
- Status:
- Started
- Approver:
- Thomas Voß
- Priority:
- High
- Drafter:
- Thomas Voß
- Direction:
- Approved
- Assignee:
- Thomas Voß
- Definition:
- Discussion
- Series goal:
- Accepted for trusty
- Implementation:
- Needs Infrastructure
- Milestone target:
- None
- Started by
- Thomas Voß
- Completed by
Whiteboard
Integrating Go with the platform requires at least the following high-level steps to address maintainability and security issues:
* Decide on the compiler that should be used: gccgo vs gc
* Decide on the compiler version/runtime version that should be used for development
* Clarify with security/
* Clarify on armhf support and identify work items to ensure flawless operation on mobile targets
* Clarify on arm64 support, at least for releases after 14.04.
* Identify minimal required platform integration to allow for developing useful apps
* Prepare for platform integration by leveraging the existing go-dbus implementation at https:/
- Develop the sensor service in Go using go-dbus
* Decide on coding standards / conventions, targeted language versions (1.1/1.2)
* Start of sensor/haptics service replacement: https:/
Work Items
Work items:
[thomas-voss] niemeyer lool Go language roadmap and alignment in terms of features/
[lool] thomas-voss Setup meeting cadence to check on progress: TODO
[niemeyer] Ensure that gc 1.2 is available in the archive: TODO
[mcgowan] Make sure that Gustavo is in the loop for shipped Qt version: TODO
Dependency tree
* Blueprints in grey have been implemented.