Вопрос ΠΎΠ± ΡƒΡ€ΠΎΠ²Π½Π΅ языка программирования 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΆΠ°Ρ€ΠΊΠΈΠ΅ споры срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠšΡ‚ΠΎ-Ρ‚ΠΎ считаСт Π΅Π³ΠΎ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ ΠΈΠ·-Π·Π° тСсной ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ относят ΠΊ высокоуровнСвым благодаря Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ ΠΈ встроСнным ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ разбСрёмся, ΠΏΠΎΡ‡Π΅ΠΌΡƒ классификация 1Π‘ Π½Π΅ Ρ‚Π°ΠΊ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Π°, ΠΊΠ°ΠΊ Ρƒ C++ ΠΈΠ»ΠΈ Python, ΠΈ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ для вашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Врадиционная классификация языков Π½Π° высокий, срСдний ΠΈ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π½ΠΈ основана Π½Π° стСпСни абстракции ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния. Однако 1Π‘ Π»ΠΎΠΌΠ°Π΅Ρ‚ эту схСму: ΠΎΠ½ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ прСдоставляСт доступ ΠΊ "ΠΆΠ΅Π»Π΅Π·Ρƒ" Ρ‡Π΅Ρ€Π΅Π· внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ бизнСс-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π»ΠΎΠΆΠΈΠΌ всё ΠΏΠΎ ΠΏΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌ β€” ΠΎΡ‚ синтаксиса Π΄ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… особСнностСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ "ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ языка программирования"?

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ 1Π‘, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ "высокий" ΠΈ "Π½ΠΈΠ·ΠΊΠΈΠΉ" ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π­Ρ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Π° ΠΏΡ€ΠΎ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ контроля Π½Π°Π΄ систСмными рСсурсами:

  • πŸ”Ή НизкоуровнСвыС языки (ассСмблСр, C) β€” Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с рСгистрами процСссора, ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. Π’Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ управлСния рСсурсами.
  • πŸ”Ή ВысокоуровнСвыС языки (Python, JavaScript) β€” Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ части, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ автоматичСскиС сборщики мусора, Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ.
  • πŸ”Ή Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ (C++, Rust) β€” ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‚ элСмСнты ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ²: ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ "ΠΆΠ΅Π»Π΅Π·Ρƒ", Ρ‚Π°ΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ высокоуровнСвыС конструкции.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ β€” насколько язык зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. НизкоуровнСвый ΠΊΠΎΠ΄ придётся ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ОБ, Π° высокоуровнСвый (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Java) запустится Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ благодаря Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС. Π“Π΄Π΅ ΠΆΠ΅ здСсь мСсто 1Π‘?

πŸ“Š Как Π²Ρ‹ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚Π΅ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ языка 1Π‘?
Низкий (Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ ΠΆΠ΅Π»Π΅Π·Ρƒ)
Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ (Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΉ)
Высокий (абстракция)
НС знаю, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΡƒΠΌΠ°Π» ΠΎΠ± этом

ΠŸΠΎΡ‡Π΅ΠΌΡƒ 1Π‘ Π½Π΅ вписываСтся Π² ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ

Π―Π·Ρ‹ΠΊ 1Π‘ β€” это ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π³ΠΈΠ±Ρ€ΠΈΠ΄ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², Π³Π΄Π΅ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° описываСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° встроСнном языкС. Вакая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ прямых Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² срСди популярных языков. Рассмотрим ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ:

  • πŸ“Š ДСкларативная модСль: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (справочники, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹) ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π° Π½Π΅ ΠΊΠΎΠ΄ΠΎΠΌ. Π­Ρ‚ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ для высокоуровнСвых систСм Π²Ρ€ΠΎΠ΄Π΅ SQL.
  • πŸ–₯️ ВстроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹: ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π±Π΅Ρ€Ρ‘Ρ‚ Π½Π° сСбя ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ транзакциями, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ, ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ β€” Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² C# ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.
  • πŸ”Œ Доступ ΠΊ API ОБ: Ρ‡Π΅Ρ€Π΅Π· внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (.dll, .so) ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ, рССстром, Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой β€” ΠΊΠ°ΠΊ Π² Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… языках.
  • πŸ“Ž Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹: ΠΊΠΎΠ΄ 1Π‘ выполнится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² срСдС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅, ΠΊΠ°ΠΊ JavaScript Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π­Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ высокоуровнСвых языков.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ парадокс: с ΠΎΠ΄Π½ΠΎΠΉ стороны, 1Π‘ абстрагируСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ (высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ), с Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” позволяСт Ρ‡Π΅Ρ€Π΅Π· Π’Π½Π΅ΡˆΠ½ΡΡΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° C++ (Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ). Вакая Π΄Π²ΠΎΠΉΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ споры.

