LINUX.ORG.RU

Вышел Lazarus 3.0

 ,

Вышел Lazarus 3.0

2

4

Команда разработчиков Lazarus рада сообщить о выпуске Lazarus 3.0 — интегрированной среды разработки для Free Pascal. Этот релиз по-прежнему собирается компилятором FPC 3.2.2.

В этом выпуске:

  • добавлена поддержка Qt6, основанная на версии 6.2.0 LTS; Минимальная версия Qt для lazarus 3.0 — 6.2.7;
  • полностью переработана привязка Gtk3;
  • для Cocoa исправлены многочисленные утечки памяти и реализована поддержка многомониторных конфигураций;
  • добавлена подсветка синтаксиса для PasDoc;
  • исправления и улучшения для компонентов TCustomImageList, TTaskDialog, TSpeedButton и других.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: Virtuos86 (всего исправлений: 5)

Ответ на: комментарий от Vudod

Учиться программированию на каком-то специальном «учебном» языке это всё равно, что вместо настоящего иностранного языка учить какой-нибудь «учебный» искусственный.

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

Так ты и учишь всегда иностранный «учебный» начиная с «котик», «домик», «мама», «хочу какать» а не тот сленг на котором снимают шлюх в условном Бронксе носители языка 🤭

Паскаль был хорош для въехать в переменная-цикл-процедура-функция и внезапно (с) это «хочу какать» выглядит как на половине «настоящих» языков

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

Не, «учебный иностранный» это какую-нибудь токипону учить. Мол, «даёт ощущения изучения иностранного языка, идентичные натуральным».

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

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

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

Ну да, ну да. И вот школьники будут выходить в мир такие: «о, ништяк, в школе я выучил токипону и ифкуиль, основы освоены на отличненько — и сейчас я в ВУЗе за пару лет порву английский и немецкий, как тузик грелку».

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

Утрирование как аргумент = отсутствие аргумента.

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

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

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

Болгарский язык покинул чат

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

А что болгарский-то? Ну да, подвергся креолизации, и (подобно английскому) стал единственным аналитическим. Тюркской лексики опять же многовато Но церковнославянский — таки литературный вариант староболгарского, а интерславик впитал в себе неославик. Который собственно ЦС в. 2.0. Ну и при составлении МС-словаря по принципу «голосования языков» болгарский учитывается (хотя с «двойным весом» только польский и русский). В общем по любому учить болгарский после МС легче будет, хотя, наверно, сложнее польского/русского. Особенно если учил расширенную версию МС-грамматики, которая из неославика.

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

Там грамматика весьма своеобразная.

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

Глагольная система довольно сложная, но проблем это не создает, потому что в русском она тоже сложная. Да и в принципе самое главное - распознать и понять глагол, а прочее угадывается из контекста.

Алфавит практически тот же. Много болгарских слов заимствовано в русский (церковнославянский - литературная форма староболгарского).

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

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

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

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

в школе я выучил токипону и ифкуиль, основы освоены на отличненько — и сейчас я в ВУЗе за пару лет порву английский и немецкий, как тузик грелку

Да, примерно так это и происходило с эсперанто.

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

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

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

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

Но это для европейских языков справедливо, с китайским или там арабским уже не так, не поможет.

Однако мы про Паскаль. Лично мне он не нравится, но признаю изящную простоту и то, что чужой код на Паскале понимать куда проще, чем на других языках.

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

Ну да, ну да. И вот школьники будут выходить в мир такие: «о, ништяк, в школе я выучил токипону и ифкуиль, основы освоены на отличненько — и сейчас я в ВУЗе за пару лет порву английский и немецкий, как тузик грелку».

Очень похоже на комментарий какого-то эсперантиста на ЛОРе. Тот утверждал, что после эсперанто живые языки учатся сильно быстрее. Я возразил, что после любого иностранного языка другой иностранный учится быстрее. Вроде бы, на том и закончили.

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

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

И что такого? Мой друг и коллега,учились на олной специальности вместе, потом в аспираниуре на олной теме. В школе учил французский, в институте у нас все пять лет углубленный английский, так что он параллельно защитил диплом в Швеции, была такая возможность. В итоге психанул на безденежье аспираниское и уехал в германию по проекту темпус, там через гол по завершении сдал знание немецкого и получил внж. Или его какой-то аналог. И он не то чтобы талант полиглот.

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

И что такого?

ну вот такое:

в школе учил французский

в институте у нас все пять лет углубленный английский

Как-то не очень проводятся параллели с токипоной и ифкуилем в моём пассаже.

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

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

Ну да. Мне после Паскаля и ассма английский гораздо легче заходил

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

Насчёт токипоны идея странная, но идея изучения меꙉуславјанского в качестве третьего (второго иностранного) языка в некоем идеальном мире а школах славянских стран мне нравится. Кто не в курсе — это сильно обновлённый церковнославянский рассчитанный на то чтобы все славяне понимали его не обучаясь специально.

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

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

Так и с языками международного общения, якобы специально оптимизированными для этого — никто на них разговаривать не хочет. Популярность того же эсперанто совершенно нулевая даже на фоне не очень распространённых естественных языков, на уровне популярности местных языков Африки. У междуславянского — аналогично. При этом совершенно корявая идея китайских иероглифов, объективно неудачной системы письменности, живёт и пахнет, хорошо известная этак миллиардам двум людей разных стран и языков (собственно жители китая, японцы (кандзи), корейцы (ханча) и т.д.).

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

идея отдельного языка для обучения программированию в целом в мире отклика-то не нашла; иначе на нём учился бы каждый встречный-поперечный, «и гордый внук славян, и финн, и ныне дикой тунгус, и друг степей калмык».

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

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

Интересно было бы посмотреть на альтисторию, где среди учеников Вирта нашёлся бы бизнес-гений вроде Джобса и/или Гейтса, и Оберон-ОС как минимум на материке занял бы место Windows или хотя бы Macintosh. И учили бы какой нибудь Оберон/Паскаль как миленькие и не вякали бы.

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

Да (и, собственно, после его ухода из Borland Delphi стало тем, чем стало)

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

Были-были. Именно оттуда пошло соглашение о вызове функций stdcall, где аргументы передаются в стиле Паскаля.

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

Если бы «зашла», мы бы тут не обсуждали паскаль как некромантию. Всё-таки обучение не особо концептуально изменилось за это время (я бы даже сказал, если и изменилось, то в свете поглупения как контингента, так и кадров, а не к лучшему), а паскаль почему-то списан со счетов. Я могу только сказать, что я паскаль видел как пережиток старой системы образования — мол, ему уже научили учителей, ну и других языков под ногами особо не было, вот и учили на чём было, таская за собой давно померший ещё в 1994 борланд. А сейчас всяких питонов и прочего прорва, руку протяни и поставь — и паскаль тут же слился. Его даже Perl в PyPl обогнал... Перл, Карл!

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

Мне нравится Python как структурированный и интуитивный язык для обучения с хорошими перспективами трудоустройства. Но таким же был и Паскаль во времена своего расцвета. По современным меркам Паскаль несколько деревянный и многословный, из перспектив осталось только хобби-программирование, но полностью его списывать со счетов я бы не стал.

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

но полностью его списывать со счетов я бы не стал.

Говорят, каждое третье полнолуние на берегах священного Цюрихского озера собираются все преданные делу паскалисты и поют грустные песни. Все пятеро.

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

Ну как… Вот более минималистичная и менее совместимая с Дельфи альтернатива Лазарю. Основной автор этой штуки, Мартин Шнайдер, умер в 2018 от инфаркта (люди внезапно смертны, как известно). Однако ж нашлось кому подобрать: поддерживают и развивают, пусть речь о примерно полутора землекопах, но ведь совсем нишевый и малоизвестный продукт.

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

Так создатель Скалы Мартин Одерски как раз в тех краях и живёт. :)

И не исключено, что так все и происходит, как описано выше. Встретились на берегу озера, а потом такой: «а добавлю ка я end»…

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

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

За почти 20 лет преподавания довелось учить программировать на многих платформах: ява, пролог, плюсы, хаскель, питон, паскаль, жыэс, перл. Наименьшее сопротивление именно в донесении сути как правильно изъясняться на языке программ было у двоих: паскаль и питон, с перевесом в сторону паскаля чисто ввиду большей структуры и, как ни странно, большей многословности. Дети сейчас английский неплохо знают уже, им явные словеса паскаля почти предложениями выглядят.

Ты верно говоришь, что паскаль для большинства останется в школе, но делаешь неверный вывод, дескать зачем учить то, что потом в работе не пригодится, исходя из ложной посылки будто бы выучить язык программирования это цель. Однако цель иная. А сами языки все настолько одинаковые в пределах одного класса, что писать код можно чуть не сразу. Ну да, это будет не идеальный код, сказанный с учетом всех всех идиом и возможностей отстрелить ногу в конкретном языке, но он будет. Хорошим он станет уже после практики, а не абстрактного «изучения языка».

Более объективный недостаток у паскаля в его откровенной заскорузлости. Картиночки (а они великолепный способ увлечь) на фрипаскале порисовать как в 90-х уже сходу и не выйдет без танцев с бубном. Благо есть что-то вроде абцпаскаля (будь он неладен, под линухами не работает нормально, дотнетчертов)

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

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

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

Да и чем так сложно для понимания элементарное ООП? Ну, определил класс. Ну, наплодил сущностей. Ну, присвоил свойства. Ну, вызвал метод и получил значение. Единственный вопрос, который может возникнуть у новичка, - «Зачем это всё?» Но этот же вопрос может возникнуть и на хеллоуворлде, и на складывании двух чисел, и на конкатенации двух строк, и на первом знакомстве с функциональщиной.

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

Ну, определил класс. Ну, наплодил сущностей.

Ага, похоже на ... (ну Вы поняли).
Многие программисты «плодовиты» («Вот в чём проблема»).

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

Ага, похоже на ... (ну Вы поняли).
Многие программисты «плодовиты» («Вот в чём проблема»).
В кинематографе это ближе к хоррор.

Не против использования абстракций и ИМХО их использование приемлемо
при разработке обобщённых алгоритмов, но для простых алгоритмов их использование скорее «Горе от ума».

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

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

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

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

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

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

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

