LINUX.ORG.RU

ЛОР, помоги выбрать ЯП для обучения

 , , , ,


1

3

Часто слышу просьбу научить программированию. Хотя пока я этим не занимаюсь, мне стало интересно, какой ЯП выбрать для введения в программирование.

Вот к каким мыслям я пришёл:

Язык должен наиболее чисто демонстрировать самые основы написания кода.

Не Си и не современные коммерческие языки (Java, C#, Go). Си, хотя примитивный в основе, усложнён из-за окружения, в котором используется. Современные коммерческие языки были созданы для решения проблем индустрии. Проблема общая: я хочу преподавать материал по мере нарастания сложности. Если в языке неизбежно приходится использовать классы или printf, то это затруднит объяснение (не хотелось бы слишком часто говорить «потом узнаешь для чего это нужно»), напугает студента (ему придётся писать код, используя возможности, которые он плохо понимает), создаст неправильное восприятие основ (как будто printf — это какая-то важная часть компьютера или ОС).

В целом, я хочу постепенно наращивать сложность и, если задачу можно решить более простым методом, то выбрать этот метод.

Языки, между которыми я выбираю: Pascal и Python.

Pascal устарел и денег не принесёт (обидно), но это и не является основной целью. Целью является программирование, а не современное окружение.

В частности, я не собираюсь задрачивать студента на Delphi или любой «продвинутый» диалект языка. Это противоречит цели. Я рассчитываю на то, что после должной тренировки “bare bones” нужно перейти на современный язык и это будет легко.

Важно упомянуть, что спека языка Oberon (Виртовский язык, тот же Паскаль, только упрощённый и доработанный) составляет 17 страниц.

Питон мне сложнее оценить, потому что я избегал работы с ним.

Если ограничиться императивным подмножеством, без ассоциативных массивов, классов и мета-классов, list comprehensions, HOF, исключений, то выглядит как альтернатива Паскалю. Хотя меня беспокоит динамическая типизация. Типы — очень важная вещь, хотелось бы чтобы язык помог это донести, а не быть типа «ну да, это важно, но ты забей».

Это все мои мысли.

Что касается практики, то я имел несчастье наблюдать как человек впервые знакомился с программированием, изучая Java на javarush. На это было больно смотреть.

Edit: дальнейшие пояснения по теме:

  • Подробнее про то, почему я считаю, что изучение основ и Паскаль хорошо сочетаются: 1
  • Почему не Си и не ассемблер: 1 2
  • Почему Паскаль: 1 2
  • Почему не Питон: 1
  • Целевая аудитория: 1
  • Почему такая размытая аудитория: 1 2
  • Про важность иерархии: 1


Последнее исправление: kaldeon (всего исправлений: 10)
Ответ на: комментарий от MOPKOBKA

COBOL этим приятно выделялся в то время

Здравствуйте, дедушка.

Nervous ★★★★★
()
Ответ на: комментарий от kaldeon

особенно где цифры идут в начале каждой строки

А такой, вообще, существует сейчас в природе? Чё-то сильно сомневаюсь. Это времена компьютерной клинописи.

rechnick ★★★
()
Ответ на: комментарий от mister_VA

Монополия – это когда рынок занят почти полностью одной фирмой. Так что никакого прибыльного рынка для других уже нет.

Нет, второе утверждение логически не следует из первого и в общем случае является ложным. Вот как раз извлечение положительной прибыли монополистом является основным стимулом для появления новых игроков на рынке, что возможно тогда, когда нет барьеров для входа в отрасль. Если есть барьеры, то монополия будет существовать, о чём и было уже сказано.

Там же, где перераспределять рынок просто, монополии и не возникают естественным путём.

Перераспределение рынка осуществляется само собой благодаря снижению цены конкурентом. Для этого не нужны никакие-либо специальные усилия.

Возможно, потому что тогда всё программирование и было для ЭВМ – ВЫЧИСЛИТЕЛЬНОЙ машины

На Фортране можно писать любой софт, не только вычмат, но в любом случае это замечание мимо кассы, так как речь шла о лидирущем положении вообще. А то, что характер использования компьютеров меняется с течением времени, так само собой.

visitor
()
Ответ на: комментарий от monk

Так это и есть первый барьер.

Какой же это барьер, если является общей характеристокой вообще любого бизнеса?

Венчурные фонды требуют доли в компании и в результате забирают ещё больше, чем банк с космическими ставками.

Не слышал, чтобы Серёжа Брин сильно жаловался на жадность инвесторов.

80% оставляемой чистой прибыли при риске неуспеха в 90% - это космические ставки? Чудны дела твои, господи… Впрочем, я начинаю улавливать общую логику, по которой бизнес - тяжело, потому что нужно вкладывать капитал, а работа по найму - неподъёмна, потому что нужно поднимать задницу каждый день и …работать. Нет бы зарплату просто так платили!

Монополист обычно и делает это венчурное финансирование.

Нет, монополист «обычно не делает венчурное финансирование». Это тёплое и мягкое. Монополия - это ситуация на рынке. А венчурое инвестирование - это способ привлечения капитала.

Венчурным инвестированием обычно занимаются венчурные фонды - относительное небольшие частные организации, не ведущие какую-либо другую экономическую деятельность.

Имея ресурсы от монопольного положения не дать другим получить прибыль достаточно просто.

«Ресурсы» вообще никак не помогут монополисту не дать другим фирмам начать производить конкурирующий продукт, если нет барьеров для входа на рынок.

И рынок будет прибыльным только для тех, кто договорился с монополистом.

На рынке вообще участники не договариваются (если речь не идёт о незаконных картелях). Прибыльность рынка зависит не от «договорённостей», а от разницы между издержками и ценой. Если фирма создала какой-то новый продукт, который пользуется большим спросом, то она длительное время может извлекать из этого прибыль - пока не появятся конкуренты-имитаторы, действия которых приведут к снижению цены и как следствие понижению прибыли.

Тогда надо заплатить больше, чем предлагает монополист (у которого те же условия, что у малого бизнесмена плюс стабильность и возможность карьерного роста).

Нет, это вообще никак не взаимосвязано. Рынок труда существует относительно независимо от рынка отдельного товара. Он вполне может быть конкурентным даже при наличии монополиста.

И предложить услуги по цене меньше, чем предлагает монополист (который предлагает то же самое, но уже имеет хорошую репутацию у клиентов).

Кажется, суть конкуренции начинает доходить.

Попробуй перестать пользоваться всем ПО, которое хотя бы частично написано на языке Си.

Попробуй продать кому-нибудь компьютер, на котором невозможно использовать любое прикладное ПО.

visitor
()
Ответ на: комментарий от visitor

Не слышал, чтобы Серёжа Брин сильно жаловался на жадность инвесторов.

У него нет даже контрольного пакета своей компании. Стива Джобса вообще уволили из своей компании. Всё-таки банкиры не настолько жадны. Но они не дают денег без залога.

Нет, монополист «обычно не делает венчурное финансирование».

Почему? Это хороший способ борьбы с конкурентами.

«Ресурсы» вообще никак не помогут монополисту не дать другим фирмам начать производить конкурирующий продукт, если нет барьеров для входа на рынок.

Почему? Другую фирму можно купить (Микрософт скупил больше полусотни), продукт, с которым конкурирует фирма, можно продавать по демпинговым ценам, пока конкурент не обанкротится (если у него меньше денег).

На рынке вообще участники не договариваются (если речь не идёт о незаконных картелях).

На рынке это называется «договор франчайзинга». Есть у тебя продуктовый магазин, у тебя выбор: конкурировать с торговой сетью и быть задавленным или повесить на магазин название этой торговой сети и платить дань.

Если фирма создала какой-то новый продукт, который пользуется большим спросом, то она длительное время может извлекать из этого прибыль - пока не появятся конкуренты-имитаторы, действия которых приведут к снижению цены и как следствие понижению прибыли.

Если нет возможности не дать имитатору получить прибыль. Linux не может выдавить Микрософт даже предоставляя продукт бесплатно.

Рынок труда существует относительно независимо от рынка отдельного товара. Он вполне может быть конкурентным даже при наличии монополиста.

Только если сотрудники этой профессии не нужны монополисту. Иначе приходится обходится теми, кого не принял отдел кадров монополиста.

Кажется, суть конкуренции начинает доходить.

Если у тебя выше издержки и ниже цена, конкурировать невозможно. Монополист легко снизит цену до твоей и останется в прибыли. Более того, монополист легко может пойти на убытки в размере твоих активов, чтобы освободить рынок от конкурента. И сделать с этим ничего нельзя, если не спасает государство (установкой минимальных цен, госзакупками, субсидиями, …).

Попробуй продать кому-нибудь компьютер, на котором невозможно использовать любое прикладное ПО.

Без Си невозможно использовать любое прикладное ПО? То есть он всё-таки имеет монопольное положение и не может быть заменён?

monk ★★★★★
()
Ответ на: комментарий от visitor

Венчурным инвестированием обычно занимаются венчурные фонды - относительное небольшие частные организации, не ведущие какую-либо другую экономическую деятельность.

Не могли бы вы прояснить, а откуда берутся первые, а так же и последующие, деньги у этих фондов? Последующие, поскольку 90% начинающих фирм закрываются в первые 3 года, а из оставшихся 90% закрываются в следующие 5 лет? Закрываются не из-за того что срубили по быстрому бабла, а из-за минимум отсутствия маржи. Без чистой прибыли работать ещё можно неограниченно долго.

«Ресурсы» вообще никак не помогут монополисту не дать другим фирмам начать производить конкурирующий продукт,

Могут, если продукт имеет более высокую цену, то он не конкурирующий.

Всё это те же США проходили, потому и были созданы антимонопольные законы и комитеты, которые затем были скопированы другими странами или в них были разработано подобное самостоятельно.

пока не появятся конкуренты-имитаторы

См. патентноное право, см. торговые марки, см. запрет на продажу Самсунгов в США.

mister_VA ★★
()
Ответ на: комментарий от mister_VA

См. патентноное право, см. торговые марки, см. запрет на продажу Самсунгов в США.

Патентное право — это как раз защита монополиста государством (но недолго).

Но вот патент у AT&T закончился в 1894, а монополистом она стала в 1912. Несмотря на попытки примерно шести тысяч конкурентов-имитаторов.

monk ★★★★★
()
Ответ на: комментарий от mister_VA

Последующие, поскольку 90% начинающих фирм закрываются в первые 3 года, а из оставшихся 90% закрываются в следующие 5 лет?

Условно, из 10 фирм 9 закрываются, а одна дорожает в 20 раз.

monk ★★★★★
()
Ответ на: комментарий от monk

Патент на шо? Я про патент на изделие, без разрешения никакие конкуренты не смогут выпускать конкурентный товар. А с разрешением всё равно башляют патентодержателю.

mister_VA ★★
()
Ответ на: комментарий от monk

Условно 1 из 10 баоансирует на грани, а «дорожает» – это что? Продажа фирмы монополисту? Капитализация? Так она тоже не просто так делается и фирма становится не совсем твоей.

mister_VA ★★
()
Ответ на: комментарий от mister_VA

Капитализация.

Так она тоже не просто так делается и фирма становится не совсем твоей.

Задача венчурного инвестора заработать, а не получить фирму. Условно, если в 10 фирм вложил по миллиону, а потом долю в одной удалось продать за 11 миллионов, то уже прибыль.

А вот для предпринимателя это действительно проблема. Выбор между риском своими активами (заложить дом, квартиру и пытаться поднять бизнес) или отдать контроль сначала венчурному инвестору, а потом тому, кто у него купит. Судьба Стива Джобса как наглядный пример.

monk ★★★★★
()
Ответ на: комментарий от mister_VA

Вложения венчурных инвесторов относительно небольшие. Даже программист может поиграть в венчурного инвестора предоставляя начинающим ООО по полмиллиона рублей в уставный капитал.

monk ★★★★★
()
Ответ на: комментарий от MOPKOBKA

в бизнес компьютерах были желанны bcd-числа

Даже не bcd, а самое разное внутреннее представление десятичных цифр, или символов, которые можно пробить на перфокартах и напечатать на АЦПУ.

IBM 704 на котором был разработан Fortran и Lisp это как раз научный компьютер.

До IBM 704 и других подобных компьютеров операции с плавающей точкой на двоичных машинах выполнялись программно. Поэтому компиляторы вроде первой системы программирования ꜰᴏʀᴛʀᴀɴ были не нужны.

vM ★★
()
Ответ на: комментарий от monk

И тем не менее фирму принудительно расчленило государство в рамках антимонопольного процесса. Это к вопросу, как просто пролезть к монополисту на рынок.

mister_VA ★★
()
Ответ на: комментарий от monk

Капиталищация вредна для вкладчиков, поскольку придётся делить прибыль с акционерами. Сам процесс эмиссии акций – средство привлечь капитал. Если это так венчуры отбивают вложения, то это не подорожание фирмы, а финансрвая афера.

Фирма же становиться частично/полностью собственностью акционеров, я оп том.

Поллимона российских денег вообще ни о чём, юсовских в Юсовке – тоже не деньги. Уставной капитал в РФ равен 10 тыс руб, он не для создания бизнеса предназначен.

Условно, имея 10 лимонов, в РФ выгоднее положить их в банк, а на Западе с их куцым процентом меньше инфляции, в трастовый фонд. Или венчурный, которые оба два такие же фирмы с такой же статистикой прогорания.

mister_VA ★★
()
Ответ на: комментарий от mister_VA

Поллимона российских денег вообще ни о чём, юсовских в Юсовке – тоже не деньги. Уставной капитал в РФ равен 10 тыс руб, он не для создания бизнеса предназначен.

Так я про то же. 500 тысяч не деньги, но если у кого-то не хватает денег на старт, то он вложит 50, ты 500. А когда раскрутится, 90% его фирмы твои. И, так как доли капитала пропорциональны активам, то если раскрутится, эти 500 быстро превращаются в несколько миллионов. А если не раскрутится, значит потери в 500 тысяч.

Условно, имея 10 лимонов, в РФ выгоднее положить их в банк, а на Западе с их куцым процентом меньше инфляции, в трастовый фонд.

Именно так. Если умеешь оценивать риски лучше банка/фонда, можно инвестировать. если выше среднего умеешь организовывать бизнес, тогда в бизнес. Если ни то ни другое, то в банк/фонд.

monk ★★★★★
()
Ответ на: комментарий от visitor

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

Данная модель предполагает наличие неограниченного количества денег на рынке и действие на нём бессмертных существ.

Положим, я надеюсь тут вы не будете спорить, чтобы протиснуться в занятую нишу, нужно вкладывать средства, первое время работать в убыток, надеясь при успехи возместить затраты со временем. Однако, возможны ситуации: а) денег, необходимых чтобы втиснуться, нет. Не у вас нет, а в принципе нет. Например, вы можете справедливо считать современный web говнищем, но денег, чтобы заместить его альтернативной технологией нет даже у правительств США с его неограниченным доступом к печатному станку. И б) время выхода в плюс оказывается за горизонтом планирования. Математически, если вы, потратив миллиард, заняли нишу, которая приносит вам миллион в год, то всего за тысячу лет вы выйдете в плюс и начнёте получать чистую прибыль. Практически, вы даже не начнёте проект с такми мизерабельными перспективами.

За исключением этих двух обстоятельств, ваша модель отлично работает.

Перераспределение рынка осуществляется само собой благодаря снижению цены конкурентом.

В 1989-м году вас поместили в криокамеру, у которой только сейчас закончился хладогент? Я советских технарей много ругал, но одного у них не отнять, делать крутые штуки они умели.

ugoday ★★★★★
()
Ответ на: комментарий от monk

Потому что у них слегка другой ассортимент.

В нынешних супермаркетах ассортимент уже давно многократно больше чем достаточно обычному человеку для жизни. Там есть всё на что есть хоть сколько-нибудь массовый спрос.

если у работника нет возможности открыть свой бизнес

Зачем нужно существование мелких неэффективных бизнесов в тех областях где эффективны крупные? Хочет кто-то свой мелкий бизнес открыть - пусть ищет ниши,крупному бизнесу не интересные.

А потом приходят социалисты/коммунисты и начинают раскачивать лодку

Противодействие всяким экстремистам,хоть левым хоть правым - это дело полиции и спецслужб(которые на наши деньги существуют вообще-то).

если человек придумал что-то новое и нужное, то ставить дополнительный барьер в виде налогов и учёта — отсекать часть инноваций (останутся те, которые одобрят люди с деньгами).

Ничего страшного. Если это новое действительно нужное то всегда найдется тот кто захочет вложиться в это деньгами. Это было так во все века - для продвижения инноваций требовались деньги. И человечество достаточно успешно развивалось в самых разных областях. А вот как раз в последние лет тридцать технический прогресс изрядно тормознул во всём мире,несмотря на все преференции малому бизнесу.

