LINUX.ORG.RU

Лекция Юрга Гуткнехта «Проект Оберон: 30 лет» в Москве

 , , gutknecht,


3

5

24 октября в Университете Дмитрия Пожарского пройдёт лекция швейцарского профессора Юрга Гуткнехта, соавтора языков Pascal и Oberon, коллеги легендарного Никлауса Вирта.

В программе — совместная лекция и дискуссия «Проект Оберон: 30 лет» Лекторы: Президент Швейцарского общества информатики, профессор ETH Zurich, д-р Юрг Гуткнехт и Ведущий научный сотрудник отдела теоретической физики ИЯИ РАН, координатор проекта «Информатика-21», д.ф.-м.н. Фёдор Васильевич Ткачёв.

17:30, ЦЭМИ РАН (Нахимовский проспект, 47), аудитория 520. Регистрация и пропуск не требуется.

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



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

если сообщество забросит — я не осилю в одного тащить форк дебиана. То есть, я не свободен, а зависим.

Зависим был ты и от sysvinit в дебиане, только она тебе нравилась. В общем, зависимость можно лишь уменьшить, а не избавиться. Дистрибутивы Slackware, CRUX могут тебя сделать более свободным в том смысле, что ты потянешь мэйнтейнинг и форк, вложив существенно меньше усилий чем в дебиан и его форки. В void тоже, хотя больше чем в в предыдущие два.

По сабжу: читал срач с удовольствием)

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

Я посыл понял, но правильным было бы узнать напрямую какой профит от избавления от goto/break/continue (а ещё и множественных return). Они усложняют поток управления, а усложнее потока управления затрудняет верефикацию, анализ и/или тестирование программы. Вместе с применением инвариантов можно и упростить себе жизнь, и уменьшнить количество ошибок, и даже в некоторых случаях гарантировать отсутствие ошибок.

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

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

Ага, а goto - заменитель jmp, только ущербный. Между функциями не прыгает, гадёныш. А вдруг мне понадобится? Goto - это jmp, которому обрезали опасную возможность перехода в тело другой функции, break и continue - это следующий шаг.

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

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

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

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

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

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

Ты что-то более качественное знаешь и можешь это логически обосновать?

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

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

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

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

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

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

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

Мы сейчас с тобой общаемся текстовыми сообщениями на форуме. Для этого достаточно компьютера уровня спектрума. А для него и ОСь и компиляторы и браузеры вполне по силам даже одному человеку. И даже открытую хардварю можно вполне. И свободное производство pcb и прочих корпусов.

Тогда это будет свобода, не раньше.

Вспомните зачем это Столлман начинал — чтоб у нас наше ПО не отняли. А у нас отняли — мы и не заметили

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

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

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

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

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

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

на паскале всё с нуля пиши без использования либ, ну ка давай попробуй хватит ныть

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

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

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

лучше синтаксиса C ничего ещё не придумали. если для тебя так важно писать ф-цию в ф-ции запили как строустрап транслятор в код на C.

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

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

на паскале всё с нуля пиши без использования либ, ну ка давай попробуй хватит ныть

И ты ещё называешь себя нормальным программистом:)))))))) В сраче уже сказали как правильно обращаться с внешними зависимостями. Твой старший семпай понял написанное и его переклинило, включил игнорялку. А ты видать, такой опытный, ничего не понял, раз продолжаешь гнать свою пургу.

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

А это — критерий что-ли? :)

Да. Один из.

РН «Союз», вон, с 73 года, а архаикой никак не назовешь.

Ты в курсе, что нынешний Союз от тогдашнего отличается чуть ли не больше чем C++17 от стандарта 80-х годов?

Откуда ты знаешь почему они решили включить goto в плюсы?

Не включить, а оставить в плюсах.

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

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

Ты наверно и мизинчик оттопыриваешь когда кофе пьёшь?

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

Складывается впечатление, что этот iluha16 свято верит в то, что изучение алгоритмического языка и есть самое что ни наесть обучение программированию. «Наивный чукотский вьюнош»™. Такого, боюсь, даже армия не исправит.

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

В умных ЯП высокого уровня _не_ используют сишные заголовки напрямую. Вместо них используют свои собственные модули импорта, в которых по возможности не используются стрёмные внешние фичи. Тоже самое про ядро ОС - всё самое нужное и проверенное уже есть в модуле, оттуда и берёшь что надо. Из заголовков в модуль что-то прописываешь только если очень припрёт или нет готового модуля. Из этого получается, что если ты используешь компилятор пятилетней давности, то ты и из новых либ и ядер по умолчанию тянешь фичи, которым не меньше 5 лет, а то что добавили туда позже, идёт лесом. В сях ты не можешь нажать на кнопку в редакторе и заблокировать в заголовках самые новые или считающиеся глючными фичи - они же там никак не промаркированы. А если не использовать сишные заголовки для сишных либ, то такое становится возможным!

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