я начинал ребёнком со справочника по assembler z80.
Как учил питон стоит задача сканер qr кода сделать, что сделал написал свои вебсервер на сокетах, свой парсер ini, свою систему логов, за неделю, потом прочитал учебник стыдно было несказанно, зато все прошилось на подкорку.
Радость, что оно работает главный стимул освоить, дочь начал обучать с xdottools, одного вечера хватило, чтобы через неделю бот помощник для игры бомбермен был готов, а там распознание что противник рядом, условия, алгоритм поиска пути.

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

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

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

мне 36 лет, стаж с 17и, в основном железо, последние лет 15 ушел именно в разработку железной части, окончательно перестав что-то писать, но много было, очень много написано под микроконтроллеры. Я до сих пор не понимаю зачем нужен ООП. Нет как это рабоатет саму парадигму, тут все нормально. Вопрос зачем? Как не прикидывали на практике, ну не получается тут выигрыша, только писанина лишняя.

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

ООП же не серебряная пуля, не нужно его везде тащить.

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

Более того, та же самая Java выросла из наследников Pascal: Modula-2 и Oberon, там семантика вся оттуда, плюс идея виртуальной машины.

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

они оказались никому не нужны. Вот не прижился паскаль

ага, не прижился, не нужен: а я вот вижу что новая версия лазаруса вышла, ну да то – всего лишь факты

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

Зато изучая их основы и сравнивая с реальными артефактами, понимаешь, «как не надо делать» и почему практика всегда расходится с теорией. Т.е. например, как не надо писать препроцессор, что бы иметь возможность портировать системный софт на другие архитектуры, почему дурная идея назвать все местоимения похожим образом (mi/ni) и т.д.

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

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

Вот и с программированием тоже желательно учить что-то, что имеет хождение сейчас. Само собой, многим не понадобится условый питон, если учить на питоне. А многим не понадобится программирование вовсе. Но это не аргумент, по такому принципу нужно будет учить таскать тяжести, собирать бургеры и смешивать коктейли. А нам нужно сделать полезного для экономики человека — да-да, после школы желательно, а не ВУЗа. И какое-то знание реального языка этому критерию отвечает.

Опять же, ещё вопрос — а нет ли побочных эффектов от использование «специального учебного языка» в обучении? Потому что вообще-то в школе есть вредные элементы программы. Яркий пример — изучение фонетики в школе. Во-первых, для говорящего на русском как на родном фонетика глубоко вторична. Я вот живу в Петербурге и говорю на литературном русском языке (возможно, со склонностью к «оканью») с некоторыми «местными» словами. А кто-то говорит с «аканьем». У кого-то получается «дай-ка малака» и «кто чаво шшытат али думат». Но главное, что мы (а) все друг друга понимаем и (б) пишем одинаково, а фонетические нюансы здесь совершенно не играют роли. А во-вторых, наша фонетика отказалась от IPA и использует кириллицу. Но русский язык не имеет фонетической письменности. И вот тут и получается, что на русском языке школьники часть времени пишут «как надо», а часть «как слышится», но теми же буквами (и орфографически неверно). И уровень грамотности ползёт вниз уже который год — в школе у нас, условно говоря, 50% на 50% видят «молоко» и «[малако́]», а книг для увеличения доли повторения «молоко» не читают. Тут как в спорте — если неправильно повторять упражнение или движение, так его и запомнишь, и потом ещё и вред можно себе нанести. Так и у нас в школе получается, запоминается неправильное написание вообще всего. Был бы хотя бы IPA, так транскрипция бы не воспринималась как слово. Так что внедрение фонетического разбора в школах только гадит — хотя в нормальной лингвистике как раз совершенно уместно и полезно.

Это я к чему. Как бы не оказалось, что и у «учебного языка» с «основами» есть какой-то аналогичный эффект на неокрепшие умы. Никто же не изучал этот вопрос, в отличие от вышеупомянутого.

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

Как бы не оказалось, что и у «учебного языка» с «основами» есть какой-то аналогичный эффект на неокрепшие умы.

У Паскаля как раз очень положительный эффект, в отличие от Си или, упаси господи, Питона.

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

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

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

А по моим наблюдениям, те кто начинал с Питон имеют кране поверхностные знания и ни на что не способны, за переделами того что им показали.

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

Ну так на то и говорят, что на вкус и цвет товарища нет. У всех свои ситуации, усугублёнными отличиями в субъективном восприятии. Поэтому и аргумент в духе «а я вот видел ... и считаю, что ...» он так себе аргумент-то.

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

Это ни разу не статистика, это ты свой опыт подытожил. Так, как тебе показалось правильно. А я вот свой подытожил — тоже, кстати, из сферы ВУЗовского образования, а не из пальца высосанный, и у меня результаты другие. Что даже само по себе не значит, что так оно и было, как известно, люди даже в качестве свидетелей так себе источники информации, а уж когда дело доходит до обобщения информации, то совсем ненадёжные. Были бы надёжные, никто бы в приметы не верил, скажем. Так что я такие аргументы оставляю не более чем в ранге анекдотов (в исконном смысле).

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

Видел я уже такие опыты и с обучением (первый язык) си, с++, java, Питон и, даже, JS. Могу сравнить. Но каждый экспериментатор доказывал что студенты всё отлично усваивают — Паскаль устарел! Но стоило только немного пообщаться со студнями… :)

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

Твое мнение и опыт — всё равно субъективны. Как и мои. Поэтому это не аргумент, а разве что иллюстрация.

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

Яркий пример — изучение фонетики в школе.

[малако́]

Тут сразу две проблемы. Во-первых, это разбор на фонемы, а не на аллофоны. Наблюдательный школьник, чье произношение более-менее литературное, заметит, что первый второй предударные [a] (на самом деле фонематическая транскрипция обозначается так: /а/) ни разу не одинаковые. И будет недоумевать, зачем ему вколачивают в голову, что это «один звук». Во-вторых, в школе используется подход московской фонологической школы, который эффективен для описания стандартного произношения, но исключает диалектное многообразие. Окающий школьник, возможно, догадается, что ему подсовывают нормативное произношение, но все равно запутается, если его оканье неполное, ассимилятивное, диссимилятивное (слависты, поправьте терминологию, если я что-то неверно обозвал).

Хорошо, в младшей школе мы подсовываем школьникам фонемы и называем их звуками. Но позже мы им подсовываем уже фонетический разбор, где аллофоны обозначаются разными знаками. И делаем вид, что ничего не произошло, потому что теперь мы уже аллофоны называем звуками. Распознавать аллофоны умеют лишь самые способные к распознаванию аллофонов - те самые, которые ранее смущались двумя одинаковыми [а] (или лингвозадроты, штудирующие Щербу после уроков). На то они и аллофоны, чтобы нейтивы произносили их по-разному, но интерпретировали как один знак. Всё это превращается в еще одну формальную систему, но, в отличие от орфографии, полностью оторванную от реальности.

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

Глубоко, моё почтение. Однако же можно констатировать: даже при более глубоком разборе проблемы преподавания фонетики в школе сохраняется вопрос нафига, а главное — зачем?

Вот если что носителю языка не нужно, так это фонетический разбор слов с кириллической транскрипцией да ещё и по нормам конкретного варианта языка. Не то, чтобы у нас было прямо так уж много сильно разных вариантов произношения, кстати — в английском разброс в разы шире даже только в Великобритании. Но всё же разница есть, и тут оказывается, что мало того, что писаться должно так, как должно — а не как слышится... Так ведь ещё и слышаться, оказывается, должно «как надо», а не как слышится реально. У меня, к примеру, транскрипции часто были неправильными. Ну вот во многих словах я говорю и слышу нормальный звук «ч», а не «положенный» «ш». Пишу как слышу — ошибка. Вот и на кой чёрт это надо кому? Ладно бы эти идеи были введены чисто ознакомительно — мол, не всё слышится, как пишется; границы морфем могут проходить по звукам, а не буквам и т.д. Но нет же, разбор за разбором, без устали, в то самое время, когда мозг впитывает всё, как губка.

А в итоге получаем натурально введённых в заблуждение людей. Им нужно было, как спортсменам, сделать по 1000 повторений строго правильного написания слов, чтобы на уровне мускульной памяти засела автоматическая грамотность. А им, продолжая эту метафору, пришлось попеременно делать то движения правильной формы, то ошибочной — да к тому же ещё не «как естественно получается», а тоже по навязанному образцу.

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

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

Я за IPA для всех языков. Во-первых, это универсальная международная система. Во-вторых, она действительно абстрагирует от орфографии. В-третьих, в IPA учтено вообще всё, так что легко передать даже различия между стандартным московским и стандартным петербургским произношением. Стоит ли пихать IPA для русского в школу? После введения первого иностранного - можно. Польза по-прежнему будет околонулевая для большинства, а вреда станет меньше. Но так-то я тоже скептически отношусь к преподаванию русской фонетики в школе.

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

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

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

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

Паскаль очень даже прижился, на нём было написано очень много полезного кода.

Безальтернативность это не критерий успешности. Когда-то везде был BASIC, и на нём тоже написана туча кода. Но не потому, что все выбирали именно BASIC, сознательно отвергая всё прочее, а потому, что он был дефолтным (аж на уровне зашития в ПЗУ) на домашних микрокомпьютерах 80-х. А сейчас что, разве нет BASICа? Есть. Только никто его больше не выбирает среди прочих. Вот и с паскалем так же. И ровно так же было с MS DOS, а потом (и теперь) с виндой.

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

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

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

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

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

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

Я так подставку для паяльника делал. Взял прямоугольную дощечку. Концы свел к полукругу. Сверху стамеской и напильником снял фаску. Сделал из стальной проволоки две М-образные опоры с полукруглой средней частью, вколотил в дощечку. На радиокружке не поверили, что мне никто из взрослых не помогал.

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

Ну да, шкуркой много не натрёшь, фаска R2 - R3 где-то. Сначала грубой шкуркой тёр, а потом до 240 грит или около того. Чтобы руки не повредить потом, ну и механически скруглённые углы на дереве более устойчивы к оббиванию. А ничего более серьезного у меня не было, это были 90-е, спасибо и за то, что была шкурка и даже зажимной утюжок для неё с рукоятками на манер рубаночных. Это я сейчас обложился инструментами и сижу.

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

