> For the complete documentation index, see [llms.txt](https://evgenii-afanasev.gitbook.io/ruby-course/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://evgenii-afanasev.gitbook.io/ruby-course/1_prepare/4_first_program.md).

# Запуск первой программы

Языки программирования можно разделить на 2 группы: компилируемые и интерпретируемые. Компилируемые языки с помощью своего *SDK* проходят процесс компиляции, процесс, когда ваш код перемалывается в более низкоуровневую кашицу, которую компьютеру будет проще запускать, так как компилятор языка программирования во время компиляции проделывают различные оптимизации с вашим кодом.

*Ruby* – это интерпретируемый язык. При запуске *Ruby* программы никакие дополнительные файлы не собираются, код запускается в том состоянии, в каком он есть сейчас, а *SDK* занимается интерпретацией своего собственного языка в понятный для компьютера.

Ruby код пишется в файлах со специальным расширением `.rb` (есть исключения, но в целом вы будете почти всегда писать файл `.rb`). Для того чтобы проверить, что все у нас установилось правильно, давайте создадим учебный файл `lesson.rb` и напишем в нем классический первый шаг в изучении языка программирования: Распечатаем в консоли сообщение `Hello world!`. Для этого напишем в `lesson.rb` следующий код:

```ruby
    puts 'Hello world'
```

Для того, чтобы запускать наш код нам необходимо открывать терминал (не забываем про встроенный, так как он откроет сразу папку нашего проекта) и писать в нем:

```bash
    ruby путь_до_файла.rb
```

В нашем случае `lesson.rb` лежит в `0_prepare/4_first_program/`, значит для того чтобы запустить наш файл нам понадобится ввести в терминале:

```bash
    ruby 0_prepare/4_first_program/lesson.rb
```

> Если мы пишем путь начиная с `/`, значит нам нужно указать **абсолютный** путь до файла, в моем случае это будет `/home/evgenii/Documents/ruby-course/1_prepare/4_first_program/lesson.rb`.

> Если мы пишем путь без `/`, значит нам нужно указатель **относительный** путь до файла. Относительный, значит относительно текущей открытой папки в консоли. Так как *Visual Studio Code* открывает терминал уже в каталоге `/home/evgenii/Documents/ruby-course/`, то мы указывает недостающую часть от этого пути до нашего файла, соответственно `1_prepare/4_first_program/lesson.rb`.

### Задание `my_name_is`

Давайте теперь самостоятельно напишите в консоль как вас зовут

Ожидаемый вывод в консоль: `Hi, my name is ваше_имя`

#### Дополнительный материал:

* [puts VS print vs P](https://www.rubyguides.com/2018/10/puts-vs-print/)
* [Путь к файлу в Linux](https://losst.pro/put-k-fajlu-v-linux)
