Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2007, 18:49   #1
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию Языки программирования. Так ли велики различия ?

в качестве введения:
Код:
КРАТКОЕ РУКОВОДСТВО ПРОГРАММИСТА ПО ЯЗЫКАМ
   ПРОГРАММИРОВАИЯ
Бурное размножение
   современных языков программирования (которые,
   похоже, просто заимствуют друг у друга
   бессчетные нововведения) приводит к тому, что
   иногда бывает трудно вспомнить, какой язык вы в
   настоящее время используете. Это удобное
   руководство предлагается для общего
   использования в целях помощи программистам,
   оказавшимся перед такой дилеммой.
ЗАДАЧА: Прострелить себе ногу.
C: Вы простреливаете себе ногу.
C++: Вы случайно создаете дюжину экземпляров
   объекта "вы" и всем им простреливаете ногу. Срочная медицинская помощь оказывается
   невозможной, так как вы не можете разобраться,
   где настоящие объекты, а где - те, которые только
   указывают на них и говорят: "А вот - я!".
ФОРТРАН: Итерактивно вы простреливаете каждый
   палец ноги, а когда пальцы заканчиваются, загружаете следующую ногу и продолжаете. Когда
   пули заканчиваются, вы все равно продолжаете
   попытки прострелить себе ноги, потому что не
   имеете возможности обработать такую особую
   ситуацию.
ПАСКАЛЬ: Транслятор не позволит вам
   прострелить себе ногу.
ADA: После тщательного описания пакета
   "нога", вы пытаетесь одновременно зарядить пистолет, нажать курок, завопить и выстрелить
   себе в ногу. В ходе попыток обнаруживается, однако, что вас постигла неудача, так как ваша
   нога оказалась неверного типа.
КОБОЛ: Hаводите ПИСТОЛЕТ COLT 45 на HОГА.СТОПА,
   Затем помещаете РУКА.КИСТЬ.ПАЛЕЦ на
   ПИСТОЛЕТ.КУРОК и HАЖИМАЕТЕ. Затем возвращаете
   ПИСТОЛЕТ в КОБУРУ. ПРОВЕРЬТЕ, нуждаются ли шнурки
   в повторном связывании.
LISP: Вы простреливаете себе отросток, который
   держит пистолет, с помощью которого вы простреливаете себе отросток, который держит
   пистолет, с помощью которого вы простреливаете
   себе отросток, который держит пистолет, с помощью
   которого вы простреливаете себе отросток,
   который держит пистолет, с помощью которого вы простреливаете себе отросток, который...
ФОРТ: Hога простреливать себе вы.
ПРОЛОГ: Вы сообщаете вашей программе, что вы
   хотите иметь простреленную ногу. Программа
   разрабатывает способ этого достичь, но синтаксис
   языка не позволяет объяснить этот способ вам.
БЕЙСИК: Вы простреливаете себе ногу из водяного
   пистолета. а расширенных реализациях языка
   продолжайте, пока вся нижняя часть тела не
   промокнет.
VISUAL BASIC: Hа самом деле вы будете только
   выглядеть, как будто ваша нога прострелена. Однако в процессе реализации вы получите столько
   удовольствия, что подобные мелочи вас не озаботят.
HYPERTALK: Поместите первую пулю пистолета в ступню
   левой ноги вас. Сообщите результат.
MOTIF: Вы затрачиваете несколько дней на
   построение UIL - описания вашей ноги, пули, ее траектории и замысловатой резьбы по слоновой
   кости на рукоятке пистолета. Когда вы наконец-то
   управились и готовы нажать на курок, пистолет
   закупоривается.
APL: Вы простреливаете себе ногу, затем тратите
   весь день на то, чтобы представить себе, как это
   сделать с меньшим количеством символов.
СНОБОЛ: Если вам удастся, прострелите себе
   левую ногу. Если не удастся, то прострелите себе правую ногу.
UNIX:
% ls
Foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm: .o no such file or directory
% ls
%
ПАРАЛЕЛЛЬНЫЙ EUCLID: Вы простреливаете себе чью-то
   чужую ногу.
ЯЗЫК УПРАВЛЕНИЯ ЗАДАНИЯМИ IBM/370: Вы посылаете
   свою ногу в управляющую информационную систему с
   приложением документа на 400 страниц, точно
   описывающего, как именно вы хотите быть
   простреленным. Через три года ваша нога
   возвращается с глубоким ожогом.
PARADOX: Не только вы можете прострелить себе ногу,
   но и ваши пользователи.
ACCESS: Вы пытаетесь прицелиться в вашу ногу, но в
   результате простреливаете все Борландовские
   дистрибутивные дискеты.
REVELATION: Вы уверены, что сможете прострелить себе
   ногу, как только разберетесь, для чего служат эти
   маленькие хорошенькие пульки.
АССЕМБЛЕР: Вы пытаетесь прострелить себе ногу,
   но обнаруживаете, что прежде вам придется
   изобрести пистолет, пулю, курок и вашу ногу.
