00:36

Dancing On The Moonlight. Waiting 4the Sunrise
Приведите мне примеры языков сверхвысокого уровня, а то я что то слабо представляю себе, что сие такое.

Комментарии
10.01.2005 в 23:38

Dimmy

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



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



А это ещё не скоро. :) Зато потом программисты смогут с чистой совестью уйти на заслуженный отдых, выполнив свою главную задачу: научить машину общаться с человеком. :)
11.01.2005 в 02:23

Вот пример.

Когда пишешь в кодах, то имешь только глюки самого себя



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



На сях глюк тебя + глюк компилера + глюки тех кто писал библиотеки



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



Короче, чем дальше в лес тем больше дров. Жаль, что сейчас невозможно писать на чистом асме :( Прихдится обращатся ко всяким Апи и прочим высокоуровневым вызовам. А это то же что и на сях писать :) только дольше :)

Эх Спектрум... Спектрум... как там все было просто.... Порты, прерывания и чистая, незамутненная всякими левыми прогами, оперативная память :)

0 0000 ORG 0000h

1 0000 F3 DI

2 0001 76 HALT

Assembly complete

0 Errors

1 Warning

11.01.2005 в 02:50

Di Halt, но и возможности сильно увеличились...



Есть люди такие, как ты, которым нравится разбираться в "простых" вещах; а есть люди такие, как я, которым нравится забыть про "простые" вещи и играться с логикой более обширной.



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



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



:shuffle:
11.01.2005 в 04:53

Гость

Когда пишешь в кодах, то имешь только глюки самого себя

А ещё глюки проектировщиков процессора! :)



А программу без единого бага, как извсестно, можно написать только за бесконечное время.
11.01.2005 в 17:14

братец Борг - a new kind of
Весь этот шурум-бурум с "высотностью" языков от чего возникает? Мы себе представляем все эти языки как башню, в основе которой лежат машинные коды (как правило, x86), работающие непосредственно с машинным же представлением данных. Чем больше язык абстрагируется от такого представления, т.е. чем больше его синтаксис и семантика оперируют некими абстрактными понятиями, тем "выше" он считается. Т.е., чтобы посчитать "высотность" языка, нужно знать, от чего мерять.



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



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



Короче говоря, всех желающих ознакомится с предметом, приглашаю на cliki.tunes.org, а также рекомендую прочесть книжку Питера ван Роя и Сейфа Хариди "Programming - Concepts and Techniques". Где ее скачать, к сожалению, не помню; дело в том, что до поры до времени она была в свободном доступе на сайте авторов, сейчас же нужно искать где-то еще.
11.01.2005 в 17:29

братец Борг - a new kind of
>информация есть всё, отличное от энтропии.



Ну, это совсем ерунда. Информация определяется как разность между условной и безусловной энтропией для каких-то событий. То бишь, энтропия - это характеристика системы в определенный момент, информация же характеризует динамику ее изменения.

11.01.2005 в 22:30

Fire in a hole!
разность между условной и безусловной энтропией

Что есть условная и безусловная энтропия?
12.01.2005 в 00:00

Sky Cry Совершенно верно сказал! Когда я пишешу на асме ,то частенько увлекаюсь и, забив на основную цель, начинаю развлекаться с оптимизацией какой либо процедуры :)



А по поводу разработки...



Команда из одних ассемблерщиков в большом проекте обречена на провал :(

Код, конечно, будет филигранным, но вот скрость разработки такого проекта будет предельно мала! :( и к моменту завершения продукт будет уже никому не нужен :(. Либо,вообще,поколение процессоров сменится полносстью и прийдется все переписывать заново =).



Команда же, которая состоит из одних "высокоязников", забивших на оптимизацию и ударившись в ЦЕЛЬ, рискует создать совершенно неподьемный с точки зрения железа, проект. =) Правда на них будет работать время и прогресс, но если СИЛЬНО увлечься, то и это не спасет =)



Поэтому не надо спорить, а надо кооперироваться :) Чтобы не забивать сапожные гвозди кувалдой и не рыть Беломорканал чайной ложкой :)



ЗЫ