Это я сейчас обложился инструментами и сижу.

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

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

А я пока то да сё себе отборный рубанок сломал ( Заточил нож, стал зажимать — и откололся кусок правой щёчки, где прорезь под нож, и куда упирается штифт, за который заправляется клин. Вечер испорчен. Сижу теперь, думаю, что делать. Чугун, блин.

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

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

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

Альтернатива в 80-ые была, может быть не столь большая, но вполне реальная: был Си, были плюсы (правда, с компиляторами было сначала туго), был Лисп. Это популярное, на чём многие писали программы общего назначения, а так ещё Фортран был и Камл и многое другое. Но многими выбран был именно Паскаль.

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

Эспертанто используется 2 млн. человек. Им удобно.

Это, мягко говоря, брехня.

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

меꙉуславјанского

Общеславянских лингва франка, вроде как, аж две штуки. На практике же любой заезжий чех, поляк или хорват говорит по-английски. Довольно забавно получается: два человека живо тарахтят с одинаковым акцентом.

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

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

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

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

Ты здесь перечислил кучу причин, по которым кроме лингвофриков это больше никогда и никому не будет интересно.

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

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

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

Были же в девяностых-нулевых эксперименты по обучению латыни во всяких гимназиях, чтобы всё было как при царе-батюшке. То же самое про универсальную основу говорили. Ну и никакого толку из этого не вышло, кроме лишнего головняка для тех школьников, которые попали под раздачу.

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

В самой крупной из существующих в принципе уверены, что все остальные их язык просто коверкают

В других-то странах люди так совсем не считают, нет.

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

Ну я недаром писал про идеальный мир. Ну и вариативность в ту же кассу — Вася пишет с ятями, Маша — латиницей, а Юля — в южнославянском варианте а Марь Ивановна знает что правильно и так, и этак, только желательно не смешивать. А про исковерканный наш язык, я конечно на границе русского и украинского вырос (в России, замечу) и с северным диалектом довольно рано столкнулся, опять же первой книжкой после Карлсона стал томик Гоголя, но вот как-то идея равноправного существования похожих но разных языков со мной сколько я себя вообще помню.

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

Что, и научные труды на лаиыне и греческом читали?

Научные труды на латыни да на греческом нонче уж не пишут.

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

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

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

Так начни с «боевого иностранного», например грузинского:

>Что именно сложно?

Система глаголов, от которой мрачно ох##вают не только учащие язык, но и лингвисты. Давай по пунктам.

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

Возьмем слово "гавакете" (сделал). "Кет" - словообразующий корень, а префикс "га" означает одновременно прошедшее время и первое лицо, т.е. ты говоришь о себе. Если ты сделал что-то для кого-то, то это будет "гавукете". Если для тебя кто-то что-то сделал, то это "гамикета". Если тебя кто-то заставил что-то сделать, то глагол плавно трансформируется в "гамакетебина". И так далее по списку.

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

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

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

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

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

В общем, для владения грузинским даже на базовом разговорном уровне надо держать в голове такое количество префиксов, суффиксов, приставок и окончаний, что эта самая голова идет кругом. Погружение в грузинскую среду помогает, но даже при его наличии необходимая интуиция вырабатывается очень и очень медленно.
tt
()
Ответ на: комментарий от tt

грузинский очень старый язык

Общая проблема географически изолированных языков: на каждом склоне горы свой диалект и/или говор.
Но грузинский язык – элементарно по сравнению с грузинской математикой :)

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

Дык если на Паскале переменная-цикл-процедура-функция выглядит как в половине настоящих языков, то смысл учиться этому на Паскале, а не на половине настоящих языков? Вот в чём вопрос был.

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

Дык если на Паскале переменная-цикл-процедура-функция выглядит как в половине настоящих языков, то смысл учиться этому на Паскале, а не на половине настоящих языков? Вот в чём вопрос был.

Сперва следует определиться, что такое «настоящий язык».

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

Хорошая мысль… тот, по которому больше всего вакансий?

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

Функционал несложный. Требования тоже. Соответственно релевантным критерием выбора остается порог входав ЯП.

Т.е. это тот случай, когда ЯП выбирает программиста, а не наоборот.

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

востребованность продукта обусловлена запросами общества

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

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

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

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

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

Бьюсь об заклад: если начать пиарить Лазаря с такой же интенсивностью, как Хромого (сейчас речь не идёт про класс ПО) - результат будет близким. Не сразу, конечно, но после того, как пойдут деньги и будут расширены некоторые возможности - результат будет схож. Порог вхождения довольно низкий, всё очень наглядно: красота, да и только!

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

Безусловно. На популярность языка - влияет локомотив крупных корпораций, пишущих на нем.

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

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

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

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

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

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

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

Сомневаюсь что хотя бы 60% программистов знают что это такое, а еще нужно найти тех кому это нужно!

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

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

Результат - это ПО которое установили, а еще лучше купили.

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

тот, по которому больше всего вакансий?

Настоящий язык – всего один, по-твоему?

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

Сперва следует определиться, что такое «настоящий язык».

Ну уж как ни определяй ( в адекватных рамках ) Free Pascal всяко попадет под это определение

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

Плюс контроль типов, плюс отдельный блок для переменных, типов и так далее. Плюс нормальная модульность, а не как в C. Минус UB, его в Паскале нет.

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

Минус UB, его в Паскале нет.

в паскале есть UB: https://imgur.com/a/MxCicFm

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

program Project1;
var
  arr : array[0..0] of integer;
begin
  arr[0] := 1;
  writeln(arr[1]);
  readln;
end.
fsb4000 ★★★★★
()
Ответ на: комментарий от fsb4000

{$R+}

Вопрос только в том, что есть диалекты, где по умолчанию проверки не добавляются.

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

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

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

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

Представляю вуз с заменой учебных материалов и переобучением преподавателей раз в 5 лет. Выпускающий специалистов для языка, который умирает как раз к получению диплома.

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

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

#ifndef SHIT_H_
#define SHIT_H_ 1

// crap

#endif SHIT_H_

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

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

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

Язык довольно продвинутый и мощный, в линуксе на нем почти все пишут.

Изначально на костылях типа include и макросов

Чем тебе помешал препроцессор?

Сама суть Си в том, что это – высокоуровневый ассемблер для возни с аппаратной частью

Как для работы с аппаратной частью нужны комплексные числа которые встроены в язык?

#define SHIT_H_ 1

Сварщик не настоящий?

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

Язык довольно продвинутый и мощный, в линуксе на нем почти все пишут.

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

В Линуксе только историческое ПО на нём в основном и низкоуровневое.

Чем тебе помешал препроцессор?

Костыльное там всё.

Как для работы с аппаратной частью нужны комплексные числа которые встроены в язык?

Как два числа с плавающей запятой.

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

Никто на нём не пишет.

ffmpeg, mpv, xfce4, GIMP, blender, gnome, geany, cmus, systemd, gnome builder, transmission, и многое другое.

Костыльное там всё.

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

Как два числа с плавающей запятой.

А OpenMP?

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

Си довольно тупой язык сам по себе

почитайте от корки до корки реф-ман на fpc/lazarus - поседеете и выпадите в осадок :о)
тупизма в «стилистике и логике» там столько что нам всем разгребать-неразгрести

и что не так с «препроцессорной защитой» от повторного включения?

p.s. при всем при этом я считаю lazarus великим проектом!!!

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

Это атавизм из 60-х.

и что?! если это «нечто» (назови как хочешь) - до сих пор работает так, как надо и где надо... ?!!!

«истинные семейные ценности» так-же, атавизм! и что мы получили упразднив их и перейдя на новые «ценности»? в данном случае, если «старое-доброе-проверенное временем» до сих пор работает, это не значит, что всенепременно надо менять на что-то «веселенькое/тусово-молодежненькое».

из той-же оперы - как отзовется впиливание молодежного раста в ядро?!

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

и что?! если это «нечто» (назови как хочешь) - до сих пор работает так, как надо и где надо… ?!!!

Это очень слабый аргумент. Здесь вспоминается старый перестроечный анекдот.

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

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

да-да, расскажите это линусу, он точно оценит!

до сих пор работает так, как надо и где надо

(ну а мы, тут не на демонстрации, агитировать за все хорошее не надо, уж сами сусами, разберемся :о)

си/плюсы - достойный инструментарий (ну а вы считайте по своему, никаких вопросов :о)

предлагаю, все-же, вернуться в обсуждении на лазаря! :о)

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

А теперь посмотри как сделаны модули в Паскале и сравни с тем, как оно в C/C++. До сих пор тащат «включаемые файлы» из семидесятых, вместо нормальной модульности. В итоге имеем фермы для сборки проектов, чтобы не собиралось по часу и отсутствие нормального разделения видимости.

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

В плюсах есть модули.

В какой версии, в каких компиляторах

Судя по https://gcc.gnu.org/projects/cxx-status.html (1) и https://clang.llvm.org/cxx_status.html (2), то в GCC >= 11 и в Clang >= 15. Если я правильно понял. :)

А вот что пишет автор https://github.com/royjacobson/modules-report#compilers-support:

MSVC
MSVC have a complete implementation of modules. Support of C++23’s import std is done and was shipped in VS2022 17.5. However, it is recommended to wait until 17.6 because of some serious compiler bugs that were not fixed in time.

GCC
GCC has some support for modules, but it seems to still be pretty buggy and progress has pretty much stalled until very recently (Sep 22). See (1) for the state of the module papers and here for a list of reported bugs in the current implementation.

Clang
Work on Clang C++20 modules support is ongoing. See (2) for the state of module papers and here for module related issues. There’s a lot of very recent progress, so working with upstream versions is probably best.

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

Появились в C++20, ага. И пока ещё толком не устоялись.

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

ну вот и чЁ с нами не так?! все работает, ни каких проблем вообще! все стройно, логично и вполне даже быстро! :о)

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

А теперь посмотри как сделаны модули в Паскале и сравни с тем, как оно в C/C++