Да много чего есть. Начиная с какой-нибудь прикладной математики или цифровой электроники. И заканчивая областями весьма далекими от собственно программирования и IT. Вроде бухучета, или ТОЭ, или ТММ, или оптики...
А пользование ЯП — всего лишь навык. Да, необходимый. Типа того, как (когда-то?) конструктору нужно (было?) карандаши уметь правильно затачивать.

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

я против прикладной математики и электроники ничего не имею. то что кроме ЯП нужно знать систему с которой работаешь и алгоритмы которые следует реализовать очевидно. спор идёт о ненужности паскаля. причём я даже не берусь утверждать что кроме C/C++ ни на чём более программировать нельзя, заглядываю и в другие языки хотя вот сейчас сосредотчился на изучении программирования именно на этих ЯП и библиотек, системных вызовов unix. интересуюсь в первую очередь именно ими потому что они повсеместно используются и достаточно низкоуровневые. с моим складом ума мне гораздо интереснее изучать когда понятно как всё работает изнутри, а читать про готовые ф-ции которые магическим образом что то делают не так интересно. паскаль однозначно кал, он меня изрядно раздражал на первом курсе хотя то что от меня требовалось в рамках учебной программы я на нём выполнил и даже не скажу что это сложно, скорее неприятно после работы с C/C++. таким образом нельзя сказать что я обсираю то с чем не знаком. изучить всё в деталях невозможно и если после краткого знакомства приходишь к выводу что это (1. неинтересно) и при этом ещё (2. ненужно) а к тому же ещё и (3. противно) не вижу смысла дальше напрягаться. так что мне непонятна позиция некоторых тут отписавшихся которые орут что я говорю о том чего не знаю. знаю, не в деталях конечно. но если ты зашёл в тему надеясь здесь увидеть спор Вирта и Страустрапа, остаётся тебе только посочуствовать.

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

приведи пример глючных фич

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

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

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

ЯП тут не причём.

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

если грамотно делать надо тесты писать а не «если открывается и минуту не падает» хаха

И прибьёшь ты свою программу гвоздями к конкретной сборочке линукса. А потом придут обновления и проводи свои тесты заново а потом переписывай программу, а потом снова и снова. От того в линуксе такое «развитие» ПО, больше похожее на бег на месте а то и назад. Кроме того, ты проводил тесты на своей сборочке, а на других их придётся проводить другим людям, каждый раз. Сколько лишней работы куче народа ты изобрёл!

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

А это — критерий что-ли? :)

Да. Один из.

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

Для иллюстрации этой мысли я привел три технологии: РН Союз (о нем ниже), молоток и Евклидову геометрию. О двух последних ты ловко так умолчал, а зря: на мой взгляд они выразительнее.

Ты говоришь: Си устрарел, я старше него. Я говорю: почему это, вдруг, стало критерием, ты и старше молотка, молоток устарел?

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

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

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

РН «Союз», вон, с 73 года, а архаикой никак не назовешь.

Ты в курсе, что нынешний Союз от тогдашнего отличается чуть ли не больше чем C++17 от стандарта 80-х годов?

Нет, я не в курсе. Я тебе страшное скажу: и ты не в курсе. Не ты не я не являемся признанными авторитетами по Союзу. Ни ты не я не видели чертежей 73 и 2017 года. И тебе и мне КАЖЕТСЯ про Союз так-то и так-то. То есть у нас ничем не подтвержденное личное МНЕНИЕ.

Положим, тебе КАЖЕТСЯ, что Союз переделали на 90%, а мне КАЖЕТСЯ что на 10%. И чем твое КАЖЕТСЯ лучше моего?

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

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

Чтобы не быть голословным: известно ли тебе заменили в Союзе микросхемы с советских на современные импортные аналоги?

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

Откуда ты знаешь почему они решили включить goto в плюсы?

Не включить, а оставить в плюсах.

Ты к слову докапался? Не включить о оставить? Сознательно игнорируешь вопрос? Откуда тебе известна причина по которой goto решили оставить?

Давай снова честно: причина тебе неизвестна, ты сам решил что она тебе известна и теперь свою мысль используешь как аргумент в споре. А это твое МНЕНИЕ, а не Страуструпа.

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

Читай Страуструпа.