МОДУЛА-2: После того, как вы понимаете, что
   фактически ничего не можете сделать на этом языке, вы простреливаете себе голову.
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 11.01.2007, 19:17   #2
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Мне понравилось, а почему не в юмор? будет ещё?
zetrix вне форума Ответить с цитированием
Старый 11.01.2007, 19:22   #3
Hallo
Здесь дольше всех
Форумчанин
 
Аватар для Hallo
 
Регистрация: 29.10.2006
Сообщений: 372
По умолчанию

Круто! Уржался!
Нельзя обсуждать конкретных людей
Hallo вне форума Ответить с цитированием
Старый 11.01.2007, 19:47   #4
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

'юмор' слишком раздулся. там мои же посты ...
а мне не терпелось донести это до вас

а вобще-то , можно и серьезно обсудить этот вопрос !
%) например.

" На самом деле мне бы хотелось одним взглядом окинуть эволюцию языков программирования, где разные люди насчитывают разное количество этапов, обычно не меньше четырех.
Я для себя вижу примерно семь основных этапов.
Первый этап - это уровень программирования, когда мы фактически вставляли в компьютер деталь с программой.
Второй уровень, это когда мы программу отделили от механических деталей и стали ее вводить в машину в двоичном коде в память компьютера.
Третий уровень, когда появились языки типа Ассемблера, по-прежнему работающие команда в команду, но они оторвались от физических ячеек, от машинного кода.
Четвертый уровень, когда мы перешли к языкам высокого уровня типа ФОРТРАНа, Паскаля, С, где мы стали записывать алгоритмы выражениями на языке более ли менее близком к человеческому, то есть, вычисления записывать в виде формул в записи близкой к математической. Условные переходы так и записывали словами: "если", следует условие, "то" нужно сделать это; циклы: пока выполняется условие, то повторять раз за разом то-то и то-то. Языки высокого уровня - четвертый уровень.
Пятый уровень это появление структурно-модульных языков.
Шестой - появление объектных языков.
И седьмой уровень, тот, на который сейчас только-только пытаются выходить это уровень кейс-систем, систем проектирования текстографических программ. (CASE - Computer Aided Software Engineering).
Расшифровывается - разработка программного обеспечения с компьютерной автоматизированной поддержкой. Там мы даже отрываемся кое-где от языка, переходим на язык графики. К
аждый из этих уровней был не случайным и появился в свое время. Например, создать язык высокого уровня в момент, когда программировали только в машинных кодах, было практически невозможно.
Например, сложность написания транслятора с языка высокого уровня такова (это ведь тоже программа, которая переводит, например, с языка Паскаль в язык машинных кодов), что ее не под силу написать человеку в машинных кодах. Или практически не под силу - слишком трудно.
Поэтому прежде, чем написать транслятор с языка Паскаль, нужно было создать язык Ассемблер, чтобы на нем писать транслятор с языка Паскаль. Пока не было языков высокого уровня, то невозможно было разрабатывать языки кейс-систем (объектные языки может быть и можно было).
Языки кейс-систем просто невозможно разрабатывать, пока полностью не утряслась вся теория трансляции языков высокого уровня. На все эти достижения новых уровней уходили десятилетия, и перескочить через уровни невозможно. На самом деле в программировании мы столкнулись с такой поразительной вещью.
Раньше это можно было видеть в некоторых технических областях, но в программировании это особенно ясно видно. Сложность системы, как категория это если не измеримая, то ощутимая вещь и стоя на определенном уровне сложности можно с помощью долгих и упорных трудов забраться на один уровень выше, но невозможно никакими силами перескочить сразу на два уровня.
Поэтому все задачи, которые в программировании опережали свое время, кончались неудачей. Только в тех случаях добивались успеха, когда удавалось увидеть ту одну ступеньку, как в головоломке, тот единственный шаг, который доведет нас до полного решения. Удавалось увидеть этот уровень, на который предстояло забраться, вот тогда и получался новый этап развития компьютерной техники.
Потом на этот уровень выходили все, осваивали его, начинали чувствовать его ограниченность и тогда создавали языки или системы программирования нового уровня, которые позволяли вскочить на следующую ступеньку.
И надо сказать, что не умеют заглядывать даже на один-два уровня вперед. Кейс-системы сейчас видны, а что будет дальше?
Только туманные разговоры про искусственный интеллект, которые ведутся уже тридцать-сорок лет и имеют кое-какие воплощения, но очень скромные и ограниченные. "
Берегите друг друга!

Последний раз редактировалось Stilet; 27.09.2010 в 09:47.
Virtson вне форума Ответить с цитированием
Старый 11.01.2007, 21:32   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Понравилось. И юмор, и всерьез.
mihali4 вне форума Ответить с цитированием
Старый 11.01.2007, 23:09   #6
Veytarn
promuovere
Пользователь
 
Аватар для Veytarn
 
Регистрация: 09.12.2006
Сообщений: 95
По умолчанию

Двигателем этих этапов скорее будет микроэлектроника.
Сначало появляются разные там кило-мега-гига герцы-байты-биты/с , а уже потом поспешают передовые технологии программирования или наоборот опережают и терпеливо ждут битов и герцов.
Когда размер файла и оптимальность использования резурсов становятся менее актуальными, тогда с успехом прокатит язык "высокого" уровня.
Как говорится: "Чем мощнее железо - тем тупее код."
Veytarn вне форума Ответить с цитированием
Старый 12.01.2007, 09:27   #7
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
Сообщение

Цитата:
Сообщение от Veytarn Посмотреть сообщение
Когда размер файла и оптимальность использования резурсов становятся менее актуальными, тогда с успехом прокатит язык "высокого" уровня.
Как говорится: "Чем мощнее железо - тем тупее код."
абсолютно согласен.

а что же нам готовит переход на параллельные вычисления
(если он будет ..) ?
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 12.01.2007, 14:24   #8
Veytarn
promuovere
Пользователь
 
Аватар для Veytarn
 
Регистрация: 09.12.2006
Сообщений: 95
По умолчанию

Постепенный переход конечно будет, но врядли он будет быстрым.
Сейчас наблюдается некий спад в покупке новых компов. Навороченное железо пользуют в основном геймеры. А обычному человеку для дома и оффиса до сих пор с головой хватает пенька на 2ГГц, 512 оперативы и 64-128 видяхи. Фильмы, музыка, офисные проги, игры вполне потянет.
Должно появиться что-то, что станет реальным стимулом для юзера выбросить свое старое барахло и купить железо помощнее.
Можем приблизительно проследить появление таких стимулов:
пень 1 - музыка, виндовс 95
пень 2 - фильмы, виндовс 98
пень 3 - 3D игры, ощутимое улучшение графики , виндовс 2000 и хр
пень 4 - ощутимое улучшение софта под хр и увеличение его требований
core2duo - виста и проги под нее.
Хорошим двигателем прогресса было еще и то, что вместе с новым виндовсом появлялось реальное количество необходимого или просто очень полезного нового софта и все это на старых компах либо не шло вообще , либо требовало конкретного апгрейда(легче новый купить ).
Вот как раз этого конька у нового софта не наблюдается. Программерам тоже нет особого смысла разрабатывать софт работающий в двухканальном режиме - на него уйдет больше работы, а ,если не будет конкретных и очень ощутимых преимуществ, хорошей прибыли не появится. Получится , что прогеры наивысшего класса будут стараться в основном из чистого энтузиазма .

Последний раз редактировалось Veytarn; 12.01.2007 в 14:31.
Veytarn вне форума Ответить с цитированием
Старый 12.01.2007, 15:09   #9
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Ерунду пишете молодой человек )
P2 может с полным успехом управлять одновременно 60ю спутниками. Как вы думаете каково там кол- во мат вычеслений ?
Надо не железо апгрейдить, а развивать знания, тогда и не будут выпускать "замечательные" книги по типу "экстремальное программирование" и иже с ними.
Возможностей компьютера с тактовой частотой 1Гц хватит с головой чтобы написать под него такие игрушки и такой софт, который даже сейчас не снился.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 12.01.2007, 17:43   #10
Veytarn
promuovere
Пользователь
 
Аватар для Veytarn
 
Регистрация: 09.12.2006
Сообщений: 95
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
Ерунду пишете молодой человек )
P2 может с полным успехом управлять одновременно 60ю спутниками. Как вы думаете каково там кол- во мат вычеслений ?
Надо не железо апгрейдить, а развивать знания, тогда и не будут выпускать "замечательные" книги по типу "экстремальное программирование" и иже с ними.
Возможностей компьютера с тактовой частотой 1Гц хватит с головой чтобы написать под него такие игрушки и такой софт, который даже сейчас не снился.
Вот щас "разовью знания" и перепишу ХР под первый пеньок ... его и сейчас хватит(если не влом антикварное ПО искать и торможения наблюдать... а комуто может и калькулятора будет достаточно )
Может 1Гц(наверное ГГц) и хватит, но только надо учитывать сколько написание такого супер софта займет времени, какого интелекта и какое колличество программистов понадобится и не выяснится ли потом, что они работали даром, потому что за то время пока они асемблером код набирали человечество перешло на оптические процессоры и код надо переписывать заново ....
И раз уж вы так хорошо заприметили неточности в моем прошлом сообщении, то без сомнения знаете , что производительность процессора зависит не от ГГц, а от флопсов, а они от архитектуры процессора.
И собственно причем здесь спутники ...
Речь шла о перспективах ПО для двухъядерников.

Последний раз редактировалось Veytarn; 12.01.2007 в 18:01.
Veytarn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обьясните различия между - FASM, WASM, VASM, MASM, TASM Amancha Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 17.01.2009 15:38
Какие языки программирования вы изучали? LAN Свободное общение 3 10.11.2007 11:18
Различия между The Bat и Outlook IRONMAN Софт 2 31.08.2007 12:31
Советы по созданию собственного сайта с нуля, хостинг, дизайн, языки программирования Hallo Обсуждение статей 0 12.12.2006 21:40