121

Re: Яку Мову Програмування краще Вивчати Початківцю? Перспектива 2021-25р.

0xDADA11C7 написав:

Чому обов'язково має бути прямий заробіток з ігор? Я цього не розумію. Мої тетрисоподібні ігри принесли мені кілька разів роботи, які жодним чином з іграми не пов'язаними - писати трояни та вебмакакствувать.

Тому, щоб займатися цим від душі і для задоволення, хоча звісно це не буде задоволення від чисто програмування. А  так, то ж я й вебмакакствую, як можу. Часу на якесь програмування для душі залишається дуже мало, тому й прогрес невеликий, ділитися практично нема чим.

Мені здається, що ви лінгвоінвалід в англійській мові (втім, як і я), тому з розповсюдженням комерційних ігор(та й продуктів загалом) у вас проблеми.

Ви дуже проникливий... майже лінгвоінвалід, я читаю технічну літературу практично без словника, можу сухо поспілкуватися за перепискою. А зі сприйняттям на слух просто якась біда... окремі слова вихоплюю, суті зрозуміти не можу.

Порівняйте ваш заробіток з заробітком мента, порноактора, закладчика (ті, що наркотики закопують), брокера і ви зрозумієте що, ймовірно, ваш заробіток порівняно невеликий, вкотитися в ваш фах складно, даються вам ті гроші важко, а робота нудна -- і ви після цього сподіваєтеся, що ваші діти зацкавляться програмуванням? Ги-ги-ги, та вони те програмування в гробу бачили.

Не хочу себе порівнювати з мудаками, яких ви перерахували в переважній більшості... а те, що діти програмування в гробу бачили, то може воно й на краще. Діти не повинні наслідувати своїх батьків, в кожного свій шлях. Коли я бачу, що нема цікавості, то не буду нав'язувати, і не важливо, чи це викликано моїм прикладом, чи дехто цих речей ще може й не розуміє, йому просто воно не цікаве. Є безліч інших професій, хай вибирають. Он старша, вже, здається, вибрала... слава богам, не з наведеного вище списку.

Подякували: 0xDADA11C71

122

Re: Яку Мову Програмування краще Вивчати Початківцю? Перспектива 2021-25р.

Torbins написав:
koala написав:

Спробував скласти список, що мені треба від першої мови:

  • Режим REPL - пам'ятаю, як було незручно на Паскалі після (з усіх боків гіршого) Basic

  • ...

Минулого року в Delphi з'явився свій сервер з підтримкою Language Server Protocol (LSP). Зроблений він на основі компілятора, тому ловить усі ті самі помилки, які ловить і компілятор. Тому якщо десь з'явиться некоректна конструкція, IDE одразу підкреслить її червоною хвилькою. Причому тепер це не обов'язково повинне бути рідне IDE. Підійде будь-який редактор коду з підтримкою LSP.

Це не REPL. Припустимо, я хочу перевірити, скільки буде

high(integer) shl 1

Питання не зовсім тривіальне навіть для більш-менш досвідченого програміста; а у новачків таких питань зазвичай значно більше.
Я маю створювати новий файл і писати

begin
  writeLn(high(integer) shl 1)
end.

заради однієї такої перевірки? Я колись писав, і це незручно.
До речі, навіть Rust має REPL:
https://plugins.jetbrains.com/api/webhelp/8182/24c648b0-8270-466e-be6c-55416d3546a8/img/rust_repl_example.animated.gif

Подякували: leofun011

123

Re: Яку Мову Програмування краще Вивчати Початківцю? Перспектива 2021-25р.

А, інтерактивна консоль. Для такого треба сторонній експерт ставити зі скриптовим двигуном.

124

Re: Яку Мову Програмування краще Вивчати Початківцю? Перспектива 2021-25р.

REPL => Read, Execute, Print Loop. Цикл введення - виконання - виведення. Так, інтерактивна консоль.

Подякували: leofun011

125

Re: Яку Мову Програмування краще Вивчати Початківцю? Перспектива 2021-25р.

koala написав:

Спробував скласти список, що мені треба від першої мови:

  • Режим REPL - пам'ятаю, як було незручно на Паскалі після (з усіх боків гіршого) Basic

  • Строга статична типізація - дуже допомагає при вивченні концепції типу

  • ...

Сучасні мови з інтерактивністю мають, як правило, динамічну типізацію. Тоді як компільовані статично типізовані мови здебільшого обходяться без REPL. Що логічно: REPL сприяє мінімалістичному синтаксису, де обов'язкові заголовки з оголошенням змінних були б недоречними.

Статична типізація без оголошення змінних зустрічалась тільки в класичних BASIC'ах з суфіксною типізацією (чого в найбільш ранніх діалектах (де був тільки один тип даних та масиви) ще не було, а в VBA і похідних від нього вже перейшли на попсову динамічну типізацію). Ну, добре, ще FORTRAN дозволяє використовувати змінні без оголошення, визначаючи тип за першою літерою — але це компільована мова без REPL. Загалом, такий підхід до оголошення типів змінних вартий уваги — при бажанні, арсенал суфіксів та префіксів можна було б розширити, зробити його придатним для неявного оголошення масивів, і т.д., але практичного втілення подібних ідей бачити не доводилось. Крім того, доводиться балансувати між лаконічністю з куцими можливостями мови та універсальністю ціною громіздкості: якщо типів стане забагато, короткі суфікси/префікси закінчаться.

126

Re: Яку Мову Програмування краще Вивчати Початківцю? Перспектива 2021-25р.

bvn написав:

Є безліч інших професій, хай вибирають

Біда що в умовній Франції умовний продавець квітів може спокійно утримувати сім'ю, а в умовній Жмеринці, принаймні поки що, для цього крім основної роботи потрібно ще й вести присадибне господарство, їздити на заробітки і взагалі "крутитися".
А от умовний девелопер, якщо він не "вічний джун", тоді принаймні поки що, з заробітком на основному місці праці проблем нема жодних.

127

Re: Яку Мову Програмування краще Вивчати Початківцю? Перспектива 2021-25р.

Про продавця квітів в Франції, то було давно і не правда. Хіба крім квітів ще інші трави продавати.

Подякували: 0xDADA11C71

128

Re: Яку Мову Програмування краще Вивчати Початківцю? Перспектива 2021-25р.

koala написав:

REPL => Read, Execute, Print Loop. Цикл введення - виконання - виведення. Так, інтерактивна консоль.

У початковому LISPівському варіанті — не Execute, а Evaluate. Тобто, REPL має оперувати безпосередньо виразами й виводити результати їх обчислення. Якщо так, то «правильний» REPL є в таких мовах, як LISP, APL, Python (де можна ввести 2+2 й отримати 4), тоді як інтерактивне середовище BASIC (де вирази за межами інструкцій синтаксично неможливі — щоб вивести значення, потрібно робити явний PRINT) під це визначення не потрапляє, це ж стосується BeanShell (інтерактивна мова на основі Java) та «режиму відлагодження» в perl, де введений рядок обробляється як інструкція, результат якої (якщо це вираз) не виводиться.

Подякували: leofun011

129

Re: Яку Мову Програмування краще Вивчати Початківцю? Перспектива 2021-25р.

Droid 77 написав:

Як на мене, першою мовою програмування повинно бути логічне програмування.
Наприклад SCRATCH.
Тобто перед тим як вивчати якісь суттєві мови треба розвинути логічне мислення, та отримати загальне уявлення стосовно програмування. А вже потім братись за вивчення чогось суттєвого.
Бо якщо наприклад одразу нав'язати Assembler або C. То учень покриє лайкою те все програмування та піде на юридичний факультет, або щось інше не пов'язане з програмуванням.

ІМНО недоліком чогось завідомо дитячого є завідомо обмежені можливості мови. Добре, новачкові там простіше писати хеловорди, але хеловордів недостатньо, щоб зацікавити учня — йому хочеться робити щось реальне, хай навіть і докладаючи для цього мінімум зусиль. На юридичний ідуть не тому, що законодавча казуїстика простіша за асемблер, а тому, що бачать реальні перспективи цієї професії. Якщо замість кримінального кодексу вчити дитячі казочки про кота-юриста, навряд чи це когось зацікавить (не рахуючи самих авторів книжки).
Ну і, крім того, дитяча атрибутика здатна відлякати тих, хто вже трохи виріс з дитячого віку. У старшокласника, який учить програмування на прикладі SCRATCH, буде два питання: «як позбутися кота?» і «чи не застарий я для цього дитсадка?».

Подякували: Torbins1

130

Re: Яку Мову Програмування краще Вивчати Початківцю? Перспектива 2021-25р.

P.Y. написав:
koala написав:

Спробував скласти список, що мені треба від першої мови:

  • Режим REPL - пам'ятаю, як було незручно на Паскалі після (з усіх боків гіршого) Basic

  • Строга статична типізація - дуже допомагає при вивченні концепції типу

  • ...

Сучасні мови з інтерактивністю мають, як правило, динамічну типізацію. Тоді як компільовані статично типізовані мови здебільшого обходяться без REPL. Що логічно: REPL сприяє мінімалістичному синтаксису, де обов'язкові заголовки з оголошенням змінних були б недоречними.

Статична типізація без оголошення змінних зустрічалась тільки в класичних BASIC'ах з суфіксною типізацією (чого в найбільш ранніх діалектах (де був тільки один тип даних та масиви) ще не було, а в VBA і похідних від нього вже перейшли на попсову динамічну типізацію). Ну, добре, ще FORTRAN дозволяє використовувати змінні без оголошення, визначаючи тип за першою літерою — але це компільована мова без REPL. Загалом, такий підхід до оголошення типів змінних вартий уваги — при бажанні, арсенал суфіксів та префіксів можна було б розширити, зробити його придатним для неявного оголошення масивів, і т.д., але практичного втілення подібних ідей бачити не доводилось. Крім того, доводиться балансувати між лаконічністю з куцими можливостями мови та універсальністю ціною громіздкості: якщо типів стане забагато, короткі суфікси/префікси закінчаться.

Так, я розумію це. Але фокус у тому, що можна досить пристойно імітувати середовище REPL під компільовані мови - наприклад, зібравши всі вирази в один файл і кожного разу запускати їх усіх (тільки вивід залишати для останнього). Для заявленої мети (швидка перевірка виразів) цього достатньо.

131 Востаннє редагувалося tchort (16.07.2021 10:18:55)

Re: Яку Мову Програмування краще Вивчати Початківцю? Перспектива 2021-25р.

Хто б міг подумати, -
tiny and powerful interactive C++ compiler (REPL)

Ada. Дивна штука, але наскільки пригадую в Ada немає вказівників (в звичному розумінні), вона процедурна, безпечна, і коли я придивлявся до неї - здалось, її було досить зручно і приємно читати.


Зразок коду.
--
-- Simple array example.
--
with Gnat.Io; use Gnat.Io;
procedure Arr1 is
   A: array(1..5) of Integer;   -- Array subscripts 1 to 5.
   I: Integer;
begin
   -- Read 'em in.
   for I in 1..5 loop
      Put("> ");
      Get(A(I));
   end loop;

   -- Put 'em out in reverse order.
   Put("[");
   for I in reverse A'Range loop
      Put(A(I));
      if I > A'First then
         Put(' ');
      end if;
   end loop;
   Put_Line("]");
end Arr1;
Подякували: leofun011