Вот именно. И Паскаль ещё был игрушечным языком, для настоящей работы были созданы Modula-2 и Modula-3, которые почему-то не взлетели (видимо, оказались слишком хорошими).

А сейчас поздно уже воскрешать мёртвых. Rust решает.

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

и что не так с «препроцессорной защитой» от повторного включения?

Для написания ПО для контроллера, где нужно контролировать что там будет происходить под капотом это можно считать подходящим компромиссным решением. С учётом того, что под разношёрстное железо мира, весьма кривое, никто не будет заморачиваться и придумывать что-то лучше. Не факт, что это вообще возможно.

Для всего остального это не защита от повторного включения, а костыль костыля.

Сколько реально случаев, когда повторное включение нужно? Ноль? Почему include сам это не решает? Потому что это костыль-подпорка и для него так же нужен костыль.

У меня ноль претензий к Си. Это отличный язык. Возможно даже идеальный. Но только для своей узкой ниши. Близкой к железу, и около него.

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

для своей узкой ниши

кто-же спорит то?! идеальных языков нет!

лично я готов мириться с «некоторыми» особенностями, кот. совершенно не мешают работать, прям - то, чЁ надо!

вот и спорить не о чем! :о)

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

Представляю вуз с заменой учебных материалов и переобучением преподавателей раз в 5 лет. Выпускающий специалистов для языка, который умирает как раз к получению диплома.

Которые замечательно не знают его ещё задолго до получения диплома... :) (из личного опыта, насмотрелся).

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

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

s-warus ★★★
()
Ответ на: комментарий от Smacker

Учиться программированию на каком-то специальном «учебном» языке это всё равно, что вместо настоящего иностранного языка учить какой-нибудь «учебный» искусственный.

ЯП все искусственные, так что аналогия натягивается с трудом. Скорее, есть языки (как естественные, так и искусственные) распространенные и редкие, модные и немодные.

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

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

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

Нет кода — нет жалоб. Логично же.

Ильхамку с его QIP на Лурке высмеивали как говнокодера, но не за сам код, а за то, что все форумы заспамил тупыми вопросами. Но по итогу он молодец: в одно рыло построил стартап, подарил миру неплохую альтернативную аську, пересадил многих, в том числе и меня, на Jabber.

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

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

Ну так правильно, на нём никто ничего не пишет, вот и нет жалоб. На COBOL тоже что-то лавины жалоб не наблюдается.

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

На коболе и диболе столько кода еще крутится, сколько и не снилось тут некоторым «мудрецам»

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

Современные реализации Паскаля давно очень далеки от изначального «учебного» и мало чего имеют с ним общего.

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

Современные реализации Паскаля давно очень далеки от изначального «учебного» и мало чего имеют с ним общего.

«Учебный» Pascal N-IDE - Editor And Compiler ©.

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

Учиться программированию на каком-то специальном «учебном» языке это всё равно

Не существует «учебных языков». Есть «хочу X, ищу язык Y, который позволит мне это сделать затратив на это Z».

Если я на языке Y1 сделал X, и у меня Z = 2 часа, а ты сделал X на Y2 и у тебя Z = 10 часов, то при прочих равных вводных, ты - альтернативно-одаренный.

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

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

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

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

Это все входит в Z - затраты. Кому-то важно что-то одно, кому-то все и сразу. Кто-то готов мудохаться неделями чтобы сэкономить 10 тактов\20 байтов. Кому-то это не критично, но нужно на вчера.

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

Не существует «учебных языков»

Это сейчас. Раньше много их было, бейсик например. Практической пользы от него никакой, изучали именно как учебный язык. Паскаль тоже позиционировался как учебный, но уже для вузов. Точнее для инженерных специальностей не связанных с тем что сейчас называют IT.

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

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

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

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

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

У форта два стека, мощное метапрограммирование в которое нужно въезжать, словари, в ANS Forth еще исключения и прочее что делает его далеким от простой машины тьюринга, а вот Basic классический это переменные и goto, очень просто.

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

У форта два стека, мощное метапрограммирование в которое нужно въезжать, словари

~35 лет тому назад вполне так себе нормально «въехалось» путём прочтения книги «Язык ФОРТ и его реализации» Баранова и Ноздрунова. Предыдущий опыт программирования ограничивался Ассемблером для Intel 8080.

А уж когда приобрёл первый ПК, да попала в руки среда разработки на FORTH F-PC от Tom Zimmer с целевым компилятором TCOM — я просто как будто в рай попал! :)

Сваял на нём себе кросс-ассемблер для PIC16C84, софт для самосборного программатора для этого контроллера, и много чего ещё полезного, по мелочам. :)

Кстати, до сих пор с теплотой вспоминаю его справочную систему — гипертекстовую! И это ещё под DOS!

Так что «Не так страшен чОрт, как его малютка!» :)

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

Форт можно лучше понять после ассемблера, а не до.

Утверждение спорное, на мой взгляд, но у меня получилось как раз таки «после» — так сложилось исторически. :)

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

Мне это всегда нравилось, а некоторых многих — отталкивало... :)

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

Форт можно лучше понять после ассемблера, а не до.

Форт лучше понимается после «Электроники МК 61». ;)

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

Практическая польза была (в свое время) и от бейсика, в 80-х это был язык дававший людям возможность быстро и просто программировать свои, по нынешним меркам примитивные, компы без задрачивания в ассемблере. Да, и задачи тогда были соответствующие, но тем не менее.
Мой отец в конце 80-х на самосборном Радио-86РК неслабые мат.расчеты выполнял именно в бейсике (программа около часа работала) и с достаточной точностью.
Так что вопрос не только в инструменте\языке, но в руках\мозгах его юзающего.

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

Мой отец в конце 80-х на самосборном Радио-86РК неслабые мат.расчеты выполнял именно в бейсике (программа около часа работала) и с достаточной точностью.

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

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

Я смотрел, пришлось однажды. Как раз переводил программу с него на Паскаль.

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

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

Отнесение языка к категории «учебных» не делает его непригодным для вполне так себе практических задач.

Например, мой сын во второй половине «нулевых», классе в девятом или десятом, не помню уже, наваял для школы вариант среды Лого, которая была удобнее и лучше, по оценке преподавателей информатики. На Visual Basic, да. :)

Так что «учебность» инструмента — вещь весьма относительная и во многом определяется «местами произрастания рук» его пользователей... :)

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

Отнесение языка к категории «учебных» не делает его непригодным для вполне так себе практических задач.

Чел просто очень молод и не в курсе, что Бейсик вообще ни разу не учебный язык, а был некогда единственным средством управления ПК, т.е. когда в них вообще ничего не было, окромя Бейсика, «зашитого» прямо в. Т.е. Бейсик был одновременно и ЯП, и шеллом. Потому этих Бейсков, несовместимых между собой, как собак нерезанных.

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

Например, мой сын во второй половине «нулевых», классе в девятом или десятом, не помню уже, наваял для школы вариант среды Лого, которая была удобнее и лучше, по оценке преподавателей информатики. На Visual Basic, да. :)

И где ему потом пригодился этот навык? Да нигде. Вот в этом и состоит недостаток учебных языков - если бы написал к примеру на плюсах был бы востребованным специалистом, а вот после бейсика только переучиваться. Я вот как раз с Паскаля начинал когда-то, и потом пожалел. Потому что переучиваться на С++ было труднее чем сразу его изучать. Вместо С++ можно взять Java или что-то ещё, суть в том что время потраченное на их изучение не будет потрачено впустую в отличие от бейсика или паскаля.

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

Потому что переучиваться на С++ было труднее чем сразу его изучать.

Этого просто не может быть, потому что не может быть никогда.

а вот после бейсика только переучиваться.

Visual Basic это, вообще то, промышленный ЯП и весьма популярный.

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

И где ему потом пригодился этот навык? Да нигде

Да везде. Вы слишком прямолинейно и ограниченно воспринимаете это, как «одноразовое» событие. А это был этап его развития как программиста...

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

Это был его шаг в становлении как разработчика...

Вот в этом и состоит недостаток учебных языков

Повторюсь: НЕТ никаких «учебных» языков.

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

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

Я вот как раз с Паскаля начинал когда-то, и потом пожалел. Потому что переучиваться на С++ было труднее чем сразу его изучать

Потому что вы опять делаете всё ту же ошибку НЕПРАВИЛЬНОЙ постановки задачи. Паскаль следует использовать для ОБУЧЕНИЮ ПРОГРАММИРОВАНИЮ. А вот Си, С++, Джаву ИЗУЧАЮТ как язык программирования ПОСЛЕ того, как человек научился программировать. Да, желательно не на примерах на Бейсике.

И повторюсь ещё раз: приводить в пример свои ПРОГРАММИСТСКИ заточенные мозги в разговоре об ОБЩЕМ МАССОВОМ образовании не стоит.

Вместо С++ можно взять Java

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

Пример кода на Джава для решения квадратного уравнения:

import java.util.Scanner;
public class QuadraticEquation {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите значение a: ");
        double a = scanner.nextDouble();
        System.out.print("Введите значение b: ");
        double b = scanner.nextDouble();
        System.out.print("Введите значение c: ");
        double c = scanner.nextDouble();
        double d = b * b - 4 * a * c;
        if (d > 0) {
            double x1 = (-b - Math.sqrt(d)) / (2 * a);
            double x2 = (-b + Math.sqrt(d)) / (2 * a);
            System.out.println("Корни уравнения: x1 = " + x1 + ", x2 = " + x2);
        } else if (d == 0) {
            double x;
            x = -b / (2 * a);
            System.out.println("Уравнение имеет единственный корень: x = " + x);
        } else {
            System.out.println("Уравнение не имеет действительных корней");
        }
    }
}

Если вы скажете, что достаточно будет 45 минут введения в Джаву и девочки из «французской школы» вам напишут такое, то я вычислю вас по IP, приеду и плюну вам в ваши бесстыжие глаза.

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

Можно просто дать шаблон где уже будет класс, и функции println, readln, и говорить что в main() {} вписываем код. И уже никаких отличий от паскаля.

Очень надуманные претензии.

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

говорить что в main() {} вписываем код

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

