From aaa1c6747d01c61669212695f793411bf6d7f4ff Mon Sep 17 00:00:00 2001 From: Huw Diprose Date: Tue, 8 Oct 2024 09:01:54 +0100 Subject: [PATCH 1/2] Remove Go section under programing languages If you are reading this commit by commit, no fear I add something back in in the next commit. Why remove this whole section at this level however? Go's major reason to be at GDS was tied to PaaS, and PaaS has now largely gone away. I think the point the section makes about how there could be a use for routing etc isn't a bad one, but I think that's far more likely to happen today deep in the gubbins of AWS, in Infrastructure-as-code or in languages like sucati for firewall rules. So my vote here, is that we remove it wholesale. If there are future ventures that come up with good uses for Go, they should be subject to the bottom paragraph, raise it with your head of Tech and bring it back formally with a good usecase. --- .../programming-languages.html.md.erb | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/source/standards/programming-languages.html.md.erb b/source/standards/programming-languages.html.md.erb index 7e4e3c34..7c2ea1b2 100644 --- a/source/standards/programming-languages.html.md.erb +++ b/source/standards/programming-languages.html.md.erb @@ -77,24 +77,6 @@ production. [PEP373]: https://www.python.org/dev/peps/pep-0373/ -### Go - -Go is no longer a core backend development language in GDS. - -The only Go service currently in production operation is the [GOV.UK -router][router], and it is the core language for [Cloud -Foundry](https://www.cloudfoundry.org/), which GOV.UK PaaS uses, although -GOV.UK PaaS is being [decommissioned][pass-decom]. As such, the knowledge and -experience of building and running services in Go is small and decreasing. - -Go _may_ be an appropriate language for instances of systems programming, like -proxying, routing, and transforming HTTP requests. However you should only -write these sorts of components if there is no alternative maintained open -source tool available. - -[router]: https://github.com/alphagov/router -[pass-decom]: https://gds.blog.gov.uk/2022/07/12/why-weve-decided-to-decommission-gov-uk-paas-platform-as-a-service/ - ### Languages we do not use for new projects We used Scala in the early days of GDS. GOV.UK Licensing is the only remaining From 3244791d6af2a076493fa455cdb24dcbdbf4e45b Mon Sep 17 00:00:00 2001 From: Huw Diprose Date: Tue, 8 Oct 2024 09:04:33 +0100 Subject: [PATCH 2/2] Add to "former GDS languages section" - Previously this just talked about scala, let's make this it's own heading level - Then let's add a note on Go, resucing some of the good stuff from the paragraph I just deleted but very much talking in past tense now. Hopefully this helps cement the idea that we wouldn't expect Go to be used as a new language at GDS right now. --- source/standards/programming-languages.html.md.erb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/standards/programming-languages.html.md.erb b/source/standards/programming-languages.html.md.erb index 7c2ea1b2..0872946a 100644 --- a/source/standards/programming-languages.html.md.erb +++ b/source/standards/programming-languages.html.md.erb @@ -79,10 +79,24 @@ production. ### Languages we do not use for new projects +#### Scala + We used Scala in the early days of GDS. GOV.UK Licensing is the only remaining application written in Scala but we've found it hard to support because of a lack of skills in GDS. Do not use Scala for new projects. +#### Go + +Go is no longer a core backend development language in GDS. + +The only Go service currently in production operation is the [GOV.UK +Foundry](https://www.cloudfoundry.org/), which was used by GOV.UK PaaS. + +PaaS has now been [decommissioned][pass-decom]. + +[router]: https://github.com/alphagov/router +[pass-decom]: https://gds.blog.gov.uk/2022/07/12/why-weve-decided-to-decommission-gov-uk-paas-platform-as-a-service/ + ## Using other languages There will be sensible reasons to not follow the above guidance on languages.