21 Востаннє редагувалося ReAl (03.01.2021 19:58:20)

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

HetmanNet написав:
ReAl написав:

Droid 77 цілком правий, обирати треба напрям, а тоді вже мови. Зараз ріст Embedded Linux, сплеск попиту на Linux Kernel, відповідно — на C-шників, вітають уміння зазирнути в асемблер і розуміння різниці між когерентною та некогерентною пам'яттю і подібних речей (втім, це не для початківців).

В Embedded мало вміти лиш програмувати, там треба хоч щось тями в електротехніці та схемотехніці, бо навіть щось дряпаючи під Linux будуть задачі по написанню дров і т.п., тож посмикати gpio чи передати по i2c доведеться.

Embedded Linux і навіть Kernel з дровами це «трохи вище», ніж той ембеддед, де на платі дуже помінтна аналогова частина, і там часто можна обійтися без уміння порахувати резистор для світлодіода. Та й плати від замовника софта часто готові, резервні gpio виведені на штирі і досить навичок підключити дротики логаналізатора та ставитися до напруги як до абстрактних 0 та 1.

Але так, це вже небезпечно близько до заліза, щоб набути звичку відлагоджувати програми осцилографом ;) і на наших курсах по ядру на одній з оглядових лекцій ми зокрема показуємо і пояснюємо різницю картинки обміну по I2C на осцилографі з щупами x10 і x1 :D

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

22 Востаннє редагувалося HetmanNet (03.01.2021 20:08:33)

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

ReAl написав:

Embedded Linux і навіть Kernel з дровами це «трохи вище», ніж той ембеддед, де на платі дуже помінтна аналогова частина, і там часто можна обійтися без уміння порахувати резистор для світлодіода. Та й плати від замовника софта часто готові, резервні gpio виведені на штирі і досить навичок підключити дротики логаналізатора та ставитися до напруги як до абстрактних 0 та 1.

Але так, це вже небезпечно близько до заліза, щоб набути звичку відлагоджувати програми осцилографом ;) і на наших курсах по ядру на одній з оглядових лекцій ми зокрема показуємо і пояснюємо різницю картинки обміну по I2C на осцилографі з щупами x10 і x1 :D

То ось хто "народжує" тих "неповносправних" в embedded.

23

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

HetmanNet написав:
girskymishka написав:

Народ, а як же ті що торгують власним софтом, написаним переважно на C#, C, C++, assembler для Windows?

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

girskymishka написав:

накінець (без дизайнера) ПЛК і мікроконтролери!!!

Неповіриш, але там теж дизайнери часом використовуються. Бо зараз все частіше PLC нероздільно зустрічається у зв'язці з HMI, тож в нерозвинутих країнах все частіше з'являються забаганки типу хочу в корпоративних кольорах, а в розвинутих відходять від цього у сторону HP HMI.

girskymishka написав:

Хіба ж вони менше заробляють від тих що працюють “на дядю“?

Як складеться. Хто більше, а хто аналогічно, але на початку зазвичай значно менше.

Я - кінцевий користувач.
Якщо програма на асемблері, це гарантований малий розмір.
Якщо програма на Сі, то це гарантована швидкість
Якщо на C++, то щось середнє між швидкістю та підтримкою (завдяки нововведенням скорочується та стає зручнішим код, але збільшується розмір і зменшується в більшості випадків шаидкість виконання).
Якщо це C# то там є багато функціоналу, більше ніж C++ але потрібен .NET і інші речі, підтримка коду чудова, функціонал чудовий, але на практиці є багато збоївю Великий розмір.
Якщо це Java, то потрібна JVM і вона - по суті емулятор процесора, якщо ми маємо одну “команду“, то вона буде продубльована 2 рази, перший раз аналізована на віртуальному процесорі, а потім - на реальному. Це ще добре, що Java може компілюватися в бінарний код, тому виконується швидше.
Ну і накінець найповільніший “король“ серед усіх - PHP. Навіть повільніший за JS.
Скрипт, який виконується з перевіркою налаштувань сервера при кожному запуску, та текстовий код, який повільно інтерпретується. PHP жере найбільше напевно пам‘яті серед всіх скриптів (є функція навіть php memory limit), в інших такого не зустрічав.

Ну тобто так, все залежить від завдання. Але у більшості воно яке? За малий проміжок часу зробити багато роботи. А в бізнесу - зберегти електроенергію.
Я б купив софт на Сі та асемблері.
А безпека та кросплатформеність, яку гарантує JVM, можна було б використовувати поряд, а не як основу (як це робить повільний Android).
Про PHP, він гірший за Java як по форматуванню коду та підтримці, так і по швидкості виконання і це взагалі помилка людства. Він має використовуватись тільки там, де треба змінювати код “на льоту“, як і інші скриптові технології.

P.S. Перевів купу часу на висловлення своєї нікому не потрібної (а в деяких речах, відчуваю, ще й помилкової) думки.

24 Востаннє редагувалося ReAl (03.01.2021 20:42:39)

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

HetmanNet написав:
ReAl написав:

Embedded Linux і навіть Kernel з дровами це «трохи вище», ніж той ембеддед, де на платі дуже помінтна аналогова частина, і там часто можна обійтися без уміння порахувати резистор для світлодіода. Та й плати від замовника софта часто готові, резервні gpio виведені на штирі і досить навичок підключити дротики логаналізатора та ставитися до напруги як до абстрактних 0 та 1.

Але так, це вже небезпечно близько до заліза, щоб набути звичку відлагоджувати програми осцилографом ;) і на наших курсах по ядру на одній з оглядових лекцій ми зокрема показуємо і пояснюємо різницю картинки обміну по I2C на осцилографі з щупами x10 і x1 :D

То ось хто "народжує" тих "неповносправних" в embedded.

Відвикайте від  того, що embedded це лише самому плати трасувати і всі номінали рахувати.
Я говорив про Embeded Linux — повносправних в Linux Kernel з ухилом в Embedded,
а не в Embedded схемотехніці.

І з I2C з них реально зустрінеться мала доля і швидше за все вся робота закінчиться правильним
прописуванням device tree, після чого треба буде писати call-back-и драйвера цієї конкретної мікросхеми
по її програмній моделі. А якщо цього мало і там проблеми на платі — то це буде провина того, хто
схему плати малював.

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

25

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

girskymishka написав:

Я - кінцевий користувач.

Тоді пиши на чому тобі хочеться і подобається.

girskymishka написав:

Якщо програма на асемблері, це гарантований малий розмір.

Високу швидкість роботи і низьку швидкість розробки забув.

girskymishka написав:

Якщо програма на Сі, то це гарантована швидкість

Не факт, є "таланти" які зруйнують твої уявлення про це. Можна досягти близьких результатів розмірів бінарника до assembler, але швидше.

girskymishka написав:

Якщо на C++, то щось середнє між швидкістю та підтримкою (завдяки нововведенням скорочується та стає зручнішим код, але збільшується розмір і зменшується в більшості випадків шаидкість виконання).

Об'ємний код легше писати та програми з графічним інтерфейсом. Швидкість не набагато менша ніж на С, але ресурсів жертеме більше та помилки часом шукати важче.

girskymishka написав:

Якщо це C# то там є багато функціоналу, більше ніж C++ але потрібен .NET і інші речі, підтримка коду чудова, функціонал чудовий, але на практиці є багато збоївю Великий розмір.

Крім залежності від MS та потребу мати справу із жахливим API від MS інших недоліків не знаю.

girskymishka написав:

Якщо це Java, то потрібна JVM і вона - по суті емулятор процесора, якщо ми маємо одну “команду“, то вона буде продубльована 2 рази, перший раз аналізована на віртуальному процесорі, а потім - на реальному. Це ще добре, що Java може компілюватися в бінарний код, тому виконується швидше.

Джерельний код Java --> Генерація байт-код --> Виконання в JVM. Де там бінарний код?

girskymishka написав:

Ну і накінець найповільніший “король“ серед усіх - PHP. Навіть повільніший за JS.

З чого взяв? PHP7 пробував?

girskymishka написав:

повільно інтерпретується. PHP жере найбільше напевно пам‘яті серед всіх скриптів (є функція навіть php memory limit), в інших такого не зустрічав.

Взагалі жре пам'яті не найбільше, Java може зруйнувати це уявлення легко.
Інтерпретується не так вже повільно, особливо PHP7.
Щодо php memory limit, то подібне можете в Runtime API JVM знайти. Подібні речі характерні для речей які виконуються на серверах. Тож то не особливість PHP, то особливість сфери застосування PHP.

girskymishka написав:

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

Взагалі ні. Задача це зробити свою роботу в потрібний час з найменшими витратами. Але витрати то не лише електроенергія, і часто це не основна стаття витрат. Може для пошуку Google чи Facebook то вагома частка, а для банку то взагалі несуттєва витрата, бо щоб заробити $1 їхньому софту треба зробити різний об'єм роботи, так само як їхнім програмістам.

Подякували: ch0r_t, leofun012

26 Востаннє редагувалося HetmanNet (03.01.2021 22:46:39)

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

ReAl написав:

Відвикайте від  того, що embedded це лише самому плати трасувати і всі номінали рахувати.

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

ReAl написав:

А якщо цього мало

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

В чому перспективність? Знайти роботу важче, бо можеш працювати лише у великому штаті.

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

27

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

Була така тема на форумі. Що працює швидше - на асемблері чи Сі.
https://replace.org.ua/post/124621/#p124621
Пройшло майже 2 роки і за цей час я мабуть таки зрозумів, що на асемблері швидше.
От тільки що мав на увазі koala? Адже код Сі - це і є код макро асемблера у деякому розумінні.
Значить, будь-які “inline“ можна перевести в асемблер, але... довго
Напевно, що код на Сі пишеться швидше, а на асемблері ті алгоритми, що пришвидшують виконання пишуться довго і їх мало хто пише. Тому, не в теорії, а на практиці, Сі іноді швидший за асемблер.
А в теорії, таки асемблер.
Саме тому я і не став писати про швидкість, а про об‘єм.
Та і об‘єм, є ж скорочувачі exe, я перевіряв, на сішних працюють а на асемблерних чомусь ні.
Хоча, можна зробити програму як вірус - ручна архівація, щось типу kolibri OS, мені здається там якраз цей принцип.
Але довго.
Мабуть, найкращою є програма на кількох мовах одночасно.
Там, де треба швидкість і малий об‘єм - на а емблері.
Там, де зміна “на льоту“ - php/python...
То от чому у багаьох програмах є xml/.py і т.д. ...

28 Востаннє редагувалося ch0r_t (03.01.2021 21:49:44)

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

З чого взяв? PHP7 пробував?

http://www.phpbenchmarks.com/en/benchmark/php/8.0

PHP 8.0.0 is benchmarked.
Performances are a bit increased compared to PHP 7.4: 2.6%.
Important information : JIT is not activated because we have some issues with it for now.

https://levelup.gitconnected.com/how-fa … 7fdc111cd6  ->

...so I ran it with a version PHP-5.3 coming from the prehistoric times of 2009....It took 0.64574003219604 seconds. 0.5921020508 slower than with PHP-8 and JIT activated (-1,103.88% worse!). Oh man, how did we do it in 2009?

C vs Go vs pypy vs Python vs Javascript V8 Цікаві числа-> (Speed)
http://karlheinzniebuhr.github.io/en/20 … vs-Python/

29

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

Java віртуальна машина написана на С++, не забуваємо про це і про pcod. В процесорах sparc інструкції java не емулються а напряму в процесорі. Тому нічим не повільніше показуються тести. В arm для java інструкцій виведено не повністю. Не згадую як той протокол називається.

30

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

reverse2500 написав:

Не згадую як той протокол називається.

"Jazelle" ?
https://en.wikipedia.org/wiki/Jazelle

31

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

Ага. Так

32

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

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

Справа у тому, що найкраща мова програмування для початківця це не тотожно найкраща мова програмування чи найбільш трендова, це та яка дасть йому перший досвід.

Тому тут немає однозначної відповіді, бо відповідь залежить від безлічі факторів: де, коли і за яких обставин.

Якщо ви живете у мухосранську де лиш PHP то вам його і вчити, бо ви можете його застосувати. Якщо вчишся в забитому універі де єдиний хто шарить хоч щось знає лиш Delphi та Pascal то це твоя доля почати з цього ж.

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

Немає різниці що то буде: Delpi, Pascal, C, Go, PHP, Java, JS, Python і т.д. Звісно якщо є час і натхнення, то можна почати з C продовжити Python  і Java., то дасть найкращу базу, але якщо немає кому дати орієнтир, а сам не факт що здужаєш, то краще почати з того що ближче, бо все одно що так що так доведеться змінити вже під профіль з яким визначишся.

Подякували: frz, ch0r_t, plusxx, leofun01, ReAl5

33

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

HetmanNet написав:

Якщо вчишся в забитому універі де єдиний хто шарить хоч щось знає лиш Delphi та Pascal то це твоя доля почати з цього ж.

Де це Ви такий універ знайшли?
Це хіба що в ПТУ.
Бо Pascal та його діалект в Delphi вчать на уроках інформатики в школах.
Навіть книжка така є - DELPHI ДЛЯ ШКОЛЯРІВ, що правда підручник надруковано російською мовою.
Але я про те що вище зазначені мови - шкільний курс.

34

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

Droid 77 написав:
Прихований текст
HetmanNet написав:

Якщо вчишся в забитому універі де єдиний хто шарить хоч щось знає лиш Delphi та Pascal то це твоя доля почати з цього ж.

Де це Ви такий універ знайшли?
Це хіба що в ПТУ.
Бо Pascal та його діалект в Delphi вчать на уроках інформатики в школах.
Навіть книжка така є - DELPHI ДЛЯ ШКОЛЯРІВ, що правда підручник надруковано російською мовою.
Але я про те що вище зазначені мови - шкільний курс.

Зараз в школах вчать Lazarus. Принаймні у моєї доньки було... але вони так його вчили що... Я встановив на домашній комп той Lazarus, скачав якусь PDF-ку аля самовчитель. Думаю зараз почнемо разом (я трохи згадаю, свого часу мав справу і з Free Pascal, і з Delphi). Я тільки розігнався, а в них вже все скінчилося - зляпали кілька форм і на тому кінець.

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

35 Востаннє редагувалося flatliner (04.01.2021 18:34:43)

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

Щодо первоначального запитання. Я навіть не знаю. Я би хотів, щоб мова, яку першою вчили мої діти відповідала кільком критеріям:
1) Мала процедурний тип програмування як опцію (відразу ж мінус JAVA, мінус C#)
2) Мала адекватну об'єктно орієнтовану модель (не знаю, можна казати "мінус javascript", чи з ES6 проканає)
3) Давала змогу писати дестктопні застосунки з графічним інтерфейсом (таки мінус javascript, мінус PHP, мінус python)
4) Мала С-подобний синтаксис (це моя примха, однак мінус Pasal/Delphi/Lazarus, звісно ж мінус Basic)
5) Не була надто низькорівневою і складною в сенсі роботи зі структурами даних в пам'яті (мінус C/C++, про ассемблер я взагалі мовчу)

В мене не залишилось варіантів...

36

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

bvn написав:

3) Давала змогу писати дестктопні застосунки з графічним інтерфейсом (таки мінус javascript, мінус PHP, мінус python)

В чому мінус python? В нім як мінімум є PyQt для десктопних додатків.

37

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

pluszz написав:
bvn написав:

3) Давала змогу писати дестктопні застосунки з графічним інтерфейсом (таки мінус javascript, мінус PHP, мінус python)

В чому мінус python? В нім як мінімум є PyQt для десктопних додатків.

Ну, php-gtk теж існує... не знаю, мені здається, що це спроба натягнути сову на глобус і початково воно для цього не призначене. Можливо я помиляюся, тим не менш, п. 4 все одно мінус python.

38 Востаннє редагувалося plusxx (04.01.2021 18:55:56)

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

bvn написав:
pluszz написав:
bvn написав:

3) Давала змогу писати дестктопні застосунки з графічним інтерфейсом (таки мінус javascript, мінус PHP, мінус python)

В чому мінус python? В нім як мінімум є PyQt для десктопних додатків.

Ну, php-gtk теж існує... не знаю, мені здається, що це спроба натягнути сову на глобус і початково воно для цього не призначене. Можливо я помиляюся, тим не менш, п. 4 все одно мінус python.

Признайтесь ви  просто не любите пітонів.

39 Востаннє редагувалося flatliner (04.01.2021 19:06:48)

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

pluszz написав:

Признайтесь ви  просто не любите пітонів.

:D
Взагалі то зовсім не зрозумів його синтаксису. Вважаю, що C-подобний синтаксис - це найкраще, що вигадало людство і наполягаю на тому, щоб перша мова мала саме цей синтаксис, саме тому, що він використовується ще великою кількістю мов (java, C#, javascript, php, mql4/5 - це навскидку).

Прихований текст

О! Прикольно в мене репутація і кількість дописів співпали і ще й на такому прикольному числі :D

40

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

bvn написав:

Вважаю, що C-подобний синтаксис - це найкраще, що вигадало людство

лише тому, що

bvn написав:

Взагалі то зовсім не зрозумів його синтаксису

Очевидно, що якщо ви не розумієте чогось, то не будете вважати його кращим :)

Якщо ми говоримо про першу мову і має бути GUI, то, боюся, єдиний адекватний вихід - Delphi/Lazarus. Дуже складно людині, яка ще не дуже твердо знає, що таке змінні, цикли і функції, не кажу про класи, пояснювати, з чого складається інтерфейс і як його будувати.
У мене до Python як до першої мови та сама претензія, що й до JavaScript - динамічна типізація. Статична типізація одразу дозволяє пояснити, що таке типи даних і чому 2+2 та "2"+"2" дає різні результати.

Подякували: flatliner, leofun012