Так сложно осознать, что речь идёт не об изучении ЯП для зарабатывания денег, речь идет об изучении программирования в массовой общеобразовательной школе? Вопрос заключается в том, на каком языке быстрее, проще и яснее будет иллюстрировать алгоритмы? На каком языке учащимся будет проще их писать самим? На каком языке учителю будет проще читать ученические программы?

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

Не получится, потому как сначала всегда будут инклюды

А в паскале begin. Про begin и include говорим что это начало программы, все. Меня куда больше другие вопросы интересовали когда я начинал программировать, заучить #include как какую то магию это очень просто, посмотри на тех кто начинает писать на C/C++, они могут часто думать что #include добавляют функции в язык, или что это подключение библиотеки, ну им и не нужно для начала знать что это.

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

C/С++ намного более выразительнее, и что то найти на них еще куда более проще чем на умирающем паскале. А уж количество библиотек под C/C++ зашкаливающее.

На каком языке учителю будет проще читать ученические программы?

Хорошо если бы он знал языков 5 общеутвержденных, а ученики могли бы их выбирать, как с иностранным. Кто то бы выбрал паскаль, кто то С++.

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

Это явно не про средне-образовательную школу.

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

А в паскале begin. Про begin и include говорим что это начало программы, все.

Что-то Вы совсем зарапортовались. :)

C/С++ намного более выразительнее, и что то найти на них еще куда более проще чем на умирающем паскале. А уж количество библиотек под C/C++ зашкаливающее.

Какое это имеет отношение к навыкам реализовывать алгоритмы?

Кто то бы выбрал паскаль, кто то С++. Изучение С++ в школе это профанация обучения.

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

Что-то Вы совсем зарапортовались. :)

А тебе объяснили почему нужен begin?

Какое это имеет отношение к навыкам реализовывать алгоритмы?

Тупо больше информации, и она качественнее, и разнообразнее, есть много инструментов, есть много примеров кода, можно открыть почитать опенсурсный проект, а что читать на паскале? Исходники лазаруса?

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

А тебе объяснили почему нужен begin?

begin это начало программы.

Тупо больше информации, и она качественнее, и разнообразнее, есть много инструментов, есть много примеров кода, можно открыть почитать опенсурсный проект, а что читать на паскале? Исходники лазаруса?

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

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

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

Можно узнать, эти «исходные тексты» во что то собираются? А то я из программ на паскале знаю только CudaText. А зная C/C++ можно читать исходники ядер, плееров, файловых менеджеров, и всего такого.

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

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

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

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

Многие приходят в программирования, начиная с создания модов для игр, например с создания модов для Minecraft на Java, речь про детей, хотя конечно никакой разницы между 8 годами и 80 особо нету, если человек здоров.

Вот такой у этих модов begin, end, и что то никто не впадает в ступор

https://github.com/Bukkit/SamplePlugin/blob/master/src/main/java/com/dinnerbo...

Вот уже скорее сам writeln('hello world')

https://github.com/Bukkit/SamplePlugin/blob/master/src/main/java/com/dinnerbo...

это все один проект, просто разные файлы

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

Это как изучать арифметику по книжке по квантовой электродинамике.

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

Dos Navigator, Windows Commander написаны на Turbo Pascal и Delphi, соответственно.

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

Полно программ для внутреннего пользования для автоматизации бизнес-процессов. У нас например складской учет/торговля.

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

Ну и никак получается этот ваш код не посмотреть, значит информации нету, отсутствует.

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

Код посмотреть можно тут, если сами ссылку не смогли найти. https://github.com/zamtmn/zcad

Что значит «не готово»? Не бывает окончательно готовых программ. zcad используется автором на своей работе, на реальных задачах - значит к работе готов.

Один человек или много делают - что это меняет?

Вот другая программка, граф.редактор, можно скачать исходники, скомпилить, запустить. https://github.com/bgrabitmap/lazpaint

Ну и если на том же гитхабе пофильтровать по тегам pascal/lazarus/delphi - то можно найти массу программ. И это только те что выложены в опенсорс.

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

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

Ну и если на том же гитхабе пофильтровать по тегам pascal/lazarus/delphi - то можно найти массу программ

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

А чему учится читая lazpaint? Лучше почитать исходники GIMP.

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

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

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

Ну например моей прикладухи я не дам. Внутренняя коммерческая разработка. Или разработка для внутреннего употребления, не для распространения. И так думаю у многих. И не только на дельфи но и на сях и прочих ЯП :)

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

А в паскале begin. Про begin и include говорим что это начало программы, все.

Уже неверно. begin – простое слово на ангельском, означает начало блока операторов. Инклюды же вообще иное.

заучить #include как какую то магию это очень просто

В обучении НЕ ДОЛЖНО быть неясной обучаемому магии. Потому в начальной школе НЕТ учебников с деепричастными и причастными оборотами в тексте и т.д.

они могут часто думать что #include добавляют функции в язык, или что это подключение библиотеки, ну им и не нужно для начала знать что это.

Для начинающего это звучит как не несущий смысловой нагрузки белый шум.

C/С++ намного более выразительнее

Вопрос с выразительностью НЕ стоит, стоит вопрос с более ПРОСТО и ЯСНО.

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

Предложите учащимся выбрать между эрзянским и мокша. Куда они вас пошлют?

Кто то бы выбрал паскаль, кто то С++.

Решать будут королевской битвой? Кстати, никто в школе не имеет возможности выбрать себе иностранный, разве что третий факультативно. Максимум – выбрать нужную школу.

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

Уже неверно. begin – простое слово на ангельском, означает начало блока операторов. Инклюды же вообще иное.

И?

В обучении НЕ ДОЛЖНО быть неясной обучаемому магии. Потому в начальной школе НЕТ учебников с деепричастными и причастными оборотами в тексте и т.д.

Тогда нужно начинать с транзисторов.

Для начинающего это звучит как не несущий смысловой нагрузки белый шум.

Как и begin end.

Вопрос с выразительностью НЕ стоит, стоит вопрос с более ПРОСТО и ЯСНО.

Почему? Я считаю его более простым.

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

Никогда не слышал о таком, все выбирали.

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

#include;

Что это такое и что оно делает в программе?

return 0;

Почему нуль? Что будет, если поставить 1.5?

P.S. Почему return 0; } ? Почему не просто return 0;?

end. ставиться ДЕЙСТВИТЕЛЬНО в конце текста программы, тогда как return 0; можно воткнуть куда угодно в main().

Т.е. прога на Паскале уже структурой исходного кода существеннее яснее, чем си-подобная клинопись.

Блок описаний:

  • имя программы
  • константы
  • типы пользователя
  • переменные
  • процедуры и функции

Блок операторов (собственно, запись алгоритма; идёт ОТДЕЛЬНО от структур данных) между begin и end. Причём если треба вставить несколько операторов там, где синтаксис требует единственного оператора, их так же обрамляем begin и end, никаких int main() в for.

Самое важное: не учат детей Паскалю, т.е. не должны учить, как не должны учить Си или Питону. Сколько школьников пойдет в программисты? 1 из 100 в лучшем случае. Этот 1 и будет учить ЯП, остальные должны освоить алгоритмические конструкции, способ их записи, «пощупать» разницу между исходным кодом и исполняемым, осознать трудоёмкость работы программиста.

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

Что это такое и что оно делает в программе?

А что begin делает? Почему нельзя написать start? Почему может быть несколько begin?

Хватит задавать глупые вопросы.

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

А что begin делает?

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

Почему нельзя написать start?

Потому же, почему нельзя написать про гусеницу «побежала». ЯП – язык, то, что слова в языке имеют определённый смысл и должны использоваться в соответствии с этим смыслом, человеки понимают на этапе овладения речью. Т.е. годам к 5ти.

Вопрос про инклюд законен, в том числе от учеников. Если вы не способны ответить на него ПОНЯТНО для нулёвок в программировании за 2 минуты, то вы тем самым признаёте НЕПРИГОДНОСТЬ всех ваших си, с++ или джав для обучению ПРОГРАММИРОВАНИЮ на нулевом уровне.

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

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

#include разберем позже, пока не обращаем внимание, это начало программы типа.

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

Поэтому и пишем #include, так надо.

Вопрос про инклюд законен, в том числе от учеников. Если вы не способны ответить на него ПОНЯТНО для нулёвок в программировании за 2 минуты, то вы тем самым признаёте НЕПРИГОДНОСТЬ всех ваших си, с++ или джав для обучению ПРОГРАММИРОВАНИЮ на нулевом уровне.

Просто бредятина, вообще никак не связанная с рассуждением, корчевателя выключай. Я тоже так умею: Если вы не можете написать компилятор паскаля за 2 минуты на ассемблере, то вы подтверждаете его НЕПРИГОДНОСТЬ.

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

#include разберем позже, пока не обращаем внимание, это начало программы типа.

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

Просто бредятина, вообще никак не связанная с рассуждением

Мы говорим о пригодности языков к иллюстрированию на них алгоритмов при введении в программирование. Что вам не ясно? Что всякие си для этого просто непригодны по очень многим причинам, одна из которых – высокий порог вхождения?

не можете написать компилятор паскаля за 2 минуты на ассемблере, то вы подтверждаете его НЕПРИГОДНОСТЬ

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

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

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

Так ты тоже соврал, begin это не начало программы, ведь далее он будет использоваться в if, for. А еще программа начнется со _start. И ты даже не объяснил зачем оно должно быть, почему без него нельзя?

Мы говорим о пригодности языков к иллюстрированию на них алгоритмов при введении в программирование.

С/C++ отлично подходят.

Что всякие си для этого просто непригодны по очень многим причинам, одна из которых – высокий порог вхождения?

В чем он измеряется? Где я могу увидеть точные значения для С и паскаля, ты же это не выдумал, правда?

Непригодность чего для чего?

Для обучения.

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

так ты тоже соврал, begin это не начало программы

Не-а, Я такого НИГДЕ не утверждал.

Вы ПРЕКРАСНО демонстрируете те сложности, которые приходится постоянно преодолевать учителю, а именно вы демонстрируете упорное НЕЖЕЛАНИЕ понимать объяснения.

А еще программа начнется со _start. И ты даже не объяснил зачем оно должно быть, почему без него нельзя?

Это вы вообще оп чём?!