А канал, вырытый чайной ложкой, будет гораааздо эффектней и эстетичней, чем забитый кувалдой гвоздик :))))))))))))))))))



0 0000 ORG 0000h

1 0000 F3 DI

2 0001 76 HALT

Assembly complete

0 Errors

1 Warning





pash_ka Да... Есть в процах глюки :( Бывает. Тут только оптимизация на уровне микрокода помогает :), учитывать особенности всяких там конвееров и т.д.

Хы, а вот вспомнил, Глюки процессоров это не глюки - это ФИЧИ!

У Архитектуры х86 начиная с AMD K5 есть команда UD2 - санкционированный глюк(ошибка "неопределенная операция";) :)

Разработана для проверки стабильности ОС :) Не зря на процах АМД К6 была надпись Designed for Windows :) Т.е. они пошли навстречу Билли :)

Теперь, чтобы вызвать глюк, винде не надо больше паритсья с зацикливанием кода или срывом стекового кадра, UD2 и всё :) Винда поистине многозадачна стала, глючит и работает одновременно :))))))



0 0000 ORG 0000h

1 0000 F3 DI

2 0001 76 HALT

Assembly complete

0 Errors

1 Warning



12.01.2005 в 11:44

Di Halt, но ведь оптимизацией могуз заниматься создатели библиотек, в то время, как могу про неё забыть. :tongue:
12.01.2005 в 12:02

Sky Cry

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

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



И всё-же... есть такая рекомендация для программистов: не заниматься преждевременной оптимизацией.

Сначала надо написать программу, а потом, если окажется что она работает медленно, оптимизировать те куски, которые тормозят. Вот я думаю, что написание собственнных функций в замену библиотечным - имеет смысл лишь тогда, когда явно видно, что всё из-за неё тормозит.
12.01.2005 в 16:22

Sky Cry Алгоритмы тоже уже не надо уметь писать? :lol:
12.01.2005 в 16:37

radev, в некоторых случаях не надо уже. :tongue:
13.01.2005 в 00:27

pash_ka

Понимаешь, понятие "работает медленно" весьма относительно. Ты же на знаешь на каком компе она будет исполнятся! А по поводу преждевременной оптимизации, то каждый должен заниматься СВОИМ делом!



Sky Cry Можно, и упереться чисто в библиотеки. Но вот библиотечные функции слишком универсальны. Взять, например, printf эта функция его только не умеет! Может выдать все че угодно и в любом формате :) Разве что стихи не сочиняет. :) Но вопрос,а всегда ли нужна такая фишка? Если мне надо просто выдать строчку на экран? (Не надо мне про puts говорить :) я знаю его, но все равно юзаю asm {mov ah,9... INT 21h ....} так компактнее и быстрей :) в винде все, конечно, по другому, но я не Win кодер)
13.01.2005 в 00:31

0 0000 ORG 0000h

1 0000 F3 DI

2 0001 76 HALT

Assembly complete

0 Errors

1 Warning
13.01.2005 в 01:52

Я в этом смысле начинающий, с С++ почти не знаком, разве что в виде создания формуляров графическим способом и присваивания им разных действий... вобщем сплошной примитив :tongue:



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



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



Так что в таких случаях достаточно оптимализировать базу данных, а не программу. :tongue:
13.01.2005 в 11:36

Sky Cry

создается впечатление, что дух "настоящих программистов" начинает покидать наши бренные тела :-/

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

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

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

я никого не призываю писать все на ассемблере или переписывать самому все имеющиеся библиотеки. советую лишь думать, что использовать в каждом конкретном случае, не ссылаясь, в частности, на скорость и эффективность работы той-же субд ;)
13.01.2005 в 12:22

Я тоже пишу в основном на Java и PHP, и мне кажется, стандартные Java библиотеки по большей части удобные, и спроектированны так, что можно использовать только те части которые нужны, и переписывать неэффективные или неудобные куски.

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



А по поводу БД, столкнулся однажды с ситуацией, когда использование библиотеки оказалось оченб вредным. Это была программа на PHP, и я использовал PEAR:DB для получения инфы из MySQL-базы.