πŸ’‘

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ максимальноС быстродСйствиС, ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ участки ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ вынСсти Π²ΠΎ внСшнюю ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π½Π° C++ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΈΠ· 1Π‘. Π­Ρ‚ΠΎ сочСтаСт удобство высокоуровнСвой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ 1Π‘ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками ΠΏΠΎ ΡƒΡ€ΠΎΠ²Π½ΡŽ абстракции

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ 1Π‘, сравним Π΅Π³ΠΎ с классичСскими прСдставитСлями Ρ€Π°Π·Π½Ρ‹Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ различия Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ рСсурсами ΠΈ синтаксисС:

Π―Π·Ρ‹ΠΊ Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Доступ ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ рСсурсам ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°
АссСмблСр Низкий Π ΡƒΡ‡Π½ΠΎΠ΅ ΠŸΡ€ΡΠΌΠΎΠΉ (рСгистры, ΠΏΠΎΡ€Ρ‚Ρ‹) ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ CPU
C Низкий/Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ Π ΡƒΡ‡Π½ΠΎΠ΅ (malloc/free) Π§Π΅Ρ€Π΅Π· систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌ с пСрСкомпиляциСй
1Π‘ Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ/Высокий АвтоматичСскоС (управляСт ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°) Π§Π΅Ρ€Π΅Π· внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Волько Π² срСдС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅
Python Высокий АвтоматичСскоС (сборщик мусора) ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ (Ρ‡Π΅Ρ€Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ) ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ
SQL ΠžΡ‡Π΅Π½ΡŒ высокий (Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ) УправляСт Π‘Π£Π‘Π” НСт прямого доступа Зависит ΠΎΡ‚ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π° Π‘Π£Π‘Π”

Из Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ 1Π‘ Π±Π»ΠΈΠΆΠ΅ всСго ΠΊ срСднСму ΡƒΡ€ΠΎΠ²Π½ΡŽ с ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΡƒΠΊΠ»ΠΎΠ½ΠΎΠΌ Π² Π²Ρ‹ΡΠΎΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ. Однако Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ‡Π΅Ρ€Π΅Π· Π’Π½Π΅ΡˆΠ½ΡΡΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° добавляСт Π΅ΠΌΡƒ "Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ…" Ρ‡Π΅Ρ€Ρ‚. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ язык ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ для бизнСс-Π·Π°Π΄Π°Ρ‡, Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ экосистСмы 1Π‘.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² 1Π‘?

Π’Π½Π΅ΡˆΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° β€” это динамичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (.dll для Windows, .so для Linux), написанная Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ языкС (C++, Delphi). Она позволяСт Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ 1Π‘ Π·Π° счёт Π²Ρ‹Π·ΠΎΠ²Π° Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. НапримСр, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (сканСры ΡˆΡ‚Ρ€ΠΈΡ…ΠΊΠΎΠ΄ΠΎΠ², Ρ„ΠΈΡΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ рСгистраторы) ΠΈΠ»ΠΈ слоТныС вычислСния, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

