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)
Ответ на: комментарий от mister_VA

Я знаю историю штатов с 1776 года, пока ничего не забыл.

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

Надёжность нужна только там, где за неё платят

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

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

Дальше можно не продолжать.

И напрасно. Даже директора завода могли вызвать на партсобрание и как следует там пропесочить если заслужил. И хрен он чего сделает если там заседали уважаемые народом аксакалы,еще Ленина живьем видевшие.

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

Это помещик Ленин

Помещик это от слова «поместье». Где оно было у Ленина,какие доходы он с него получал? Его отец был госчиновником от образования, закончил университет,был челоеком весьма прогрессивным,сторонником всеобщего образования. Дед был из мещан, бывший крепостной крестьянин. Я ведь советскую школу застал,а там биографии видных партийных и политических деятелей изучались.

у нас за народные массы теперь считается?

Он там далеко не один был. Почитайте биографии известных советских политических деятелей - там и «из низов» было немало. Вспомните например происхождение Сталина.

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

Это ели у вас есть деньги на то

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

так и в советских больницах сунул главврачу и медсестре мзду малую

То есть по факту те же самые платные медуслуги. Просто оплату узаконили.

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

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

Как это помогло экологии ПЛАНЕТЫ?

Причем здесь планета? Немцев интересует экология Германии. Китайцам они свои «зеленые» требования не навязывают.

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

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

Так я с этим и не спорю. Можете выбрать к примеру вариантную запись если она вам нужна. Но всё же извольте с типом и возможными действиями с ним определиться ДО того как тип и действия начнете применять. А не так чтобы в одну переменную сначала записать число,потом строку,а потом внезапно что-то еще. И разбираться с этим придется тому кто будет поддерживать/дописывать ваш код. Вместо того чтобы сходить в начало программы и ознакомиться с чем он имеет дело - ему придется отслеживать все присваивания по всему коду чтобы понять значение какого типа находится в переменной в данный момент в данном месте и решить что он с ним может сделать.

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

в C незамеченных вовремя ошибок, приведших к ущербу на порядок больше.

Си - весьма низкоуровневый язык,для того и создавался. Писать надежный код на нем можно,но это требует существенной «дисциплины ума» и организованности рабочего процесса. А если землекопов и лопат пихать в один и тот же int то конечно ошибки быть могут.

Заодно спрошу а где вы видели неучебные программы на Лиспе сколько-нибудь заметного размера,хотябы несколько сотен килобайтов исходников? Если вы смогли сравнить их с программами на Си - значит они где-то есть?

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

вспоминаем о существовании бесплатной медицины в Британии и Канаде

Судя по тому что я слышал от русских канадцев - бесплатна там только экстренная помощь. Всё плановое лечение платное и дорогое.

социального страхования в США…

Страховая медицина это не бесплатная. Это те,у кого здоровье хорошее, платят за тех у кого оно плохое(нередко плохое по собственной вине).

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

-1

вы ведь не Шультайс Никита https://www.youtube.com/watch?v=QfG3OaAbZrs ?

0. печаль либертарианства в том что оно «не замечает» что единственное «либертариански образованное как ассоциация нижеподписавшихся » в 1776 действиет скорее по принципы «что позволенно Юпитеру не позволено быку» - проблема «естестевенной монополии» куда деватся :)

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

ээээ батенька интернет это и архив как исторический так и текущий

лиспа много - вон ща кложа форсится дорвавшимися до топства

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

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

Это не число, потом строка. Это, например, тип СтавкаНДС, содержащий числа 9, 18, 10, 20, 0 и строку «БезНДС».

Или тип, содержащий имена функций доступных программе в виде символов или в виде строк.

Или тип, содержащий значения, имеющие строковое представление (числа, строки, массивы, … включены, функции, замыкания, …. не включены).

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

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

Типы выглядят где-то так:

result-type -- a sequence type specifier, or nil.

function---a function designator. function must take as many arguments as there are sequences.

sequence---a proper sequence.

result---if result-type is a type specifier other than nil, then a sequence of the type it denotes; otherwise (if the result-type is nil), nil.

или так