Мне нужно было получить порядка 80 000 записей, и обработать их. Было-бы идеально поручить обработку базе данных, но таких возможностей MySQL 3-ей версии увы нету, так что пришлось в PHP-скрипте.

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

Обычно для получения записей я использовал функцию getAssoc(), кторая возвращает массив результатов.

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

Скрипт работал порядка 16 секунд на моём компе.

А когда я переписал алгоритм без использования этой функции - вышло около 9 секунд. :)

13.01.2005 в 12:56

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

Насчёт беззаботно -- ты жестоко наврал. Могу привести сотни примеров когда чужие программы на Java у меня не заработали. И совсем немного когда я не смог портировать исходник на С++, изначально написанный кроссплатформенным.

По-моему для этой дискуссии давно пора создать новую запись :)
13.01.2005 в 15:08

radev "Могу привести сотни примеров когда чужие программы на Java у меня не заработали."



И они пользовались только стандартными библиотеками, работали у самого создателя, и у тебя была таже версия JRE?
18.01.2005 в 03:03

Sky Cry Версия JRE??? Вы о чём? :lol:

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

Java -- ZLO
18.01.2005 в 10:53

Каждая прога её за собой не тащит... она одна на весь комп. Причём более новые совместимы со старыми, естественно. :tongue:
18.01.2005 в 18:00

Sky Cry

Причём более новые совместимы со старыми, естественно.

И только JRE от Microsoft частично совместимы на уровне версии 1.1. Да и то с ба-а-льшими оговорками.



А ещё, давно не бло кардианальных изменений... Со времён перехода с 1.1 к 1.2 и Swing-библиотеки.

Ну так Sun нам подарочек устроила в виде версии 1.5. Нет, я понимаю что старые на ней пойдут... Но вот сколько мучений будет с новыми прогами... Как мы будем юзверям рассказывать где им смотреть версию JRE и как её качать...
18.01.2005 в 18:28

А что им рассказывать? Дал ссылку и всё! :tongue:



1.5 вообще интересная вещь... решает много мучений программистов. Но, например, Eclipse, который её поддерживает (у них, как всегда, свой компилятор...), ещё бета.



Ещё где-то я читал про компилятор для джавы 1.5, результат работы которого совместим с более старыми версиями, что довольно уникально для 1.5.
18.01.2005 в 19:02

Sky Cry

Дал ссылку и всё!

Ну да, да... Вот только они не будет просить ссылку. Они будут жаловатьс, что у них ничего не работает. :-D И сначал анадо будет выяснить номер версии, а то качать 30(?) мегов за просто так никто не захочет... В том-то и дело, что раньше было понятно - ставил SUN-овский JRE - значит почти наверняка это 1.3 или 1.4. (Не так уж и часто моим прогам есть разница.) Не ставил - значит MS-овый...



18.01.2005 в 19:11

хорошие грабли со временем не тупятся
Sky Cry

А что им рассказывать? Дал ссылку и всё!

думается, несколько непрофессиональный подход к разработке программного обеспечения. если приложение разрабатывается для пользователя, то оно должно быть как минимум удобно для него. идеальное приложение - приложение работающее только на стандартных системных библиотеках (хотя и отсюда идет привязка к ОС) и не требующее для корректной работы инсталляци (disclaimer: инсталлцию можно оставить, но для ее проведения следует требовать только реально необходимые права безопасности, не осуществлять перезагрузку системы без веских на то причин и т.п.)
18.01.2005 в 22:40

Есть установочные программы (например InstallAnywhere, кто хочет - найдёт), которые способны устанавливать Джавовские программы на любою операционную систему (которая поддерживает Джаву). Причём JRE со стандартными библиотеками и любые другие, используемые программой, устанавливаются специально для этой программы, даже если они на этой системе уже есть. Тем самым гарантируется совместимость (устанавливается старая, даже если есть новая, и наоборот) и гарантируется, что пользователь, например, не отустановит JRE, лишив себя пользования этой программой.
19.01.2005 в 00:36

Sky Cry

думаю, это стоит вынести в отдельную тему - сплошой оффтоп
19.01.2005 в 01:22

Это уже давно сплошной оффтоп. :tongue: