информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаГде водятся OGRыПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / miscellaneous
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Я понял что они означают :-) 25.10.05 13:38  Число просмотров: 1274
Автор: amirul <Serge> Статус: The Elderman
Отредактировано 25.10.05 13:42  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
> 1. Первая строчка - импорт класса, вторая - вызов
> конструктора. И то и другое имеет непосредственное
> отношение к ООП. Ну да не суть важно. Первый пример кода

В том же C++ хедер можно подключить и в командной строке, и мейкфайле, и в настройках проекта для IDE. Это относится к реализации. А конструктор в том же C++ можно вызвать и неявно, простым объявлением переменной нужного типа. И это опять таки связано именно с реализацией, а не с парадигмой.

> будет работать ЗНАЧИТЕЛЬНО медленнее, чем второй, так как,
> во-первых, нам надо подключить класс (по сути считать всю
> библиотеку CGI), а во-вторых мы вызываем конструктор, на

Во первых по сравнению с расходами на САМ перл, эти расходы уже не очень значительны и опять таки они никак не связаны с ООП. В C++ информация о классах ПОЛНОСТЬЮ теряется на этапе компиляции (кроме динамического полиморфизма и RTTI, но это другая история). В конце концов код получается совершенно идентичным. Вызов метода - просто вызов функции (ей еще помимо явных аргументов передается неявный this, но это тоже особенности реализации).

> что опять же совершаются действия, да и сам вызов метода
> объекта содержит в себе много лишнего (переход по ссылке,
> определение, к какому классу пренадлежит объект и как
> завершение вызов функции, в которой единственное что
> выполняется, это return "Content-type: $_[0]", при этом
> прежде чем это будет сделано будет еще куча проверок на
> количество аргументов). Конечно, в других языках такие
> проблемы, как полная загрузка библиотеки и проверка
> количества аргументов избегаются, но потерь всё равно не
> избежать. Ты же вроде совсем недавно спорил, что писать
> нужно все максимально эффективно? ;)

Так зачем писать на перле? :-)

> 2. Насчет самокомментируемости не согласен. Прочитаю
> по-русски второй вариант:
> Вывести строку "Тип-содержимого: текст/хтмыл".
> Что непонятного? Теперь попробуй мне так же кратко описать
> на русском языке действие первого варианта. Я пытался - не

Вывести CGI хедер с типом text/html
Теперь скажи мне, что точнее отражает СУЩНОСТЬ происходящего?

> получилось. Да и потом, всегда ведь можно написать простой
> комментарий - кто мешает?

Никто не мешает, но попробуй доказать, что код который НЕ НАДО комментировать (самокомментирующийся) чем то хуже того, который надо. Сама возможность писать без комментариев говорит о том, что такой код ПОНЯТНЕЕ.

> 3. В идеале, обектная модель человеческому мышлению может
> быть и ближе. Однако она сама по себе _на много_ сложнее.
> Функцию можно определить в двух словах как "программа,
> которая может принимать параметры, возвращающая некий
> результат". Функциональный подход, если я не путаю, изучают
> еще в школе по математике классе эдак в шестом. Таким

Опять двадцать пять. Объектный подход ближе к МЫШЛЕНИЮ человека и не имеет никакого отношения к школе вообще. Да и функциональное программирование настолько же далеко от процедурного, как и объектно-ориентированное.

> образом любой бегиннерс, который доучился до шестого
> класса, уже усвоил для себя что есть функция и с чем ее

Кстати, очень хочу как нибудь выкроить время и ознакомиться с haskel, lisp, ml (ocaml). Для расширения кругозора

> рассматриваем абстрактные примеры. В программировании же не
> совсем очевидно, что консоль может быть объектом, который
> является членом какого-то непонятного класса.

Объектная декомпозиция не сложнее процедурной.

> 4. Насчет строк, массивов и переменных. Кто-то из философов
> сказал: "Не надо плодить сущности без надобности". Чтобы

Это Оккам был

> работать со всем перечисленным, надо в любом случае
> понимать, что это такое на уровне структур данных.

ЖЕЛАТЕЛЬНО. Но не обязательно. Беггинеру и вовсе не нужно

>Дополнительновспоминать в данном случае о ООП - излишняя
> нагрузка информацией, которая по сути является абстракцией
> и не несет никакого прикладного смысла.

Как это излишняя? Избыточность практически всегда несет единственный смысл - помехозащищенность. Во всем начиная от человеческой речи, контрольных сумм для архивов и заканчивая грамотной типизацией ЯВУ. Чем более избыточный язык, тем меньше будет ошибок в программе на нем. Только надо сделать так, чтобы избыточность не раздражала программеров (они таки зачастую лентяи), а то вообще не будет никаких программ на этом языке.

А ООП - всего лишь способ структурирования информации и уменьшения количества взаимосвязей во все возрастающих программах

> 5. В любом случае, используя объектно-ориентированный
> подход, ты не убежишь от того, что придется рано или поздно
> создавать собственные классы и методы. А это есть ни что
> иное как написание тех же функций. В случае функций ты,
> конечно, тоже к объектам придешь, но зато уже с изначальным
> умением писать собственные классы и методы. Если же знать
> ООП, но не уметь писать функции, то это уже умственный

Поговорим о сферических людях в вакууме.

> инвалид получается (кстати, если возвращаться к тому коду
> на Perl, что я привел выше, то основная масса людей
> использует именно первый способ, а не простой print, именно
> потому, что по-другому они не умеют - а из-за этого
> огромные потери и падение эффективности).

Ну насчет огромных ты погорячился. Перл все таки умеет прекомпилировать и "огромная" потеря выйдет только после первого раза. Кроме того, если в твоем случае так важна эффективность советую писать на C/C++. Выводить на stdout они умеют не хуже перла, библиотек регекспов до фига, а скорость вырастет в разы (если не на порядки).
<miscellaneous>
Эта... Есть повод для флейма... 21.10.05 14:17   [amirul, Den, J'JF]
Автор: Fighter <Vladimir> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
На одном сайте натолкнулся на вопрос:
"с какого языка начинать учить азбуку программировния - с PASCAL (DELPHI) или идти путем Си (Java)?"
И несколько ответов:
с Бэйсика
с Паскаля
с любого структурированого, но лучше с Паскаля
по-любому лучше с Бэйсика.

Предлагаю обсудить эту тему. На мой взгляд лучше Паскаль.
Че-то отвлеклись все. Может пора закрывать ветку? Или не надо? 27.10.05 18:01  
Автор: Fighter <Vladimir> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Честно говоря, надоел уже этот флейм. Да и тема себя вроде как исчерпала. 27.10.05 18:17  
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Так ветка может и в книгу рекордов Гинеса попасть. 27.10.05 18:36  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Угу. Ну, ладно, подожду до вечера и закрою, если возражений нет. 28.10.05 13:14  
Автор: Fighter <Vladimir> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Да нет, в принципе забавно :) 27.10.05 19:56  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Жалко только что про яву мало спорят. Я очень люблю когда при мне говорят слово "кроссплатформенный". У меня сразу слюноотделение резко повышается и может родимчик приключиться. Не знаю почему.
Потом z0 проснулся неожиданно - тоже хорошо. Когда ж мы в баню-то пойдем, родное сердце?! Как раз снежок выпал, сейчас самое милое дело на фонари залиться и выскакивать из парилки в сугроб во дворе :)

Где-то на 3-й странице рассказывают разницу между объектами и структурами - всюду жизнь!
"призрак видел все!"(с) 28.10.05 14:31  
Автор: z0 <z0> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
это не ты разве убеждал недавно петруху что в баню надо ходить общаться а не за гигиеной тела?
Гыг 27.10.05 20:12  
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Мыж вроде как все вместе хотели пыво пить в ГСМе, азарт прошел?
Неудобно читать стало 27.10.05 13:24  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Предлагаю отсечь ветки бессмысленного флейма, где не обсуждается вопрос корневого поста: "С какого языка лучше начинать учить программированию".
100% точный ответ. [upd] 26.10.05 14:31  
Автор: Den <Денис Т.> Статус: The Elderman
Отредактировано 26.10.05 15:15  Количество правок: 2
<"чистая" ссылка> <обсуждение закрыто>
Начинать надо с блок-схем алгоритмов!
Кто-то не согласен?

Знаю, знаю... Я, как всегда, испортил флейм. :))
100% -е согласие! 27.10.05 05:06  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
никогда не рисовал блок-схем 26.10.05 15:28  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Ты что в институте не учился? :-) 26.10.05 15:29  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Рисовать то я рисовал, но только для отчетности (на некоторых лабораторных в отчете надо было привести блок-схему). Сначала программа, а потом по этой программе - блок-схема :-)
Ту дык и с чего бегинерсу лучше начать? С Си или блок-схем? 26.10.05 15:46  
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Как по мне блок-схемы вообще надо выкинуть на свалку истории. 26.10.05 16:53  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Не видел ни одной уважаемой книжки по программированию, где были бы нарисованы эти уродцы. Книжки с UML видел, хотя он мне и не особо нравится, а вот с блок-схемами - нет.
На свалку Истории? 26.10.05 17:03  
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Они морально устарели? Принципы блок-схем перестали соответсвовать ныне используемым языкам?
Блок-схемы или некоторое их подобие перестали использовать при разработке больших проектов на этапе проектирования для связи между компонентами и модулями программ?
учился 26.10.05 15:39  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Но на физика. Из программухи были только численные методы. Сдавали проги, объясняя устно как все работает.
а функциональные языки лучше вобще не учить или просто начинать с них не стоит?? 25.10.05 21:55  
Автор: zelych Статус: Member
Отредактировано 25.10.05 21:55  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
Начинать не стоит [update] 26.10.05 11:17  
Автор: amirul <Serge> Статус: The Elderman
Отредактировано 26.10.05 14:28  Количество правок: 2
<"чистая" ссылка> <обсуждение закрыто>
Но так как язык определяет вещи о которых ты способен ДУМАТЬ (не помню как назывался опыт, но для естественных языков это доказанный факт), то лучше выучить как можно больше языков и желательно с поддержкой как можно большего числа парадигм

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

Только что подумал, что ты мог неправильно употребить выражение функциональные языки (где то там внизу уже встречалось такое неправильно употребление). Функциональные языки это Lisp, Haskel, ML (OCaml, SML). Функиональную парадигму в той или иной мере поддерживают также мультипарадигменные языки типа python, tcl, ruby, perl

C/C++ и Pascal/Delphi никак нельзя назвать функциональными языками (хотя я встречал библиотеку темплейтов для C++, которая добавляет поддержку функциональной парадигмы в C++ - intelib называется)

Если же имелись в виду процедурные языки (не ООП), то учить их конечно тоже стоит. Если сильно хочется можно и начинать с них же.
Начинать надо с того, что ближе к машине 27.10.05 05:15  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Тем более, что ты ведь не знаешь, какие задачи жизнь тебе подсунет. Зачем загружать себя предметно-ориентированной лабуой, котоая, возможно, никогда не понадобится? Надо знать, как эта лабуда (компилеры) функционирует и пишется, тогда, при необхоимости легко осоишь любой язык, или создашь новый под конкретную задачу.

В этом смысле С - разумный компромисс между машинным и человеческим. Он уже понятен человеку, но на нем еще можно сделать все, что угодно. Другие языки позволяют делать только то, для чего они предназначены.
1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  10 >>  »    »»




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach