{}const=>[]async()letfn</>var
Lua開発

プログラミングを簡単に始めるための秘訣は、Luaのミニマリズムです

誰もが「Pythonを学ぼう」と言いますが、まずはLuaを見てみましょう。8種類のデータ型、あらゆる機会に対応する1つの構造、30ページのドキュメントを備えた言語です。プログラミング言語におけるミニマリズムがバグではなく、初心者にとってのスーパーパワーである理由を理解しましょう。

К

Kodik

著者

2分で読める

全世界が「Pythonを学ぼう」と叫んでいるとき、あなたは「もしそうでなければどうなる?」と考えます。

率直に言いましょう。「ITに入る方法」に関するガイドを開くと、同じことが書かれています。Python、JavaScript、マゾヒストのためのJavaかもしれません。すべての道は、フレームワーク、パッケージマネージャー、そして銀河系のサイズのnode_modulesの同じジャングルにつながっています。

そして、その言語を想像してみてください すべて 30ページのPDFに収まります。言語全体。完全に。すべてのニュアンスで。

🔥 10万人以上の学生が参加中

理論を読むのに疲れた?
コーディングの時間だ!

Kodik — 実践でプログラミングを学ぶアプリ。AIメンター、インタラクティブなレッスン、実際のプロジェクト。

🤖 AI 24時間
🎓 修了証
💰 無料
🚀 始める
今日参加

「ルア?ゲームのルア?」

はい、そして単に「ゲームで」ではありません。Luaは、World of Warcraft、Roblox、Garry's Mod、Factorio、LÖVE 2Dのスクリプトエンジンです。WoWのアドオンをインストールしたことがある場合、またはお気に入りのゲームのMODを書いたことがある場合は、すでにLuaを使用したことがあります。ただ、それについて知らなかったかもしれません。

しかし、ゲームは氷山の一角にすぎません。Luaは、Nginx(OpenResty経由)、Redis、Wireshark、Adobe Lightroom、さらにはルーターのファームウェア内でも動作します。この小さな言語は、文字通りどこにでも入り込んでいます。なぜなら、この言語には超能力があるからです。 余計なことはしません.

開発者の怠惰ではなく、哲学としてのミニマリズム

ブラジルの大学PUC-RioのLuaの作成者は、「別のプログラミング言語」を作成することを目標としていませんでした。彼らは作りたかった 埋め込みスクリプトエンジン、チャットの平均画像よりも軽いもの。

その結果は次のとおりです。

Luaのランタイム全体は約300KBです。 比較のために、Node.jsインストーラーだけでも200倍以上の重さがあります。そして、平均的なプロジェクトのnode_modules...まあ、このジョークをご存知でしょう。

Luaのデータ型はちょうど 8 個: nil、boolean、number、string、function、table、userdata、thread。すべて。個別の配列、辞書、セット、タプルはありません。一つのユニバーサル構造があります。 table ― そして、すべてを閉じます。

-- Массив? Table.
local fruits = {"apple", "banana", "cherry"}

-- Словарь? Table.
local user = {name = "Alexey", level = 42}

-- Объект с методами? Тоже table.
function user:greet()
    print("Hi, I'm " .. self.name)
end

user:greet()  -- Привет, я Алексей

すべてを統治するための1つのデータ構造。フロドは承認します。

ミニマリズム=簡単なスタートである理由

Pythonを学ぶとき、リスト、タプル、セット、辞書、ジェネレーター、デコレーター、コンテキストマネージャー、__dunder__メソッドなどがすぐに投げかけられます。そして、これは最初の実際のプロジェクトの前です。

Luaでは、一晩で習得できます すべての構文冗談ではありません。これが短期コースです。

-- Переменные
local name = "Code"
local age = 3
local is_cool = true

-- Условия
if is_cool then
    print(name .. " - cool!")
elseif age > 10 then
    print("Old school")
else
    print("Well, okay")
end

-- Циклы
for i = 1, 5 do
    print("Iteration: " .. i)
end

-- Функции
local function add(a, b)
    return a + b
end

print(add(2, 2))  -- 4, математика не подвела

以上です。 本当に。あなたはすでにLuaの80%を知っています。残りの20%はメタテーブル、コルーチン、C APIの操作ですが、これはすでに上級者向けです。

初心者の脳は、数十の概念で過熱することはありません。代わりに、あなたはすぐに始めます 作る:スクリプトを書き、ゲームロジックを作成し、タスクを自動化します。

テーブル — シンプルさの中にある才能