О как ты запел. Теперь goto оказывается оставили для совместимости с Си.

Давай в третий раз по-честному: ты не знаешь мыслей Страуструпа, у тебя просто есть МНЕНИЕ на этот счет. Твое мнение, не его.

Читай Страуструпа.

Ну ты мне покажи где в его фундаментальном труде написано: «я решил оставить goto для совместимости, а так-то я считаю goto дурным инструментом.»

Покажешь, я соглашусь, что ты был прав и я просто невнимательно читал Отцов, не покажешь — давай соглашайся, что ты пытался использовать собственное МНЕНИЕ под видом мнения Страуструпа.

Давай, на минуту, отложим сам вопрос хорошо goto или плохо и разберемся с источником тезиса.

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

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

Ты наверно и мизинчик оттопыриваешь когда кофе пьёшь?

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

Я ведь тоже могу сказать: «А вот Энштейн говорил, что goto замечательно», «Наполеон писал о пользе дифференцирования, интегрирования и безусловных переходов»

Но ведь это будет неправдой. и ты не постесняешься мне об этом рассказать.

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

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

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

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

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

Ты утверждаешь что C/C++ всасывают пылесосом всё говно из системы. Да только это проблема не C/C++ а всей модели разработки дистрибутивов. Ты действительно думаешь что если всё переписать на паскаль при текущей модели разработки что то изменится? У тебя в твоём паскале всё отлично только когда ты используешь в проге полторы либы и те апдейтятся раз в десятилетие потому что нахрен это всё никому кроме тебя не здалось. А C/C++ тянут на себе всё вокруг чего твои полторы паскальных библиотеки являются всего лишь обёртками.

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

Прыжки между функциями в программировании применяются постоянно. Вызов функции из функции, это по твоему что?

А простой if с блоком за ним что если не прыжок? Тем не менее тебе нужен goto. Будь последователен, требуй честного джампа. Вообще можно придумать полезное применение, например хвостовая оптимизация взаимной рекурсии.

И так каждый раз при чтении - увидел break и следи куда оно ведёт - больше, больше ручной работы при каждом «улучшении»!

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

Человек не практиковавший гото рассказывает ужасы об особенностях его применения.

Вообще говоря, я осуждаю многие вещи, которых не пробовал, ну там башкой вниз из окна не падал, например. Но конкретно с goto ты не прав: моим первым компьютером был Спектрум, поэтому goto/gosub я накушался.

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

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

Паскаль это хороший язык развивающий логику и понимание процессов

Ты вон ниже из наличия заголовочных файлов вывел эксплуатацию программистов. Не заметно как-то логики.

Ты что-то более качественное знаешь и можешь это логически обосновать?

Хорошее очень сложно улучшить. Паскаль улучшить элементарно: просто замени begin/end на фигурные скобки и уже получишь язык, на котором и писать и читать проще. Вот прямо так, одна тупейшая замена улучшает язык. А ещё неплохо позволить локальные переменные внутри блока, вообще позволив объявлять переменные близко к месту, где они понадобятся упростит и чтение и написание кода. А вообще, то что ты считаешь паскалем, это вовсе не паскаль, а результат кучи улучшений. Оригинальный паскаль не имел дефолтной ветки в кейсе и, что тебе как любителю писать код без плана очень понравится, использовал точку с запятой как разделитель команд + не знал пустой команды, так что в последней команде перед end точка с запятой не ставилась.

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

просто замени begin/end на фигурные скобки и уже получишь язык, на котором и писать и читать проще

Какая чудная ересь :) Фигурные скобки ничем не лучше бегин эндов - составной оператор. Вот в модуле, например, его уже нет.

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

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

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

А вот с этим сложно не согласиться, если мы о Delphi, Freepascal говорим.

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

Это не ответ на ваше сообщение.
Не претендую на априори правильность суждений.

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

В контексте выше сказанного Вирт и добавил в Паскаль «begin» и «end»
/кстати никто из 1С-ников не жалуется на то, что программы пишутся на русском языке (потому что - удобно)/.

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

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

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