С/C++ отлично подходят

Вообще не подходят. Если в Паскале цикл со счётчиком – это цикл со счётчиком, то в Си в for можно вставлять какие угодно условия и не использовать счётчик.

В чем он измеряется?

Во времени между началом изучения ПРОГРАММИРОВАНИЯ и моментом, когда твоя первая программа заработала и ты понимаешь, что именно делает каждая «закорючка» в программе. Для Си это время равно времени, за которое индивид закончил введение в программирования и перешёл к изучению конкретных ЯП и следующих после процедурной концепций программирования. Т.е. это в среднем 1 год усиленных занятий, а для Паскаля это 45 мин.

Для обучения.

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

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

Не-а, Я такого НИГДЕ не утверждал.

Да в общем то без разницы что ты утверждал, главное что ты не сможешь дать полную информацию по hello world все равно. Сейчас ты скажешь что на самом деле нужно сказать только что то определенное, а syscall можно опустить, но это ты уже зациклился, а счетчик видимо без цикла, читай выше ответ на твой будущий вопрос.

Это вы вообще оп чём?!

О начале исполнения.

Вообще не подходят. Если в Паскале цикл со счётчиком – это цикл со счётчиком, то в Си в for можно вставлять какие угодно условия и не использовать счётчик.

И зачем нужен тебе синтаксис как в паскале именно? Ну вот тебе похожее for (int i : std::views::iota(0, 10))

Во времени между началом изучения ПРОГРАММИРОВАНИЯ и моментом, когда твоя первая программа заработала и ты понимаешь, что именно делает каждая «закорючка» в программе.

То есть оно индивидуально для каждого человека? Тогда паскаль явно проигрывает, у меня с ним большие проблемы, ну вот, мы столько спорили, а оказывается вот так просто доказывается что паскаль вреден в обучении!

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

Ассемблер тоже неплох для обучения. if, then, for это довольно сложно, намного проще jmp, метки, и примитивные условия.

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

Да в общем то без разницы что ты утверждал, главное что ты не сможешь дать полную информацию по hello world все равно.

Вы упорото несёте чушь. Дело не в том, чтобы побайтно объяснить, как работает исполняемый код на конкретном процессоре от конкретного компилятора с конкретными флагами. Этак мы дойдём до p-n перехода и квантовой механики.

Дело в том, чтобы объяснить, за что отвечает каждый оператор в программе. Здесь мы наталкиваемся на то, что в Си/т.п. такие объяснения просто невозможны, так как сначала человек должен изучить программирование, УМЕТЬ программировать, лишь потом поймёт, что делает каждый инклюд. И то такое понимание зачастую будет поверхностным.

О начале исполнения.

??? Покажи мне проги на Паскале, где требуется этот _start.

Ну вот тебе похожее for (int i : std::views::iota(0, 10))

И черепно-моральная травма у обучаемого на всю жизнь. Сравни с for i:=1 to 10 do …

Ассемблер тоже неплох для обучения.

Ржу во весь голос. Напиши на ассемблере (для ЕС 1036, который учил я) прогу решения квадратного уравнения, а потом подумай, сколько ЛЕТ ты будешь объяснять, что ты написал и зачем?

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

Вы упорото несёте чушь.

Я тебе прям там уже ответ написал, переставай уходить в цикл.

??? Покажи мне проги на Паскале, где требуется этот _start.

Смотри Hello World под линуксом.

И черепно-моральная травма у обучаемого на всю жизнь. Сравни с for i:=1 to 10 do …

Кстати, устройство чисел с плавающей точкой тоже объясняют перед первой программой?

Ржу во весь голос. Напиши на ассемблере (для ЕС 1036, который учил я) прогу решения квадратного уравнения

Лучше взять что то посовременнее, нужно будет объяснить что такое регистры, стек, флаги, и jmp, org.

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

устройство чисел с плавающей точкой тоже объясняют перед первой программой?

ну почти. Как только ребенок наберет .1 + .2 и спросит, а какого хрена. На самом деле не так сложно, про биты уже рассказывали, степени где то классе в 7 всплывали.

Кстати, именно поэтому детские программы - это текст или операции с целыми числами (то же решение квадратных уравнений обычно дается на рафинированных примерах)

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

Смотри Hello World под линуксом.

Смотрю:

begin
 writeln('Hello World')
end.

Где здесь _start?

Кстати, устройство чисел с плавающей точкой тоже объясняют перед первой программой?

Вы опять упорото несёте чушь. Вы понимаете разницу объяснить, что за что отвечает в записанном на ЯП алгоритме от объяснить, как это работает в кремнии?!

Лучше взять что то посовременнее

Что? Под какой «камень» брать ассемблер?

Вы улавливаете разницу между объяснением, как работает процессор и объяснением, как записываются алгоритмы на ЯП?

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

Вы понимаете разницу объяснить, что за что отвечает в записанном на ЯП алгоритме от объяснить, как это работает в кремнии?

Нет, я не понимаю почему одно нужно, а другое нет, а третьего не дано

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

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

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

я не понимаю почему одно нужно, а другое нет, а третьего не дано

Потому что в программе «исходный код» НЕТ никакого процессора, шины данный и т.д., а вот инклюды ЕСТЬ, перегрузка методов – есть и т.д. НЕЛЬЗЯ обучаемому что-то говорить, не объясняя, что ты говоришь.

При этом вы упускаете из виду, что претензии к «магии» не единственные к Си/т.п. Суть в том, что Си/т.п. СЛИШКОМ мощные, чтобы их разумно было использовать для введения в программирование, вся их мощь делает их неудобными для этого.

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

Потому что такое твое мнение, а вот я все равно не понял почему ты считаешь так а не иначе.

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

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

То есть ты объяснить не можешь почему так? Логической причины нету? Ориентируешься на чувства?

У меня почему то таких проблем нету, как думаешь, почему?

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

То есть ты объяснить не можешь почему так? Логической причины нету

Ты явно тупой. Тебе уже объяснили, почему другие ЯП не подходят. У Паскаля внятный синтаксис, чёткая структура исходного кода, возможно плавное изучение без всяких «потом поймёте», невозможны невнятные конструкции, как в Си и т.д.

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

Твоё единственное: зачем учить то, с чего необходимо переучиваться? Так вот ещё раз: в школе НЕ изучают ЯП. В школе хорошие учителя учат программированию, а большинство – как сделать то или иное бесполезное действо на конкретном языке, будь то Си, Питон, Выжрал Бейсик или вообще АЯЕ (язык Ершова).

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

У Паскаля внятный синтаксис

Можно оценку внятности в числах для C, C++, Python, Pascal? Просто что бы понять, ты сейчас просто опять выдумываешь, или у тебя есть алгоритм как ты это все вычисляешь.

чёткая структура исходного кода

Можно оценку четкости в числах для того же набора языка?

возможно плавное изучение без всяких «потом поймёте»

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

На Паскале можно иллюстрировать алгоритмы даже нагляднее

Можно оценку наглядности в числах для того же набора языка?

и. Первую программу на Паскале чел напишет через 45 минут объяснений, понимая, что делает каждая написанная им команда в коде.

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

Твоё единственное

У меня много мыслей, но все же хочу начать с разбора твоих!

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

Можно оценку внятности

Уже была, когда приводили в пример один и тот же алгоритм, записанный на С++ и Паскале.

В числа? Ну, запись на Паскале на 3м уроке понимают ВСЕ. Запись на Си на 5м уроке понимали только избранные, ранее прочитавшие Кёрнигана и Ритчи… в подлиннике.

Можно оценку наглядности для команд

Уже было с инклюдами, которые станут понятными лишь ПОСЛЕ того, как чел научится выносить функции в отдельный файл и освоит систему сборки хоть на make, хоть в IDE.

приложи пожалуйста статистические данные

Обратись к Столярову.

У меня много мыслей

… но все они о ТЕБЕ. То, что ТЫ сумел научиться плавать (программировать), упав в бурную холодную глубокую реку (С++), не означает, что это лучший способ обучения плаванью (программированию). Любой тренер по плаванию, включая олимпийских сборных, скажет, что почти все люди, которых ты столкнёшь в горный поток, утонут, а вовсе не станут олимпийскими чемпионами по плаванью.

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

Уже была, когда приводили в пример один и тот же алгоритм, записанный на С++ и Паскале.
Уже было с инклюдами

Получается что BASIC подходит лучше? Там нету даже program, begin, end.

Dim as Double a, b, c, d

Input "a=", a
Input "b=", b
Input "c=", c

d = b^2 - 4*a*c
if d = 0 then
  print "x=", -b/2/a
elseif d > 0 then
  print "x1=", (-b+sqr(d))/2/a
  print "x2=", (-b-sqr(d))/2/a
else
  print "Решения нет"
endif
program Quadratic;
var A,B,C,D: Real;
begin
   write('A = ');
   readln(A);
   write('B = ');
   readln(B);
   write('C = ');
   readln(C);

   D := B*B-4*A*C;
   if (D=0) then
   begin
      writeln('x = ',-B/2.0/A);
   end;
   if (D>0) then
   begin
      writeln('x1 = ',(-B+Sqrt(D))/2.0/A);
      writeln('x2 = ',(-B-Sqrt(D))/2.0/A);
   end;
   if (D<0) then
   begin
      writeln('Решения нету');
   end;
end.

Обратись к Столярову.

Он собирает статистику?

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

Зачем столько мусора в коде?

var a, b, c, d: Real;
begin
  Write('A B C: ');
  ReadLn(a,b,c);
  d:=Sqr(b)-4*a*c;
  if d<0 then
    WriteLn('Действительных решений нет')
  else if d=0 then
    WriteLn('x = ',-b/a/2)
  else begin
    WriteLn('x1 = ',(-b+SqRt(d))/a/2);
    WriteLn('x2 = ',(-b-SqRt(d))/a/2);
  end;
end.

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

Я просто скопировал откуда то, и написал аналог на BASIC, что бы показать синтаксис в сравнении. Тут на глаз скажу что на 4 строки короче выйдет.

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

Алгоритм другой кстати, у тебя d:=Sqr(b)-4*a*c, а у меня там вместо корня степень. Как степень в паскале записывается?

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

