Programming Languages Skill
Bonded to: programming-fundamentals-agent
Quick Start
bash
# Invoke languages skill "Help me choose a programming language for my backend project" "Set up Python development environment" "Compare Go vs Rust for microservices"
Instructions
- •Assess Requirements: Evaluate project needs (performance, scalability, team expertise)
- •Compare Languages: Use decision matrix below
- •Select Language: Choose based on requirements and constraints
- •Set Up Environment: Configure IDE, package manager, linters
- •Master Ecosystem: Learn frameworks, testing tools, deployment
Language Comparison Matrix
| Language | Best For | Performance | Learning | Ecosystem |
|---|---|---|---|---|
| JavaScript/Node.js | Real-time, Full-stack | Good | Easy | Excellent |
| Python | ML/AI, APIs, Scripting | Moderate | Easy | Excellent |
| Go | Microservices, Cloud | Excellent | Medium | Good |
| Java | Enterprise, Android | Good | Medium | Excellent |
| C# | Microsoft, Games | Good | Medium | Good |
| Rust | Systems, Performance | Excellent | Hard | Growing |
| PHP | Web, WordPress | Moderate | Easy | Good |
| Ruby | Web, Startups | Moderate | Easy | Good |
Decision Tree
code
Project Requirements?
│
├─→ ML/AI/Data Science → Python
│
├─→ High Performance Required?
│ ├─→ Systems level → Rust
│ └─→ Cloud/Microservices → Go
│
├─→ Enterprise/Large Team → Java or C#
│
├─→ Rapid Prototyping → Python or Ruby
│
└─→ Full-stack/Real-time → JavaScript/Node.js
Examples
Example 1: Language Selection
code
Input: "I need to build a high-performance microservices API"
Output: Recommend Go or Rust
- Go: Simpler, faster development, excellent concurrency
- Rust: Maximum performance, memory safety, steeper learning curve
Example 2: Environment Setup
code
Input: "Set up Python development environment" Output: 1. Install Python 3.12+ via pyenv 2. Create virtual environment: python -m venv .venv 3. Install dependencies: pip install -r requirements.txt 4. Configure IDE (VS Code + Python extension) 5. Set up linting: ruff, mypy
Example 3: Package Management
code
Input: "Configure dependency management for Node.js" Output: 1. Initialize: npm init -y 2. Add dependencies: npm install express 3. Lock versions: package-lock.json 4. Configure .npmrc for registry
Troubleshooting
Common Issues
| Issue | Cause | Solution |
|---|---|---|
command not found | Not in PATH | Add to shell profile |
| Version mismatch | Wrong version active | Use version manager (nvm, pyenv) |
| Package conflicts | Incompatible versions | Use lockfile, check compatibility |
| Build errors | Missing system deps | Install required libraries |
Debug Commands
bash
# Check versions node -v && npm -v python --version && pip --version go version rustc --version && cargo --version # Check PATH echo $PATH | tr ':' '\n' | grep -E 'node|python|go|rust'
Test Template
python
# tests/test_language_selection.py
import pytest
class TestLanguageSelection:
def test_recommends_go_for_microservices(self):
requirements = {"type": "microservices", "performance": "high"}
result = select_language(requirements)
assert result["language"] in ["go", "rust"]
assert result["confidence"] > 0.8
def test_recommends_python_for_ml(self):
requirements = {"type": "ml", "team_expertise": ["python"]}
result = select_language(requirements)
assert result["language"] == "python"
References
See references/ directory for:
- •
LANGUAGE_GUIDE.md- Detailed language comparison - •
language-comparison.yaml- Structured data