Ok. «Наивного чукотского вьюноша»™ — забираю обратно.
Про «спор ... о ненужности паскаля» — это чересчур громко сказано. Пока все твои аргументы: а) преподы плохие; б) и вообще мне не нравится. Самому не смешно?
Когда я начинал зарабатывать себе на жизнь программированием в начале 90-х, с Turbo Pascal сталкивался много и по вполне себе практическим поводам. Начиная с участия в разработке пакета для тепловых расчётов приборов в одном режимном КБ, через кучу всяких мелких шабашек и заканчивая АСУ-чиванием одного небольшого коммерческого банка.
Про «спор Вирта и Страустрапа» слышать как-то не доводилось. А вот цитату из Денниса Ритчи на закуску — пожалуйста: «Я утверждаю, что Паскаль очень близок языку Си. Одни, быть может, этому удивятся, другие — нет... Даже интересно, насколько они близки друг другу. Эти языки больше расходятся в деталях, но в основе своей одинаковы. Если вы взглянете на используемые типы данных, а также на операции над типами, то обнаружите очень большую степень совпадения... И это несмотря на то, что намерения Вирта при создании Паскаля весьма отличались от наших в языке Си. Он создавал язык для обучения, а потому преследовал дидактические цели. И, как я заметил это по Паскалю и по его более поздним языкам, Вирт был во власти своего стремления ограничить выразительные средства как можно сильнее...» (выдрано из «Мир ПК» 2001/4).

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

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

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

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

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

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

как вариант можешь скопировать конкретные версии либ в свой код. тебе придётся мэнтэйнить их самому в этом случае (если в версии обнаруживается проблема патчить). так делают большие проекты. кто собирал браузеры из исходников знает что есть опции типа --with-system-jpeg, --with-system-libevent, --with-system-sqlite которые не рекомендуются к использованию.

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

мне кажется этой цитатой ритчи в вежливой форме говорит что паскаль говно

Как говорится, смотрю в книгу - вижу фигу.

профессора будут друг друга на хер слать

просто ты профессоров плохо знаешь, по малолетству :)

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

да это не такого уровня профессора как те которые слали тебя нахер в советском институте или где ты там обучался, по старпёрству

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

да это не такого уровня профессора

Просто ты жизни еще не знаешь...

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

так что по сути мне кажется этой цитатой ритчи в вежливой форме говорит что паскаль говно.

АААААА!!!!!

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

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

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

Фигурные скобки ничем не лучше бегин эндов - составной оператор.

Ну, по такой логике можно точку с запятой заменить на слово endstatement. Вводить неудобно? Не беда, на спектруме 16-48кб ключевые слова Бейсика кодировались одним байтом и, соответственно, вводились и удалялись одним нажатием. Ну как, ничем не хуже будет?

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

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

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

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

Вводить неудобно?

переменные называешь x1, x2, x3... функции f1, f2, f3… и т.п?

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

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

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

Ты утверждаешь что C/C++ всасывают пылесосом всё говно из системы. Да только это проблема не C/C++ а всей модели разработки дистрибутивов.

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

Ты действительно думаешь что если всё переписать на паскаль при текущей модели разработки что то изменится?

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

У тебя в твоём паскале всё отлично только когда ты используешь в проге полторы либы и те апдейтятся раз в десятилетие потому что нахрен это всё никому кроме тебя не здалось. А C/C++ тянут на себе всё вокруг чего твои полторы паскальных библиотеки являются всего лишь обёртками.

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

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

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

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

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

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

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

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

Фигурные скобки ничем не лучше бегин эндов

static function cpuhp_invoke_callback
arglistbegin
	cpu unsigned int nextarg
	state enum cpuhp_state nextarg
	bringup bool nextarg
	node pointer struct hlist_node nextarg
	lastp pointer pointer struct hlist_node
arglistend
returning int
begin
	var st pointer struct cpuhp_cpu_state assign per_cpu_ptr parambegin addr cpuhp_state nextparam cpu paramend nextstatement
	var step pointer struct cpuhp_step assign cpuhp_get_step parambegin state paramend nextstatement
	var cbm ponter function arglistbegin 
		cpu unsigned int nextarg
		node pointer struct hlist_node
	arglistend nextstatement
	var cb ponter function arglistbegin 
		cpu unsigned int nextarg
	arglistend nextstatement

	if st indirectfield fail is_equal state then begin
		st indirectfield fail assign CPUHP_INVALID nextstatement

		if not parenthesesbegin bringup ifthen step indirectfield startup field single else step indirectfield teardown field single parenthesesend then
			return 0 nextstatement

		return minus EAGAIN nextstatement
	end nextstatement
...
...
...

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

Давай снова честно: причина тебе неизвестна, ты сам решил что она тебе известна и теперь свою мысль используешь как аргумент в споре. А это твое МНЕНИЕ, а не Страуструпа.

Иди читай Страуструпа «Дизайн и эволюция C++».
Он прямо пишет во второй главе что новый язык должен был поддерживать _все_ особенности C. «Все» это значить все.

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

