В основной состав GCC принят фронтэнд m2 и библиотека libgm2, позволяющие использовать штатный инструментарий GCC для сборки программ на языке программирования Modula-2. Поддерживается сборка кода, соответствующего диалектам PIM2, PIM3 и PIM4, а также принятому ISO-стандарту для данного языка. Изменения включены в ветку GCC 13, релиз которой ожидается в мае 2023 года и помимо Modula-2 будет включать поддержку языков C, C++, Objective-C, Fortran, Go, D, Ada и Rust...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=58357
Скоро перепишу на раст!
> перепишуORLY?! Держи нас в курсе!
Это намекает на модульность языка ...
Почему-то Оберон обходят стороной. Pascal и modula имеют отличные реализации, а oberon 1,5 любительских поделок с 1,5 архитектурами. Сейчас прибежит товарищ и будет убеждать, что оберон готов для продакшена. Нет, не готов. GCC > все реализации oberon.
1) Далеко не 1.5 реализации
2) Далеко не 1.5 платформы
3) Оберон не готов для продакшена
4) Не обходят стороной. Модула-2 -- это стандарт ISO. У Оберона нет официальных стандартов.
5) Товарищ не может прибежать, потому что он никуда не убегал.
> нет официальных стандартов.Можешь объяснить, что такое «официальный стандарт»? Кто должен подписать?
Могу. Официальный стандарт -- это ISO с какими-нибудь циферками. А утверждает IEEC -- международный комитет инженеров по электричеству.Вот когда такой стандарт будет на Оберон -- вот тогда будет норм.
IEEE
>Модула-2 -- это стандарт ISO. У Оберона нет официальных стандартов.Ну, строго говоря, у Rust тоже нет официальных стандартов. И всё же его принимают в GCC.
Пока не будет стандарта ISO -- Раст в серьёзные сферы не пустят. А учитывая, что ещё экосистема бурлит и пенится -- лет через 20 заходите. Если не помрёте.
Наличие компилятора в gcc ещё ничего не говорит ни о качестве самого компилятора, ни о качестве стандартных либ, ни о качестве генерируемого кода.
NodeJS много ISO стандартов имеет? Вот и rust то же самое.
Что еще модненького в свою пользу приплетете? Еще чей успех пригреете к себе? )
> Вот и rust то же самоераст в одном ряду с нодой и вротпрессом... шикарно...
Нет языка программирования node js. На JavaScript есть несколько стандартов.
На серьёзность сферы стандарт покажи лучше, демагог.
> в серьёзные сферы не пустят
> Наличие компилятора в gccРасскажи ка хоть про одну серьезную сферу куда пускают gcc но не пускают с rust?
Медицинское оборудование.
без пруфов, ок.Очередной балабол.
Я тут глянул, интереса для, есть ли ISO стандарт для Java - не нашёл. И тем не менее, Java используют в "серьёзных сферах". У OCaml-а нет ISO стандарта, и этот язык тоже используют в "серьёзных сферах". У PHP нет ISO стандата - используется в "серьёзных сферах". У Python нет ISO стандарта - используется в "серьёзных сферах".
Думаю, под "серьёзными сферами" Брат Антон имеет ввиду критическое для жизни людей про оборудование, типа АЭС
Есть ISO на Ruby 1.8. Потому что японцам очень захотелось.Будете делать критические для жизни людей программно-аппаратные комплексы на Ruby? :-)
Это в которых винда на компах крутится? Ну, это слишком серьёзно. Если же речь идёт об управлении автоматикой, нормальные люди туда вообще ЯП не пускают, только специализированное тщательно отлаженное железо, работающее по формулам из теории управления, а не каракулям опеннетовских кодеров в vim.
> Это в которых винда на компах крутится?Тем где используется Модула-2/Оберон -- венды не стояло рядом даже близко. Там ОСи, которые написаны на Модула-2/Оберон. Внезапно, не правда ли?))
Охотно верю, но я говорил про это:
https://finance.yahoo.com/news/s/fukushima-nuclear-plant-ord...и другие подобные случаи. И вообще, я про Модулу и Оберон ничего не говорил. Прочитайте свой собственный комментарий, с которого ветка пошла.
> Охотно верю, но я говорил про это:
> https://finance.yahoo.com/news/s/fukushima-nuclear-plant-ord...
> и другие подобные случаи. И вообще, я про Модулу и Оберон ничего
> не говорил. Прочитайте свой собственный комментарий, с которого ветка пошла.Читаю ещё раз:
>>>...
>>>Думаю, под "серьёзными сферами" Брат Антон имеет ввиду критическое для жизни людей про
>>> оборудование, типа АЭС
>>Это в которых винда на компах крутится? Ну, это слишком серьёзно.
>Тем где используется Модула-2/Оберон -- венды не стояло рядом даже близко.А теперь покажи мне в приведённой ссылке слова Modula-2 или Oberon?
То, что на Фукусиме так американцы станцию спроектировали -- какое это имеет отношение к сабжу?
О JSR видимо ничего не слышал?
> Java Specification Requests (JSRs) – the formal documents that describe proposed specifications and technologies for adding to the Java platform.
> О JSR видимо ничего не слышал?Прошёлся я по JSR, да, раньше ничего не слышал. Конечно, это хоть какая-то стандартизация, но не ISO стандартизация никоим образом.
И не ГОСТ, ага.
Всяко не хуже RFC.
> Всяко не хуже RFC.Если не ошибаюсь, речь шла про ISO? Поправьте меня, пожалуйста.
Речь шла о стандартизации вообще, не души.
> Речь шла о стандартизации вообще, не душиПриведу цитату от Брата Анона:
> Пока не будет стандарта ISO
Ни о какой "вообще" стандартизации речи не шло.
Спасибо, теперь всё понятно. (Без сарказма.)
Строго говоря, включение в гцц Оберона (как и модулы, как и всего остального кроме сишки) не нужно. Все пользуются "нативными" компиляторами, так как они эффективней и удобней. Слышал когда-нибудь чтобы кто-то го или аду в гцц использовал? Вот то-то и оно.
> аду в гццТак её и используют.
Строго говоря GCC (ГНУшная Коллекция Компиляторов) предназначен для коллекционирования хороших компиляторов, и не вам решать что в это множество не включать.
Технически говоря, под e2k перетаскивали именно gccgo, а не golang (причинами не интересовался).
О кстати, а они там его обновили чтоб etcd >= 3.4.15 собирался уже?
Михаил, чесно слово, как это не понимаете почему? От того что Go разрабатывает Google, который по приказу ФЮР может перекрыть кислород этому продукту в России, а с gnu go это будет сделать труднее - это Жирный Раз. Вторая причина может быть технической - в GNU почти все в конечном итоге компилируется внутри себя в gcc или нечто похожее, поэтому легче сопрягать языки от GNU.
Одно из требований для официального first class порта golang - инфраструктура сборки в собственности Гугла.Плюс, как это везде у Гугла, разработчик должен подписать с Гуглом соглашение, по которому он отказывается от копирайта на свой код в пользу Гугла.
См. https://github.com/golang/go/wiki/PortingPolicy
Можно, конечно, просто держать свой форк и мейненить его самостоятельно...
Вообще-то, внезапно, используют. И Модулу, и Аду, и прикинь -- даже Фортран.
Вот потому ты и не председатель комитета по развитию gcc. А был бы им то знал, что только Ада и Модула позволяют gcc зайти к серьёзным пацанам. Серьёзные пацаны серьёзно подкидывают на хлеб с маслом.
> Слышал когда-нибудь чтобы кто-то го или аду в гцц использовал? Вот то-то и оно.Ну вообще-то да, Аду в гцц еще как используют. Точнее, ее вариант под названием SPARK. Это по сути стандарт для написания по-настоящему безопасных и надежных прграмм, по сравнению с которым Rust - это цветочки.
Вы же не думали, что настоящие спецы своего дела в отчаянии сидели и ждали, пока им какие-то мозилловские васяны изобрутут язык для прграммирования ПО самолетов? А до этого, как идиоты, снова и снова наступали на те же грабли, используя недоязыки типа C и C++ с обмазыванием кода всяческими undrfined behavior, выходами за пределы буферов, переполнениями int и прчей дичью - рискуя сотнями миллионов долларов и жизнями людей?
> The main tool for SPARK 2014 (GNATprove) is based on the GNAT/GCC infrastructure, and re-uses almost the entirety of the GNAT Ada 2012 front-end.
>Это по сути стандарт для написания по-настоящему безопасных и надежных прграмм, по сравнению с которым Rust - это цветочкиА развернуть тему можешь? Потому что я тоже так умею в маркетинговый булшит. Что такого есть в Ada, чего не хватает Rust?
Я бы мог тут Раст растоптать по каждому пункту. Начиная от стандартной библиотеки, которая в Аде вылизана, закреплена стандартом, и подписан каждый файл двумя контрольными суммами, через контракты, заканчивая покрытия тестами и формальной верификацией.Причём не только на уровне исходного кода, но и на уровне сгенерировано машинного кода.
Сходи к Рыбину на сайт -- полистай методичку на 400 листов. Если ты поймёшь, что там написано (например, про рандеву), то ты при слове Раст после этого -- будешь каждый раз испытывать рвотные позывы.
А если прочитаешь что-нибудь вразумительное про Модулу-2, то и на Аду ты будешь смотреть как на сверхтяжёлый сундук, от слова Раст тебя будет воротить, как Чубайса от пересмотра итогов приватизации.
Чел, вся информация в сободном доступе в инте. В частности, и причины, по которым Nvidia выбрали Spark вместо Rust. Ребята, которые используют Ada и Spark уж точно не тот контингент, на решения которых влияет мркетинг.Ну, а если ты до сих пор сам не смог погуглит, сравнить, да призадуматься, а просишь, чтобы за тебя все это сделал опеннетный аноним - значит, не так уже тебе и нужна эта информация. Не трать свое время.
Ada выбрали 1.5 NVidia или больше?Почему в фирмах выбирают тот или иной язык? По многим причинам, в том числе и по модным, чтобы быть ни на кого не похожими, или в руководство проектом/направлением продрались бывшие специалисты по этой технологии и т.д. Например, как фирма Wrike, сами писали на Хабр, выбрало для написания своего web-продукта язык Dart и библиотеку AbgularDart, потом года 2 с пеной у рта расписывали как это крута, а потом взяли и сдулись (https://habr.com/ru/company/wrike/blog/551964/) - перешли на более подходящий под это TypeScript (JavaScript).
Раст, который еще не имеет "стандарта" выбрали для включения в ядро Linux, а Ada туда не лезет ни коим боком.
Раст, который еще не имеет "стандарта" выбрали для системных областей и просто для ускорения выполнения критичного к производительности кода сотни тысяч организаций. В фонд развития Раст входят - Майкрософт, Мозила, Амазон, ХуяПуть и т.д.Что имеем по Расту - херовый синтаксис, современный взгляд на разработку безопасных приложений с нулевым оверхэдом для написания системных и критичных по скорости и ресурсам приложений с большим входным порогом.
Что имеем по Ada/Spark - неплохой, но растянутый синтаксис с эдементами ветхозаветной старины, кучей директив (pragm) прямо в коде, направленный на разработку безопасных, но не самых быстроходных программ, на уровне скорости и потребления памяти как у приложений Java, поддерживаемых небольшой группой и используемого также энтузиастами. Входной порог - такой же большой как и у Раст, но со своими тараканами, плюс платные профессиональные инструменты (у Раст, правда, ни платных, и не очень хороших инструментов пока нет)
> Что имеем по Ada/Spark - неплохой, но растянутый синтаксис с эдементами ветхозаветной старины, кучей директив (pragm) прямо в коде, направленный на разработку безопасных, но не самых быстроходных программ, на уровне скорости и потребления памяти как у приложений Java, поддерживаемых небольшой группой и используемого также энтузиастами.Ветхозаветная старина, медлительность, потребление памяти, используется энтузиастами? Господи, чел, ты вообще не ведаешь, о чем говоришь, но пытаешься изображать из себя эксперта.
Тебе же намекнули, что Ада и Спарк уже десятками лет используются в сферах, где безопасность стоит на первом месте, а ты все упрямо пытаешься найти подвох, проводя параллели с типичной коммерческой разработкой. Это вообще две параллельные вселенные в плане решаемых проблем, инструментов, процессов и уровня ответственности.
> Что имеем по Расту - [...] современный взгляд на разработку безопасных приложений
Дружище, ты все-таки не поленись, да погугли хотя бы, как выглядит разработка безопасных приложений (то самое hight-integrity software). Раст к ней никакого отношения не имеет и иметь не может, потому что та горсточка проблем, которые решает Раст, уже была там вызжена на корню еще в те времена, когда создатели Раста пешком под стол ходили.
Ведаю, ведаю о чем я пишу. И про Ариан ведаю. И это - кончай фамильярничать, посланец Ада, твой дружише - он у меня в трусах по утрам стоит.
Опять очередной ыкспэрд про Ариан заливает.
Ну сколько уже можно?!
На Ариан-5 поставили блок от Ариан-4. При этом не провели достаточного количества тестов. Во внутренности блока никто даже не пытался заглядывать. Бортовая система "Ариан-5" -- 32 бита. "Ариан-4" -- 16 бит. Казалось бы, какая фигня, что там может пойти не так? После переполнения значения температуры блок от "Ариан-4" дал команду на самоуничтожение, что является абсолютно предсказуемой и штатной реакцией блока в таких условиях.
ПРИ ЧЁМ ТУТ АДА?
Я Go'шный код gccgo собираю.
На обероне вообще есть какой-то реальный софт? Я про него только евангелистские статьи видел — «смотрите, как надо».
Вообще, заинтересованные люди и должны писать реализацию, но судя по направленности тех статей, им это не особенно надо.
Тебя в гугле забанили?
OS Native Oberon
OS Active Oberon
OS Oberon
Управление активной фазированной решёткой Еврофайтера
Управление БПЛА "Пчела-2"
Управление чёрным ящиком на Ростовской АЭС
Программа дорасчёта в составе АСУ ТП подстанция 110 кВ "Восточная-1" Калининград
Управляющая система на нескольких заводах "Мираторг" Орловская область
Black Box Component Builder (Швейцария-США-Германия-Россия-Китай-Украина)
Система обработки платежей Дойче Банка
Управление каскадом ГРЭС на Амазонке (Бразилия)
Система исследования биологических флоуресцентых растворов (Красноярск)
Система символьных математических расчётов для ядерных исследований (Троицк)
Учебный комплект для школьников с полностью проработанными материалами под целый курс информатики (Троицк)
Графическая система управления АСУ ТП (Нидерланды)
Национальная система управления дорожным движением (Швейцария)
16 канальный прибор для контроля за сердечной деятельностью (Швейцария)
Среда исполнения Java-апплетов на мобильных телефонах JBed (2 млрд. штук, Швейцария).Слушай, ну давай ты не будешь лениться и сам в сети что-нибудь поищешь?
Что-то сильно запахло нафталином. Из какого темного чулана вы все это достали?
Сколько из них акутальны сегодня и подключены к интернету?
Не поверишь: все!
Ну то есть за парой исключений имеем швейцарский Oberon microsystems AG и российское сообщество вокруг Информатики-21. То есть по большому счету все, что сделано на Обероне, сделано энтузиастами языка, которые и сами занимаются компиляторами и средами разработки для него. За пределами узкой группы энтузиастов никому не надо.Что неудивительно, оберонщики ведут себя как сектанты, даже когда изначальные мысли абсолютно здравые.
> Ну то есть за парой исключений имеем швейцарский Oberon microsystems AG и
> российское сообщество вокруг Информатики-21. То есть по большому счету все, что
> сделано на Обероне, сделано энтузиастами языка, которые и сами занимаются компиляторами
> и средами разработки для него. За пределами узкой группы энтузиастов никому
> не надо.Хм. РосАтом, Дойче Банк, Еврофайтер ГМБХ, Мираторг, Мегаполис смотрят на тебя с недоумением.
теперь мейнтейнерам гцц придется сопровождать +1 фронтенд, причем явно бесперспективный. Молодцы, че.
Так то мейнтейнеры в комплекте идут с принятием у модулы это Gaius Mulley
Модула заслужила чтобы память о ней была увековечена в GCC.
Ну gcc не мемориал все же (?), этим люди пользуются - не надо там кладбон устраивать
Тогда оттуда надо дропнуть всё кроме сишки.
Пользуются в мемориальных целях. Чтобы вспомнить как в старину программировали? Ну ок хорошее дело. Вот PL/1 не осилили портировать так никто не узнает как же этот язык должен работать на самом деле.
И сразу видно, что ни Модулу, ни Оберон ты не знаешь.
Оба они создавались, чтобы по щелчку пальцев быть портированными куда угодно.
С их не сишным стэком?
Даже Паскаль нельзя портировать ни его подделку Делфи, а ты и вовсе говоришь про несуществующие в реальной жизни языки. Стоит задуматься.
Если ты говоришь что ни делфи, ни паскаль нельзя портировать, то значит ты с ними вообще не знаком
Портировать в Дельфи сложно не сам язык (Object Pascal сто раз портирован на все подряд), сколько VCL, который делался как обвязка под виндовые API и виндовые GUI. Портировать и VCL, конечно, можно, но там, где в винде просто обвязка на пару строк вокруг нативного API, для всего остального придется повозиться с адаптерами, эмулирующими поведение нативных виндовых контролов.
FreePascal/Lazarus/CodeTyphon смотрят на два десятка своих процессоров, десяток операционных систем, штук 5 графических тулкитов и вообще не понимают, что ты такое вообще несёшь, чёрт побери?
Lazarus это не порт, это кроссплатформенная реимплементация. И, да, им было сложно.
Kylix же был, сами портировали всё что надо. Строго говоря там был CLX вместо VCL, но это уже мелочи, внешний API совпадал достаточно сильно.
Вот только с массовым использованием на этом куда угодно у них как то не сложилось
Здесь важно упомянуть историю:В средине 1980-тых OS, прикладной софт и Паскаль Николяса Вирта значительно превосходили DOS с ПО от Била Гейца.
Б. Гейц продавал готовое ПО.
А Н. Вирт продавал КНИГУ как придумать свой язык, написать его компилятор и OS с ПО. Да OS с ПО прилагалась как демонстрация.
Профессор Вирт надеялся на человечество как создателей своих OS, а большинство оказалось потребителями чужих готовых OS и ПО.
Вот только поделки Вирта как то не получили массового распространения и не нашли применения в IT. Чисто образовательные для ВУЗов. Кубики с буквами широко применяются в школах, а вот в реальной жизни они никому не нужны
За паскаль обидно. Основная проблема линухсоидов в том, что они идут своим путем, а не тем путем, который бы похоронил проприетарщину путем предоставления альтернатив. Да, есть FPC. Но он все равно не ровня делфям. Язык и IDE - чисто для школьных программок и не тянут профессиональные проекты. Банальная вещь. Нет групп проектов. А я лично мечтаю о свободной замене связке Delphi/C++ Builder. Delphi - для более простых программ, чтобы не связываться с кривым плохо читаемым сишным синтаксисом. Если не хватает - берем билдер. Например если нужна экзотика типа виртуального множественного наследования. Но в общем и целом главная фишка - визуальное программирование.
> чтобы не связываться с кривым плохо читаемым сишным синтаксисомbegin begin begin begin begin end end end end end
Когда печатаешь хотя бы 100 символов в секунду, то внезапно обнаруживаешь особенность: знаки препинания сбивают ритм. Даже and написать быстрее, чем && (не говоря уже об or). В паскале знаков препинания поменьше.
Точказапятить на каждой строке это так архаично.
Недооцененный коммент!
То есть язык для секретарш и писателей?
Опытные программисты тоже быстро печатают. Особенность профессии.
> Когда печатаешь хотя бы 100 символов в секунду, то внезапно обнаруживаешь особенность: знаки препинания сбивают ритм. Даже and написать быстрее, чем && (не говоря уже об or). В паскале знаков препинания поменьше.
> печатаешь хотя бы 100 символов в секунду
> 100 символов в секундуЗнаешь, всё-таки если ты разработчик, то лучше бы ты вместо того, чтобы писать 100 символов в секунду, посидел бы, да подумал, что пишешь.
Я вот никогда не печатал 100 символов в секунду, да и слава богу.
Два чая этому господину. Быстро писать можно только достаточно тривиальный код или тесты. Большую часть времени приходится думать над архитектурой и т.п.
Другими словами, громоздкость синтаксиса алголоподобных языков -- миф? Что и требовалось доказать...
Поэтому наш выбор — Кобол )
Потому что кобол сделан с оглядкой на реальные требования юзабилити и удобства. Поэтому в своё время на нём было написано так много кода.Просто для справки вот этот код в то время должна была набирать машинистка (женщина) за телетайпом и у неё даже не было возможности нормальное нажать на BackSpace. Писала причем с большой вероятностью просто перепечатывая рукописный текст. А программу составлял человек у которого даже нет высшего математического образования.
Читается как английское художественное произведение в котором теряются операнды и параметры процедуры. За орфографией надо следить. Чуть посложнее и все - предложения растянууутся на мощный оверхэд.
> А программу составлял человек у которого даже нет высшего математического образования.Джаваскриптизеры сейчас обиделись.
Можешь на гитхаб выложить? С твоего локалхоста медленно открывается всё.
>Можешь на гитхаб выложить? С твоего локалхоста медленно открывается всё.Во-во и ZIP-у не скачать :)))))
>Когда печатаешь хотя бы 100 символов в секунду, то внезапно обнаруживаешь особенность: знаки препинания сбивают ритм. Даже and написать быстрее, чем &&Тогда специально для тебя, и прочих упоротых нужен специальный язык. где + и - заменены на plus и minus соответственно.
Операции должны выглядеть операциями, а не операндами.
>Когда печатаешь хотя бы 100 символов в секундуТут, как говорится, * - не мешки ворочать.
Код гораздо чаще читают, чем пишут.А визуального мусора от скобок намного меньше, чем от begin и end.
А теперь напиши пару строчек на PowerShell
Lazarus -> Параметры IDE -> Редактор -> Автозавершение
галочка Добавлять к блокам Паскаля завершающий оператор
Чтобы достичь «сбычи мечт» нужно что-то делать. Вот ты лично что сделал, чтобы получить «свободную замену связки Delphi/C++ Builder»?
Lazarus?
https://www.opennet.dev/opennews/art.shtml?num=56462
Когда-то давно я общался с несколькими дельфистами, так скажу я, что это дно донское.Например объяснять, что если шедулер не поднимает частоту при максимальное нагрузке на процессор - это косяк программы, бесполезно. Или то, что если кусок кода продолжает клепаться 7х дельфях, использует базу протухшую в 2005 году - это нифига не нормально, тоже бесполезно.
Т.е. использование стандарта С99 необходимо наказывать принудительным лечением растом ?
> Т.е. использование стандарта С99 необходимо наказывать принудительным лечением растом
> ?Ну если вместе с С99 будут использовать компилятор 99 года, то да.
Никто не мешает для языка стандарта 1999-го года кодогенерацию производить современным компилятором оптимально для проца 2020-х годов. Предположу, что стандарт С99 не ограничивает всё строго определенным набором машинных команд определенного процессора, не?
Согласен. Я ему объяснял зачем завязываться на их реализации интерфейса когда есть Нативный лучше. Тогда еще дот нета не было а то борланд и туда свои прокладки внедрять бы стал
Если верить этому видео ( https://www.youtube.com/watch?v=qQXXI5QFUfw ), то у Паскаля был момент триумфа в несколько лет. Так что за него не обидно, индустрия смогла его испробовать сполна.
у паскаля фатальный недостаток: его сделали не сишники.
Какому языку уделялось больше внимания и изданий чем паскалю? Не прижился он. Что Вы реинкарнируюте без кодовых наработок и проектов. Лучше не смешивать операции и операнды. Сейчас много умных редакторов. or - почему именно так а не Or или OR или -OR- или LOR.
> or - почему именно так а не Or или ORпочему == и =, а не = и := ? Я уж молчу про другие странности операторов си.
А нет никаких странностей. Операторы набираются из небуквенных символов. Компилятору легче вести лексический парсинг. Нужно если бы было то можно было ввести любую комбинация а не писать OR_EQUAL или PLUS_LET
почему == и =, а не = и := ?
то есть в удобстве использование не буквенных символов - для программиста и для компилятора - Вы согласились? Тогда считайте это прихотью авторов компилятора. )
почему не =, == и === ?
забавно было, когда в плюсах напоролись на подсчёт пробелов > > >>
из-за этого плюсы разбираются ужасно сложным процедурным парсером.
Совершенно не из-за этого. Хотя это тоже добавляет крупицу в общий ад, но на фоне остального вклад незначителен.
>> почему == и =, а не = и := ?зачем здесь : ? В Си на ее месте есть +=, -= , *= , /= , %= , &= и др.
== чтобы отличать от присвоения =. Есть <= , >= , != . Не логично здесь == ?
Вот ты сам привёл, что на ровне с +=, -= , *= , /= , %= , &= куда логичней было бы :=, а к < и > лучше подходит =. Но в сях перевернули всё с ног на голову.
Если вы не знаете Си откройте уже википедию "Операторы в Си и С++" и хватит уже казаться умным ) Простите. То что в Си у < и > есть еще использование Вы там увидите. Не надо примитивность выдавать как образец. Зачем двоеточие равно Вы не ответили. В чем сакральность этой комбинации, когда я Вам показал что на месте двоеточия можно поставить много что и это рождает новые виды операндов? Интерес к диалогу с Вами утрачен. интерес
Исправление: новые виды операций конечно. Выбесил собеседник. Привел первую строку исказив, а вторую опустил. Хитро.
В bcpl было :=, но при этом = в циклах, хотя по сути это тоже присваивание, а не сравнение. В С решили сделать единообразно, и исходили из того, что присваивание пишется чаще сравнения. В исходниках Юникса, видимо, так и было.
> на ровне с +=, -= , *= , /= , %= , &= куда логичней было бы :=тогда a:=b означало бы a присвоить a:b, а что такое a:b ?
Щито? Открываю Code Typhon и вижу группы проектов. Тут тебе и автоматизация, и порт под Нинтендо. и под Андроид, под VAX, под Sun, под PowerPC, под DecAlpha. Там же и Qt, и Gtk, и OpenGL... Что я делаю не так?
Паскаль плохо портируем куда-либо, из-за чего и сдох в своё время. А так - обычный язык с парой норм идей, но всё ещё с довольно галимой семантикой.
Упомянутые ниже:
- Double Commander: Windows, Linux, macOS, FreeBSD, до кучи версию из транка можно собрать под Haiku;
- CudaText: Windows, Linux, macOS, *BSD, Solaris.
> Паскаль плохо портируем куда-либоНе знаешь - лучше помолчи. На FPC пишут хоть под GB, хоть под M0.
Да что ты говоришь. В 90-00 нормальные реализации Паскаля были только под дос и винду. На юниксах его почти что и не было. Попытки его туда втащить даже в виде всяких kylix умирали из-за своей ущербности. И это я даже не говорю обо всяких альфах и прочих.
Ты что-то во временах запутался, то про настоящее ("плохо портируем"), то про прошлый век...
В 90ые венда была написана на Паскале. И Вин95 мелкософт на нём же собирался писать. Пока внезапно Герберта Шилдта не взяли. А уж Турбо Паскаль от Борланда на столько был хорошо, что мелкософту пришлось с Борландом пойти на мировое соглашение: мелкософт больше не делает свой Паскаль (да-да, у них была своя приличная реализация), а Борланд не делает компилятор Си.
Не надо публично показывать свою безграмотность -- в этом нет ничего хорошего.
Реализация Паскаля под юникосом появилась практически сразу, потому что портировать виртуальную машину Паскаля смог бы даже школьник.
ПДП
Лиза,
Вакса
Нек
ИБМ
ZX Spectrum
Commodore
Vic
Amiga
Next
SunУгу, не было реализаций. Спойлер: в Калифорнийском универе сделали процессор специально под Паскаля угу. Теперь мы его знаем как Спарк в разных исполнениях.
Не надоело мемориалом тыкать то как заслугами. Умер он вместе с другим стэком вызова.
Современный Паскаль:Delphi 11.2 Alexandria
Выпущена 07 сентября 2022 года.Основные нововведения среды разработки:
* Поддержка iOS Simulator для языка Delphi с возможностью создания двоичных файлов iOS Simulator для устройств macOS, работающих на ARM-64 (процессоры M1 или M2). Это позволяет разработчикам тестировать свои приложения Delphi на разных устройствах Apple и в различных форм-факторах с помощью симулятора iOS без необходимости покупать специальное оборудование.
• IDE нацелена на 32 версию API Android (по сравнению с 30-ой версией API в версии 11.1), которая потребуется Google Play в ноябре 2022 года. Установщик также был обновлен, чтобы предложить установить Eclipse Temurin JDK 11, необходимый для новейших инструментов Android SDK.
• Набор инструментов Delphi для Linux ранее использовал GDB для отладки. 11.2 переключается на LLDB, что обеспечивает значительное улучшение качества как в функциональности, так и в поддержке синтаксиса языка Delphi. LLDB был обновлен до версии 12 и используется для симулятора iOS, наряду с существующим использованием LLDB для платформ C++ Win64 и Delphi macOS, iOS и Android 64.
• Добавлена поддержка Markdown. Рендеринг Markdown (.md) включает поддержку таблиц и других специальных тегов. Аналогичным образом, HTML-файлы отображаются в формате HTML в среде IDE с помощью нового встроенного средства просмотра на основе VCL. Диалоговое окно «Параметры проекта» теперь позволяет пользователям указывать файл Markdown в качестве альтернативы HTML-файлу в качестве “страницы проекта” или readme.
• Представлено множество улучшений инструментария, IDE и библиотек, в том числе: подсветка неактивного кода в редакторе кода, восстановленные преобразования XLST для получения справочной информации, улучшения библиотек Delphi, VCL, FireMonkey и FireDAC, расширенные вкладки редактора, языковой фильтр для менеджера пакетов GetIt, обновление C++ Builder Code Insight и улучшения страницы приветствия.
Ты только что добровольно сознался в том, что ты диванный аналитег, который вообще не понимания что пишет. Прежде чем такие смелые заявления делать -- хоть бы на педивикию сходил, почитал статейку для общего развития.
Ну ведь сдох же как Ваш аватар. )
> Да, есть FPC. Но он все равно не ровня делфям.lazarus
> Язык и IDE - чисто для школьных программок и не тянут профессиональные проекты.
Профессиональные проекты на учебном языке -- это прям смело.
За Паскаль не обидно. Уж больно он не практичен своим словословием и многобуквием
Да наплевать что они там пихают в свои буржуйские поделки! Где наши языки: Эль-76, РЕФАЛ, ДРАКОН, Рапира?
Кумир! Как ты мог забыть главный язык - Кумир, ничтожество!
>Не делай себе кумира и никакого изображения того, что на небе вверху и что на земле внизу, и что в водах ниже земли. Не поклоняйся им и не служи имПоэтому не примут.
> >Не делай себе кумира и никакого изображения того, что на небе вверху и что на земле внизу, и что в водах ниже земли. Не поклоняйся им и не служи имНо что примечательно -- сделали и преклоняются.
Школьницу забыл ;) Хотя да, это РАПИРА. Годная среда, рекомендую.Опыт промышленного применения есть у 1С. Но эту рекомендовать не могу... :(
Вот он лови https://github.com/bmstu-iu9/refal-5-lambda
На Модулу-2 не наплевать. Сделал дедушка Вирт, а его в СССР уважали.
>Сделал дедушка Вирт, а его в СССР уважали.вот теперь понятно, почему паскаль и прочие поделки Вирта такие распространенньіе :)
Не на тех дед ориентировался.
http://refal.botik.ru
http://drakon.su (кстати, на e2k собирается и работает -- есть в альте)
http://github.com/mkurnosov/rapiraxxВот про Эль-76 надо будет спросить при случае.
Прикольно...
>Где наши языки: Эль-76, РЕФАЛ, ДРАКОН, Рапира?Там же, где и Робик со Шпагой.
Ждут тебя, анон.РЕФАЛ-2 http://refal.ru/~belous/refal2-r.htm
РЕФАЛ+ http://rfp.botik.ru/download
Качай и не подкачай, анон. Мир замер в ожидании миллионов строк кода на РЕФАЛЕ.
Странно что Паскаль не приняли, хотя конечно есть free pascal и на нем все равно почти ничего не пишут
Double Commander полтора землекопа пилят
Хорошо что они сам Паскаль не пилят.
Ну, неплохо пилят, если судить по растущему колличеству загрузок свежих версии DC
CudaText - более чем достойная копия саблайма.
https://www.opennet.dev/opennews/art.shtml?num=57022
Бот промахнулся со своей рекламой? Причём тут Паскаль и КудаТекст?
Так там признаки были FreePascal замечены или Delphi.
Так-то очень и очень корявая копия.
Зачем принимать Паскаль, если Модула-2 более совершенная?
У него есть классы? Наследование? Полиморфизм?
У Модулы есть всё.
А если ты возмёшь Модулу-3 с откровенным жирком -- там будет такое, о чём ты вообще никогда не слышал.
Модула-2 -- это не кресты. Не надо всякое говно в неё тащить.
Особенно классы. Спойлер: в Модуле классов нет. Вместо них нормальные человеческие типы.
И модная мультипоточность с которой сейчас все носятся как дурак с дверью в Модуле была с самого начала -- с 1978 года. Так то, внучек.
Работала ещё в досе, кстати -- в детстве бегамайты кода, наверное, налопатил на JPI TopSpeed Modula-2 :)Без параллелизма, зато как раз познакомился с открытыми исходниками: ребята поставляли свои модули и как .mod/.def, а не только объектниками, и разбор той же оконной библиотеки дал изрядно пищи для ума тогда.
На одном ядре и две функции в цикле могут сойти за многопоточность )
Типы которые дали создатели компиляторя. Наследуемый код и плоская модульная модель, иерархировать которую помогает только файловая система? Ну и потоки обьявляются тоже только на уровне что-то вроде гипервизора. Дед не надо вести в прошлое. Ничего выше вашего мемориала вы не напишите на этом. А серьезные пасаны о которых вы говорите просто пилители чужого бабла
>>У него есть классы? Наследование? Полиморфизм?
>У Модулы есть всё.
>Спойлер: в Модуле классов нет.Ты уже определись, ты умный или красивый.
>Вместо них нормальные человеческие типы.
А что такое нечеловеческие типы?
современные программисты испорчены ООП и даже не знают что такое шина адреса.
По этому так популярны всякие java, rust, nodejs и прочие языки для верстки сайтов и рисования форм мышкой.
А "программисты" типа тебя только и знают, что такое шина адреса, и как этим знанием понтоваться на Опеннете. Задолбал ты уже со своей шиной, лучше код покажи. Только выбирай тщательно, а то тут один Иванушка с пеной у рта доказывал, как не нужен Rust и "смузихлёбы", и как дисциплина позволяет ему писать идеальны сишный код мультиплексорами и шинами адреса, выложил свой гитхаб, а там один интересный проект при компиляции GCC без ворнингов выводит в консоль мусор вместо описания ошибки. Столько в лужу пердел, а в результате в неё сел.
Мне не нужно всё, мне нужны классы, наследственные и полиморфизм, инкассацияModules 2 не являлось обьектно ориентиронным языком.
Object Pascal являлся, но Вирт его ненавидел
*инкапсуляция
Если в языке нет это не значит что оно мне не нужно, это значит что мне не нужен такой язык
Восприятие совершенства зависит от уровня знаний, а публичное провозглашение совершенством от уровня уважения к окружающим. И еще уж заодно: уважать не значит откапывать.
на сколько помню гислер писал , что 32 битку компилит на дельфи а 64 битку компилит на фрипаскале
вот подтверждение https://www.ghisler.ch/board/viewtopic.php?t=34442
Да, именно так.
Верной дорогой идут товарищи. Нужно ещё ALGOL, Cobol, B и прочее ненужно принять.
Unix shell
Не юродствуй. Модула-2 до сих пор не потеряла своей актуальности. Ада без жира и лицензионных ограничений.
Для школьных проектов - сойдёт, наверное. В этом её актуальность? Полно языков, которые превосходят Модулу-2 в своих нишах во всём. Зачем этот динозавр нужен?
Если спутники связи (в том числе военного назначения) для тебя архаизм, ну давай -- приходи в НПО им. Решетникова, научи их правильному кодингу.
Правильно писать Решетнёва, а не Решетникова, неуч.Конкретно спутники из НПО им. Решетнёва лютейший анахронизм и легаси. Что-то они даже здоровенный склад с оружия разглядеть не могут. Не то что радар. В отличии от тех же американских.
Так-то в наше время даже студенты кубсаты на орбиту запускают и сигналы лазера с Земли принимают на изи, например.
А так вот из-за кого они падают по причинам проблем с ПО. Скоро их станет меньше чем необходимо для точности гражданского применения. Ну специалист, чё. Есть на кого ровняться. Язык допотопный, как и он сам, наверное единолично он выбирал. Потому что единственное что помнил 🤣
Рука-лицо. Я тебе открою страшную тайну: любой спутник, любой страны любой модели, веса, назначения -- непрерывно падает. Годами. Буквально.
А за не выход на заданную орбиту спутник несёт ответственность... Никакую! Потому что выводом на орбиту занимаются ракеты-носители. Это мягко говоря -- немного другая касса.
https://www.opennet.dev/opennews/art.shtml?num=56867
Годно, плюсану ибо вспомнил TopSpeed
Два чая этому господину!
Вещь была. С компайлером на нем самом. Даже переписал как-то от внезапно в очередной раз нахлынувшей ненависти к Сям на нем прогу с жесткой манипуляцией битовыми структурами. Получилось, и довольно бодро работало.
Только многословно.
И с шикарной средой сборки (после которой make был двумя шагами назад, пока не пообтёрся) да интерактивным отладчиком, угу.Но да, все эти DEFINITION MODULE с IMPLEMENTATION MODULE развивали скоропись и терпение :]
Даже у Modula-2 есть ISO-стандарт, а раста нет.
Что значит ДАЖЕ? Модула-2 это вкусняшечка по сравнению с Растом.
И делал Модулу-2 лауреат премии Тьюринга. Чем похвалятся создатели Раста?
> Чем похвалятся создатели Раста?Инклюзивностью
Говорите прямо - тусовочностью.
там ещё приставку гомо пропустил.
Расовым разнообразием
... и гендерным.
> Чем похвалятся создатели Раста?На нем написан софт для секс игрушек.
Ахаха, и чем кроме argumentum ad verecundiam модула еще может похвастаться?
Наличием ISO-стандарта.
Было б там что стандартизовать. Язык простой, как два пальца... Наверное, на нем даже сейчас можно ещё что-то писать, но вряд ли сложнее школьного проекта.
Так и запишем: бортовое ПО спутника связи, операционная система, драйвера, сетевой протокол -- школьные проекты с премией Тьюринга.
Мощностью и актуальностью языка, например. А кто там какие премии получал, да какая разница? И нет, Модула-2 по сравнению с Растом уже далеко не вкусняшечка, а, скорее, наоборот.
Некоторые языки актуальны в некоторых местах.
Некоторые органические соединения безопасны для некоторых организмов.
> Некоторые органические соединения безопасны для некоторых организмов.Не понял игры слов? Ну, бывает...
Объясни.
> Объясни.Ну язык может быть органом... Как и "некоторые места". Да, неприлично и грубовато, каюсь.
Да просто фраза немного коряво построена по отношению ко второму смыслу. Ну да ладно. Даже не представляю, в каких местах актуальна Модула-2, мне их никто не показывал :) А вообще, достала уже эта олдфажная опеннетовская ностальгия - мол, раньше трава была зеленее, языки лучше, ОС надёжнее и т.п. бред старперов. Они и в 2050 будут до мозолей наяривать на свои модулы, симулы и т.п., которые были хороши в 70х по сравнению с современниками, а сейчас - обычные посредственные ЯП. Меня вот недавно одолел приступ ностальгии по KDE 3.x - поставил Trinity, потрахался, отпустило. Этих пердунов посади сегодня писать на Модула-2 - через месяц завоют так, что волки в лесу испугаются.
Потому что Modula-2 из древних времён, когда наличие стандарта на язык было благом, а не злом.
Simula когда же?
Прикольно, но вряд ли. Мощная фиговина была, синтаксис вполне читаемый. о сколько спецов для Симулы ты знаешь?
Если уж совсем честно, то всё, что Simula тогда умела, сейчас умеет C++, ну, по словам Страуструпа.
Тридцать лет ждал!
Ура!
Капец, нет слов.
Интересно, что в GCC13 добали одновременно и Rust и Go
Интересно что все эти синтаксические и лексические анализаторы никому не нужны.
Умственно отсталым луддитам - да, не нужны. Но это далеко не все.
Для ядра теперь модули и на Расте клепать будут. Поэтому, от этих синтаксических и лексических анализаторов польза, хотя бы, в том, чтобы эти модули собирать.
Ты лжёшь, аноним. gccgo в составе gcc уже не меньше трёх версий.
Хотел сказать, Rust и Modula-2?
Раст здорового человека?
Если здоровьем называть слабые когнитивные способности, то да.
В чём отличие модулы 2 от 3 и Оберона?
Тем что 2 ещё можно пользоваться, а в 3 и Обероне фантазия автора достигла немыслимых пределов и пользоваться этим стало невозможно, да и не нужно, есть же Паскаль. 3 и Оберон это что-то типа раста.
Вирт не является автором Модула-3. Это частная коммерческая разработка.
А на Обероне как минимум 3 ОСи написано. И все передовые идеи в компилируемых языках дербанят именно из Оберона.
Этими тремя осями пользуются три человека, наверное.
> Этими тремя осями пользуются три человека, наверное.Расскажи это РосАтому.
Это не означает что сложность не достигла немыслимых пределов. На раст вообще редокс есть и что толку. Это показывает ровно ничего.
Оберон, с моей точки зрения, это обрезанная Модула-2. Нет, кое-что добавили (наследование записей и сборщик мусора), но кучу вещей убрали. В общем и целом Паскаль, Модула-2 и Оберон выглядят почти как один язык, хотя Модула-2 мне нравится больше. Все они очень и очень простые. Очень и очень жаль, что для системного программирования используется Си, а не один из них, но поезд давно ушёл.
С точки зрения Вирта -- Оберон это обрезанная Модула-2. Он из Оберона убрал поддержку параллельности, вынеся её в библиотеку. Есть куча процов, где только одно ядро. И никаких колец защиты. Язык меньше -- компилятор проще -- портирование энергичнее.
У Модулы-2 есть свой стиль. Уже выше написал, повторюсь ещё раз: потенциал Модулы далеко не исчерпан.И нет. Сборщик мусора в Обероне -- это опция. На контроллере с 26 кБ рамы он там не нужен. Нужен сборщик -- бери в либе (имхо, самое правильное решение )
Штош, а теперь давайте добавим данный язык в ядро. Нужна инклюзивнлсть. Почему расту можно, а модуле нет?
Не штош. Модель памяти Модула изначально совсем не дружит с моделью памяти Си. Поскольку Модула опирается на gcc -- теперь внезапно Модула де факто уже в ядре, и проблем с памятью нет.
Разве проблема раскладки памяти самая главная? А преобразование ядерных .h-файлов в интерфейсные файлы выбранного языка?
Я привёл в качестве примера.
Нет, с заголовочными файлами в Модула-2 нет проблем. Существуют конвертеры и специальный синтаксис для сопряжения. Можно руками, можно на автомате.
Хорошо, я признаю, что C и С++ опасные языки и что они не подходят для написания сколь-нибудь крупных или ответственных приложений. Но на чём тогда писать? На Модуле-2? На Обероне? Или для обычных проектов хватит и Раста? Намного ли Модула-2 лучше чем Раст? Правда интересно, не для холивара...
Зато есть возможность реально всё переписать на Модула-2 потому что под неё прям реально ничего нет.
На Аде пиши. gnat в юниксоподобном вполне юзабелен.
> Хорошо, я признаю, что C и С++ опасные языки и что они
> не подходят для написания сколь-нибудь крупных или ответственных приложений. Но на
> чём тогда писать? На Модуле-2? На Обероне? Или для обычных проектов
> хватит и Раста? Намного ли Модула-2 лучше чем Раст? Правда интересно,
> не для холивара...Eclipse на чём написана?
На ненужноджаве.
> Хорошо, я признаю, что C и С++ опасные языки и что они не подходят для написания сколь-нибудь крупных или ответственных приложений.Такие приложния давно пишут на Ada и SPARK в частности.
На java
Ага, части Линухового кернела на байткодном языке с виртуальной машиной.
Почему бы нет?
1) Виртуальная машина ebpf в ядре уже есть.
2) java можно скомпилировать через graalvm native-image в исполняемый файл работающий без виртуальной машиныИ ты скорее всего не то что модуль ядра, ни одной мало-мальски сложной программы за всю жизнь не написал, а рассуждаешь про "линуховое" ядро
Ты не поверишь: Модула-2 и особенно Оберон предназначены именно для написания больших систем, высоконадёжных приложений и максимальной производительности. Легко переносятся, высокий уровень абстракций, строгая типизация и при сильном желании: ты всё ещё можешь писать низкоуровневый предельно оптимизированный код.
Намного ли Модула-2, созданная во времена, когда компьютерное время было дорогим и главным принципом создания ЯП было максимум работы переложить с компилятора на программиста, лучше чем современный Раст? /ирнВообще сравнивать языки из до-ООП эры с языками из пост-ООП эры — такое себе занятие.
> Намного ли Модула-2, созданная во времена, когда компьютерное время было дорогим и
> главным принципом создания ЯП было максимум работы переложить с компилятора на
> программиста, лучше чем современный Раст? /ирн
> Вообще сравнивать языки из до-ООП эры с языками из пост-ООП эры —
> такое себе занятие.1) Модула-2 вот ни разу не перекладывает __максимум__ на программиста. Более того, оптимизация алгоритмическая и сейчас лежит на программисте. Машинную оптимизацию Модула не поощряет. Гугли TopSpeed и "Модула-2 Эксельсиор". Эти двое по уровню оптимизации рвут любые компиляторы. Ты что-то путаешь.
2) Модула-2 -- это самый настоящий ООП язык. Тут тебе и встраивание, и сокрытие и полиморфизм (если очень надо, но идеология языка такое не приветствует. Но если надо кушать вообще весь фарш -- есть Модула-3).Мне очень нравятся подобные ыксперды, которые даже компилятора в глаза не видели и ни одной программы не написали, но своё правильное мнение имеют.
Я не говорю про оптимизацию, я говорю про элементарные (как это представляется сегодня) удобства: не писать заголовки процедур дважды (разделение на заголовочную часть и реализацию), не писать объявления переменных заранее отдельно от кода (отдельные блоки var), не писать объявления переменных вообще (автовывод типов), не обязывать программиста соблюдать определённый порядок определения процедур и использовать forward декларации. Язык Modula-2 построен так, чтобы компилятору было удобно с ним работать в ущерб удобству программиста.Я не говорю, что Модула-2 — это не ООП-язык. Я говорю, что это язык из до-ООП-эры, что вы и подтверждаете, говоря "идеология такое не приветствует". Вирт, безусловно, во многом предвосхитил пост-ООП эру, видя фундаментальные проблемы ООП и отстаивая свою точку зрения, но это больше плюс Вирту, а не плюс его языкам. До сих пор чтобы программисту войти в пост-ООП эру, научиться не использовать ООП, необходимо сначала в совершенстве научиться ООП. Тот же путь было необходимо проделать языкам и отрасли в целом, и Modula-2 — камень из начала этой дороги, а не конца.
>[оверквотинг удален]
> работать в ущерб удобству программиста.
> Я не говорю, что Модула-2 — это не ООП-язык. Я говорю, что
> это язык из до-ООП-эры, что вы и подтверждаете, говоря "идеология такое
> не приветствует". Вирт, безусловно, во многом предвосхитил пост-ООП эру, видя фундаментальные
> проблемы ООП и отстаивая свою точку зрения, но это больше плюс
> Вирту, а не плюс его языкам. До сих пор чтобы программисту
> войти в пост-ООП эру, научиться не использовать ООП, необходимо сначала в
> совершенстве научиться ООП. Тот же путь было необходимо проделать языкам и
> отрасли в целом, и Modula-2 — камень из начала этой дороги,
> а не конца.Пост-ООП парадигму программирования вывел Егор Бугаенко, показав всё ничтожество ООП, как программирование со всевозможными нарушениями не только декларируемой инкапсуляции, но и смысла абстрагирования объектов от модели. За это ему честь и хвала!
Егор Бугаенко как раз продвигает ООП и критикует современные пост-ООП методы построения архитектуры. Фрик, короче.
> Егор Бугаенко как раз продвигает ООП и критикует современные пост-ООП методы построения
> архитектуры. Фрик, короче.Наоборот. Первоначально ООП-программирование реализовывалось как структуры данных и функции (процедуры), объединённых синтаксисом и семантикой ООП-языка. Впервые входящие в ООП не понимали разницы между record (паскалевский термин) и наборами полей классов. Естественно, получались классы-монстры, включающие в себя всевозможный функционал (как, например, первоначальная реализация библиотечного класса Component из Java AWT). Егор критикует подобный подход. Но от этого прикладной код, зависящий от библиотечного и обязанный поддерживать совместимость с тем, что было написано 25 лет назад, никуда не девается.
> Егор критикует подобный подход.Именно. Это очень специфическая точка зрения и она не совпадает с общим направлением в индустрии. Идея пост-ООП в частности и в том, что классы-монстры сами по себе не страшны, так как есть гораздо лучшие способы структурирования кода, пришедшие из функционального программирования, и они ортогональны делению на классы, так что можно иметь отличную архитектуру и хорошо структурированный код в паре классов-монстров. Напротив, подход Егора ведёт к неадекватно большому числу мелких классов с поведением и, зачастую, полиморфных, и в общем превращает код в лапшу.
В общем, Егор говорит "вы делали ООП неправильно (большие классы в частности), давайте делать правильно (маленькие классы)", тогда как правильно так: "ООП плох (неважно в частности большие у вас классы или маленькие), тех же целей можно и нужно достигать принципиально иными средствами".
Некоторые идеи пост-ООП:
- иммутабельность всего и вся (хотя тот же Rust демонстрирует следующую ступень развития этой техники, и позволяет иметь практически все плюсы иммутабельности, сохраняя мутабельность);
- отделение структур данных от алгоритмов и переосмысление инкапсуляции;
- отказ от классического полиморфизма и вообще наследования классов;
- разные техники, идущие из аспектно-ориентированного программирования;
- отказ от неявного состояния и побочных эффектов, весь код в статических методах;
- зачастую отказ от классов вообще, "классы — это замыкания для бедных, а мы богатые".В общем, это скрытый за фасадом класса-монстра высокоструктурированный код из статических методов, оперируюших маленькими иммутабельными ненаследуемыми классами без инкапсулированного кода (или иногда с минимальным количеством инкапсулированного кода для выражения пары инвариантов), основная инкапсуляция — на уровне модуля, не класса.
> Хорошо, я признаю, что C и С++ опасные языки и что они не подходят для написания сколь-нибудь крупных или ответственных приложенийНэт программиста, нэт проблэм!
Говорила маменька не используй C++, а его дура брала.
Ах маменька, ах маменька, как же ты была права!
Проблэмы робяты вовсе не в языках программирования ...
Посмотрите какая каша в голове у программистов.Хорошие библиотеки для обработки строк на C++ https://www.linux.org.ru/forum/development/17062657?lastmod=...
std::string text = ...;
text.split('\n')
.map([](auto s) { return s.trim(); })
.filter([](auto s) { return !s.empty(); })
.for_each([](auto s) { std::cout << s << std::endl; });Ну што сказать, ну што сказать придумали такую ... люди.
А потом обсуждают чем C++ плохой.Главная проблэма в том, что дур домах охрана плохая.
Пациенты разбегаются и конечно начинают использовать C++ ...Кстати это не наезд на C++.
Раньше и такого не было так что вполне себе норм.
> Раньше и такого не было так что вполне себе норм.API для работы с строками должно быть эффективным.
STL, STD, ... хороши в тех случаях, когда понимают для каких алгоритмов их целесообразно использовать.А ныне - "Смешались в кучу STL, template, ООП и болтовня на форумах слились в протяжный вой".
Почему нельзя смешивать standard TEMPLATE library и template?
Почему нельзя смешивать STL состоящую из классов с параметрами и ООП?
а уж сколько оно памяти выжирает... если файл несколько длиннее любовной записки.
Кто о чём, а бедный о памяти.
> Кто о чём, а бедный о памяти.Бедность не порок.
А богатство -- с высокой вероятностью -- указание на ранее совершённые многочисленные преступления.
>>std::string text = ...;Ну на паскале вы такого вообще не напишите и на 2-х страницах.
Ты явно не знаком с библиотекой fpc
Почему? В паскале отобрали строки? Настоящие, которые знают свой размер и состоят из символов
Внезапно: на Паскале с самого начала строки знали свой размер. И чтобы узнать , где конец строки -- было вовсе не обязательно сканировать всю память в поисках \0. Которого могло в конечном итоге и не оказаться. Или могло оказаться НЕСКОЛЬКО. Си завидовал Паскалю лютой завистью, смотря на то, с какой скоростью Паскаль расправляется со строками.
Причем здесь Си? Если символа \0 не окажется, то нужно просто вправить руки тому кто это написал.
ANSI C гораздо быстрее этих ваших паскалей, растов и прочего
Если C оказывается почему-то быстрее Паскаля, то это связано только с качеством компилятора. Традиционно у Паскаля почему-то компиляторы быстрые, но с плохой оптимизацией. Однако это "традиционно", потому что "по традиции" имеются в виду компиляторы Борладновские. TopSpeed Modula-2 и компиляторы XDS можно привести в качестве контрпримера.
1) Если есть возможность не вставлять \0 -- хоть вправляй руки. хоть не вправляй -- результат будет всегда один и тот же -- в конце \0 будут забывать вставлять неизбежно.
2) ANCI C быстрее Паскалей? Смищной. Турбо Паскаль по качеству генерации кода тупо рвал Си как Тузик грелку. И вот тебе актуальная ссылочка на сравнение скорости исполнения:
https://vostok-space.blogspot.com/2016/11/oberon-c-go-rust.html
https://vostok-space.blogspot.com/2016/11/oberon-objective-c...
Оберон в 4 раза рвёт golang и вполне обходит по скорости Раст.
Не без того, но у таких строк и были вполне себе ограничения - 255 байт и всё. А иногда текста нужно хранить гораздо больше.
Ограничение на 255 байт к какие годы было?
Еще в ДОСовской Модула-2 был лютый бич в виде ограничения в 64кб на модуль, на массив, на структуру, их за особенностей реализации для 8086. Что в Си тогда элементарно обходилось.
Когда это разрабатывали, писали под древние объёмы ОЗУ и древние процессоры.
> Не без того, но у таких строк и были вполне себе ограничения
> - 255 байт и всё. А иногда текста нужно хранить гораздо
> больше.Ключевое слово "были". Такие ограничения были практически у всех. В средних версиях ТрубоПаскакаля этот предел был отодвинут до 64к (как у всех). А в последних версиях, когда ТрубоПаскакаль научился оверлеи генерить -- это предел отодвинулся до 16М. В современных версиях вообще никаких ограничений нет -- 64 бита хватит всем.
Откровенно слабый аргумент. Я бы к нему прибегал в самом крайнем случае. По крайней мере, "Слово и дело" (написан на Паскале) позволял без проблем читать "Война и мир" и смотреть картинки одновременно. И ничего ему не мешало.
Прямо как в java. stream API очень удобный.
Его взяли из функциональных языков программирования.
Я, честно говоря, ни разу не видел проектов на модуле-2 с середины 90-х.На нём вообще что-то пишут?
Читать новость ты, конечно, не пробовал.
И что там, в новости? Перечислены крупные проекты на моделе-2, запущенные в последние лет пять, или даже 10?Спутниковую глонясятину чтартовали аккурат в середине 90-х, о чём я и написал.
> Я, честно говоря, ни разу не видел проектов на модуле-2 с середины
> 90-х.
> На нём вообще что-то пишут?Клиентская программа CVSup для получения исходников FreeBSD была написана на Modula-2. Потом, правда, заменили на csup, написанную на C. А спустя какое-то время репозитории с исходными текстами перенесли в SVN и надобность в CVS исчезла.
На Modula-3
Sorry, пишут моДули
А моДули это замаскированное "мои Дули" ? )
Sorry за посты.
Настроение хорошее и "понесло".Ничего против Модула 2 и микроскопа не имею.
Каждый из них хорош, если их применяют там где это уместно.
Просто скажи что это учебный язык, который призван демонстрировать концепции. Как когда-то настоящий Unix был просто концепцией того как должна выглядеть нормальная серверная ОСь.
Настолько учебный, что в отличии от паскаля на нем писали софт для тех же глонассовских спутников и прочей rocket science (http://kronos.ru/about/koltashev пруфлинком)
Цитата:"Делает тексты программ доступными для рассмотрения и понимания даже проектантами систем спутника (не программистами)"Так что вполне прав господин, высказавшийся ранее.
Так обеспечивается нароаботка опыта и передача навыков. Так делается во всём мире. Откуда ты возмёшь спецов, если у тебя не будет студентов? С Марса?В описанной ситуации нет разрыва "забудьте всё, чему вас учили в школе", и нет разрыва "забудьте всё, чему вас учили в институте".
Мощнейшее достоинство ты выставляешь как фатальный недостаток.
Потому что делали студенты, которые другого языка в своём 1978 году не знали.
Если ты ничего не знаешь -- не надо свою безграмотность экстраполировать на весь СССР. К слову, там ракеты не падали, долетали до Луны и Венеры. А в 1990 году "Буран" взлетел и сел полностью в самолётном режиме.
Уже не говорю про первый в мире двух-процессорный (штатная конфигурация) микрокомпьютер.Давай-ка, до свидания отсюда.
Sorry эшо об Modula 2
https://www.linux.org.ru/photos/174954:-1342885053.jpg
> Modula-2 разработан в 1978 году Никлаусом Виртом, продолжает развитие языка Pascal и позиционируется как язык программирования для высоконадёжных промышленных системКакие механизмы в нем позволяют уйти от UB и логических ошибок в алгоритмах?
Возможность горячей перезагрузки модулей в run-time? ...
Ну так о качестве самой программы не сказано. Речь может идти о аппаратной платформе для программы.) Калачи тертые и тогда умели преподнести то чего нет, но эффектно.
От неопределенного проведения можно уйти, определяя поведениеИ.о. К.О.
Высоконадёжные крупные системы и неопределённое поведение -- два взаимоисключающих параграфа. В Модуле-2 такого отродясь не было.
Ностальжи ветерана ...Помню пишу модуль на Модула 2, а затем огородами, огородами и к Котовскому.
Зачем нужен этот франкинштеин из прошлого ? когда есть clang !
Вообще-то раньше было лучше.
Всерьёз думаю прогать пет проекты на трудах Вирта.
Ты молодец! Дело раста живёт и процветает! Перепишем весь мир! Ура Товарищи!
Полезный опыт. Честно, многое будет больно (либ крайне мало), но вкус к хорошему коду (не факт, что к стилю), прививает на долго.
Первым делом хочу запрогать avr. Бегло полистав источники про gnu modula, увидел, что avr поддерживается. Знаю, стандартной библиотеки под avr, скорее всего не будет. Но я и так хотел поупражняться в написании с нуля. Не так уж сложно разобраться – регистры вручную дёргать и с линковщиком разобраться.
Я тебе рекомендую попробовать stm32f106 (синяя таблетка, которая). Компилятор от Александра Ширяева на Обероне вполне съедобен. Поддерживает пару десятков микроконтроллеров
Сам баловался, поэтому точно знаю, что работает.
На сколько помню, компилятор Оберона от Антона Кротова -- тоже поддерживает. Моделей штук 5 всего, но зато настройка среды существенно проще.
Здравствуйте. Я некоторое время смотрю в сторону oberon и modula-2 и очень хотел попробовать на них написать что-то(я ещё только обучаюсь), но я не смог найти нативных компиляторов для этих языков, или их нет? Я видел компилятор Вирта(для оберона) на его сайте, но он написан на самом обероне вроде и я не могу его скомпилировать. Сейчас в серьёз с появлением modula 2 в gcc хочу этим заняться, но не очень понимаю во что это все будет транслироваться. Можете подсказать какие-нибудь ресурсы по теме modula-2? Потому что я так ничего толком не нашел, очень нишевая тема, нашел только наш проект оберон с blackbox, но это как я понимаю немного другое.
> Здравствуйте. Я некоторое время смотрю в сторону oberon и modula-2 и очень
> хотел попробовать на них написать что-то(я ещё только обучаюсь), но я
> не смог найти нативных компиляторов для этих языков, или их нет?
> Я видел компилятор Вирта(для оберона) на его сайте, но он написан
> на самом обероне вроде и я не могу его скомпилировать. Сейчас
> в серьёз с появлением modula 2 в gcc хочу этим заняться,
> но не очень понимаю во что это все будет транслироваться. Можете
> подсказать какие-нибудь ресурсы по теме modula-2? Потому что я так ничего
> толком не нашел, очень нишевая тема, нашел только наш проект оберон
> с blackbox, но это как я понимаю немного другое.Есть замечательные книги в открытом доступе:
1. Вирт Н. Программирование на языке Модула-2 (1985).djvu (Перевод с англ. М.: Мир, 1987. — 224с., ил.)
2. Кристиан К. Руководство по программированию на языке Модула-2 (A Guide to Modula-2) (1986).djvu (Перевод с англ. М.: Мир, 1989. — 463с., ил.)
Здравствуйте, спасибо. А по поводу компиляторов можете что-нибудь подсказать?
Компиляторов для Оберон вагон и маленькая тележка. Как минимум прямо сейчас готов назвать пять:
1) Компилятор Антона Кротова (Win/Lin/KolibriOS/BluePill/что-то там)
2) Компилятор Александра Ширяева (практически все популярные микроконтроллеры, bare metall)
3) Компилятор МультиОберон под руководством моего коллеги по "РосАтому" Дмитрия Викторовича Дагаева, также поддерживает Компонентный Паскаль(Win/Lin/x86/x86-64/ARM/z80)
4) Компилятор ФриОберон под руководством Артура Ефимова(Win/Lin).
5) Компилятор "Восток" Константина aka ComDiv (Win/Lin/browser/Android).Обратите внимание: все пять -- сделаны русскоязычными разработчиками. Про другие страны я даже не приступал.
Также в образовательных целях могу порекомендовать мульти-компилятор "Странник" (Си/Паскаль/Модула-2 -- вин32 онли). Автор умер, компилятор умеет создавать графические приложения.
Также из отечественного (тоже снят с поддержки) есть оптимизирующий компилятор XDS -- скорость исполнения кода почти всегда выше, чем после MS и gcc. Вин32 онли. Поддерживает Си/Оберон-02/Модула-2.
Также есть вариант Оберон-07 с расширениями, который Вы можете попробовать прямо в браузере в режиме онлайн: подсветка синтаксиса, небольшие графические приложения, возможность создавать несколько модулей. Совершенно бесплатно.
Компилятор Вирта Вы сможете скомпилировать, если у вас есть ПЛИС Спартан-4 или мощнее -- Риск-подобный процессор, разработанный Виртом на языке описания аппаратуры Лола (на 70% повторяет Оберон). На сайте "Проект Оберон" лежат все инструкции и исходники. Если у Вас нет возможности приобрести плату Спартан -- там же есть симулятор этой системы в скомпилированном виде для венды.
Код периодически исправляется, дополняется, публикуется.Код на Модула-2 из gcc транслируется в любую доступную платформу на gcc -- т.е. практически вообще всё. Ресурсы по Модула-2 достаточно скудные, погуглите "кольцо Модула-2". В Вашем распоряжении будет два десятка сайтов, в том числе реализация Модула-2 для ОС Minix (это штатный входной язык в Амстердам Компилер Кит (под руководством Танненбаума).
Проект Оберон с БлэкБокс -- это именно тот Оберон, который Вы искали. По ряду параметров Компонентный Паскаль удобнее Оберон-07. Компонентный Паскаль имеет ряд расширений, которые облегчают прикладное программирование. Компонентный Паскаль в составе БлэкБокс запускается на Виндовс, Линукс и всех платформах, которые поддерживают deb-пакеты. Я Вам рекомендую начать именно с БлэкБокса. После него Вам будет многое гораздо более понятно. Не говорю уже о том, что в БлэкБокс есть полностью русифицированный комплект документации и множество учебных примеров.
Очень странно, что Вы не нашли информации. Начните с сайта oberon.org -- это точка входа по вполне обширному пространству сайтов соответствующей тематики, которые почти все -- на русском языке.
Но зачем все-таки откопали стюардессу? Оно мертво, причем уже давно.
И не только сама модула, но и ее выкидыши-наследники типа оберона (который форсят полторы калеки на весь инет). Причем померло в том числе из-за паскаля, которые оказался лучше практически во всем.
Оно сейчас никому не нужно, кроме супер узких ниш, в которых просто не рискуют переходить на что-то другое.
> Но зачем все-таки откопали стюардессу? Оно мертво, причем уже давно.
> И не только сама модула, но и ее выкидыши-наследники типа оберона (который
> форсят полторы калеки на весь инет). Причем померло в том числе
> из-за паскаля, которые оказался лучше практически во всем.
> Оно сейчас никому не нужно, кроме супер узких ниш, в которых просто
> не рискуют переходить на что-то другое.Modula проектировался как язык промышленного системного программирования со строгой типизацией и с раздельной компиляцией модулей. В отличие от Turbo Pascal, где была реализована модульность и раздельная компиляция, Modula-2 имеет примитивы для программирования многопоточных программ. С появлением Delphi ObjectPascal надобность в Modula-2 исчезла.
>Оно сейчас никому не нужно, кроме супер узких ниш, в которых просто не рискуют переходить на что-то другое.Вот тебе и правильный ответ. Если люди, обитающие в этих нишах, готовы платить за поддержку Модулы, почему бы и не включить последнюю в набор.
Потому что можно поддеживать свои недоконьпиляторы. Зачем в gcc тащить при том что им многим даже нельзя в такое.
Развылись, что поддержку языка добавили...
Хотят люди писать - пусть пишут и радуются.
Боятся. Перспектива нищей старости маячит. Сегодня поддержку добавляют, а завтра начинают сокращать писателей на крестах и нанимать на языки, которые способен освоить школьник за полгода, при этом результат в итоге не хуже, чем у них на плюсах.
В итоге для поддержания этого зоопарка из разные языков надо в два раза больше программистов чем было до этого. Отличная математика.
Многие люди из последних сил могут освоить до точки с запятой какой-то один язык и то лишь потому, что Исус нас любит.Альтернатива одному(какому-то) чудом освоенному языку для них грубо говоря товары по полочкам раскладывать.
Я считаю, что если кто-то дал им возможность хоть чуть-чуть выбраться из области рутинной работы - это огромный шаг вперед.
Пока что добавления модулы-2 в гсс устроило на работу только какого-то препода, который её добавил и будет мейнтейнить.
Это плохо? Чем?
Вы говорите так словно шлепать формочки на java лучше чем работать в горячем цеху на военном заводе, на сделанном в ГДР станке.
в горячем цеху на военном заводе - формошлеп в горячем цеху на военном заводе? Он Вам завод испортит(если пройдет каким-то хреном туда). В текущий момент образовательная система такова, что огромное число выпускников могут разве что товары по полкам раскладывать и на стойке у входа лицом торговать.Общество уверенно встало на лыжню деградации и каждое следующее поколение уверенно передает эстафету. Так что хоть какая-то возможность, пусть призрачная, поднять человека по социальному лифту - это великое благо.
Есть мнение, что доживу до того момента, когда буду собеседовать людей, которые приходя собеседоваться на должность инженера будут мне пускать пену и мычать(сейчас уже всё очень и очень уныло).
все люди диградировали и диградируют дальше. Современные "программисты" даже не знают что такое шина адреса и чем гарвардская архитектура отличается от фон неймовской и не могут освобождать за собой память. Перемешивают в кучу ооп, stl и template.
Настоящим программисты могут писать на любом соответствующим тьюрингу языке и не станут опускаться до шлепанья форм на java
Меняй общество, что тут сказать. У меня прямо противоположный опыт с собеседованиями: иногда разговариваю с кандидатом и понимаю, что через пару лет он меня собеседовать будет, даром что позавчерашний студент.
Вот это чушь.
Видимо, в Debian коряво опакетили, не я один с этим столкнулся: https://lists.gnu.org/archive/html/gm2/2021-05/msg00009.htmlИ где хвалёная стабильность и тесты, если даже hello world в сборке debian не собирается?
Стоит задуматься над нужностью Дебиана.
Нужно компилировать с включением библиотеки: gm2 -fiso
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1019498
Подведем итоги обсуждения Модула 2 - "Злословия много".Полезных постов то и нет.
Да и искать конфетку в пяти тонах зловония смысла нет.Все как обычно!
А что самое характерное ты к этому ничего полезного не смог добавить.И да обязательно не забывай держать нас всех в курсе.
> А что самое характерное ты к этому ничего полезного не смог добавить.Речь то не обо мне.
Постов о Модула 2 у меня не было.
Речь о том, что народ впустую трепит языками о том в чем не разбирается.
Проблема форумов в том, что "говоруны" вечно троллят в вопросах, которых не разбираютcя.
В результате у многих профи просто пропадает желание к обсуждения, так как темы обычно просто захламляются постами "говорунов".
> В результате у многих профи просто пропадает желание к обсуждения, так как темы обычно просто захламляются постами "говорунов".К примеру сделал для себя fork freetype.
Перевел ее на а-ля C++, при рефакторинге убрал тьму макросов, ...
ЕСТЬ ЧТО СКАЗАТЬ, но на форумах вопросы разработки бесполезно обсуждать.
ГОВОРУНЫ все затроллят ...