Алгоритм другой кстати, у тебя d:=Sqr(b)-4ac

Это ещё одна демонстрация незнания Паскаль ВООБЩЕ, Sqr – возведение в квадрат, извлечение корня sqrt.

Как степень в паскале записывается?

Никак. a^m == exp(m*ln(a))

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

Это ещё одна демонстрация незнания Паскаль ВООБЩЕ, Sqr – возведение в квадрат, извлечение корня sqrt.

О как удобно, это и есть твоя наглядность?

Никак. a^m == exp(m*ln(a))

Тоже очень удобно. Но я думаю проще подключить модуль математики, уверен он есть.

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

О как удобно, это и есть твоя наглядность?

Наглядность в записи АЛГОРИТМОВ, запись математических выражений НИ В КАКОМ из ЯП не наглядно, потому как невозможно на мониторе писать, как по бумажке.

Но я думаю проще подключить модуль математики, уверен он есть.

Есть. И не один. Причём даже на Си. Но нах это надо для ШКОЛОТЫ?!

Если надо сложная математика, то Лисп и Фортран тебе в помощь. Или всякие bc, ГнуПлоты, Октаве и т.д., если на МатЛаб разоряться не хочешь, хотя внутри там тот же Лисп.

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

Наглядность в записи АЛГОРИТМОВ, запись математических выражений НИ В КАКОМ из ЯП не наглядно, потому как невозможно на мониторе писать, как по бумажке.

Но только в паскале догадались две важные функции назвать почти одинаково. Так что скор срезаем за реализацию вычисления квадратного уравнения. Еще что сложного, так это функции которые ими не являются, такие как writeln(), которые принимают va_arg. Единообразие отсутствует напрочь.

Есть. И не один. Причём даже на Си. Но нах это надо для ШКОЛОТЫ?!

Что бы возводить в степень.

Если надо сложная математика

Степень не особо сложная по моему.

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

Но только в паскале догадались две важные функции назвать почти одинаково.

почти одинакового в ЯП полным полно.

Что бы возводить в степень

Ещё раз: зах это для школоты?

Степень не особо сложная по моему.

Ещё раз: ЗАЧЕМ это школоте?! Ну, не на уроках алгебры, а на уроках программирования?

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

почти одинакового в ЯП полным полно

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

Ещё раз: зах это для школоты?

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

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

Sqr(b) - это square - квадрат b - суть b*b.
Разницы нет, привычка.
Корень - SqRt - square root.

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

Такой диалект бейсика подходит вполне. Когда же паскаль создавался, бейсик был пронумерованным списком команд, нашпигованным goto.

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

Получается что BASIC подходит лучше?

Какой из? Вы какой в пример привели?

Что понятнее: var от «переменная» и real – реальные, т.е. вещественные, или Dim as Double – Дима как Двойной?!

Такому Бейсику я бы предпочёл Питон.

Там нету даже program, begin, end.

Вот именно, непонятно, где что начинается, где что заканчивается, зато есть endif.

Он собирает статистику?

У него выборка больше.

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

Какой из? Вы какой в пример привели?

FreeBasic

Что понятнее: var от «переменная» и real – реальные, т.е. вещественные, или Dim as Double – Дима как Двойной?!

Для русского это одинаковое непонятное что то. Real вообще нереальный какой, в столбик иначе выходит (особенность представления чисел с плавающей точкой). Вот я бы назвал число на английском Number, но никак не Double и не Real, и никогда бы не догадался использовать Real или Double.

Вот именно, непонятно, где что начинается, где что заканчивается, зато есть endif.

А зачем что то начинать и что то заканчивать? Лишние действия. Так можно сказать что непонятно откуда writeln берется, а вот в С++ все понятно, из <iostream>.

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

Для русского это одинаковое непонятное

Абсолютно понятно даже для такого неспособного к языкам, как я: «var от вэрийбл – переменная, вариабельная». Real – математический термин, чей прямой перевод я дал.

Вот я бы назвал число на английском Number

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

А зачем что то начинать и что то заканчивать?

Затем, что программы надо не только писать, но и ЧИТАТЬ. Прочесть приведённые вами программы на Паскале проще, чем на Бейсике. Кстати, на Бейсике зря усложнение из вложенных if-ов, которые вы отступами неверно выделили, а на Паскале в 2х if-ах лишние (но не ошибочные) begin и end.

непонятно откуда writeln берется

Оттуда же, откуда все остальные команды. У вас же что-то надо из непонятного брать, а что-то почему-то не надо?

FreeBasic

Это который плод гибридного скрещивания qBasic, VB, C и немного паскалевского синтаксиса?

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

а на Паскале в 2х if-ах лишние (но не ошибочные) begin и end

Очень неоднозначный синтаксис, еще и ; не везде ставится, я даже в примере bormant не знаю, можно ли пропустить последний знак ; в end, или там он обязательно нужен? Очень и очень запутано с этим begin, end, стоило сделать их обязательными.

Потому что вы очень далёкий от математики человек

По сравнению с многими из тех кто будет изучать паскаль, я профессор математики и эксперт английского. И даже мне сложно вникнуть в то почему какой то Real, а int из C почему не Real то?

Затем, что программы надо не только писать, но и ЧИТАТЬ. Прочесть приведённые вами программы на Паскале проще, чем на Бейсике.

Спорно.

Это который плод гибридного скрещивания qBasic, VB, C и немного паскалевского синтаксиса?

Что первое в гугле вышло то и выбрал, паскаль в школы так и выбирают, где то fpc, где то abc.net.

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

Перед end точка с запятой опциональна. Хочешь ставишь, хочешь - нет.

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

Очень неоднозначный синтаксис, еще и ; не везде ставится

Синтаксис ясный и понятный, ; ставиться в конце оператора, а в последнем end нет ;, там . , вот ПЕРЕД последним end ; не обязательна, но и не ошибочна.

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

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

С необязательными begin/end и скобками есть еще проблема когда думают что тело if заберет две строки, а обрабатывается только одна

some_code();

if x = y then
  writeln('x = y');
  writeln('x = y!!!');

some_code();
Есть тут знатоки Oberon, исправлено ли там это? В Rust исправили.

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

С необязательными begin/end и скобками есть еще проблема когда думают что тело if заберет две строки

Понятно, что вы вообще не знаете Паскаль с вашими _start, a.out и вот этим. Разделитель в Паскале – это ; и begin - end, а не отступы. Begin - end не обязательны для одного оператора, вернее, всё, заключённое в операторные скобки begin - end синтаксически считается единым оператором, потому если у вас единственный оператор, то begin - end не обязательны.

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

Веgin end это составной оператор, как и в си {}. Хотя есть и отличия, например begin end не содержит описаний и не создает отдельного пространства имен.

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

не создает отдельного пространства имен.

В Си с этим большой напряг, с пространством имён по {}. Пример:

int main (void)
{
 int a=200;
 printf ("A = %d \n",a);
  {
    float a=-3.7;
    printf ("A = %f\n",a);
   }
printf ("A = %d \n",a); ///Печатает 200
printf ("A = %f \n",a); ///Печатает -3.7
float c=3.7,q;
q=c+a;
printf ("Q = %f \n",q); 
return 0;
}
mister_VA ★★
()
Ответ на: комментарий от sabacs

Переменная не существует после выхода из блока.

Переменная НЕ должна существовать, вот только её можно передать в функцию вне области видимости.

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

Проблема в том, что в printf («A = %f \n»,a); ///Печатает -3.7
Память есть, но в ней не значение типа float.
То бишь спецификатор для значения float, а в памяти INT.

Можете просто попробовать вот такой код:

#include "stdio.h"

int main(){
    
 float a=200;
   
 printf ("A = %d \n",a);
 
 return 0;

}

Си и C++ верят программисту, даже если код с UB.

Доскональный ответ можно получить лишь анализируя исходный код функции printf().

Ради интереса попробуйте вот так (с UB).

#include "stdio.h"

int main(){
    
 char a=200;
   
 printf ("A = %d \n",a);
 
 return 0;

}

или так (c UB)


#include "stdio.h"

int main(){
    
   char a=200;
   
 printf ("A = %f \n",a);
 
 
    return 0;
}

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

Проблема в том, что в printf («A = %f \n»,a); ///Печатает -3.7

Память есть, но в ней не значение типа float.

То бишь спецификатор для значения float, а в памяти INT.

В памяти есть ОБА значения и оба могут ПРАВИЛЬНО использоваться, хотя должно быть одно. В том и проблема. Ещё проблема в том, что если в памяти есть одно значение, пусть int, но печатаем мы его с форматом вещественных, то компилятор не ругается, а при исполнении прога выдаёт мусор.

И вот на этом, позволяющем отстрелить себе яйца самым разным способом с использованием СТАНДАРТНЫХ средств языка в примитивнейших прогах, местные клоуны предлагают НАЧАТЬ обучать детей программированию?!

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

ИМХО Си и C++ для системного программирования.
При обучении можно лишь упомянуть о том, что для более тонкой работы с памятью и ... Си и C++.

Шутка

И дать ссылку на стандарт языка, который содержит 1500 страниц текста.

Иногда может в коде быть чушь, а компилятор ничего не увидит.
Например:

 int Vp01 = 0,
     flag = 1;

// Ерунда в стиле 1С (31 декабря после 1С такой "гениальный" код написал. Вообщем пол часика долой.)
//
 Vp01 = ( flag == 1,
          5,
          6
        );

Для компилятора всё ok, а правильный код

 Vp01 = ( flag == 1
          ? 5
          : 6
        );
 

В памяти есть ОБА значения и оба могут ПРАВИЛЬНО использоваться, хотя должно быть одно.

При выходе из блока в стеке по идее всего лишь одно значение.
Второе значение в стеке появится при кодогенерации для q=c+a;
Вообщем нужно смотреть ассемблерный код компилятора для этого алгоритма.

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

При выходе из блока в стеке по идее всего лишь одно значение.

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

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

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

Любой современный компилятор выведет предупреждение.

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

Любой современный компилятор выведет предупреждение.

Стандартный gcc-10 не выдал.

-Wextra -Werror -fanalyzer на компилятор и все, в рамках обучения почти все проблемы С с неоднозначностью и отладкой будут убраны.

