ភាសាសរសេរកម្មវិធី
មាតិកា៖
សង្ខេប
បញ្ហា
យើងត្រូវជ្រើសរើសភាសាសរសេរកម្មវិធីសម្រាប់កម្មវិធីរបស់យើង។ យើងមានតម្រូវការសំខាន់ពីរ៖ ភាសាសរសេរកម្មវិធីផ្នែកខាងមុខដែលសមស្របសម្រាប់កម្មវិធីគេហទំព័រ និងភាសាសរសេរកម្មវិធីផ្នែកខាងក្រោយដែលសមស្របសម្រាប់កម្មវិធីម៉ាស៊ីនមេ។
ការសម្រេចចិត្ត
យើងជ្រើសរើស TypeScript សម្រាប់ផ្នែកខាងមុខ។
យើងជ្រើសរើស Rust សម្រាប់ផ្នែកខាងក្រោយ។
ស្ថានភាព
បានសម្រេច។ យើងបើកចំហចំពោះជម្រើសថ្មីៗនៅពេលដែលវាកើតមាន។
ព័ត៌មានលម្អិត
ការសន្មត់
កម្មវិធីផ្នែកខាងមុខគឺជាកម្មវិធីធម្មតា៖
អ្នកប្រើ និងអន្តរកម្មធម្មតា
កម្មវិធីរុករក និងប្រព័ន្ធធម្មតា
ការអភិវឌ្ឍ និងការដាក់ពង្រាយធម្មតា
កម្មវិធីផ្នែកខាងមុខទំនងជាវិវត្តយ៉ាងលឿន៖
យើងចង់ធានាការអភិវឌ្ឍ ការដាក់ពង្រាយ ការធ្វើវដ្ត ។ល។ ឱ្យលឿន និងងាយស្រួល។
យើងឱ្យតម្លៃលើភាពអាចបញ្ជាក់បាន ដូចជាសុវត្ថិភាពប្រភេទ ហើយយើងសុខចិត្តធ្វើការបន្ថែមបន្តិចដើម្បីសម្រេចវា។
យើងមិនត្រូវការភាពត្រូវគ្នាជាមួយប្រព័ន្ធចាស់ទេ។
កម្មវិធីផ្នែកខាងក្រោយមានតម្រូវការខ្ពស់ជាងធម្មតា៖
គោលដៅខ្ពស់ជាងធម្មតាសម្រាប់គុណភាព ជាពិសេសភាពអាចបញ្ជាក់បាន ភាពអាចទុកចិត្តបាន សុវត្ថិភាព ។ល។
គោលដៅខ្ពស់ជាងធម្មតាសម្រាប់ពេលវេលាជិតជាក់ស្តែង ពោលគឺយើងមិនចង់មានការផ្អាកដោយសារការប្រមូលសំរាមរបស់ម៉ាស៊ីននិម្មិតទេ។
គោលដៅខ្ពស់ជាងធម្មតាសម្រាប់ការសរសេរកម្មវិធីអនុគមន៍ ជាពិសេសសម្រាប់ការធ្វើឱ្យស្របគ្នា ដំណើរការស្នូលច្រើន និងសុវត្ថិភាពអង្គចងចាំ។
យើងទទួលយកល្បឿនចងក្រងទាបជាង ជាការប្តូរនឹងសុវត្ថិភាពពេលចងក្រង និងល្បឿនពេលដំណើរការ។
ឧបសគ្គ
យើងមានឧបសគ្គខ្លាំងលើភាសាដែលអាចប្រើបានជាមួយសេវាកម្មអ្នកផ្តល់ពពកធំៗសម្រាប់អនុគមន៍ ដូចជា Amazon Lambda។
ជំហរ
យើងបានពិចារណាភាសាទាំងនេះ៖
C
C++
Clojure
Elixir
Erlang
Elm
Flow
Go
Haskell
Java
JavaScript
Kotlin
Python
Ruby
Rust
TypeScript
អាគុយម៉ង់
សង្ខេបតាមភាសានីមួយៗ៖
C: ត្រូវបានបដិសេធដោយសារសុវត្ថិភាពទាប។ Rust អាចធ្វើបានល្អជាងស្ទើរតែគ្រប់យ៉ាង។
C++: ត្រូវបានបដិសេធដោយសារវាជាភាពច្របូកច្របល់។ Rust អាចធ្វើបានល្អជាងស្ទើរតែគ្រប់យ៉ាង។
Clojure: ការបង្កើតម៉ូដែលឆ្នើម។ ការប្រហាក់ប្រហែល Lisp ល្អបំផុត។ ពេលដំណើរការល្អលើ JVM។
Elixir: ពេលដំណើរការឆ្នើម រួមទាំងភាពអាចដាក់ពង្រាយបាន និងការដំណើរការស្របគ្នា។ បទពិសោធន៍អ្នកអភិវឌ្ឍន៍ឆ្នើម។ ប្រព័ន្ធអេកូឡូស៊ីតូចប្រៀបធៀប។
Erlang: ពេលដំណើរការឆ្នើម រួមទាំងភាពអាចដាក់ពង្រាយបាន និងការដំណើរការស្របគ្នា។ បទពិសោធន៍អ្នកអភិវឌ្ឍន៍ពិបាក។ ប្រព័ន្ធអេកូឡូស៊ីតូចប្រៀបធៀប។
Elm: មើលទៅមានសង្ឃឹមខ្លាំង។ IBM កំពុងផ្សព្វផ្សាយករណីសិក្សាធំៗដែលមានលទ្ធផលល្អ។ ប្រព័ន្ធអេកូឡូស៊ីតូចជាង។
Flow: ការកែលម្អគួរឱ្យចាប់អារម្មណ៍លើ JavaScript ប៉ុន្តែអ្នកអភិវឌ្ឍន៍កំពុងងាកចេញពីវា។
Go: បទពិសោធន៍អ្នកអភិវឌ្ឍន៍ឆ្នើម។ ការដំណើរការស្របគ្នាឆ្នើម។ ប៉ុន្តែមានកំណត់ត្រានៃការសម្រេចចិត្តអាក្រក់ដែលធ្វើឱ្យភាសាពិការ។
Haskell: ភាសាអនុគមន៍ល្អបំផុត។ សហគមន៍អ្នកអភិវឌ្ឍន៍តូចជាង។ មិនទាន់សម្រេចបានភាពជោគជ័យក្នុងផលិតកម្មដែលបានផ្សព្វផ្សាយគ្រប់គ្រាន់ទេ។
Java: ពេលដំណើរការឆ្នើម។ ប្រព័ន្ធអេកូឡូស៊ីឆ្នើម។ បទពិសោធន៍អ្នកអភិវឌ្ឍន៍ក្រោមស្តង់ដារ។
JavaScript: ភាសាពេញនិយមបំផុតគ្រប់ពេល។ ប្រព័ន្ធអេកូឡូស៊ីរីករាលដាលបំផុត។
Kotlin: ដោះស្រាយបញ្ហាជាច្រើនរបស់ Java។ ការគាំទ្រឆ្នើមពី JetBrains។ ករណីដែលបានផ្សព្វផ្សាយល្អអំពីការផ្លាស់ប្តូរពី Java ទៅ Kotlin។
Python: ភាសាពេញនិយមបំផុតសម្រាប់ការគ្រប់គ្រងប្រព័ន្ធ។ ឧបករណ៍វិភាគឆ្នើម។ ក្របខ័ណ្ឌគេហទំព័រល្អ។ ប៉ុន្តែត្រូវបាន Google បោះបង់ចោលដើម្បីជំនួសដោយ Go។
Ruby: បទពិសោធន៍អ្នកអភិវឌ្ឍន៍ល្អបំផុតគ្រប់ពេល។ ក្របខ័ណ្ឌគេហទំព័រល្អបំផុត។ សហគមន៍ស្រស់ស្អាតបំផុត។ ប៉ុន្តែយឺតខ្លាំង។ ពិបាកវេចខ្ចប់បន្តិច។
Rust: ភាសាថ្មីល្អបំផុត។ ការសង្កត់ធ្ងន់លើអរូបីសូន្យ។ ការសង្កត់ធ្ងន់លើការដំណើរការស្របគ្នា។ ប៉ុន្តែប្រព័ន្ធអេកូឡូស៊ីតូចប្រៀបធៀប ហើយមានដែនកំណត់ដោយចេតនាលើការពន្លឿនកម្មវិធីចងក្រងមួយចំនួន ឧ. ការចូលប្រើអង្គចងចាំដោយផ្ទាល់ត្រូវតែ unsafe យ៉ាងច្បាស់លាស់។
TypeScript: បន្ថែមប្រភេទទៅ JavaScript។ កម្មវិធី transpile ឆ្នើម។ ការសង្កត់ធ្ងន់របស់អ្នកអភិវឌ្ឍន៍លើការផ្លាស់ប្តូរពី JavaScript ទៅ TypeScript កំពុងកើនឡើង។ ការគាំទ្ររឹងមាំពី Microsoft។
យើងបានសម្រេចថា VM មានសំណុំនៃការដោះដូរដែលយើងមិនត្រូវការឥឡូវនេះ ដូចជាភាពស្មុគស្មាញបន្ថែមដែលផ្តល់សមត្ថភាពពេលដំណើរការ។
យើងជឿថាការសម្រេចចិត្តស្នូលរបស់យើងត្រូវបានជំរុញដោយកង្វល់ឆ្លងកាត់ពីរ៖
សម្រាប់ល្បឿនពេលដំណើរការលឿនបំផុត និងការចូលប្រើប្រព័ន្ធជិតបំផុត យើងនឹងជ្រើស JavaScript និង C។
សម្រាប់ល្បឿនពេលដំណើរការជិតលឿនបំផុត និងការចូលប្រើប្រព័ន្ធជិតជិតបំផុត យើងជ្រើស TypeScript និង Rust។
ការលើកឡើងកិត្តិយសទៅភាសា VM និងក្របខ័ណ្ឌគេហទំព័រដែលយើងនឹងជ្រើស ប្រសិនបើយើងចង់បានភាសា VM៖
Clojure និង Luminus
Java និង Spring
Elixir និង Phoenix
ផលវិបាក
អ្នកអភិវឌ្ឍន៍ផ្នែកខាងមុខនឹងត្រូវរៀន TypeScript។ នេះទំនងជាខ្សែកោងរៀនងាយ ប្រសិនបើបទពិសោធន៍ចម្បងរបស់អ្នកអភិវឌ្ឍន៍គឺប្រើ JavaScript។
អ្នកអភិវឌ្ឍន៍ផ្នែកខាងក្រោយនឹងត្រូវរៀន Rust។ នេះទំនងជាខ្សែកោងរៀនកម្រិតមធ្យម ប្រសិនបើបទពិសោធន៍ចម្បងរបស់អ្នកអភិវឌ្ឍន៍គឺប្រើ C/C++ និងខ្សែកោងរៀនពិបាក ប្រសិនបើបទពិសោធន៍ចម្បងរបស់អ្នកអភិវឌ្ឍន៍គឺប្រើ Java, Python, Ruby ឬភាសាដែលគ្រប់គ្រងអង្គចងចាំស្រដៀងគ្នា។
TypeScript និង Rust ទាំងពីរសុទ្ធតែថ្មីប្រៀបធៀប។ នេះមានន័យថាឧបករណ៍ជាច្រើននៅមិនទាន់មានឯកសារសម្រាប់ភាសាទាំងនេះទេ។ ឧទាហរណ៍ បំពង់ devops នឹងត្រូវដំឡើងសម្រាប់ភាសាទាំងនេះ ហើយរហូតមកដល់ពេលនេះ គ្មានឧបករណ៍ devops ណាមួយដែលយើងកំពុងវាយតម្លៃមានឧទាហរណ៍លំនាំដើមសម្រាប់ភាសាទាំងនេះទេ។
ពេលចងក្រងសម្រាប់ TypeScript និង Rust គឺយឺតណាស់។ ផ្នែកខ្លះនៃនេះអាចដោយសារភាពថ្មីនៃភាសា។ យើងអាចចង់មើលរបៀបកាត់បន្ថយពេលចងក្រងយឺត ដូចជាដោយចងក្រងតាមតម្រូវការ ចងក្រងស្របគ្នា ។ល។
ការគាំទ្រ IDE សម្រាប់ភាសាទាំងនេះមិនទាន់នៅគ្រប់ទីកន្លែង និងមិនទាន់ជាថ្នាក់ទីមួយទេ។ ឧទាហរណ៍ JetBrains លក់ IDE PyCharm សម្រាប់ការគាំទ្រថ្នាក់ទីមួយចំពោះ Python ប៉ុន្តែមិនលក់ IDE ដែលមានការគាំទ្រថ្នាក់ទីមួយចំពោះ Rust ទេ។ ផ្ទុយទៅវិញ JetBrains អាចប្រើកម្មវិធីជំនួយ Rust ដែលផ្តល់ប្រហែល 80% នៃការគាំទ្រភាសា Rust ធៀបនឹងការគាំទ្រភាសា Python។
ពាក់ព័ន្ធ
ការសម្រេចចិត្តពាក់ព័ន្ធ
យើងនឹងមានគោលដៅឆ្ពោះទៅរកជម្រើសប្រព័ន្ធអេកូឡូស៊ីដែលស្របនឹងភាសាទាំងនេះ។
ឧទាហរណ៍ យើងចង់ជ្រើសរើស IDE ដែលមានសមត្ថភាពល្អសម្រាប់ភាសាទាំងនេះ។
ឧទាហរណ៍ សម្រាប់ក្របខ័ណ្ឌគេហទំព័រផ្នែកខាងមុខរបស់យើង យើងទំនងជាសម្រេចជ្រើសក្របខ័ណ្ឌដែលមានទំនោរផ្តោតលើ TypeScript (ឧ. Vue) ជាងក្របខ័ណ្ឌដែលមានទំនោរផ្តោតលើ JavaScript ធម្មតា (ឧ. React)។
តម្រូវការពាក់ព័ន្ធ
ខ្សែសង្វាក់ឧបករណ៍ទាំងមូលរបស់យើងត្រូវតែគាំទ្រភាសាទាំងនេះ។
វត្ថុពាក់ព័ន្ធ
យើងរំពឹងថាយើងអាចនាំចេញសម្ងាត់មួយចំនួនទៅអថេរបរិស្ថាន។
គោលការណ៍ពាក់ព័ន្ធ
វាស់ពីរដង សាងសង់ម្តង។ យើងកំពុងផ្តល់អាទិភាពដល់សុវត្ថិភាពខ្លះជាងល្បឿនខ្លះ។
ពេលដំណើរការមានតម្លៃជាងពេលចងក្រង។ យើងកំពុងផ្តល់អាទិភាពដល់ការប្រើប្រាស់របស់អតិថិជនជាងការប្រើប្រាស់របស់អ្នកអភិវឌ្ឍន៍។
កំណត់ចំណាំ
កំណត់ចំណាំណាមួយនៅទីនេះ។