АргумСнты "Π·Π°" высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ 1Π‘

Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠΊΠΈ высокоуровнСвой классификации 1Π‘ приводят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠ²ΠΎΠ΄Ρ‹:

  1. πŸ› οΈ Автоматизация Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡: ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° сама управляСт транзакциями, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ записСй, ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ C++ ΠΈΠ»ΠΈ Java.
  2. πŸ“ Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: большая Ρ‡Π°ΡΡ‚ΡŒ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ описываСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ (структуру Π±Π°Π·Ρ‹, Ρ„ΠΎΡ€ΠΌΡ‹, ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹), Π° Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π­Ρ‚ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ для языков Ρ‚ΠΈΠΏΠ° SQL ΠΈΠ»ΠΈ HTML.
  3. πŸ”„ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ: Π½Π΅Ρ‚ нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ/ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ (ΠΊΠ°ΠΊ Π² C), ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π΄Π΅Π»Π°Π΅Ρ‚ это автоматичСски.
  4. 🌍 ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ: ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ΄ Windows, Linux ΠΈ Π΄Π°ΠΆΠ΅ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ (с ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² 1Π‘ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, прямой доступ ΠΊ памяти, Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ языка (хотя ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Ρ‡Π΅Ρ€Π΅Π· ЀоновыСЗадания). Всё это ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ высокоуровнСвого языка, Π³Π΄Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π±Π΅Ρ€Ρ‘Ρ‚ Π½Π° сСбя Π·Π°Π±ΠΎΡ‚Ρƒ ΠΎ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… дСталях.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ 1Π‘ ΠΈΠΌΠ΅Π΅Ρ‚ ограничСния. НапримСр, внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, скомпилированныС ΠΏΠΎΠ΄ Windows, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ Linux Π±Π΅Π· пСрСкомпиляции. ВсСгда провСряйтС ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ОБ.

АргумСнты "Π·Π°" Π½ΠΈΠ·ΠΊΠΈΠΉ/срСдний ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ

ΠŸΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠΈ высокоуровнСвой классификации ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ особСнности 1Π‘:

  • πŸ”Œ Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° C++ ΠΈΠ»ΠΈ Delphi Ρ€Π°Π·ΠΌΡ‹Π²Π°Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ абстракции. Π­Ρ‚ΠΎ позволяСт ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ограничСния ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π½Π°Π½ΠΈΠΉ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ программирования.
  • πŸ—„οΈ ΠŸΡ€ΡΠΌΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π° с Π‘Π£Π‘Π”: Ρ‡Π΅Ρ€Π΅Π· Запрос ΠΈΠ»ΠΈ ΠŸΡ€ΡΠΌΠΎΠ΅ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ SQL-запросы, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ индСксами, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°Π·Ρ‹.
  • πŸ–₯️ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрным взаимодСйствиСм: Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Python, Π³Π΄Π΅ ΡΠ΅Ρ‚ΡŒ абстрагирована Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, Π² 1Π‘ ΠΌΠΎΠΆΠ½ΠΎ явно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сСссиями, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ сСрвСрный ΠΊΠΎΠ΄ для Ρ‚ΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.
  • πŸ“‘ Π Π°Π±ΠΎΡ‚Π° с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ: Ρ‡Π΅Ρ€Π΅Π· COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ»ΠΈ внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ, ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΌΠΈ, сканСрами β€” Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ доступа.

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π² 1Π‘ Π΅ΡΡ‚ΡŒ конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π΄ΠΊΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡˆΡŒ Π² высокоуровнСвых языках:

// ΠŸΡ€ΡΠΌΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² WinAPI Ρ‡Π΅Ρ€Π΅Π· внСшнюю ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ

Π’Π½Π΅ΡˆΠ½ΡΡΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° = Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚("WScript.Shell");

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π’Π½Π΅ΡˆΠ½ΡΡΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.Run("notepad.exe", 1, Π˜ΡΡ‚ΠΈΠ½Π°);

Π’Π°ΠΊΠΈΠ΅ возмоТности ΡΠ±Π»ΠΈΠΆΠ°ΡŽΡ‚ 1Π‘ с языками срСднСго уровня Π²Ρ€ΠΎΠ΄Π΅ C#, Π³Π΄Π΅ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ высокоуровнСвыС конструкции с Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ‡Π΅Ρ€Π΅Π· P/Invoke.

β˜‘οΈ ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΈ срСднСго уровня Π² 1Π‘

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ уровня языка для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°

Π‘ΠΏΠΎΡ€Ρ‹ ΠΎΠ± ΡƒΡ€ΠΎΠ²Π½Π΅ 1Π‘ Π½Π΅ носят чисто акадСмичСский Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€. ΠžΡ‚ этого зависит:

  1. πŸ”§ Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ: Π² высокоуровнСвых языках ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ошибки благодаря абстракциям. Π’ 1Π‘ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π°Π³ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ) Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ понимания Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.
  2. ⚑ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ участки ΠΊΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ…) часто выносят Π²ΠΎ внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° C++ для ускорСния.
  3. πŸ›‘οΈ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ доступ (Ρ‡Π΅Ρ€Π΅Π· внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹) ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ риски уязвимостСй, Ссли ΠΊΠΎΠ΄ Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ Π½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.
  4. πŸ“¦ ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ: ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘ привязаны ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ОБ (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° C++).

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ 1Π‘ Π΄ΠΎΠ»ΠΆΠ΅Π½:

  • 🧠 ΠŸΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π‘Π£Π‘Π” (индСксы, ΠΏΠ»Π°Π½Ρ‹ выполнСния запросов) β€” ΠΊΠ°ΠΊ Π² Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.
  • 🎨 Π£ΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ бизнСс-процСссы Π½Π° высоком ΡƒΡ€ΠΎΠ²Π½Π΅ абстракции (Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅).
  • πŸ”— Π—Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ спСцифичСских Π·Π°Π΄Π°Ρ‡.
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ИспользованиС Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ лицСнзирования 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ с ΠΏΡ€Π°Π²ΠΎΠΌ Π½Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π°Ρ€ΠΈΡ„Π°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ") эта Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°. УточняйтС условия Π² Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠΌ соглашСнии.
πŸ’‘

Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ 1Π‘ ΠΊΠ°ΠΊ языка срСднСго/высокого уровня позволяСт Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ 80% бизнСс-Π·Π°Π΄Π°Ρ‡ Π±Π΅Π· Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½ΠΎ оставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π±Π»ΠΈΠΆΠ΅ ΠΊ "ΠΆΠ΅Π»Π΅Π·Ρƒ" ΠΏΡ€ΠΈ нСобходимости.

МнСниС экспСртов ΠΈ сообщСства

Π’ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ сообщСствС Π½Π΅Ρ‚ консСнсуса ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ уровня 1Π‘. Π’ΠΎΡ‚ ΠΊΠ°ΠΊΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ приводят экспСрты:

  • πŸ‘¨β€πŸ’» Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ 1Π‘ Ρ‡Π°Ρ‰Π΅ ΡΠΊΠ»ΠΎΠ½ΡΡŽΡ‚ΡΡ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ язык срСднСго уровня, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ сочСтаСт удобство высокоуровнСвых конструкций с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ кастомизации Ρ‡Π΅Ρ€Π΅Π· внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.
  • πŸ‘¨β€πŸ« АкадСмичСскиС ΠΊΡ€ΡƒΠ³ΠΈ Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ 1Π‘ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ язык программирования ΠΈΠ·-Π·Π° Π΅Π³ΠΎ привязки ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π‘ΠΊΠΎΡ€Π΅Π΅, это DSL (domain-specific language) для бизнСс-Π·Π°Π΄Π°Ρ‡.
  • πŸ‘₯ БообщСство IT-спСциалистов Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ относит 1Π‘ ΠΊ высокоуровнСвым языкам, сравнивая Π΅Π³ΠΎ с VBA ΠΈΠ»ΠΈ JavaScript ΠΏΠΎ стСпСни абстракции.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚: Π² вакансиях для 1Π‘-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ знания SQL ΠΈ основ администрирования Π‘Π£Π‘Π” (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, PostgreSQL ΠΈΠ»ΠΈ Microsoft SQL Server). Π­Ρ‚ΠΎ косвСнно ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ язык ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, Ρ‡Π΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Python.

На Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Infostart ΠΈΠ»ΠΈ 1Π‘:ΠšΠ»ΡƒΠ± программистов) пСриодичСски Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‚ дискуссии Π½Π° эту Ρ‚Π΅ΠΌΡƒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ΠΈ сводятся ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ 1Π‘ β€” это "язык ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹", ΠΈ Π΅Π³ΠΎ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ зависит ΠΎΡ‚ контСкста использования:

  • Для написания ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ² ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ β€” высокий.
  • Для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ запросов ΠΊ Π±Π°Π·Π΅ β€” срСдний.
  • ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ β€” Π½ΠΈΠ·ΠΊΠΈΠΉ.

FAQ: ЧастыС вопросы ΠΎ ΡƒΡ€ΠΎΠ²Π½Π΅ языка 1Π‘