Это называется, преодолевать самим собою созданные себе проблемы. ССЗБ, однако.

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

Это называется, преодолевать самим собою созданные себе проблемы. ССЗБ, однако.

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

А уж при обучении такое точно нужно указывать, в паскале не знаю как с проверкой всего этого, он вроде и строже, а с другой стороны сомневаюсь что там есть аналог -fanalyzer, и многих проверок из -Wextra.

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

-Wextra -Werror -fanalyzer на компилятор и все, в рамках обучения почти все проблемы С с неоднозначностью и отладкой будут убраны.

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

проблема у меня в ;

Тут тоже несложно. В Паскалях, в отличие от, «;» является разделителем операторов. От лишнего разделителя почти ничего не меняется.
А с if получается прямо видимое отличие из-за попытки вставить разделитель внутрь оператора, не надо так делать.

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

_start это метка на начало программы в elf. Ее не существует физически, но это стандартное имя у gcc вроде, ну метка входа очевидно и у fpc есть, это было все про нее.

В паскале мне понятно что begin, end необязательны, а вот со знаком ; уже вопросы.

bormant писал кратко, но зачем он поставил после последнего end точку с запятой, там же конец программы потом?

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

Знать как запускается программа вредно? А по моему это так же важно, как важно знать как именно std::cout выводит строку.

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

Спасибо за поддержку моего мнения, я тоже считаю что #include и std::cout знать не обязательно что бы решать квадратное уравнение.

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

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

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

Я не увидел ни одного аргумента с Вашей стороны, ну кроме того, что Вам и так все понятно. Типичное ГЧС.

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

я тоже считаю что #include и std::cout знать не обязательно что бы решать квадратное уравнение.

Ну дык, потому и следует использовать Паскаль, а не C++.

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

Знать как запускается программа вредно?

Надо. Но не в момент, когда только-только приступили к изучению, как записать алгоритм… на бумажке на ЯП.

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

С Бейсиком тоже неловко вышло ;)
Желание объявить переменные через Dim выльется в чуть более громоздкую конструкцию:

Dim a As Double, b As Double, c As Double, d As Double

Вот такой он, Option Explicit, бессмысленный и беспощадный, в сравнении с DEFDBL ;)

https://learn.microsoft.com/en-us/office/vba/language/reference/user-interfac...

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

По поводу структурного If с Бейсиком тоже неловко вышло:
End If — это 2 слова, через пробел,
ElseIf — тут нормально, без пробела.

;)

https://learn.microsoft.com/en-us/office/vba/language/reference/user-interfac...

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

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

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

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

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

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

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

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

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

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

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

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

Обо что я и говорю.

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

Давай напрямую, у вас с вторым челом который тут топит за паскаль, очень странные аргументы. Почему 2 минуты, почему #include должен объяснятся на первом уроке? Я понимаю почему, потому что вам так кажется правильным, но слабовато для того что бы делать паскаль стандартным, и живые языки с кучей материалов и примеров не пущать.

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

почему #include

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

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

В питоне как раз #include и есть, интерфейсы были хороши в 1970х, сейчас вообще хорошо бы позволить компилятору ради оптимизации прошерстить все, и построить оптимальный код. Ну и напомню что в C++ они есть.

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

Почему 2 минуты, почему #include должен объяснятся на первом уроке?

Я вам УЖЕ это объяснил: потому что НЕ должно быть чего-то, что учитель НЕ может объяснить кратко и понятно «прямо сейчас». Это не программирование, это МЕТОДОЛОГИЯ обучения.

Потому если у нас есть 2 инструмента, один из которых не имеет «магии», а второй просто наполнен ею, то выбор ДЛЯ ОБУЧЕНИЯ очевиден.

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

Какой смысл в «примерах», если для их понимания придётся сначала изучить то, что они, примеры, должны были бы проиллюстрировать?!

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

Это не зеркалирование это именно что глупость.

sabacs
()
Ответ на: комментарий от MOPKOBKA
MODULE Areas;

(* Coronado Enterprises - 1987 *)

FROM Terminal2 IMPORT WriteString, WriteChar, WriteLn, ReadChar,
                      WriteReal, ReadReal;

VAR InChar, CapInChar : CHAR;

(* ************************************************ Area Of Square *)
PROCEDURE AreaOfSquare;
VAR Length, Area : REAL;
BEGIN
   WriteString("Square    Enter length of a side : ");
   ReadReal(Length);
   Area := Length * Length;
   WriteLn;
   WriteString("The area is ");
   WriteReal(Area,15);
   WriteLn;
END AreaOfSquare;

(* ********************************************* Area Of Rectangle *)
PROCEDURE AreaOfRectangle;
VAR Width, Height, Area : REAL;
BEGIN
   WriteString("Rectangle    Enter Width : ");
   ReadReal(Width);
   WriteLn;
   WriteString("Enter Height ");
   ReadReal(Height);
   Area := Width * Height;
   WriteString("      The area is ");
   WriteReal(Area,15);
   WriteLn;
END AreaOfRectangle;

(* ********************************************** Area Of Triangle *)
PROCEDURE AreaOfTriangle;
VAR Base, Height, Area : REAL;
BEGIN
   WriteString("Triangle    Enter base : ");
   ReadReal(Base);
   WriteLn;
   WriteString("Enter height : ");
   ReadReal(Height);
   Area := 0.5 * Base * Height;
   WriteString("      The area is ");
   WriteReal(Area,15);
   WriteLn;
END AreaOfTriangle;

(* ************************************************ Area Of Circle *)
PROCEDURE AreaOfCircle;
VAR Radius, Area : REAL;
BEGIN
   WriteString("Circle      Enter Radius : ");
   ReadReal(Radius);
   WriteLn;
   Area := 3.141592 * Radius * Radius;
   WriteString("The area is ");
   WriteReal(Area,15);
   WriteLn;
END AreaOfCircle;

(* ************************************************** Main Program *)
BEGIN
   REPEAT
      WriteLn;
      WriteString("Input the first letter of the selection");
      WriteString("and press Enter.");
      WriteLn;
      WriteString("Select shape: Square Rectangle Triangle ");
      WriteString("Circle Quit");
      WriteLn;
      WriteString("Requested shape is ");
      ReadChar(InChar);
      CapInChar := CAP(InChar);           (* Get capital of letter *)
      CASE CapInChar OF
        'S' : AreaOfSquare;    |
        'R' : AreaOfRectangle; |
        'T' : AreaOfTriangle;  |
        'C' : AreaOfCircle;    |
        'Q' : WriteString("Quit program");
              WriteLn;
      ELSE
         WriteChar(InChar);
         WriteString(" Invalid Character ");
         WriteLn;
      END;
   UNTIL CapInChar = 'Q';
END Areas.

Так лучше?

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

Не понял что должен показать мне этот код, совсем.

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

осознать трудоёмкость работы программиста

Совершенно верно, это главное.

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

Вот в этом и состоит недостаток учебных языков

В мире не существует никаких «учебных» языков программирования.

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

В мире не существует никаких «учебных» языков программирования.

В мире существует множество языков единственной целью создания которых является обучение и изначально не имеющих никаких перспектив практического использования, например Лого или российский КуМир. Вы можете объяснить почему я и другие граждане не можем называть их учебными? Это чем-то не соответствует действительности или нарушает какой-то закон? Или оскорбляет ваши религиозные чувства? С полным перечнем учебных языков рекомендую вам ознакомиться по адресу https://ru.wikipedia.org/wiki/Учебный_язык_программирования. Там и Паскаль Ваш есть)) С Паскалем разумеется не все так просто, отнесение его к учебным как минимум требует указания временного отрезка и локации. В 70-ых и 80-ых он был реально востребован. Но по моему мнению как минимум с середины 90-ых в этой стране в большинстве случаев использовался для обучения студентов именно как учебный без перспектив или даже какой-то надежды практического использования. Т.е. студентов обучали Паскалю даже не скрывая что он им нигде не пригодится, после сдачи экзамена можно его сразу забыть и им самим или на производстве нужно будет переучиваться на «взрослый» язык.

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

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

У Вас совершенно не правильное мнение. На производстве полно кода на Паскале, тем более в 90-е.

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

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

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

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

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

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

Я этот аргумент слышал кучу раз. Но ещё Маркс сказал, что практика — единственный критерий истины. И тут-то как раз получается, что паскаль «не зашёл» никому в общемировом масштабе, что бы там ни говорил про качество учебных материалов о нём и о нём самом.

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

Почему не зашёл, очень даже зашёл.

То что он конкуренцию не выдержал и не стал топовым языком – это другой вопрос.

На счёт практики. Научиться красить кнопки – это практика, но это тебя к научению программированию не приблизит. Вопрос целей.

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

ещё Маркс сказал, что практика — единственный критерий истины

Маркс дело говорил

паскаль «не зашёл» никому в общемировом масштабе

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

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

паскаль «не зашёл» никому в общемировом масштабе

Ну да, один из самых популярных языков прикладного программирования в 80-х и кучей реализаций и диалектов никому не зашёл. Просто в 90-х потребности и требования изменились. А borland не подсуетился и не предоставил бесплатные и дешёвые варианты своих IDE для Delphi из-за чего порог вхождения был очень дорог.

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

Просто в 90-х потребности и требования изменились. А borland не подсуетился и не предоставил бесплатные и дешёвые варианты своих IDE для Delphi из-за чего порог вхождения был очень дорог.

Не позже ли? По-моему, вторая половина 90-х и все 00-е - золотой век дорогущих комбайнов на стероидах от Microsoft и Borland. Или мы, провинциальные мамкины формошлепы-недовойтишники, просто по инерции бегали за дисками по 10 гривен, пока весь мир отказывался от этих комбайнов за тысячи баксов?

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

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

тонна джаваскриптистов на рынке, в подтверждение твоих слов, которые вообще программировать не умеют

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

Так они не на рынке, а без работы сидят. Во фронт сейчас довольно тяжело войти стало.

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

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

Вот Кроко, при всех его припадках, вполне разумно, кмк, перед сишкой форсит именно паскаль

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

Это неплохая практика. Очень помогает начать с того же эсперанто

unname
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.