Понигенератор
+194
Привет всем! Решил в своём первом посте поместить что-нибудь интересное, а так как больше ничего не умею — написал простенький пони-генератор на pascal'е.
Исходники
Скомпилированный .exe
Написал на PacalABC.NET, так что, к сожалению, под wine работать не будет.
Скрин:

З.Ы. иногда из-за ушей получаются какие-то «кошки». =(
Исходники
Скомпилированный .exe
Написал на PacalABC.NET, так что, к сожалению, под wine работать не будет.
Скрин:

З.Ы. иногда из-за ушей получаются какие-то «кошки». =(
119 комментариев
> PacalABC.NET
Но вот совет на будущее. Учи нормальный язык, а не паскаль. Си шарп, яву, питон… Но не это убожество!
в следующий раз, когда тебе будет лень постить, я найду это за тебя,не найду мне тоже будет лень.В класе эдак пятом-шестом отец притащил книгу «простейшая микро ЭВМ» с инструкцией по сборке и, соответственно, учебником асма для того компа.
В больнице делать было нечего — писал програмки.
пусть хоть с чего угодно начинает, если желание есть — потом все изучит по ходу дела. главное — 3х томник Кнута прочитать по алгоритмам.
с++…
Си плюс-плюс — это монструозное поделие что бы стрелять в коленки. Его надо учить, по хорошему, в самом конце. Если хочешь действительно выучить кресты на нормальном уровне. А не сиаут хэлло ворлд.
(ASCII картинки не считаются)
Так один безумец написал генератор фракталов на .bat файлах.
Давайте на основе ФростБайт 2.0 запилим прогрессивный 3д-понигенератор?)
Втф?
— Стыдно не знать
Я современными играми ваапще не интересуюсь. Только индюшатиной вроде майнкрафта, рогаликов или дф.
и да… ГРАФОООООООН!!!
да на, держи, в чем проблема
За работу плюс.)
Дай обезьяне-неучу «самый лучший» (по чьему-либо мнению, хехехе...) язык программирования — так ничего путного и не выйдет, ага…
На паскале писать годные программы неудобно. Особенно, когда это не хеллоуворлд, а серъезный проджект.
упоротостиупорства…Хехехе…
*А_мне_норм.jpg*
Это либо проблемы компилятора/оптимизатора (см. выше), либо проблемы того, кто пишет код. Судя по тому, что за кое-кем пришлось доделывать, я не удивлюсь если у него национальность — индус. А если и не национальность — так менталитет.
Жаба — это недокомпилятор, который докомпилирует программу каждый раз, при каждом выполнении, и тратит на это щастье ресурсы памяти и процессора. После этого говорить о тормозах и «чрезмерное использование ресурсов» — эммм…
Единственное преимущество жавы — это (хммм...) кроссплатформенность, но если делать что-то серьёзное, то подозреваю, рано или поздно понадобятся платформозависимые компоненты. И тогда это преимущество… померкнет.
Значит, дельфи — не для него. Всего-то. Только зачем из этого «одного знакомого»/«одногруппника»/«соседа» выводить глобальный вывод, что паскаль хуже?
2. Отчасти — да, но переписать более оптимально было невозможно.
3. Преимуществ джавы туча: множество различных модулей, библиотек и прочего, что отлично подключаются и стабильно работают, многофункциональные, удобные IDE, удобство управления проектом, удобство контроля версий, управления классами. Потребление памяти — согласен, хромает, но оно сравнимо с паскалём вашим, зато стоимость разработки на джаве гораздо ниже, а стабильность выше.
4. Значит, дельфи не для миллиона программистов. Я делаю вывод, основываясь также на собственном опыте и опыте множества знакомых программистов, работающих над реальными масштабными проектами.
Назови хотя бы парочку серьезных приложений, разработанных на паскале.
Ещё существует мертвая операционная
системаоболочка для доса с графоном и спецэффектами. На борланд паскале.Правда, про практически все вышеуказанные проги я давненько не слышал ничего нового :3
ладно, не поленился, погуглил полный список
Среди многих распространённых программных продуктов, сделанных на Delphi, можно найти:
* Продукция Borland: Borland Delphi, Borland C++ Builder, Borland JBuilder 1 и 2 версии
* Администрирование/разработка баз данных: MySQL Tools (Administrator, Query Browser), Navicat, IBExpert, TOAD
* Инженерное ПО: Altium Designer/Protel (проектирование электроники)
* Просмотрщики графики: FastStone Image Viewer, FuturixImager, Photofiltre
* Видео и аудио проигрыватели: The KMPlayer (видео- и аудиопроигрыватель; не путайте с KMPlayer), X-Player (аудиопроигрыватель), AIMP (аудиопроигрыватель), Snow Player (мультимедиа проигрыватель)
* Доставка информации в Интернете: Skype, QIP, QIP Infium и R&Q, (мессенджеры), The Bat! и si.Mail (клиенты электронной почты), PopTray (средство для проверки почты), FeedDemon (просмотр RSS/Atom новостных групп), XanaNews (чтение новостных групп), Xnews (чтение новостных групп).
* Создание музыки: FL Studio (ранее FruityLoops), Guitar Pro
* Разработка программного обеспечения: Dev-C++, Dev-PHP, Maguma Open Studio и Open Perl IDE (IDE), DUnit (юнит-тестирование), Jedi Code Format (форматирование программного кода), Game Maker (создание игр) Help & Manual (система авторинга справки), Inno Setup (движок для инсталляции)
* Веб-разработка: Macromedia HomeSite (HTML-редактор), TopStyle Pro (CSS-редактор), Macromedia Captivate (захват экрана), Quick Page 2008 (среда разработки Web-сайтов)
* Веб-браузеры (оболочки для MSIE): Avant Browser, Netcaptor
* Утилиты: Spybot — Search & Destroy, Ad-Aware (антишпионское ПО), jv16 PowerTools, FDK (многофункциональная утилита для оптимизации системы), Total Commander и Frigate (файловые менеджеры), DarkCrypt TC/GUI (программный комплекс для шифрования), ImageSpyer и StegoTC (программный стеганографический комплекс), Copernic Desktop Search, PowerArchiver и PeaZip (архиваторы), MCubix (интеллектуальный анализ данных), Download Master [менеджер закачек], ASProtect (программа для упаковки и защиты EXE-файлов), XNResourceEditor (редактор PE ресурсов), Victoria (версия для ОС Windows) — программа для оценки работоспособности, тестирования и мелкого ремонта жёстких дисков.
* Текстовые редакторы: SynEdit, Notepad gnu, Bred2, KeyNote, cEdit Professional, Programmer’s Notepad, UniRed, gleditor, Everest
* Редакторы двоичных файлов (HEX-редакторы): Hexapad
* Бухучёт и налогообложение: Intuit's Lacerte Professional Tax Software, Парус
* Программы для чтения и каталогизации электронного текста: DarkLib (каталогизатор и мультиформатный букридер), IxReader (букридер)
* Гарант F1 (клиентская часть)
от себя могу еще добавить пару чатиков
Все эти продукты выполняют одну-две незамысловатые функции. Делфи дейстивтельно хорош там, где можно просто набросать интерфейс и для каждого объекта прописать действие (ну или какой-нибудь алгоритм). Но никакие сервера, СУБД, офисные приложения, продвинутые медиа редакторы (про FL Studio — шок, не верю, что его последние версии на дельфи), нормальные игры, системы тестирования и работы с масштабным количеством данных или множеством запросов на дельфи не пишутся.
Алсо, сейчас нишу дельфей успешно занял сишарп. А сишарпику делфи сливает во всем, абсолютно во всем. Ну ок, может он немного быстрее, ну и что.
2. Почему? В жаве что, операторы ветвления принципиально другие? Циклы писать удобнее?
3. Угу. А в дельфи/паскале всего этого нет. И, например, jcl не существует. Также не существуют ни форумов по дельфям, ни других программистов на этом языке. Программист на паскале — один, в огромном недружелюбном мире, да.
4. УРРРЯ! Паскаль — не мейнстрим, он для избранных. Только зачем его в учебных заведениях молодёжжж учит? Не знаю. (я например в школе паскаль изучал, да)
Навскидку вспоминается какой-то менеджер закачек (вроде "Download Master", если не путаю), в котором я как-то ковырялся. Ещё игра вроде какая-то была… А так мне без разницы на чём писали. Главное чтобы работало.
Алсо, программа скомпилированная на лазарусе — в PEiD опознаётся как «Microsoft Visual C++ v6.0 DLL *»… Это информация для размышления, да… Хехехе…
Не поверишь, но так и есть ^__^
Паскалевский for всегда проигрывал for-у С-подобных языков.
for-each появился только в девятой версии.
— Только зачем его в учебных заведениях молодёжжж учит? Не знаю. (я например в школе паскаль изучал, да)
Потому что
старперыучителя ничего другого не знают, вот и учат по инерции.Питон во всех планах круче паскаля как в плане обучения, так и в плане разработки.
---в PEiD опознаётся как «Microsoft Visual C++ v6.0 DLL
Сигнатура потому что такая, ололо.
Хм… Я могу только предполагать… В паскале все переменные, константы, типы, etc объявляются в одном определённом месте, до текста (под)программы, а не где попало в ея тексте… Подозреваю, это должно способствовать ясности мысли обучаемых, и чтобы они концентрировали внимание на коде, да не отвлекались на лишние детали. Так сказать, чтобы способствовать стройности мысли, и последовательности мышления, что весьма пользительно для будущего(?) программиста(?)…
Ололо, да ты наверно умеешь по запаху определять на чём программа написана — на С++ или паскале! Научи, а?
При компиляции в экзешник компилятор добавляет туда служебные данные.
В том числе, и тип программы.
Наверняка, лазарус использует алгоритмы хранения такие же, как и VC++ для своих ДЛЛок.
— паскале все переменные, константы, типы, etc объявляются в одном определённом месте
… превращая это место в сплошную непонятную непонятную кашу :)
Объявление переменных в коде намного удобнее и понятнее. Особенно, учитывая фишки с областями видимости.
Шел программер по коду. Видит: переменная типа char**(а запили кстати такое в своем любимом делфи :). Значит, она пригодится в куске кода или в блоке ниже.
Да и к тому же… Постоянно мотаться вверх-вниз по коду, добавляя переменные в блок вар… Как же это меня задолбывало даже на самых простых прогах!
Заметь: ни один из современных языков, ни один, блджад, не использует паскалевскую систему объявления переменных. Даже этот гадский бейсик, которым засоряли умы школоты до паскаля.
Ссылка на ссылку на символ? Ссылка на строку? Пофиг.
У паскаля уникальная система объявления переменных.
Предположительно, способствующая упорядочиванию мышления у школоты...Иииии? Дальше что?Алсо, ещё скажи, что брайнфак — это гадский упоротый язык, который никому не нужен…
При. Чем. Тут. Это.
Так и есть. Он нужен только для экстремального программирования.
---Var C: ^PChar;
Молодец. Держи кексик.
А для рандомного типа? Будешь для каждого создавать PType и делать ссылку?
Алсо, я таки не понимаю, чего вы хотите…
У многих программ открыты исходники.
У многих можно по деизассемблированому коду определить язык. Или по рантайм ошибкам.
Но, как правило, языки разработки крупных программ более-менее известны.
---Алсо, я таки не понимаю, чего вы хотите…
Просто намекнуть, что система работы с указателями в паскале лажает в сравнении с сишечкой/крестами.
притащат домойвоссоздадут вкусняшку, если она будет полезна?.нет — не нужен. На порядок бесполезней жабы — тот же интерпретатор, несовместим даже со своими собственными версиями, к тому же без кроссплатформенности.
Я не думаю, я знаю. Иначе это был бы не паскаль, а что-то новое.
---крестами
C++
— На порядок бесполезней жабы
В паскале нет и десятой доли тех фич, которые есть в c#
А о количестве сторонних библиотек дотнета вообще молчу.
— тот же интерпретатор
Ты упорот?
В 95% программ, даже очень серъезных, наплевать на то мизерное отставание в скорости, которое дает виртуальная машина.
В эпоху терабайтных дисков такие проблемы возникают лишь у жутких нищебродов, которые до сих пор сидят за пеньками вторыми :)
Кстати, о чем конкретно идет речь?
---чтобы запустить програмульку на полметра
Это ты про делфи? :)
Тем более, в серьезном бизнесе (а не этих ваших курсачиках), где аренда топового многоядерного сервера стоит меньше, чем месячная зарплата одного девелопера.
Ты прикинь, это сидеть ночами за мануалами, и составлять новую программу обучения. Плюс надо самому офигенно выучить и прочувствовать язык.
Можно конечно всего этого не делать, но если заметят — ай-я-яй будет.
Бюрократия :(
По поводу ума юных программистов…
Посмотри, с чего начинали учить программированию в MIT до недавнего времени ;)
Тем более, в серъезных businass приложениях, которые вообще компилятся-запускаются по пол часа, эти задержки не критичны.
--рано или поздно понадобятся платформозависимые компоненты
В подавляющем большинстве случаев, это не так.
И некоторые ещё говорят о «костылях»… Эххх…
А давайте всё на интерпретаторы переведём? По 3 часа загружаться будет, но это ничего…
Игра Minecraft. Папка ".minecraft\bin\natives". Посмотри что за файлы там лежат.
Программа не такая уж серьёзная, а уже…
А можно пример серьёзной программы без платформозависимых компонентов?
А хотя… Нафига нужно? Пофиг.
Вот пруфы обратного:
Раз
Два
Три
--А можно пример серьёзной программы без платформозависимых компонентов?
Любая прога, которая работает с сетью и кроссплатформенными базами данных (мускуль итп), например.
Здравый смысл говорит: Бинарный код выполняется быстрее всего. Хотя… Может, жаваразработчики придумали свой бинарный код, на 20% быстрее? Но мой здравый смысл о таком бинарном коде не знает. Али у жавы супер-пупер-мегакрутая оптимизация в компилятор засунута?
Здравый смысл говорит: На компиляцию (и ДОкомпиляцию) нужны ресурсы компа. Память и процессорное время. Нормальные компиляторы компилируют программу 1(ОДИН) раз. У программиста. Жава компилирует прогу каждый раз, при выполнении. Тратя ресурсы компа. Да и то компилирует не всю, а «избранные места».
Итого, здравый смысл говорит… Впрочем, может сначала вы поспорите с первыми двумя доводами моего здравого смысла, может я всётаки не прав?
А Америка утверждала, что Россия напала не Грузию. Даже когда-то пруфы приводила…
Здравый смысл часто бывает уделом демагогов.
Корень из минус единицы, ОТО и копрускулярно-волновой дуализм — капец как подчиняются здравому смыслу!
---Бинарный код выполняется быстрее всего.
Согласен.
Java-байткод немного медленнее бинарного. Ну и что?
---Тратя ресурсы компа. Да и то компилирует не всю, а «избранные места».
Ресурсы компа и созданы, что бы их тратить, это раз.
Во-вторых, давай мне пруфы что jit жрет (критически) много ресурсов. Я жду.
---А Америка утверждала, что Россия напала не Грузию. Даже когда-то пруфы приводила…
Посмотрите, у этого парня баттхерт!
Ему подсунули три, блжад, три независимых теста производительности, и он не согласен.
Как шикарно дымят хвосты над вечерней Невою :3
… стоят в одном ряду с проблемами компиляции языка программирования «Java». Мда.
Прекрасно. Хоть в этом мы согласны.
Здравый смысл говорит: Ентот jit занимает память.
Здравый смысл говорит: Ентот jit для докомпиляции программы тратит ресурсы процессора.
Итого здравый смысл говорит: Ентот jit занимает память и для докомпиляции программы тратит ресурсы процессора.
Здравый смысл говорит: Если любое дело делать много раз, то на это тратится больше времени (и ресурсов), чем если бы это же дело сделали всего 1 раз.
Я уже в 3(третий) раз разжёвываю одно и то же. Здравый смысл? Ау?
Ну да, ну да. Компу больше делать нечего чем докопилять в очередной раз уже «скомпилированную» программу. Программа же сама себя не скомпилит. И процессор успешен, потому что компилит прогу JITом…
А давайте засирать память рандомной инфой, а проц — ненужными циклами! Ведь память для того и создана, чтобы хранить всякую фигню. И процессор тоже! Без этого он же не успешен!
Нафиг оптимизацию, нафиг копиляторы! Даёшь интерпретаторы! Засираем всё! Программы весом в один гиг! А в памяти — десять! Выводить «Hello World!» за полчаса, и никак не меньше! Догоним и перегоним по весу программ всех индусов! Всех сразу!
Теперь по пруфам.
Я там не увидел ни одной колонки с дельфи/паскалем. В принципе, это не критично, но чтобы разбирать исходники, нужно напрягать мозги. Что по теперешней жаре (было 35+ в тени) не хочется делать даже для паскаля, увы.
Но всётаки, «пруф» хабара — фигня точно. Все ваши программы состоят из вложенных циклов(т.е. процент интерпретируемого кода, по сравнению с обычной, нормальной программой явно будет низок), и ни из чего другого?
Хехехе…
Ну и что в этом плохого?
Ты мне доставишь пруфы, что затраты на jit велики, и сильно мешают работе программы? Или сказал ради того, что бы сказать.
---Выводить «Hello World!» за полчаса,
Ты упорот?
Ещё раз повторяю для непонимающих. java работет не намного медленее с++.
Аж три приведенных теста подтверждают это.
Компилируемый с++, оптимизированый по самое нехочу, лишь ненамного превосходит жабу по быстродействию.
Паскаль по быстродействию равен крестам, но, скорее всего, немного отстает от них. Ибо оптимизация в крестах изучена на порядок лучше.
Питон, который уступает сишке и джаве более чем на порядок, с успехом, с успехом блжад используется в хайлоаде. Медленный язык, который по твоей логике должен запускаться три часа, используется в системах с коллосальной нагрузкой.
---Даёшь интерпретаторы! Засираем всё! Программы весом в один гиг! А в памяти — десять!
Сведение к абсурду. Демагогия на марше.
---Я там не увидел ни одной колонки с дельфи/паскалем
Правильно. Потому что они не нужны.
99% программистов, настоящих убер-опытных программистов, нет, не студентота с кококо-курсачиками, а мастера своего дела не выбирают делфи и паскаль для разработки.
---процент интерпретируемого кода, по сравнению с обычной, нормальной программой явно будет низок
А циклы разве не интерпретируются? А что же тогда с ними происходит, а? Святой дух исполняет?
---обычной, нормальной программой
А из чего состоит обычная, нормальная программа по-твоему?
*насколько я понимаю концепцию java*
Угу. На 10-й-20-й-али какой-там ещё проход цикла ентот ваш jit сообразит не интерпретировать, а наконец скомпилировать цикл. И 99% текста программы наконец скомпилируется (aka попадёт в «избранные места») Если бы ентот jit компилировал так всю программу целиком… Он ведь это не так, да? Обычную программу он же не целиком компилирует?
Видимо, я представляю вымирающий вид программистов, да…
Меня учили, что нельзя засирать память лишней фигнёй только потому что эта память есть…
Меня учили, что нужно оптимизировать всё что можно…
Меня учили, что стоит вычислять константы ещё на этапе компиляции (если не на этапе написания кода)…
Меня учили, что компилятор — это быстрая хорошая штука, а интерпретатор — это медленная и плохая штука, кака какая…
Меня учили, что компилировать лучше до конца, а не до половины.
Хм. Что-то мне надоело объяснять каждый раз одно и то же разными словами. Боюсь, здравый смысл я так и не разбужу.
Так что…
Me.Stop( this );
Me.Leave( thread );
End;
Может, потому что тебя ничему иному и не учили? :)
---Меня учили
Выгонять с профессии надо таких учителей.
Это старперы, которые до сих пор застряли на эпохе 80-90-х, когда каждый байт был на счету.
Сейчас всё, что ты назвал, нужно только либо в очень-очень-очень требовательным к времени приложениями. Про разработке жутко системных жутко драйверов.
Чтож… Сможешь накропать… ну например менеджер закачки, состоящий ТОЛЬКО ИЗ циклов? Только циклы, ничего кроме.
Результат этого мировоззрения я уже привёл:
____________
Всё! Всё-всё-всё! Не думать о белых обезьянах.
Нет. Но циклы там будут играть очень заметную роль.
---Результат этого мировоззрения я уже привёл:
Демагогический приём «сведение к абсурду».
Кстати, да. Пустая память — это круто. Оно ведь возбуждает наверное :3
Отожрём у компа все ресурсы! Не оставим ничего системе! Пусть винда сдохнет с голода.
Браузер? Почтовый клиент?
Алсо, даже твоему плюсатору стало скучно...Опять… :)
Хабр — независимый ресурс? Смешно, ага.
Для приложений, которым жуть как критична скорость и потребление памяти, используют соответствующие языки. А именно, сишку и кресты.
Если я пишу, к примеру, комплекс для автоматизации документооборота в компании, мне наплевать на то, будет оно работать за секунду, или за пять секунд. Потому что, например, большую часть времени прога на сишке будет тупо простаивать, ибо базы данных и интернеты довольно таки медленно работают.
PS: Извините :-)))))
Хорошо Винду не удалил. (Кто мне даст ее удалить?)
.нет — не нужен.
Славы Гиба тебе не видать.
духа нет, остались только числа.
Автор, вот тебе ссылка но нормальный паскаль. Скачай отсюда Лазарус (FPC
insideinclude) и не морочь окружающим голову…Работает, но криво( Надо wine до 1.5 обновить и net нормальный поставить.
Скрин