watchcat382
()
Ответ на: комментарий от monk

А на Си до сих пор больше половины программ: ядро, иксы, Gtk, компиляторы, реализация POSIX, … Даже для новомодного Wayland основную реализацию (Weston) сделали на Си.

Так язык Си и задумывался для целей системного программирования. Вот системные вещи на нем и пишут. А на чем еще-то? Разве что на Аде,но умеющих на ней писать маловато. Хотя ядро на Аде уже тоже существует(Ironclad,Muen,правда оба только х86-64). Ядро,иксы,компиляторы и прочее подобное на каком-нибудь Питоне не напишешь. Можно на FreePascal,но его допилили до рабочего состояния относительно недавно.

watchcat382
()
Ответ на: комментарий от watchcat382

В нынешних супермаркетах ассортимент уже давно многократно больше чем достаточно обычному человеку для жизни. Там есть всё на что есть хоть сколько-нибудь массовый спрос.

При чём тут достаточно? Вот в магазине не сетевом есть сбитень и курзе, а в супермаркетах нет и не предвидится.

Там есть всё на что есть хоть сколько-нибудь массовый спрос.

Но вы предпочитаете использовать не Windows, а Linux, несмотря на то, что в компьютерных супермаркетах компьютер с ним найти очень сложно.

Зачем нужно существование мелких неэффективных бизнесов в тех областях где эффективны крупные?

