# What Programming Languages Does the google/skills Repository Support?

> Discover the eight programming languages supported by the google/skills repository: Python, Java, Go, Node.js, Ruby, PHP, C#, and Perl. Enhance your skills today.

- Repository: [Google/skills](https://github.com/google/skills)
- Tags: faq
- Published: 2026-08-16

---

**The google/skills repository officially supports eight programming languages: Python, Java, Go, Node.js (JavaScript), Ruby, PHP, .NET (C#), and Perl.**

The google/skills repository provides curated "skill" bundles for Google Cloud and Google Ads services, enabling developers to integrate Google APIs using their preferred programming language. Each skill includes language-specific reference guides located in dedicated `references/` directories, with the core skill definition documented in [`SKILL.md`](https://github.com/google/skills/blob/main/SKILL.md) files listing available language implementations.

## Complete List of Supported Programming Languages

The repository maintains dedicated reference files for each supported language. The primary languages include:

- **Python** – Reference guide located at [`skills/analytics/google-analytics-data-api-basics/references/python.md`](https://github.com/google/skills/blob/main/skills/analytics/google-analytics-data-api-basics/references/python.md)
- **Java** – Reference guide located at [`skills/analytics/google-analytics-data-api-basics/references/java.md`](https://github.com/google/skills/blob/main/skills/analytics/google-analytics-data-api-basics/references/java.md)
- **Go** – Reference guide located at [`skills/analytics/google-analytics-data-api-basics/references/go.md`](https://github.com/google/skills/blob/main/skills/analytics/google-analytics-data-api-basics/references/go.md)
- **Node.js / JavaScript** – Reference guide located at [`skills/analytics/google-analytics-data-api-basics/references/nodejs.md`](https://github.com/google/skills/blob/main/skills/analytics/google-analytics-data-api-basics/references/nodejs.md)
- **Ruby** – Reference guide located at [`skills/analytics/google-analytics-data-api-basics/references/ruby.md`](https://github.com/google/skills/blob/main/skills/analytics/google-analytics-data-api-basics/references/ruby.md)
- **PHP** – Reference guide located at [`skills/analytics/google-analytics-data-api-basics/references/php.md`](https://github.com/google/skills/blob/main/skills/analytics/google-analytics-data-api-basics/references/php.md)
- **.NET (C#)** – Reference guide located at [`skills/analytics/google-analytics-data-api-basics/references/dotnet.md`](https://github.com/google/skills/blob/main/skills/analytics/google-analytics-data-api-basics/references/dotnet.md)
- **Perl** – Reference guide located at [`skills/ads/google-ads-api-quickstart/references/perl.md`](https://github.com/google/skills/blob/main/skills/ads/google-ads-api-quickstart/references/perl.md)

These eight languages align with Google's official client library support for Cloud services, covering the primary enterprise and web development ecosystems.

## How Language Support Is Structured

Language support follows a consistent directory pattern across all skills. Each skill bundle contains a root [`SKILL.md`](https://github.com/google/skills/blob/main/SKILL.md) file that serves as the entry point, along with a `references/` subdirectory containing language-specific markdown files named according to the language identifier (e.g., [`python.md`](https://github.com/google/skills/blob/main/python.md), [`java.md`](https://github.com/google/skills/blob/main/java.md), [`go.md`](https://github.com/google/skills/blob/main/go.md)).

According to the source code structure, the file [`skills/analytics/google-analytics-data-api-basics/SKILL.md`](https://github.com/google/skills/blob/main/skills/analytics/google-analytics-data-api-basics/SKILL.md) defines the core skill description and links to each language reference. Additionally, cross-cutting guidance appears in files like [`skills/cloud/workload-manager-basics/references/client-library-usage.md`](https://github.com/google/skills/blob/main/skills/cloud/workload-manager-basics/references/client-library-usage.md), which documents how each language maps to appropriate Google Cloud client libraries, and [`skills/cloud/workload-manager-basics/references/setup-prerequisites.md`](https://github.com/google/skills/blob/main/skills/cloud/workload-manager-basics/references/setup-prerequisites.md), which lists required SDKs and environment variables for all supported languages.

## Language-Specific Implementation Examples

The repository provides working code patterns for each language. Below are minimal "Hello World" style implementations demonstrating authentication and API usage.

### Python Example (Google Analytics Data API)

```python
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import DateRange, Metric, RunReportRequest

client = BetaAnalyticsDataClient()
request = RunReportRequest(
    property="properties/123456",
    date_ranges=[DateRange(start_date="2023-01-01", end_date="today")],
    metrics=[Metric(name="activeUsers")],
)
response = client.run_report(request)
print(response)

```

This pattern appears in [`skills/analytics/google-analytics-data-api-basics/references/python.md`](https://github.com/google/skills/blob/main/skills/analytics/google-analytics-data-api-basics/references/python.md), demonstrating the standard flow of importing the client library, constructing a request, and handling the response.

### Java Example (Google Cloud Spanner)

```java
import com.google.cloud.spanner.DatabaseId;
import com.google.cloud.spanner.Spanner;
import com.google.cloud.spanner.SpannerOptions;

SpannerOptions options = SpannerOptions.newBuilder().build();
Spanner spanner = options.getService();
DatabaseId db = DatabaseId.of("my-project", "my-instance", "my-database");

// Example query
try (ResultSet rs = spanner
        .singleUse()
        .executeQuery(Statement.of("SELECT * FROM Users LIMIT 10"))) {
    while (rs.next()) {
        System.out.println(rs.getString("UserName"));
    }
}

```

As documented in [`skills/analytics/google-analytics-data-api-basics/references/java.md`](https://github.com/google/skills/blob/main/skills/analytics/google-analytics-data-api-basics/references/java.md), Java implementations utilize the Builder pattern for service initialization and try-with-resources for connection management.

### Node.js Example (Google Ads API)

```javascript
const {GoogleAdsClient} = require('google-ads-node');

const client = new GoogleAdsClient({
  client_id: 'YOUR_CLIENT_ID',
  client_secret: 'YOUR_CLIENT_SECRET',
  refresh_token: 'YOUR_REFRESH_TOKEN',
});

async function listCampaigns() {
  const response = await client.search(
    `SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id`);
  console.log(response);
}

listCampaigns();

```

This Node.js implementation from [`skills/analytics/google-analytics-data-api-basics/references/nodejs.md`](https://github.com/google/skills/blob/main/skills/analytics/google-analytics-data-api-basics/references/nodejs.md) illustrates asynchronous/await patterns typical of the JavaScript client libraries.

## Summary

- The google/skills repository supports **eight programming languages**: Python, Java, Go, Node.js, Ruby, PHP, .NET (C#), and Perl.
- Language-specific documentation resides in `references/{language}.md` files within each skill directory.
- The core skill definition in [`SKILL.md`](https://github.com/google/skills/blob/main/SKILL.md) files links to all available language implementations for that particular skill.
- Code examples follow consistent patterns across languages: import client libraries, authenticate, construct requests, and process responses.
- Cross-language setup requirements are documented in [`skills/cloud/workload-manager-basics/references/setup-prerequisites.md`](https://github.com/google/skills/blob/main/skills/cloud/workload-manager-basics/references/setup-prerequisites.md).

## Frequently Asked Questions

### Does the google/skills repository support all Google Cloud client library languages?

Yes, the repository supports the complete set of languages for which Google publishes official Cloud client libraries. This includes Python, Java, Go, Node.js, Ruby, PHP, and .NET (C#), plus Perl for specific Google Ads API integrations.

### Is Perl supported for all skills or only specific Google services?

Perl support appears primarily within the Google Ads API skills, specifically in [`skills/ads/google-ads-api-quickstart/references/perl.md`](https://github.com/google/skills/blob/main/skills/ads/google-ads-api-quickstart/references/perl.md). While the repository architecture supports adding Perl references to any skill, current implementation focuses on legacy ad-tech integrations where Perl remains prevalent.

### How do I find the reference guide for my programming language in a specific skill?

Navigate to the skill's directory (e.g., `skills/analytics/google-analytics-data-api-basics/`) and open the `references/` subdirectory. Each supported language has a dedicated markdown file named after the language identifier, such as [`python.md`](https://github.com/google/skills/blob/main/python.md), [`java.md`](https://github.com/google/skills/blob/main/java.md), or [`nodejs.md`](https://github.com/google/skills/blob/main/nodejs.md). The root [`SKILL.md`](https://github.com/google/skills/blob/main/SKILL.md) file in each directory also lists all available language references with direct links.

### Are the code examples identical across all supported languages?

No, the implementations vary to follow idiomatic patterns for each language. While the underlying API calls remain consistent, Python uses synchronous client methods with type hints, Java implements Builder patterns and try-with-resources blocks, and Node.js utilizes asynchronous Promise-based APIs. Each reference file adapts the general workflow to language-specific best practices.