// Возвращает ссылку на вариант отчета.
//
// Параметры:
//  Отчет - СправочникСсылка.ИдентификаторыОбъектовРасширений
//        - СправочникСсылка.ИдентификаторыОбъектовМетаданных
//        - СправочникСсылка.ДополнительныеОтчетыИОбработки
//        - Строка - ссылка на отчет или полное имя внешнего отчета.
//  КлючВарианта - Строка - имя варианта отчета.
//
// Возвращаемое значение:
//  СправочникСсылка.ВариантыОтчетов, Неопределено - вариант отчета, 
//          либо Неопределено, если отчет отсутствует или недоступен по правам.
//
Функция ВариантОтчета(Отчет, КлючВарианта) Экспорт

А статическая типизация не всегда позволяет ознакомиться. Можете взять для примера любой шаблон Си++.

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

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

CLIM, Maxima, …

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

Это не число, потом строка. Это, например, тип СтавкаНДС

Так объявите этот тип в начале программы и я не буду иметь никаких претензий. Вон в Аде для вас вариантные записи предусмотрены.

Моя претензия не к существованию каких-то особо хитрых типов (ну мало ли кому какие надо),а к отсутствию объявления этих типов перед использованием. Увидел программист в чужом коде что переменной число присвоили - откуда он должен узнать является ли эта переменная числовым типом или хитрым комбинированным типом вроде вашей СтавкиНДС? Логично его желание посмотреть где тип объявлен и как.

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

утиность

зы : @новомодноУЖОустаревшие@ концепты в СяшкоПлюсах

в аде вроде тоже было особое слово для надтипов - но не такое шыршее как пэкэдж

qulinxao3 ★★
()
Последнее исправление: qulinxao3 (всего исправлений: 1)
Ответ на: комментарий от watchcat382

изначальная идея А.КЕЯ что Субьект(в его терминах Обьект как клетка) сама решает как парсить от того и запись Субьект Сообщение

а не Слуга(ПолеДеятельности)

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

Причем здесь планета?

При том, что зелёный лозунг – спасём планету, глобальное потепление – глобально, налог на карбоновый след на продукцию любого места производства.

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

Так объявите этот тип в начале программы и я не буду иметь никаких претензий. Вон в Аде для вас вариантные записи предусмотрены.

Так он обычно и объявлен в комментарии. В языках со статической типизацией (Haskell, C++) тоже часто не обязательно тип декларировать: выведется из использования.

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

Вот функция:

compose f g x = f (g x)

Точно станет понятнее, если увидишь тип

compose :: (t1 -> t2) -> (t3 -> t1) -> t3 -> t2

?

Или что

fix f = f (fix f)

имеет тип (t -> t) -> t.

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

там вопросо-ответ 7 летней выдержки частично отвечающий на СтартовыйПост

за 7 лет дрейф явно не .

Юпитер - Невидимая - Смит - Отцы - Основатели -17(76)

а кто ?

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

ну это же чистый обращённый гудвил

отличающее чистых от остальные

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

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

Ютуб в РФ не открывается и у меня нет механизма обхода.

Отцы находились под большим влиянием Локка, чем Смита.

Монополии возникают не из «естества», а при поддержке государства. В свободном рынке монополии невозможны. Конкурентное преимущество ≠ монополия.

Я думаю, лучше продолжить обсуждать эту тему в личке или толксах, а то мы нарушаем 4.1 и 5.4. Можешь написать на kaldeon@yahoo.com.

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

мы в разных РФ?!

государство и есть монополия :)

когда акционеры отвязывались от Звёздной Палаты много чая приготовили

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

свободный рынок навязывается навязывателем :)

иначе потлачи и прочие «долг первые 5тыщь» Грабера

не не не товаришь субальтерн

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

Монополии возникают не из «естества», а при поддержке государства. В свободном рынке монополии невозможны. Конкурентное преимущество ≠ монополия.

???

Эффект масштаба позволяет легко гасить конкурентов. Лишь государство является ограничителем монополий (вводя всякие привилегии для малого бизнеса).

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

Кстати, к языкам программирования это тоже относится. Ada не может победить C именно из-за эффекта масштаба. При равенстве игроков быстро происходит такая же монополизация (любой язык программирования, который занял 51% быстро вытесняет всех конкурентов, так как у них меньше библиотек, а значит их использование менее выгодно). Чтобы победить монополиста необходимо внешнее преимущество: Java, Go, Swift, C# появились только потому, что корпорации были согласны вбухать кучу денег, чтобы преодолеть монопольный разрыв.

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

c адой печально ещё и то что ДоД пронизан крутящимися дверми что спэйсX vs NASA показал