Зачем нужен Linux в тех областях, где эффективен Windows?

Хочет кто-то свой мелкий бизнес открыть - пусть ищет ниши,крупному бизнесу не интересные.

Так и делают. Но с развитием цифровизации таких ниш всё меньше.

это дело полиции и спецслужб(которые на наши деньги существуют вообще-то)

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

Если это новое действительно нужное то всегда найдется тот кто захочет вложиться в это деньгами.

С чего? Если почти гарантированно придёт монополист и заставит отдать производство за копейки? Без госзащиты либо надо делать что-то уникальное, что нельзя воспроизвести только имея деньги (как венецианские стекольные мастера), либо просто продавать идею монополисту.

Это было так во все века - для продвижения инноваций требовались деньги. И человечество достаточно успешно развивалось в самых разных областях.

развивалось только пока государство защищало. Сначала от феодалов (так родился капитализм и началась НТР), потом от монополистов.

А вот как раз в последние лет тридцать технический прогресс изрядно тормознул во всём мире,несмотря на все преференции малому бизнесу.

Потому что преференции не спасают. Монополисты вводят искусственные барьеры в виде сертификации всего и вся. Цифровизация не позволяет получить большую прибыль в каком-нибудь медвежьем углу, на который не обратили внимания. А монополистам проще задавить конкурента (привет поляроиду и рамбусу), чем делиться прибылью.