А простой if с блоком за ним что если не прыжок? Тем не менее тебе нужен goto.

Ну и как без гото впрыгнуть в этот блок не испохабив всю конструкцию?

Будь последователен, требуй честного джампа.

Ассемблер нужен не всем.

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

Эээээ....

FOR I2:=0 TO KOLP-1 DO BEGIN
                       Z5[I2]:='';
                       FOR C2:=1 TO ADRESA2[0] DO BEGIN
                                          IF ADRESA3[C2]=1 THEN GOTO 2;
                                          E2:=ADRESA2[C2];
                                          FOR R2:=1 TO LENGTH(S5[I2]) DO BEGIN
                                              IF QQ3[E2+R2+1]<>ORD(S5[I2,R2]) THEN GOTO 2;
                                              IF QQ3[E2+R2+1]=39 THEN BEGIN
                                                                      Y2:=1;
                                                                      ADRESA3[C2]:=1;
                                                                      FOR T2:=R2+1 TO X64 DO BEGIN
                                                                                             IF QQ3[E2+T2+1] {=10} IN [10,13] THEN GOTO 1;
                                                                                             Z5[I2]:=Z5[I2]+CHR(QQ3[E2+T2+1]);
                                                                                             IF QQ3[E2+T2+1]=39 THEN GOTO 1;
                                                                                             INC(Y2);
                                                                                             END;
                                                                      GOTO 1;
                                                                      END;
                                                                         END;
2:
                                                END;
1:
                       END;
По моему, этот цикл прекрасен, улучшать его нет смысла пока не изменится задача. Но каждый раз вспоминать, что делает каждый винтик и каждый ножик в этом механизме обработки самопальной минибазы данных - никогда ещё палач Бормана не был так близок к провалу, его тягу к садизму чуть не заметили посторонние люди.

break

fot a2:=1 to 1000 do begin
                                 if HrjuHrjuHrju(a2) then break;
                                 if a2=1000 then break;  //не даём циклу завершиться чтобы компилятор не занимался оптимизацией переменной a2 и не портил её содержимое
                                 end;
Writeln(a2);

Но конкретно с гото такая тема... При наличии нормального языка он не нужен вообще.

То есть создатели языка должны были угадать, какую базу данных в будущем захочет использовать Напильник и, чтобы он не описывал через гото сложные механизмы, идеологически разрешёнными способами, самим реализовать механизмы работы с нею? Или же заставить всех сидеть на xml а за использование других форматов расстрел через повешение? Это уже жаба какая-то получается.

Ты вон ниже из наличия заголовочных файлов вывел эксплуатацию программистов. Не заметно как-то логики.

Ты просто страшишься такую логику принять. Например, в дистрибутиве обновилась libpng, должен ли я после этого написать программу так, чтобы она не работала с libpng прошлогодней версии? Какая мне, да и возможным пользователям программы, огромная польза от использования здесь и сейчас новых фич этой либы? Ускорение в 0.0001%? А заметят ли его обладатели нового железа, притом что обладатели не нового, скорее всего поимеют проблемы.

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

Хорошее очень сложно улучшить. Паскаль улучшить элементарно: просто замени begin/end на фигурные скобки и уже получишь язык, на котором и писать и читать проще.

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

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

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

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

У паскаля есть реализации. В древних, описанных в книжках, писали капсиком, что отлично смотрится при соответствующих шрифтах. Это понравилось. Но остальная недоработанность... С тех времён у компьютеров стало больше ресурсов, и их необходимо освоить, что разработчики паскаля в дальнейшем и сделали. А если это сделал не Вирт лично, то как-бы пофиг, главное что у людей получилось. Отлично помню как в седьмом борландпаскале было не дорваться до памяти в защищённом режиме - в книжках писали только фрагменты программ, по которым не удавалось восстановить работоспособный пример. Как только запишешь в память больше данных, как повисает дос - пишется хз куда и читается хз откуда, от чего портится работа системы, но в книжках всё зашибись, всё прекрасно, классики показали фрагмент якобы рабочего кода - РАДУЙТЕСЬ!!!! Спасибо, лучше доработанными версиями с кучей примеров в комплекте пользоваться.

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

Ну и к чему это?

Это, как я понимаю, понятнее?

for(;P("\n").R-;P("\ "))for(e=3DC;e-;P("_ "+(*u++/8)%2))P("| "+ (*u/4)%2);

А вот это еще лучше?

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
 .>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
 ------.--------.>+.>.

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

как вариант можешь скопировать конкретные версии либ в свой код.

Чем меньше таких динамических либ, тем лучше.

Napilnik ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.