так то ада(впрочем были и лучше жестяного варианты) - даже Ишбоа имхо оказался ибо у Франции постояные тёрки в натке - а бенюлуксо0швейцарское очередное ВИРТОвское какое - мало интереса для всех причастных

такая загагулина

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

Я вас умоляю, в NYC это тоже понадобится.
Вот, весь 19-й век, начало 20-го США и Россия были вроде союзниками.
Потом, правда, они топили за нашего царя в 17-20 гг. Потом их отпустило.
Потом ВОВ, опять же вроде вместе, против зла.
Потом пришел Truman, и сказал, боюсь-боюсь, «русские идут», ховайтесь. Ничего не понимаю. Кто их покусал?

novus ★★
()
Последнее исправление: novus (всего исправлений: 6)
Ответ на: комментарий от novus

Ничего не понимаю.

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

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

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

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

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

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

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

дык провернуть старушку европку а до «91» увэсь мыр в чятыре руцы

переход на EC-совместимое это от ненависти к вражине ага

как и СМ-серия :)

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

без «государства» не возможен «свободный рынок»

Не уверен, этим утверждением вы соглашаетесь со мной или наоборот, но я согласен с ним.

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

ох жеж лапти :

https://en.wikipedia.org/wiki/Imagined_community

Michael Mann, The Sources of Social Power, Vol. I: A History of Power from the Beginning to A.D. 1760. Cambridge: Cambridge University Press, 1986; Michael Mann, The Sources of Social Power, Vol. II: The Rise of Classes and Nation-States, 1760-1914. Cambridge: Cambridge University Press, 1993; Michael Mann, The Sources of Social Power Vol. 3: Global Empires and Revolution, 1890–1945. New York: Cambridge University Press, 2012; Michael Mann, The Sources of Social Power Vol. 4: Globalizations, 1945–2011. New York: Cambridge University Press, 2013.

так что в дарке полно государства

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

должен задуматься

Я думаю большинство задумается, когда уж совсем будет вонять. А пока они думают, что с экрана «мы русские своих не обманываем» - это правда.

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

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

калейдоскопия?

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

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

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

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

Это помещик Ленин

Помещик это от слова «поместье». Где оно было у Ленина,какие доходы он с него получал? Его отец был госчиновником от образования, закончил университет,был челоеком весьма прогрессивным,сторонником всеобщего образования. Дед был из мещан, бывший крепостной крестьянин.

Первая ссылка Владимира Ленина была в 1887 году в Казанской губернии. За активное участие в сходке и революционное выступление он был исключён из Казанского университета и выслан в село Кокушкино Лаишевского уезда (ныне — Пестречинский район). В доме своего деда Александра Бланка он прожил почти год.

Ульянов, Илья Николаевич:

В 1877 году получил чин действительного статского советника (IV класс Табели о рангах), после 1856 года дававший право на потомственное дворянство ему самому, супруге и всем детям…

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

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

Свободный рынок существует там, где нет барьеров для входа. Нет барьеров - нет и монополии, и чьи-либо хотелки тут не играют никакой роли.

Эффект масштаба позволяет легко гасить конкурентов.

Неплохо бы вспомнить такое понятие, как естественная монополия.

Кстати, к языкам программирования это тоже относится.

Да прямо. С 50-ых гг сколько лидирующих языков программирования было заменено конкурирующими? Начиная с FORTRAN.

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

Помещик это от слова «поместье». Где оно было у Ленина,какие доходы он с него получал?

Советские люди познают мир. У Ленина было поместье под Казанью. Когда он провалился как присяжный поверенный, пробовал себя в аграриях. Но это только в агитках вся задача помещика: крестьян пороть да с собаками охотиться. Организация хозяйства — это труд, который не всякому по силам. У Ленина, вот, не получилось. Пошёл в политику.

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

Сдаётся мне, вам там не всё рассказывали.

Он там далеко не один был.

Расскажите, сколько рабочих вы можете насчитать на этой фотографии? Подсказка: это целое число меньше единицы.

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

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

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

любой язык программирования, который занял 51% быстро вытесняет всех конкурентов, так как у них меньше библиотек, а значит их использование менее выгодно)

Тогда чем объяснить распространение например Питона в то время когда на момент этого распространения явно больше было библиотек для Си? Это уже потом для Питона понаписали.

корпорации были согласны вбухать кучу денег,

А кто вбухивал деньги в Питон?

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

Монополии возникают не из «естества», а при поддержке государства. В свободном рынке монополии невозможны.

Standard Oil вышла из чата.

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