МоТно Π»ΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ 1Π‘ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌ языком программирования?

Π”Π°, Π½ΠΎ с ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ. 1Π‘ β€” это встроСнный язык ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сочСтаСт ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅ ΠΈ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ элСмСнты. Он Π½Π΅ являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ (ΠΊΠ°ΠΊ Python ΠΈΠ»ΠΈ Java), Π½ΠΎ позволяСт Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Π·Π°Π΄Π°Ρ‡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… экосистСмы 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. По классификации TIOBE Index ΠΈΠ»ΠΈ Stack Overflow Π΅Π³ΠΎ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ популярных языков ΠΈΠ·-Π·Π° нишСвой спСциализации.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² 1Π‘ Π½Π΅Ρ‚ многопоточности Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ языка?

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ ΠΊΠ°ΠΊ систСма для бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ основная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° лоТится Π½Π° сСрвСр Π‘Π£Π‘Π”. ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· ЀоновыСЗадания ΠΈΠ»ΠΈ Π Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Π°ΡΠ˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Π°ΡΠ‘Π°Π·Π°), Π½ΠΎ Π½Π΅ экспонируСтся Π² языкС ΠΊΠ°ΠΊ Π² Java ΠΈΠ»ΠΈ C#. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠΎΠΌ.

Для truly ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° C++ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ std::thread.

Какой язык Π±Π»ΠΈΠΆΠ΅ всСго ΠΊ 1Π‘ ΠΏΠΎ ΡƒΡ€ΠΎΠ²Π½ΡŽ абстракции?

НаиболСС близкиС аналоги:

  • VBA (Visual Basic for Applications) β€” Ρ‚ΠΎΠΆΠ΅ встроСнный язык для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ офисных Π·Π°Π΄Π°Ρ‡, с доступом ΠΊ API хост-прилоТСния (Excel, Word).
  • PL/SQL (для Oracle Database) β€” сочСтаСт ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅ ΠΈ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ элСмСнты, тСсно ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ с Π‘Π£Π‘Π”.
  • ABAP (для SAP) β€” язык для ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… систСм, Π³Π΄Π΅ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° описываСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅.

ВсС эти языки относят ΠΊ срСднСму/высокому ΡƒΡ€ΠΎΠ²Π½ΡŽ с сильной привязкой ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

МоТно Π»ΠΈ Π½Π° 1Π‘ ΠΏΠΈΡΠ°Ρ‚ΡŒ систСмноС ПО (Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹, ОБ)?

НСт, это Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ нСскольким ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

  1. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Π½Π΅ прСдоставляСт инструмСнтов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ядром ОБ, прСрываниями ΠΈΠ»ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ рСгистрами.
  2. Π―Π·Ρ‹ΠΊ Π½Π΅ компилируСтся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ β€” ΠΎΠ½ интСрпрСтируСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной 1Π‘.
  3. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… конструкций (ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, прямой доступ ΠΊ памяти, ассСмблСрныС вставки).

Для систСмного программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ C, Rust ΠΈΠ»ΠΈ АссСмблСр.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ 1Π‘ "ΠΈΠ³Ρ€ΡƒΡˆΠ΅Ρ‡Π½Ρ‹ΠΌ" языком?

Π’Π°ΠΊΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ складываСтся ΠΈΠ·-Π·Π°:

  • 🎯 НишСвой спСциализации: 1Π‘ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для бизнСс-Π·Π°Π΄Π°Ρ‡ ΠΈ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для написания ΠΈΠ³Ρ€, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ систСмного ПО.
  • πŸ”’ Закрытости ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹: ΠΊΠΎΠ΄ выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² срСдС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅.
  • πŸ“‰ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки (C++, Go).
  • πŸ› οΈ ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΡ соврСмСнных Ρ„ΠΈΡ‡: Π½Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, шаблонов (ΠΊΠ°ΠΊ Π² C++), ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΉ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ.

Однако для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΡ‡Ρ‘Ρ‚Π°, Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»ΠΈ ΠΈΠ»ΠΈ производства 1Π‘ остаётся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых эффСктивных инструмСнтов благодаря Π±ΠΎΠ³Π°Ρ‚ΠΎΠΉ стандартной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ экосистСмС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.