monk ★★★★★
()
Ответ на: комментарий от watchcat382

В нынешних супермаркетах ассортимент уже давно многократно больше чем достаточно обычному человеку для жизни.

Колбасы нету только продукты мясные, печенья нету только пальмовые изделия, газировки со вкусом чего либо нету только с ароматизаторами вызывающими рак или заторможенность (тут по выбору). Постоянно вижу новости как травятся всем подряд, как чуть ли не все пельмени не соответствуют нормам, по сравнению со странами первого мира еды вообще нет. И не забываем что под 10 разными упаковками сейчас часто один продукт что видно если их почитать (и один производитель).

MOPKOBKA ★★★★★
()
Ответ на: комментарий от MOPKOBKA

Python это скорее язык на котором пишут приложение, а не язык который встраивают в приложение.

Как минимум для FreeCAD и Gimp можно писать скрипты на Питоне. И вот именно для небольших скриптов,автоматизирующих какие-то действия пользователя - Питон хорош. А для чего-то большого - слишком уж нестрогий, ошибок много будет.

watchcat382
()
Ответ на: комментарий от watchcat382

Так язык Си и задумывался для целей системного программирования. Вот системные вещи на нем и пишут. А на чем еще-то?

Представьте, что вам надо написать с нуля ОС для нового процессора и вы можете только заказать один компилятор, библиотеки использовать нельзя. Неужели выберете именно Си? Не rust, не Аду, не Zig, не Odin, не D, не Nim, не Swift? Даже не Си++?

monk ★★★★★
()
Ответ на: комментарий от monk

Представьте, что вам надо написать с нуля ОС для нового процессора

кто ж пишет ос с нуля для «некоего процессора»??? в нормальной оси hal только надо перелопатить.

кому вообще нужна «ос с нуля».

alysnix ★★★
()
Ограничение на отправку комментариев: