1. Куча / Говнокод #24500

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    Чуваки, давайте тред про книги.
    
    Сейчас как раз хочу выбрать книгу младшему брату (14yo) какое-нибудь интро
    в программирование, такое же волшебное, как книга Ларри, только попроще тех-
    нически, где бы объяснялось, что переменная — это ебучая «ячеечка памяти»,
    и всё такое. Только я подумал лучше сначала дать что-нибудь компилируемое,
    а то потом хрен переучишь, как вы на это смотрите? Сразу на ум приходят книги
    Вирта, но у паскаля сейчас с инфраструктурой пиздец, и на линуксе его компи-
    лить как-то не нативно. (GNU Pascal почил, а заставлять брата патчить кде рано).
    
    У меня у самого опыт перекошенный, я начинал с VB, потом перешел на Pascal,
    но книги попадались отстойные.
    
    Короче, нужен ваш совет.
    Особенно, великих наставшиков roskomgovno, roman-kashitsyn и bormand, и всех
    остальных. Кроме Стертора.

    Запостил: vistefan, 16 Июля 2018

    Комментарии (332) RSS

    • #SEO: тред про книги, need help
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • Разумеется, мы ограничены книгами, переведёнными на русский язык? "Изучай Хаскель во имя добра?"
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • Leo Brodie, "Starting Forth"
      Ответить
    • > GNU Pascal почил
      Ставь Free Pascal, лучше паскаля для начинающих ничего нет. Си – сложна нипанятна много неоднозначностей, и система типов – говно.

      ЗЫ. Мой первый ЯП был скриптовый язык в Multimedia Builder, то ещё гоано, на бейсик похоже, я учился по справке и форумам, и получил необратимые повреждения моска.
      Ответить
    • SICP, HtDP, K&R
      Ответить
      • Хм, а HtDP что, на русский не переведена?
        Ответить
      • для детей, srsly?

        Кмк, начинать надо с реализации игрушек. Жалко, перевода «Land of Lisp» на русский нету.
        Ответить
        • Ну, для детей HtDP вполне подойдет, вот например там ракеты какие-то запускать можно
          http://www.htdp.org/2018-01-06/Book/part_prologue.html#(part._arithmetic-pro)

          А так вообще, для совсем детей можно что-то по Scratch попробовать.

          Или вот это:
          http://dump.bitcheese.net/files/pulikej/Яша_учится_программировать1.6.jpg
          http://www.programmingforkids.ru/2013/09/o-knige-dlya-detei.html

          Или какое-нибудь LOGO с черепашьей графикой (учебники и всякие видео на ютубе несложно нагуглить, например https://youtu.be/S1EegcFddBM )
          Ответить
          • Scratch он знает, за исключением, разве что, списков, которые как раз наоборот в нормальных языках более ясны интуитивно, чем в визуальных.

            Racket — это какая-то очень странная штука, надо самому для начала попробовать.
            Ответить
        • > «Land of Lisp»

          Удивительная вещь, спасибо что показал.
          Ответить
        • > Жалко, перевода «Land of Lisp» на русский нету.

          Не удивительно. Как перевести книгу, в которой слово «баг» используется в двух значениях одновременно, и при этом сохранить игру слов без глупых сносок и предисловий?
          Ответить
          • Жалко, что ты оказался таким неспособным ебантеем.
            Ответить
          • Ты начал сам читать? :)
            Я читал лет пять назад, мне доставило. Один из недостатков — по дефолту всё на GNU CLISP, сейчас этим говном практически никто не пользуется, основная масса юзает либо SBCL (для прода на линупсах), либо Clozure CL (для дев-билдов или мака, там более глупый но ощутимо более шустрый компилятор).
            Хотя вроде от стандарта там не сильно отходят, может и нет разницы, если иудейские символы тебя не беспокоят.
            Ответить
            • > если иудейские символы тебя не беспокоят

              Ты это о чем?
              Ответить
              • https://a.fsdn.com/allura/p/clisp/icon?1503603987
                Ответить
                • https://clisp.sourceforge.io/impnotes/faq.html#faq-menorah-why
                  Ответить
                  • нихуясе там политота подгорает в FAQ
                    Сёме не показывайте
                    Ответить
                    • Хотелось бы узнать, что там за ссылкой like this one на умершую гугл-группу. Или она не умерла? Не умею этим пользоваться.
                      Ответить
                      • показать все, что скрытоvanished
                        Ответить
                        • Да, когда ученые и компьютерщики начинают нестерпевать за политику и пихать ее в свои работы это всегда смешно
                          Ответить
                          • Кроме Ричарда Столлмана.
                            Ответить
                            • У Столлмана социальная идеология, а не политическая. У него, вроде, Тяньаньминь не болит, а болит только несвободный (с его точки зрения) софт
                              Ответить
                              • > У Столлмана социальная идеология, а не политическая

                                Политическая, политическая. Его заботит fake elections in usa, wikileaks, edward snowden, какая-то фигня с кешем в индии, разнообразные политические и идеологические репрессии в разнообразных странах. И на stallman.org первые разделы — political articles и political notes, и political notes — это сейчас вообще основная деятельность Cтоллмана, он больше не пишет код, и на своём сайте прямо из emacs десятки и сотни подзаголовков в день линкует и рассылает в rss.
                                Ответить
                                • Да? Вот, блядь. Умирать надо молодым, всё таки.

                                  Citizens of Turkey: vote to defeat Erdoğan and his party.
                                  Support the US Green Party.
                                  Support the Citizens' Climate Lobby.

                                  PS: Люто, бешено ненавидящий Столлмана Тео Де Раадт как-то посрался с DARPA по поводу войны в Ираке, так что это видимо общее
                                  Ответить
                                  • Кто такой Столлман?
                                    Ответить
                                  • > Да? Вот, блядь.

                                    Я думал ты в курсе. Мы же об этом уже говорили в #23874 (удалён) (спасибо бормандстоку) (@bormand, прикрути ссылки на зеркала из раздела «Порыться в говне», а то приходится номер треда вручную писать):

                                    -----------------------

                                    SemaReal ☓ 2018-03-06T08:29:04Z # #
                                    А что делать пиздатому прогеру после тридцати? Прогать?

                                    vistefan ☓ 2018-03-06T08:33:44Z # #
                                    Не, не прогать. Придумывать ебанутые лицензии, постить через emacs на свой сайт на чистом html политические новости, выступать в смешной одежде, всё вот это вот.

                                    1024-- ☓ 2018-03-06T09:18:45Z # #
                                    Как скучно. Ну разве что если латентный гуманитарий.

                                    SemaReal ☓ 2018-03-06T09:20:45Z # #
                                    Столлман то?

                                    1024-- ☓ 2018-03-06T09:55:03Z # #
                                    Столлман - это какое-то пожизненное звание технаря?
                                    Бакалавр физики, магистр медицины, столлман в C++, кремлёвский столлман по выборам в США.

                                    > Придумывать ебанутые лицензии
                                    Юрист
                                    > постить через emacs на свой сайт на чистом html политические новости
                                    Писатель, причём из идейных, почти из тех, кто гусиным пером пишет
                                    > выступать в смешной одежде
                                    Артист

                                    Чистейшие проявления гуманитария.

                                    SemaReal ☓ 2018-03-06T10:59:40Z # #
                                    > Придумывать ебанутые лицензии
                                    >Юрист
                                    А еще он сидит под линуксом, значит админ
                                    -----------------------

                                    Да не бери в голову, Столлман непогрешим, пусть чем хочет занимается. Да и благородно это, в молодости делать дело, в старости звать молодых делать это дело.
                                    Ответить
                                    • Ну лицензии это я еще понимаю, но с эрдоганами воевать это буээ.
                                      Ответить
                                      • Он очень дисциплинированно это разграничивает. Политота никогда не пролезает в IT-лекции, и вообще, вон, ты даже не знал, что она у него есть. По сути от Столлмана трудно получить политоту (как и вообще что-либо), если явно на это не подписаться. А высказывает он её, потому что, видимо, считает себя человеком осведомлённым (лично общается со всякими викиликсами). Ну, что ж поделать, так человек взрослеет: расширил прекрасные идеи своей молодости до democracy в целом.

                                        Умирать, безусловно, надо молодым, но это уж кому как повезёт.
                                        Ответить
                                        • "democracy в целом" штука очень лукавая. Вот чтобы судить что лучше -- Linux-based OS или Windows надо попользоваться обеими системам хотя бы пару лет.

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

                                          Но это конечно не умаляет его заслуг в сфере свободного софта.
                                          Ответить
                                          • > Вот чтобы судить что лучше -- Linux-based OS или Windows надо попользоваться обеими системам хотя бы пару лет

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

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

                                            Как сказали разработчики CLISP:
                                            If you are unhappy about their artistic preferences, political views or religious beliefs, you are free to ignore them.

                                            И это одна из главных свобод в демокраси.

                                            Поэтому
                                            > не умаляет
                                            Само собой
                                            Ответить
                                            • >> обе хороши для какой-нибудь надобности
                                              Тоже так думаю:)

                                              >>потому что чтобы проверить, надо сначала сделать
                                              И это тоже. Но вообще в целом вот есть чуваки "A" и чуваки "B".

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

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

                                              >>free to ignore
                                              Тащемто так и делаем. Я пользуюсь софтом, чьи авторы имеют чуждые мне political views, и мне пофиг
                                              Ответить
                                              • > Тоже так думаю
                                                > И это тоже

                                                Как мы, блять, мило всё время беседуем, впору пиво пить.
                                                Ответить
                                    • показать все, что скрытоvanished
                                      Ответить
                                      • Говорю же, вежливее будьте! Не матерись, как фраер с гондонной фабрики или как блядь портовая. То же самое можно было бы сказать и культурно.
                                        Ответить
                                        • вот это охуенно:

                                          What's bad about: Airbnb | Amazon | Amtrak | Ancestry | Apple | Discord | Ebooks | Eventbrite | Evernote | Facebook | Google | Intel | LinkedIn | Lyft | Meetup | Microsoft | Netflix | Patreon | Pay Toilets | Skype | Spotify | Twitter | Uber | Wendy's |

                                          Столман против всех!
                                          И тут он молодец
                                          Ответить
                                          • Не заебался ещё кокс нюхать? У тебя похоже подпольная лаба дома.
                                            Ответить
                                          • показать все, что скрытоvanished
                                            Ответить
                                          • показать все, что скрытоvanished
                                            Ответить
                                          • показать все, что скрытоvanished
                                            Ответить
                                            • Столман и абсолютно все дистрибутивы Linux ругает за то, что там бывает НЕ GPL софт. Он даже с бздунами посрался за то, что их лицензии разрешают не отдавать сырцы
                                              Ответить
                                              • > Он даже с бздунами посрался за то, что их лицензии разрешают не отдавать сырцы

                                                Ну, не отдавать сырцы -- это плохо.

                                                И с Линусом посрался из-за GPL v3.0 и теперь говорит, что просто linux не полностью свободно, чтобы полностью свободно надо linux-libre.
                                                Ответить
                                                • Ну BSDшники считают что свобода заключается в том, что бы не говорить своим пользователям что делать. BSD ты можешь взять и законтрибьютить обратно фикс. А можешь не законтрибьютить, а сделать на его основе софт и продавать за миллион, а авторам дать шыш (там сделал Juniper, например).

                                                  С GPL так нельзя.

                                                  Да, Linux rms тоже не очень любит, он его скорее терпит, и во-первых ждет hurd, во-вторых не устает напоминать что ОС называется GNU/Linux потому что кода GNU там чуть-ли не больше чем самого Linux.
                                                  Ответить
                                          • показать все, что скрытоvanished
                                            Ответить
                                        • показать все, что скрытоvanished
                                          Ответить
                            • показать все, что скрытоvanished
                              Ответить
                      • показать все, что скрытоvanished
                        Ответить
                      • ну там вероятно бомбануло кого-то он миноры.

                        ёбнутых много на свете:
                        https://www.mail-archive.com/[email protected]/msg45623.html

                        Чувак скрывает свою фамилию потому что:
                        [quote]
                        > Those of us with Jewish last names who aren't
                        > zionists frequently take the approach of not blasting our last names
                        > across the net in every communication because we've learned that
                        > zionists are aggressive and it doesn't make sense to make it easy for
                        > them to target/abuse you.
                        [/quote]
                        Ответить
                        • показать все, что скрытоvanished
                          Ответить
                        • показать все, что скрытоvanished
                          Ответить
                          • >>,его мнение можно игнорировать, потому что анон не нужен.
                            Это не только в рунетах. В юзнетах и фидонетах образца 90х так тоже не очень было принято делать, особенно в tech рассылках.

                            Но если ты поцчитаешь предысторию, то она такая:

                            Юзер: а давайте запилим опцию у комманды mv чтобы она затирала за собой блоки после удаления
                            Тео: нет, иди нахуй
                            Атилла: вежливее было бы сказать: "нет, эта опция не нужна"
                            Тео: какой-то анонимный хуй будет учить меня вежливости? Иди-ка ты нахуй.
                            Атилла: я не анонимный

                            (ну и дальше кусок который я привел)
                            Ответить
                  • показать все, что скрытоvanished
                    Ответить
          • > Как перевести книгу

            Не думаю, что это большая проблема. «Gödel, Escher, Bach: an Eternal Golden Braid» как-то же перевели на русский, там игры слов гораздо больше.
            Ответить
            • > Gödel, Escher, Bach

              Причём сделала это домработница, и она, насколько я понимаю, никогда до этого и никогда после больше не переводила ни одной книги. Но это исключительный случай, вся эта книга на любом языке окутана волшебством и чудесами.
              Ответить
      • показать все, что скрытоvanished
        Ответить
      • > SICP, HtDP, K&R

        Въебал плюс.

        Батюшка esr завещал лалкам учить Сишку и Лисп.

        http://vadeker.net/articles/hacker-howto.html

        So, bring up a Unix — I like Linux myself but there are other ways (and yes, you can run both Linux and Windows on the same machine).
        Learn it. Run it. Tinker with it. Talk to the Internet with it. Read the code. Modify the code. You'll get better programming tools (including C, LISP, Python, and Perl)
        Ответить
    • Энциклопедия профессора Фортрана
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • Если начинать с питона то "Python для детей. Самоучитель по программированию".

      Параллеьно советую "Код. Тайный язык информатики". Оч хорошая книга для детей по устройству комптютера
      Ответить
    • Кстати, а есть тут те, кто считает что это очень плохо что детей больше не учат паскалю, а учат питону?

      Я вот именно так и считаю: строгая, статическая типизация, минимум лишних концепций и вербозность это именно то, что нужно чтобы поставить на место мозги молодому поколению
      Ответить
      • Учить детей питону - всё равно, что обучать их массажу простаты, вместо обычной дрочки.
        Ответить
      • показать все, что скрытоvanished
        Ответить
        • >>Ну я так же считаю
          Хорошо что я не одинок:)

          >>не нужна
          Слабая нужна для однострочников. Ну там считал строку из файла, а в строке число, и ты явно умножил его на 42. Хотя наверное и тут лучше питоновский явный int() вместо перлового или луашного неявного кста.

          Есть Pascal ABC.NET который сделали спецом чтобы продолжать учить паскалю по старым методикам, но его наверняка нет под линукс)
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • Есть слабое подозрение что ABC.NET требует WinForms и прочих шняг коих на никсах не будет, но это не точно.
              Free Pаscal и Ada -- ок, но учебник обычно описывает всё, включая IDE.

              Меня в децтве учили turbo pascal и IDE и языку, и я на первых порах даже не думал о них как он разных сущностях.
              Ответить
              • показать все, что скрытоvanished
                Ответить
                • Понятия не имею, можно попробовать.

                  Но есть нюанс: в моем детстве pascal был вполне себе рабочим инструментом: на нем писали реальные программы, и никому бы в голову не пришло назвать его "учебным языком".

                  А сейчас ребенок может спросить: а я смогу на паскале делать веб-сайты? А писать игры под ios? А если нет, то нахуя ты меня этому старью учишь?
                  Ответить
                  • показать все, что скрытоvanished
                    Ответить
                  • показать все, что скрытоvanished
                    Ответить
                  • показать все, что скрытоvanished
                    Ответить
                  • показать все, что скрытоvanished
                    Ответить
                    • >>Поддержка iOS есть в Delphi XE.
                      Расскажи вкраце как оно работает? Требует mac os x и там собипрается на llvm?

                      >>. А вообще разработка под iOS — это жопа.
                      Это политика ябла. Нра, не нра -- спи моя красавица
                      Ответить
                      • показать все, что скрытоvanished
                        Ответить
                        • ничего не понимаю. Откуда у него там SDK? откуда хедеровские файлы cocoa? Откуда их .a файлы для стат линковки (если таковые нужны)? Откуда там копелятор под эппловый cpu (или он обычный arm)?
                          Ответить
                          • У них шланг вроде был в качестве бекенда под arm и x64. Но могу ошибаться.
                            Ответить
                            • у ios-то?
                              да, разумеется. Они на шланг/llvm уже лет пять как перешли. но я не знаю патченный он у них или нет

                              anyway, вопрос про SDK остается открытым.
                              Ответить
                              • У делфни в целом, не только под иос.
                                Ответить
                                • Отличненко, но я всё равно не понимаю про SDK: чтобы слинковаться (пусть даже динамически!) тебе все равно нужна какая-то либа (dyld или so), да?
                                  Ну как же это делать?
                                  Ответить
                                  • показать все, что скрытоvanished
                                    Ответить
                                    • >> def-файл — текстовое описание экспортируемых dll-кой функций
                                      MSный линкер использует его для экспорта: ты можешь либо явно dllexport сказать над функцией, либо перечислить их в Souce.def file.

                                      В некоторых SDK (например в фаре) функции в .h файлах не имеют dllexport и чтобы не иметь проблем с копеляцияей приходится всегда делать Source.def. Ну, это ничего.

                                      >>прямо в исходнике.
                                      Ого, но исходников cocoa у тебя тоже нет. Это НЕ опен сурс так-то.

                                      >> Вопрос в лицензии
                                      Как минимум да. А еще в том что надо делать repack какой-то: ты не можешь тупо скачать SDK (который идет с XCode) на винду. Там будут всякие утилиты скомпилированные (ну окей: слинкованные) в Mach-O итд. Это всё doable, но требует времени
                                      Ответить
                                  • показать все, что скрытоvanished
                                    Ответить
                                    • показать все, что скрытоvanished
                                      Ответить
                                      • показать все, что скрытоvanished
                                        Ответить
                                      • то-есть каждый раз когда выходит минорный ченлж у SDK, так пацаны их абракадабры запускают скриптеца для генерации этой хуйни и выкладывают на сайт?

                                        Почему ябло их не судит?
                                        Ответить
                                        • > минорный чейнж
                                          Что-то мне намекает, что API и ABI там достаточно стабильные. Иначе бы все разрабы заебались всё пересобирать после каждого апдейта иос. И для юзеров это была бы ёбаная боль.

                                          А раз оно стабильно -- то можно и не гнаться за яблом, новые фишки можно и к следующему релизу делфни поддержать.
                                          Ответить
                                          • Он может быть обратно совместим, но всякие оптимизации могут быть.
                                            Кроме того XCode выходил раньше раз в пол года / год где-то, и часто приносил с собой новую версию SDK и там кучу всего нвоого
                                            Ответить
                                            • У делфни же свои виджеты, абстракции и т.п. Я не думаю, что аброкадабровцам так уж много надо от платформы. Скорее всего какие-то базовые сервисы юзают да немного API для всяких там GPS. У них же не стоит задача дать разрабу все-все плюшки икскода.
                                              Ответить
                                              • Да там не только GPS: там дохуя всего, начиная от сообщений от ОС (к NSApplication) про то что памяти мало, и заканчивая API для получения по сети всякой хрени (NSURLSession)

                                                Очень дофига всего, iosны прыложения очень сильно связаны с OS. Не говоря уже про всякие CoreData итд
                                                Ответить
                                                • > памяти мало
                                                  И почему это говно стоит дороже китайфонов, у которых её хватает на даже на десяток инстансов ёбаной JVM с GC...
                                                  Ответить
                                                  • Во-первых этот API появился 10 лет назад, во-вторых не факт что тогда им польщовались активно.

                                                    Суть вот в чем: Application которое не активно находится в фоне. Ее могут усыпать, а могут и грохнуть. Убитое приложение дольше поднимается, так что лучше его не грохать.

                                                    Когда мало памяти ios шлет сообщение всем приложениям. Они могут почиститься (напрмиер, опорожнить кеши или отпустить какие-то контролы). Если ее все равно мало, то выбирается жертва и ёбается.

                                                    >> ёбаной JVM с GC.
                                                    Уж ты-то мог бы и знать что никакой JVM в Android нет. Там ART.
                                                    Это другая соврешенно виртуальная машина. Там и формат комманд другой даже. Просто .class файлы транслируются в её опкоды
                                                    Ответить
                                                    • > совершенно другая
                                                      А есть ли принципиальная разница? Прикладной программист эту разницу всё равно не увидит. GC и его проблемы всё равно никуда не уйдут. Если оно крякает как утка, то может быть и похуй?

                                                      > событие
                                                      Не думаю, что там события обрабатываются намного сложнее винапишных.
                                                      Ответить
                                                    • Как раз раньше этим пользовались постоянно, 7 лет назад я тестировал на iPod 3gen, сам представляешь.

                                                      iOS шлёт applicationDidReceiveMemoryWarning емнип не всем подряд, а той аппе, которая превысила некоторый барьер (https://stackoverflow.com/questions/5887248/ios-app-maximum-memory-budget). На новых айфонах можно запустить много JVM :-) метафорически
                                                      Ответить
                                                • > URLSession
                                                  Беркли сокеты не завезли что ли?
                                                  Ответить
                                                  • Завезли конечно же! Это BSD, чувак. Причем прошедшее сертификицю SUS.

                                                    Но URLSession во много раз более высокуровневый API. Это примерно как WinInet в Win32 или Curl в никсах, но даже более высокуровневый.

                                                    Во-первых он под Cocoa. Во-вторых он умеет HTTP. В-третьих у него авторизация и куки есть. И наконец он может там чуть-ли не в фоне что-то качать пока твое приложение спит.
                                                    Ответить
                                                    • > когда приложение спит
                                                      Ну в общем одна полезная фича (и то из-за политики ябла и запрета на фоновую работу?). Всё остальное для делфи давным-давно было реализовано через обычные сокеты.
                                                      Ответить
                                                      • ...а так же проверка сертификатов по встроенному хранилищу (вместе с реализацией http), колбеки для аутентификации, которые легко завязать с keychain и пр.

                                                        Овердохуя всего есть
                                                        Ответить
                                                  • Как ты увязал сокеты и URL, Борманд?)

                                                    Кстати, Apple strongly discourages от использования голых сокетов на iOS, хотя они там работают
                                                    Ответить
                                            • И щас выходит раз в полгода. И приносит новые версии не только SDK, но и компиляторов, апдейтишь минорную версию, а оно бац и не компилится.

                                              Часть забили болт. Последний AppCode пишет, что поддерживает позапрошлый XCode. Вот такой bleeding edge of technology
                                              Ответить
                          • показать все, что скрытоvanished
                            Ответить
                            • >>Как будто это проблема. Есть даже такое извращение:
                              И что? Там будет NSObject?

                              А даже если и будет, там точно НЕ будет UIKit, например: Всякие UITableView откуда возьмутся?

                              Часть API (т.н. CoreFoundation) это вообще чистый си (функции я префиксом CF) их там тоже не будет, опять таки если не попереть их с мака.

                              В целом ябло состоит из следущих словев
                              1) ядро = mach + posix = XNU.
                              2) ядро + утилиты = DarwinBSD
                              DarwinBSD это OpenSource.
                              3) Поверх: CoreFoundation, Quartz итд: проприетарные либы на сях
                              4) Поверх: Cococa, UIKit, APPKit, еще 100500 либ: проприетарные либы на ObjC

                              Как там со Swift лучше расскажет Desktop, но думаю что swift там в районе уровня 4.

                              Так что можно конечно писать только под Posix и не иметь дело с проприетарщиной, но много ты не напишешь
                              Ответить
                              • Х.з., эти ребята даже винапишные хедеры переписывали руками на паскаль (местами криво). Боюсь, что и тут они могли сделать так же (по крайней мере для динамических либ, которые ожидаются на девайсе). Как со статическими -- х.з., поди просто не юзают их. Им же не произвольную прогу под ябло надо компилить. Может быть и достаточно базовых API.
                                Ответить
                                • Ну может быть. Но это всё как-то не звучит слишком стабльно
                                  Ответить
                          • Видимо, оттуда же, откуда Xamarin, Qt и прочие
                            Ответить
                            • А, я криво прочитал, вы про кросскомпиляцию.

                              Кстати, фейсбучный xcbuild обещает сборку проектов XCode на Винде и Линуксе.
                              Ответить
                  • И действительно, что на этом говне можно написать, кроме хелловелда?
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • показать все, что скрытоvanished
                        Ответить
                        • Ещё и заканчивается на END с точкой. Грустный код.
                          Ответить
                          • Точка с запятой не нужна перед последним END, а после последнего END нужна точка (после остальных -- точка с запятой)

                            Двадцать лет с лишним прошло, а я помню...
                            Ответить
                            • > Точка с запятой не нужна перед последним END

                              Странное правило, это разве что-то упрощает? Только багу родит, когда в конец добавляешь строку и забываешь сепаратор.
                              От пустого оператора ничего не случится.

                              P.S. Ну в общем для написателей компиляторов Паскаля (3 курс), видимо, подчеркивает, что, мол, это именно сепаратор, а не терминатор.
                              Ответить
                              • Пустой оператор в Псакале есть, перед ендом можно ставить тоску с запятой (но не обязательно), а вот перед елсе нельзя, что вгоняло меня в децтве в когнитивный дисслонанс.
                                Ответить
                                • Потому что это не терминатор, а сепаратор, и из-за этой точки с запятой нельзя было бы определить, к какому if относится else, если ветвления вложенные и некоторые из них неполные.

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

                                    Вирт вообще старался придумывать языки с наиболее простым синтаксисом и семантикой, даже ради упрощения and/or/xor имеют более низкий приоритет чем оптераторы сравнения (чтобы уменьшить число операторов и уровней притиритета). См. также его более поздние Мудулы и Обтероны.
                                    Ответить
                                    • > and/or/xor имеют более низкий приоритет чем оптераторы сравнения
                                      Опять я путаю... Конечно же более высокий.
                                      Ответить
                                  • Сепаратор 2: Паскудный else.

                                    Смотрите на всех мониторах школоты.
                                    Ответить
                        • Правильно ли я понял, что это - то же самое, что нижеприведённое?
                          <?php
                          echo 'FAREWELL, WORLD!';
                          ?>
                          Ответить
          • показать все, что скрытоvanished
            Ответить
            • Это репортаж ещё из "Кунсткамеры" или уже из сумасшедшего дома?
              Ответить
      • показать все, что скрытоvanished
        Ответить
        • Разумеется не все. Если ты хочешь стать врачом, дизайнером или бизнес-аналитиком то конечно тебе не нужны C++, асемблер и понимание того чем стек отличается от кучи, и сколько байт занимает unit32. Тогда тебе нужен питон.

          Я считаю верхом идиотизма когда экономистов учат С++ (а так делают иногда, и это оч глупо).

          Но полагаю что Вистефан хочет сделать брата именно что программистом, и вот программисту конечно лучше бы сразу учиться понимать как процессор выполняет его программу, и как она представлена в памяти. Хотя бы в основных чертах понимать.
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • Думаешь, брат хочет стать великим балетмейстером как Мариус Петипа, а Вистефан заставляет его программировать?

              >>заразно
              Заразно, если тебе это интересно. Собссно, если старший брат разбирается в ОС, которой пользуется, а младший интересуется компьютерами, то разумеется он заразится.
              Ответить
          • > Вистефан хочет сделать брата именно что программистом
            > лучше бы сразу учиться понимать как процессор выполняет его программу, и как она представлена в памяти. Хотя бы в основных чертах понимать.

            Да я сам-то этого не понимаю ))
            Ответить
      • > минимум лишних концепций
        - это в TP7, например? С классами и типом pointer?

        > вербозность
        - не думаю, что, если 25 раз подряд написать слово implementation, то это даст буст техническим знаниям
        Ответить
        • >>С классами и типом pointer?
          Там не было ключ слова class же:) Никаких классов и методов: типы и функции (и поцедуры)

          >>если 25 раз подряд написать слово implementation
          сам факт разделения интерфейса и имплементации это полезно
          Ответить
          • > сам факт разделения интерфейса и имплементации это полезно
            - хз, я так не считаю.

            > Там не было ключ слова class же:
            - окей, не было классов, было ООП, только с другой номенклатурой. Srsly, может лучше тогда детям уже Kotlin учить?
            Ответить
            • >> хз, я так не считаю.
              а я считаю потому что это воспитывает культуру понимания того что есть интерфейс модуля и его имплементация.

              >>, было ООП, только с другой номенклатурой
              Было, да. Но с меньшим количеством дублирующих концепций.

              >>Kotlin
              Ох, хз. Выводы типов и лямбды это круто конечно, но вот не очень уверен что у детей мозг не съедет
              Ответить
              • > воспитывает культуру понимания того что есть интерфейс модуля и его имплементация
                - сначала расскажи детям, что такое модуль, и чем отличаются модули в разных языках (и почему их нет в С++, гыгы), в чём различие между uses, include и import... Ну ты понел.

                В 14-15 лет нужно сформировать осознание того, что (при условии, конечно, что подростку интересно и он не против дальше идти по этой стезе) код должен быть а) читаемым и б) поддерживаемым. А понимание модуля и имплементации это настолько language-specific, что отдаёт карго-культом
                Ответить
                • Мне вот кажется что
                  >> читаемым и поддерживаемым
                  это для него пока пустые слова.

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

                  >>А понимание модуля и имплементации это настолько language-specific,
                  Ну, в любой нормальной программе есть какие-то модули и их (модулей) интерфейсы. Они могут быть совсем неявными (как в каком-нить перле php) и очень явными как в паскале.

                  Если взорслому программисту можно сказать "интерфейс твоего модуля" про .php файл и он поймет, то ребенок не поймет, потому лучше ему показать что такое интерфейс буквально.
                  И паскаль это и делает.
                  Ответить
                  • > это для него пока пустые слова
                    - это уже задача для педагога.

                    > В си модуль можно эмулировать с помощью .h и правильной линковки, но получится куда гавнястее чем в паскале, потому мне и кажется что поскаль более лучший язык для обучения.
                    - только он выйдет из школы и паскаль никогда больше в жизни не увидит, будет писать на си, где то же самое можно сделать лишь куда гавнястее. И чему в итоге мы его научили?
                    Ответить
                    • >>- это уже задача для педагога.
                      и паскаль ему в этом помогает

                      >>никогда больше в жизни не увидит, будет писать на си,
                      А то и вовсе на php:) Это именно та причина, по которой я не уверен что паскалю надо учить. За пределами школы его почти нигде не юзают
                      Ответить
                    • > это уже задача для педагога

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

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

                    Так не стоит говорить, получается дважды превосходная степень. Стоит говорить просто: «более хороший», или — «лучше».
                    Ответить
                    • лучше взять более другой язык для обучения твоего брата, пока он не умер от посколя
                      Ответить
                      • Какой, defecate-plus-plus?
                        Ответить
                        • c# или котлин, не надо ломать глаза и руки о неудобные неактуальные вещи из 80х

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

                          а раз никакой разницы, то надо брать
                          1) актуальный
                          2) мультипарадигменный
                          3) с какой-никакой тупизацией, да ещё и чтобы автодополнение работало и волнистым подчеркивало ДО попытки запуска
                          4) с минимумом бойлерплейта
                          5) с какой-никакой но диктовкой хорошо-структурированного-приложения
                          ...
                          6) а ещё чтобы оконные приложения с уже нормальными кнопочками и вводами можно было клепать без анальных страданий (в этом плане шарп уделывает, конечно)
                          Ответить
                          • Блять, ты прав, как никогда.
                            Ответить
                          • Погоди, а под linux?
                            Ответить
                            • под линукс не надо оконных приложений писать, а то опять опенофис получится

                              ну, какбе, тот же интеллий идея у меня на убунте нормально смотрится, что доказывает, что окошки на жабе не всегда выгледят как хуй
                              Ответить
                          • >>c#
                            >> с минимумом бойлерплейта
                            ;)

                            Хеллоу ворлд на C#
                            using System;
                            
                            namespace ConsoleApplication
                            {
                                class Program
                                {
                                    static void Main(string[] args)
                                    {
                                        Console.WriteLine("Hello world");
                                    }
                                }
                            }


                            Нет уж, лучше тогда правда на котлине.
                            Ответить
                            • namespace нельзя не писать?
                              Ответить
                              • Намеспаце можно опустить. А вообще, это какое-то говно, когда чтобы написать простую программу нужно обязательно объявлять класс. Буэ
                                Ответить
                            • показать все, что скрытоvanished
                              Ответить
                              • Заебали и с "Kotlin", и с "Java", и с "C++", и с "C#", и с "C", и с "Python", и "Ruby", и с "NodeJS", и с "Pascal". Хотя, "C++" пусть остаётся, как основа для более продвинутых технологий; но всё остальное - хуйня галимая.
                                Ответить
                                • ага, давайте все 1С постить, ведь это новые технологии!
                                  Ответить
                        • StandardML
                          https://www.govnokod.ru/24325#comment415709
                          Ответить
                          • А какую реализацию?
                            Ответить
                          • А есть учебные материалы по нему чотбы детей учить?

                            По паскалю-то дофига
                            Ответить
                            • Кстати, насчет
                              > По паскалю-то дофига
                              Кроме самого Вирта, что котируешь?
                              Ответить
                              • Я имел ввиду что программ и книг для обучения паскалю детей дофига, какие из них хорошие я не знаю, я даже не помню по какой книжке учили меня, но важно что они есть и их много. И на русском.

                                http://school.podvorye.ru/staff/tsvetkov/abcpascal.pdf
                                https://vk.com/topic-45356308_29170530


                                А что есть по StandardML?
                                Ответить
                            • http://alexott.net/ru/fp/books/#sec29

                              Подозреваю, что The Little MLer неплохая. Сомневаюсь, что есть что-то на русском…
                              Ответить
                              • > Подозреваю, что The Little MLer неплохая

                                А ты её смотрел? Там какой-то странный формат вопрос-ответ, типа справочника, хоть и простого, но не хватает сквозного изложения последовательного и теоретических выкладок или наоборот каких-то отступлений, которые бы наглядно всё объясняли. Такое ощущение, что объясняют, что такое кирпич на примере одного кирпича, что такое цемент на примере одного киллограма цемента, и всё это якобы пособие по строительству домов. А как строить дом не показывают.
                                Ответить
                        • Кстати, Racket
                          Ответить
                      • Первый язык не последний, он может забытся и вообще никогда больше не использоваться, например в паскале помню только базовый синтаксис, а свой первый – язык скриптов в Multimedia Builder, вообще почти не помню. Он должен дать основные понятия в программировании, должен быть простой (допустим синтаксис switch в сиподобных языках я очень долго не мог запомнить, а паскалевский запомнился довольно быстро), и есесено по нему должно быть много литературы, а то сядешь учить какой-нибудь красивый езыг, а по нему на русском всего одна маленькая статейка в википедии. Поэтому я за PHP Пачкаль.
                        Ответить
                    • Ты правда не знаешь мем про "более лучше одеваться"?
                      Ответить
                  • только это всё пиздежь, т.к. паскаль в ипостаси ТП7 нихера не стимулирует писать модули

                    все всегда хуярили один годлайк файл, пусть даже на тысячи строк, потому что за 60 (120) минут тебе некогда думать над декомпозицией, тебе алгоритм пузырька надо хуякхуяк

                    там даже создание еще одного файла в "солюшен", в этом синем уебище, было через одно место

                    а 21 строка желтых квадратных букв на выжигающем глаза синем фоне, вкупе с ебанистически длинными проооцееедуууреее фуууунктиииооон пиздец вымораживает

                    единственное оправдание использованию паскаля сейчас - это мегаотсталость как компов в школе, так и учителей информатики не позволяет давать что-то более интересное и полезное
                    Ответить
                    • > в ипостаси ТП7 нихера не стимулирует
                      > там даже создание еще одного файла в "солюшен", в этом синем уебище
                      > а 21 строка желтых квадратных букв на выжигающем глаза синем фоне

                      Так это всё к делу не относится, если уж учить сейчас, то в каком-нибудь лазарусе или ST с подсветкой на худой конец, и компилит пусть сам в терминале под линуксом в fpc
                      Ответить
                    • >>се всегда хуярили один годлайк файл
                      Точно так же бы вы делали на любом языке. Я тоже так делал. А потом дома появился комп, и стало можно проводить больше времени за любмым делом.
                      Мой поинт очень простой.

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

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

                      >>а 21 строка желтых квадратных букв
                      Я не предлагаю писать на TP 7 сейчас, бож сохрани! 80x25 text mode имел смысл в 1993 году когда это был единственный способ вывести читаемые буквы. Сейчас уже нет конечно.
                      Ответить
                      • контракты есть во многих языках, для этого не обязательно брать паскаль

                        более того, контракты наиболее актуальны при разработке командой

                        когда же ты сам нихуя не умеешь в 14 лет, ты сначала делаешь огромную портянку в program Laba, тебя интересует, чтобы она наконец-то заработала, а не то, как из нее сделать какой-то модуль для чего? чтобы лабу подключить в другой лабе? ты не умеешь библиотеки писать еще, тебе не надо наиболее-часто-используемый код выносить в общую библиотеку, твой код одноразовый вообще

                        при этом, как я и говорил, паскаль НЕ принуждает тебя писать контракт, делай сразу глобальные переменные и хуярь в одну функцию - он всё простит, и даже не намекнет, что ты что-то ебанулся, друг
                        Ответить
                        • >>контракты есть во многих языках, для этого не обязательно брать паскаль
                          Да, но в паскале есть ключевое слово interface и оно упрощает педагогу задачу объяснения что такое "интерфейс" и "реализация":)

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

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

                          >> НЕ принуждает тебя писать контракт,
                          А кто принуждает из боль-мень известных, кстати?
                          Ответить
                          • > педагогу задачу объяснения что такое "интерфейс" и "реализация"
                            господь с тобой, педагог, который преподает паскаль, также далек от интерфейсов и реализаций, как и сам школьник

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

                            там даже до ООП дело не дойдет, и 80% учителей даже не понимают, что это такое и зачем нужно (но не потому, что наелись им и переросли, нет, не потому...)
                            Ответить
                            • Я учился паскалю не в школе, и у нас был очень крутой препод который знал и про модули и про ооп:) Но это было в конце 90-х, возможно что сейчас такие люди уже паскалю не учат.
                              Ответить
                              • те же конец 90х, вместо информатики в школе - усиленные курсы в лучшем месте в 40-тысячном городишке, 3 пары в неделю 2 года и... преподша в ООП так не смогла

                                а еще в паскале все плохо со параметрическим полиморфизмом и он полностью sugar-free
                                Ответить
                        • > не намекнёт, что ты ебанулся
                          А ещё паскаль принуждает реюзать переменные т.к. новые добавлять сложно. И это пиздец.
                          Ответить
                          • Добрыи люде разришыле в ПолоскальОБЭЦЭ делать так:
                            var h: string := 'хуй';
                            var u := 2;
                            for var i := 1 to 10 do
                                writeln('Оо! Я возбуждаюсь! Текущий размер моего члена = ', i);
                            Ответить
                            • Извиняюсь, что вмешиваюсь в чужую беседу, но я хотел бы проверить свою понятливость в отношении одиозных языков, а посему вопрос - верно ли я понимаю, что на "PHP" это будет так?
                              <?php
                              $h='хуй';
                              $u=2;
                              for($i=1;$i<=10;$i++) echo "Оо! Я возбуждаюсь! Текущий размер моего члена = ".$i."\n";
                              ?>
                              Ответить
                              • Молодец! Какой ты стал большой! Уже сам переводишь на PHP. А попу ты тоже сам вытираешь?
                                Ответить
                          • сисечка до C99 тоже.

                            Вопрос к знатокам: откуда пошло требование все переменные указывать наверху?
                            Это чтобы компилятору проще было сразу же посчитать размер стека?
                            Ответить
                            • > откуда пошло требование все переменные указывать наверху?

                              Про сишечку не знаю, там разве есть такое требование?
                              Про Пасцаль — очевидно же, та самая вербозность, которую ты хвалил. Отдельная директива, отдельное ключевое слово для переменных. Код не очень красивый и писать не очень удобно, зато очень просто делать синтаксический анализатор и компилятор.
                              ЕМНИП, в «Алгоритмы + структуры данных = программы» как раз часть книги посвящена описанию языка, а часть — написанию компилятора для него. Если ты помнишь, Pascal первое время распространялся по универсисетам в виде бинаря сырца книги Вирта, в которой описывалось, как его сделать. :)
                              Ответить
                          • > новые добавлять сложно

                            Ты имеешь ввиду, приходится скроллить в начало процедуры?

                            > И это пиздец

                            Так уж ли пиздец реюзнуть счетчик цикла или буффер для чтения строки из файла?

                            Для всего остального можно и поскроллить. За одно побуждает писать процедуры покороче, разбивать на мелкие :)
                            Ответить
                • Достаточно один раз осилить модули из StandardML/OCaml, пока самые лучшие модули, придуманные человечеством.
                  Ответить
          • И вообще вроде про вербозность шла речь, а не про разделение интерфейса и имплементации
            Ответить
          • показать все, что скрытоvanished
            Ответить
            • >>невиртуальные методы,
              а джаве до сих пор нету:)

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

                P.S.: Горжусь тем, что за четырнадцать лет разработки на "PHP" я так и не написал ни одного класса с нуля (что, впрочем, не мешало пользоваться сторонними).
                Ответить
                • Не все текут. Роман вон не течёт например, и Снаут тоже. Я теку только от урезанной версии (желательно без наследования и с immutable объектами), и уверен что реализовать ООП можно на языках вообще без поддержики ООП, например на чистых сях.

                  ООП немного переоценено, это совсем не серебреная пуля)
                  Ответить
                  • >>>"Я теку только от урезанной версии"

                    Лично я совершенно не переношу ООП. Даже когда мне пришлось на долгосрочной основе заниматься крупным проектом, первоначальный разработчик которого, подобно тебе, подтекал от некоторых ООП-моментиков, разбавляя ими зачем-то нормальный код, я как-то потратил полдня на то, чтобы заменить "mysql_fetch_object" на "mysql_fetch_assoc" и, соответственно, изменить все обращения к полям в выборке, дабы подстроить код под себя. На ООП в любых его проявлениях у меня стойкая аллергия.
                    Ответить
                    • Q: в чем разница между ООП и процедурным подходом?
                      A: в процедурном используется mysql_fetch_assoc, а в объектом mysql_fetch_object
                      Ответить
                  • показать все, что скрытоvanished
                    Ответить
                    • Ну не только тсарь:) Многие хорошие сишные API реализуют абстракцию, инкапсуляцию и полиморфизм в разном виде.

                      В си нет сахара для RAII и наследования (да и хуй с ним), нет сахара для неявной передачи указателя на объект, а так вполне себе можно делать ООП

                      Проблема в том что ООП это такой симулякр дискурса странный зверь, у которого нет настолько четкого определения чтобы сказать вот тут ООП а вот тут нет.
                      Ответить
                      • показать все, что скрытоvanished
                        Ответить
                      • показать все, что скрытоvanished
                        Ответить
                        • Наследование на чистой сишечке, каким я его видел в ядре одной ОС, например
                          #include <stdio.h>
                          /// Parent
                          struct papa {
                            int id;
                          };
                          
                          #define SET_ID(p, i) ((struct papa*)p)->id = i
                          
                          void show_id(struct papa *p) {
                            printf("id: %d\n", p->id);
                          }
                          
                          
                          
                          /// Child
                          struct child {
                            struct papa p;
                            int age;
                          };
                          
                          
                          void show_info(struct child *c) {
                            show_id((struct papa*)c);
                            printf("age: %d\n", c->age);
                          }
                          
                          
                          int main() {
                            struct child ptx;
                            SET_ID(&ptx, 42);
                            ptx.age = 100500;
                          
                            show_info(&ptx);
                            show_id((struct papa*)&ptx);
                          
                            return 0;
                          }
                          Ответить
                          • Переведи на "PHP".
                            Ответить
                          • А на чем основывается этот хак? Почему, если одна структура относится к другой has-a, то каст потом превращает одну в другую? Из-за того, что ли, что в памяти будет идти сначала структура-родитель? Или я чего-то фундаментально не понимаю?

                            И ты только поля показал. А как быть с наследованием методов?

                            P.S. а, понял, наследование методов типа есть, только явный каст нужен. Ну можно подсластить препроцессором.
                            Ответить
                            • показать все, что скрытоvanished
                              Ответить
                              • > на порядке полей

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

                                Энивей, говнина знатная, но идея ясна: хочешь поля и методы как у структуры А, заверни А как has-a в B и юзай там внутри, только следи за всем сам вручную. Такой вроде антипаттерн есть в ООП нормального человека.
                                Ответить
                                • Ну если бы оно было совсем имплементейшен то читать байтики из сети или железа было бы проблематично, не находишь?:)

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

                                  >>следи за всем сам вручную
                                  Это девиз сишки ващето
                                  Ответить
                                  • > читать байтики из сети или железа было бы проблематично, не находишь

                                    И то правда.

                                    А как в сишкооопе сделать интерфейсы?
                                    Чтобы структура реализовывала такие-то поля и методы, и если не реализовала -- то еррор, а если реализовала, то структуры разных типов лезут в одну функцию полиморфную?
                                    Ответить
                                    • > И то правда.

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

                                      Пример с show_id практически никак не связан с ООП, это какая-то убогая агрегация структур.

                                      Вот вам настоящее ООП, с интерфейсами
                                      https://ideone.com/YcQxo4
                                      Ответить
                                • зы: вот вам еще сишкоопе.

                                  На арене -- COM.
                                  struct IXmlReader* reader;
                                  HRESULT r = CreateXmlReader(&IID_IXmlReader, &reader, NULL);
                                  if (r != S_OK) {/*...*/}
                                  reader->lpVtbl->SetInput(reader, (IUnknown*)stream);
                                  //....
                                  reader->lpVtbl->Release(lpVtbl);


                                  Тут reader это объект, живет "где-то там", считает ссылки (пока я не скажу Release он не умрет), имеет интерфейс IXmlReader. В его поле lpVtbl ("long pointer to virtual table") живут указатели на мето функции, первым аргументом которым надо передавать его (явно!).

                                  Тем не менее - всё работает
                                  Ответить
                      • показать все, что скрытоvanished
                        Ответить
                      • > В си нет сахара для RAII и наследования (да и хуй с ним), нет сахара для неявной передачи указателя на объект, а так вполне себе можно делать ООП

                        в сишке тебе инкапсуляция (чтобы делать fooptr->bar(fooptr, ...)) обходится в анальную боль, т.к. не компилятор это сделает за тебя в *тип*, а тебе надо делать инициализацию всего перечня в *объект*

                        10+ лет назад были у меня серьезные проекты, где надо было на сишке вовсю наяривать вприсядку в эмуляцию ООП, я наелся этого говна, спасибо
                        Ответить
                        • Говно, я не спорю. Структуры инициализируешь вручную и потом в каждую функцию (указатель на коею лежит в структуре) не забываешь первым параметром передать саму структуру.


                          Но дело не в говне, а в том что оно впринципе реализуемо и так делают чуваки иногда, которым важно иметь только сишный код
                          Ответить
                    • http://libcello.org/
                      Ответить
                  • показать все, что скрытоvanished
                    Ответить
                  • показать все, что скрытоvanished
                    Ответить
    • показать все, что скрытоvanished
      Ответить
    • Л. И. Долинер, Основы программирования в среде PascalABC.NET
      и ещё много других книг по нему есть.

      PacalABC может работать в Линупсе под Mono, но только соснольная версия, и графические модули не доступны. Ещё к нему есть электронный задачник Programming Taskbook, модули Чертёжник, Робот, но мне неизвестно, работают ли они под Линуксом. Если очень захочется этих французских булок модулей, думаю, можно запустить венду на виртуольной машине или поставить второй осью (ничего страшного, земля ведь не разверзнется, из неё не вылезет Столлман, и не швырнёт тебя в адское пламя).
      Ответить
      • Это я хуйню запостил, надо было сперва посмотреть, я вообще-то другую книгу искал, ту которая мне года 2-3 назад попадалась, просто название похожее окзалось :)
        Ответить
      • > можно запустить венду на виртуольной машине или поставить второй осью
        Стоит ли? Ради PascalABC.NET?

        > земля ведь не разверзнется, из неё не вылезет Столлман
        Ты так говоришь, как будто использование свободного ПО — это какая то вынужденная мера, или продукт принуждения. Нет, это большое преимущество. Ты бы ещё предложил пожрать говна: ничего страшного, никто ведь не заругает.
        Ответить
        • > Стоит ли? Ради PascalABC.NET?
          Я имею ввиду, если захочется графики в PascalABC. Можно и фрипаскаль, но я не знаю как там с графикой.

          > Ты так говоришь, как будто использование свободного ПО — это какая то вынужденная мера, или продукт принуждения
          МОСОНЫ ПАДМИНИЛИ МОЙ КАМЕНТ! ЗАЙДИ С ДРУГОГО КОМПУКТЕРА И ПЕРЕПРОЧЕТАЙ ЕГО!
          Просто я думал, что ты опсос-радикал, и венда для тебя как свинина для мусульманина. Так-то я за свободное ПО, но и не против пипиетарщины.
          Ответить
          • > Просто я думал, что ты опсос-радикал

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

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

            Ты так говоришь, как будто я чем-то к этому принуждён («ничего страшного, земля ведь не разверзнется…»). Как будто я сам этого не хочу, но меня что-то вынуждает. В действительности же я хочу использовать свободное ПО, и наоборот что-то лишь может ВЫНУДИТЬ меня использовать несвободное.
            Ответить
            • Я, видимо, неудачно шупотил, либо ты не понел, либо ты понял, но просто решил доебаться.
              ;)
              Ответить
              • ХЗ. Может я просто занудой стал от этого Столлмана. )
                Ответить
          • > но и не против пипиетарщины
            Я тоже не против проприетарщины, это было бы глупо (в плане приставать к другим людям и не давать им быть обманутыми, если они сами этого хотят), но мне не нравится, что винда в университетах и школах, что повсеместно стандартный формат документов — закрытый и убогий docx, что, судя по всему, просто не существует способа расплатиться кредитной картой (и всё, что с этим связано) или позвонить по мобильному телефону (и всё, что с этим связано) без использования несвободных программ. И это иногда ВЫНУЖДАЕТ меня использовать несвободное ПО, хотя я стараюсь и в этих случаях сначала поискать альтернативный вариант.
            Ответить
            • > закрытый и убогий docx
              Чем он убог? И насчёт закрытости, может ли программа, работающая с пропиетартарным форматом файлов быть полностью опенсурс? Помню, как-то пейсал на своей любимой Питонии программу, генерирующую отчёты в формате docx, юзал либу python-docx (вроде, как-то так называлась, и больше я про неё ничего не помню :)).
              Ответить
              • > Чем он убог

                Закрыт, недокументирован, представляет из себя зип-архив с ведром метаданных, в результате чего много весит, и сочетает в этих данных все разнообразные сорта мочи, ударившие в голову разработчикам, начиная с 97-го года. Как результат, всё, что пытается его поддерживать, делает это говёно, всевозможные генераторы кастрированы и другими и быть не могут (продакшен должен сказать спасибо, что хоть такие есть, потому что в миллионе кейсов ВЫНУЖДЕН использовать док по воле заказчика и миллиону других причин).

                Кстати, вы никогда не сталкивались с ситуацией, когда файл из одной версии ворда пидорасится в другой? Я видал.

                > может ли программа, работающая с пропиетартарным форматом файлов быть полностью опенсурс

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

                Делать проприетарные форматы — это ещё большее пидорство, чем делать нестандартные разъемы для наушников и зарядных устройств. Цель такого поведения ведь всем ясна, я надеюсь?
                Ответить
                • > Что за бредовый вопрос? Нахуя нужен проприетарный формат?
                  Так я не создавал этот формат, я просто с ним работаю. Я имею ввиду, сам модуль, работающий с документом, может быть опенсурс или низзя?
                  Ответить
                  • > Я имею ввиду, сам модуль, работающий с документом, может быть опенсурс или низзя?

                    Я погуглил. Ситуация больше всего похожа на т.н. “trapped” program.[1]
                    Но к ворду это не относится, как я уже сказал, последние версии его формата считаются открытыми, их разрешено имплементить, и никакого non-free кода ты при этом использовать не будешь, ты будешь делать всё сам.

                    [1] — https://www.gnu.org/philosophy/when-free-depends-on-nonfree.html
                    Ответить
                  • Пойду спрошу в #gnu, по-моему с несвободными форматами какая-то другая ситуация, чем с несвободными зависимостями кода. Попробовол прочитать про mp3, подробностей не понял.
                    Ответить
                  • В общем и целом, сказали, что так можно, и программа будет всё равно свободной, и вообще, что это один из способов борьбы с проприетарщиной и старинная народная забава во free software community — ломать закрытые форматы и писать тулзы для них.

                    Главное, чтобы программа не зависела от несвободного кода. Если же она сама реализует несвободный формат, то программа полностью свободна.
                    Ответить
                • показать все, что скрытоvanished
                  Ответить
            • > закрытый и убогий docx
              Ололо, так ведь ms office и libreoffice также не дружат и в формате odt (ГОСТ Р ИСО/МЭК 26300-2010) - документ, созданный в одной хуйне плохо отображается во второй и vice versa.
              Ответить
              • Но ведь условный диалог между ними таков:

                libreoffice: привет. вот мой формат, хочешь -- поддерживай. я там всё написал.
                msoffice: привет. нет, не хочу, сам поддерживай своё говно.
                lo: ну ладно, тогда дай мне свой формат, а то я ничего не понимаю, что ты туда напихал, документации нету.
                ms: пошёл нахуй, у меня закрытый формат.
                lo: так открой
                ms: пошёл нахуй, у меня рынок
                lo: а как же люди, свободу которых ты не уважаешь?
                ms: мне похуй
                lo: понятно. я всё равно попробую расковырять твой формат и попробую его отобразить, а где документация моего формата, ты помнишь сам.
                ms: мне похуй.
                Ответить
                • msoffice, как я понял, это пародия на Сёму :D
                  Ответить
                • На самом деле насрать где чей диалог, если в 2018 году до сих пор проблема создать сраный текстовый документ из 5 стилей (заголовки 1-4, обычный текст), нумерации разделов, страниц, таблиц, с автосодержанием, который бы нормально и одинаково отображался в нескольких офисных пакетах.
                  Ответить
                  • Поэтому надо использовать markdown, TeX и pdf :)
                    Но вообще это действительно отстойненько, хотя я стою на своём: мне кажется, что свободные больше со своей стороны сделали для того, чтобы это стало возможным, чем мягкие.
                    Ответить
                    • пока на законодательном уровне не примут запрет на применение нестандартных форматов и шрифтов, пока учебные заведения продолжают писать в требованиях к документам "используйте times new roman", который нельзя использовать не в лицензированной ОС, ничего не изменится

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

                    Microsoft has added the format to their Open Specification Promise in which Microsoft irrevocably promises not to assert any Microsoft Necessary Claims against you for making, using, selling, offering for sale, importing or distributing any implementation to the extent it conforms to a Covered Specification

                    Короче, получается что действительно просто всё кривожопо сделано.
                    Ответить
                • показать все, что скрытоvanished
                  Ответить
    • Хочется настоящего ООП, с виртуальными конструкторами и инкапсуляцией( а не латаными портками, вроде геттеров и сеттеров, с возможностью брать на них указатели), и полным отсутсвием же указателей.
      Ответить
    • Дефекате++, ты же в китай часто ездишь, правда, что местные младенцев лопают?
      Ответить

    Добавить комментарий