Luaで最も頭がおかしくなるものは何ですか?tableは、配列、ハッシュテーブル、オブジェクト、モジュール、名前空間です。オールインワンです。

-- Создаём «класс» через table + метатаблицы
local Animal = {}
Animal.__index = Animal

function Animal.new(name, sound)
    local self = setmetatable({}, Animal)
    self.name = name
    self.sound = sound
    return self
end

function Animal:speak()
    print(self.name .. " says: " .. self.sound)
end

local cat = Animal.new("Cat", "Meow")
local dog = Animal.new("Dog", "Woof")

cat:speak()  -- Кот говорит: Мяу
dog:speak()  -- Пёс говорит: Гав

キーワードclassがありません。extendsがありません。interfaceがありません。あなた 自分で 基本的なブロックからOOPを構築します。そしてその過程で、構文を暗記するだけでなく、オブジェクト指向プログラミングがボンネットの下でどのように機能するかを実際に理解します。

これはLEGOブロックのようなものです。部品は少ないですが、何でも組み立てることができます。

「わかりました。どこで役に立ちますか?」

公平な質問です。Luaが単なるおもちゃではない実際のシナリオは次のとおりです。

ゲームデベ。 LÖVE 2Dは、Luaで2Dゲームを作成するためのフレームワークです。エントリーのしきい値が非常に低いため、最初のゲームは週末に書くことができます。ちなみにCelesteは、Luaのサブセットを使用するPICO-8のプロトタイプとして始まりました。

ウェブ開発。 OpenRestyは、NginxをLuaスクリプトを備えた本格的なWebサーバーに変換します。速度は宇宙、メモリ消費は笑える。

Luaを第一言語とすることの賛否両論

賛成の主な議論: 認知負荷はゼロに近づいています初心者はエコシステムに溺れることはありません。pipcondapoetrypipenv の間で選択しません。letconstvar とどう違うのかをググル検索することはありません。コードを書いて結果を見るだけです。

そして、基本的な概念(変数、ループ、関数、データ構造)が頭に入ったら、PythonやJavaScriptへの移行は、「お母さん、ここから連れ出して」ではなく、「ああ、単に構文が違うだけだ」という感じになります。

Luaのミニマリズムは、特定のフレームワークのユーザーとしてではなく、プログラマーとして考えることを教えてくれます。

今すぐ試してみてください

Luaに触ってみたいですか?何もインストールする必要はありません。任意のオンラインLuaインタプリタを開き、最初のスクリプトを書きます。

local things_i_learned = {
    "variables",
    "terms",
    "cycles",
    "functions",
    "tables"
}

print("I learned in one evening:")
for i, thing in ipairs(things_i_learned) do
    print(i .. ". " .. thing)
end
print("And that's all Lua 😎")

起動して。笑顔で。あなたはすでにプログラマーです。

もっと深く掘り下げたいですか?
コディックに入ってください!

シンプルなものから始めて、痛みを伴わずに複雑なものに移行するというアイデアに興味をお持ちなら、それがまさに私たちがやっていることです。 コディック.

コディック — 実践を通じてプログラミングを学べるアプリです。「無駄な」1時間の講義はありません。各レッスンは、自分で問題を解決し、即座にフィードバックを得ることができます。Python、JavaScript、HTML、CSS、その他の技術はすべて、完全な初心者でも理解できるように整理され、提供されています。

また、当社には Telegramコミュニティ、すでに大きい 2000人の開発者プログラミングに役立つ投稿、タスクの分析、ミーム(それなしでは)、ライブディスカッションがあります。地下鉄に乗っている間や並んでいる間に、携帯電話で資料を繰り返して、最新情報を把握するのに最適な方法です。

学習へのアプローチにおけるミニマリズムは、Luaのミニマリズムと同じように効果があります。ノイズが少ないほど、結果が向上します。

Luaは「ゲーム用言語」でも「エキゾチックな言語」でもありません。これは、パワーは複雑である必要はないという証明です。頭の中にある言語は、最も重要なもののために脳のリソースを解放します。 課題解決.

小さなことから始めましょう。Luaを試してみてください。言語が妨げではなく、思考を助けてくれることを感じてください。そして、この基礎をもって、Python、Rust、Goなど、何でも征服してください。原則はあなたと共にあります。

ミニマリズムは制限ではありません。これは超能力です。 🚀

🎯先延ばしをやめよう

記事は気に入った?
実践の時間だ!

Kodikでは読むだけでなく、すぐにコードを書く。理論 + 実践 = 本当のスキル。

即座に実践
🧠AIがコードを説明
🏆修了証

登録不要 • カード不要