Информационные технологии: вчера, сегодня и завтра. — Разное

.. РћРЅРѕ Рё понятно — ответа РЅР° этот РІРѕРїСЂРѕСЃ РЅРµ существует. Какой язык лучше — английский или французский? Немецкий или СЂСѓСЃСЃРєРёР№? Нет ответа. Каждый язык РїРѕ-своему С…РѕСЂРѕС€. Каждый лучше пригоден для определенной задачи. Поэтому профессиональный программист выбирает язык РїРѕРґ задачу. Р� совершенно неважно, РЅР° чем написана программа, главное, чтобы РѕРЅР° была эффективной Рё безглючной.

Поэтому, Феликс, говорить Рѕ том, что некий язык «Рђ» плохой — некорректно. Это просто ты РЅРµ умеешь РЅР° нем писать, только Рё всего.

Поэтому, Сергей, настоящие профи не пишут только на Си, они пишут на том, на чем удобнее и эффективнее. Хоть на Бэйсике.
…

РЇ собственно РєСЂРѕРјРµ восхваления C/C++ РіРѕРІРѕСЂРёР» Рё Рѕ том, что профи делают красивые вещи РЅР° любом языке Рё что РІ определенных случаях лучше выбрать наиболее подходящий. РќРѕ, что СЏ хочу еще раз подчеркнуть. Р’СЂСЏРґ ли найдется язык РїРѕ своей мощи, РїРѕ возможностям, которые РѕРЅ предоставляет круче, чем C++. Расписывать РјРЅРѕРіРѕ РЅРµ Р±СѓРґСѓ. Просто возьмите, например, РёСЃС…РѕРґРЅРёРєРё FlightGear или какой-нить популярный открытый проект Рё посмотрите РЅР° сколько там изящно применяется C++. РћРћРџ (причем весь возможный арсенал: инкапсуляция Рё наследование, РІ том числе Рё множественное, СЃ изощренными способами ограничения доступа для потомков, полиморфизм РІРѕ всей красе) РІ сочетанием СЃ template-ами Рё перегрузками операций порождает чрезвычайно мощное выразительное средство, которому РІСЂСЏРґ ли РјРѕР¶РЅРѕ, что-то сопоставить. Второй момент — это беспрецедентные возможности отладки Рё контроля результата. Вместе СЃ готовыми объектными модулями РјРѕР¶РЅРѕ получать Рё листинги ассемблерного РєРѕРґР° переплетенного СЃ РєРѕРґРѕРј C++. Рў.Рµ. РІРѕР·РјРѕР¶РЅРѕ непосредственно проконтролировать тонкие места Рё РІ случае необходимости изменить РєРѕРґ.

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

Но конечно же, если тебе никогда не надо ничего делать, кроме динамических страниц сайтов, конечно же надо сесть на PHP или ASP. Если ты кроме информационных систем ничего не должен делать, то одним из лучших выборов будет СУБД ORACLE с ее инструментарием для клиентских приложений использующим в качесвте языка программирования PL/SQL, ну и т.д. Тут сопру нет.

Но также бессмысленно надеться на то, что ты сможешь написать движок игры на Visual Basic.NET или вообще на VBA. Ну и т.д. Надеюсь понятно. Не говоря уже о модулях ядра Linux или драйверах для винды.

Рђ РЅР° c++ РјРѕР¶РЅРѕ РІСЃРµ. Р’ нем РјРѕР¶РЅРѕ сконструировать любые нужные конструкции, ведь для этого есть механизмы начиная РѕС‚ макросов, кончая шаблонами или шаблонами переплетенными СЃ классами. РџРѕ сути построить собственный диалект, заточенный РїРѕРґ конкретные задачи. Шаблоны — это вообще чума. Как то видел РІ инете статью РІ которой человек призывал вообще отказаться РѕС‚ РћРћРџ Рё перейти Рє использованию только шаблонов.

Рђ вообще РіРѕРІРѕСЂСЏ, если отвлечься РѕС‚ суеты сует, СЏ всеми силами стараюсь избегать операций СЃ плавающей точкой. Рљ сожалению, РЅРµ всегда это РІРѕР·РјРѕР¶РЅРѕ, РЅРѕ тем РЅРµ менее. Рљ примеру, возьмем первый попавшийся пример — представление географической координаты.

Пусть Сѓ нас будет координата 25°45’35». Совершенно РѕС‚ балды. Если записывать её числом СЃ плавающей точкой, то получится 25,75972. РќРѕ ведь РјРѕР¶РЅРѕ записать Рё РїРѕ-РґСЂСѓРіРѕРјСѓ — целым числом 254535. Р� если прикинуть, сколько процессорного времени будет затрачено например РЅР° операцию разбивки РЅР° градусы, минуты Рё секунды, то получится, что целочисленные операции потребуют РІ 2,5 раза меньше времени, чем операции СЃ плавающей точкой. Есть над чем задуматься :)

Да об этом не раз говорил Олег Ranger. � здесь я естественно учусь и по возможности, при случае буду это применять. Скорее всего, если доживу до какого-нибудь нового проекта (в старых проектах, которые не мои, которые я дорабатываю вряд ли имеет смысл усердсвовать в этом плане). Собственно об этом в конструкторской уже был разговор и упоминание Олегом того факта, что очень много в MSFS приведено к целочисленным данным.

Второй момент — это беспрецедентные возможности отладки Рё контроля результата. Вместе СЃ готовыми объектными модулями РјРѕР¶РЅРѕ получать Рё листинги ассемблерного РєРѕРґР° переплетенного СЃ РєРѕРґРѕРј C++. Рў.Рµ. РІРѕР·РјРѕР¶РЅРѕ непосредственно проконтролировать тонкие места Рё РІ случае необходимости изменить РєРѕРґ.

Это от языка не зависит. Прерогатива среды разработки. Код можно переплести с любыми исходниками.

� здесь я естественно учусь и по возможности, при случае буду это применять.

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

Возможности отладки — РґР°, больше среда. РќРѕ РІ комлекте СЃ C/C++ обычно РёР· РёСЃРїРѕРєРѕРЅ веков были мощные отладчики. Да тот Р¶Рµ Ida Pro РІ качесве РѕРґРЅРѕРіРѕ РёР· вариантов обратного инжениринга генерить именно C-ый РєРѕРґ, Р° РЅРµ Pascal Рё СѓР¶ тем более РЅРµ VB (РЅРѕ тут СЏ вообще загнул). РќРѕ СЏ РіРѕРІРѕСЂРёР» немного Рѕ РґСЂСѓРіРѕРј. Получение ассемблерного РєРѕРґР°, переплетенного СЃ РєРѕРґРѕРј C/C++. Р’ РѕРґРЅРѕ время компиляторы C/C++ вообще сначала генерили ассемблерный РєРѕРґ, Р° СѓР¶ потом создавали РёР· него СѓР¶Рµ машинный. Собственно тут СЏ речь веду том, что РІ C/C++ СЃ древних времен присутствовали мощнейшие средства контроля. РЇ вспоминаю Borland Pascal 7 Рё Borlanf C 2 РїРѕРґ DOS. Какие СѓР±РѕРіРёРµ возможности предоставлял Borland Pascal, Р° какие Borland C, РѕРґРЅРёС… только параметров компиляции Рё линковки РЅРµ сосчитаешь, навороченный отдачик Рё профайлер. Для Pascal РІСЃРµ это было скромненько. Да Рё понятно, зачем для него было делать больше. Хотя так Р¶Рµ РїРѕРјРЅСЋ, какие крутые вещи ребяты делали Рё РЅР° BP. РќРѕ разговор опять взвращается Рє тому Р¶Рµ. C/C+ всегда был РєСЂСѓС‚ Рё как правило всегда для него было крутое программное окружение.

Но в комлекте с C/C++ обычно из испокон веков были мощные отладчики.

в C/C++ с древних времен присутствовали мощнейшие средства контроля

Еще раз: отладчик Рє языку РЅРµ имеет никакого отношения. РўРѕ, что поначалу паскаль отставал РІ развитии — неудивительно. РЈ РЅРёС… разные причины создания, разные задачи, разное развитие. Теперь РІСЂРѕРґРµ как подтянули.

тот же Ida Pro в качесве одного из вариантов обратного инжениринга генерить именно C-ый код

Эмм. Я, конечно, дизассемблерами мало пользовался, но что-то я сильно сомневаюсь, что он делал сишный код. Это практически невозможно.

В одно время компиляторы C/C++ вообще сначала генерили ассемблерный код, а уж потом создавали из него уже машинный.

Это потому что не умели сразу машинный делать :)

C/C+ всегда был крут

Увы тебе. До Си был такой Пл/1. Я было пытался его выучить, но не смог. Даже компиляторы для него не умели делать :sarcastic:

Поэтому, Феликс, говорить Рѕ том, что некий язык «Рђ» плохой — некорректно.

Некорректно спирить с собеседником о том, о чём он не говорил.

Феликс, в реализации этой замечательной функции есть один огромный подводный камень. Дело в том, что у процессора �нтел есть 4 (четыре) метода округления. � перед командой FIST, в которую все упирается, надо быть абсолютно уверенным в том, какой метод сейчас установлен в управляющем слове процессора. К примеру, реализация функции round, которую ты привел, не учитывает установленный метод округления. Можно очень сильно напороться.

У страха глаза велики. Матчасть нужно знать.
var
Default8087CW: Word = $1332;{ Default 8087 control word. FPU control
register is set to this value.
CAUTION: Setting this to an invalid value
could cause unpredictable behavior. }
procedure Set8087CW(NewCW: Word);
asm
MOV Default8087CW,AX
FNCLEX // don’t raise pending exceptions enabled by the new flags
FLDCW Default8087CW
end;

… Р­РјРј. РЇ, конечно, дизассемблерами мало пользовался, РЅРѕ что-то СЏ сильно сомневаюсь, что РѕРЅ делал сишный РєРѕРґ. Это практически невозможно. …

РЇ лично, небольшими кусками, делал обратный инжениринг некоторых мест (…) Рё изучал эти места именно анализируя РєРѕРґ C. Безусловно, полученный РєРѕРґ — совершенно РЅРµ тот, что Сѓ авторов. Нет исходных имен, РґР° Рё конструкции РЅРµ так сложены, РЅРѕ алгоритм РїРѕ-любому тот. Собственно задача 100% обратного инжениринга сейчас нерешаема, РЅРѕ то, что есть средство, которое генерит некий РєРѕРґ C, который СѓР¶Рµ РјРѕР¶РЅРѕ анализировать гораздо быстрей (РЅРµ то слово), чем ассемблерный — это факт.

IDA Pro Advanced with Hex-Rays

Вот нашел, что быстро попало под руку.
HexRays – декомпилятор РЅРѕРІРѕРіРѕ поколения: превращаем любой бинарник РІ C-РєРѕРґ

Вердикт РІ конце статьи, думаю — актуален для хакеров. Для простого смертного программера, как СЏ, IDA Pro + Hex-Rays — просто находка.

… Это потому что РЅРµ умели сразу машинный делать :) …

РќСѓ Рё сейчас РЅРё РІ gcc, РЅРё РІ vc опция генерации ассемблерного РєРѕРґР° РЅРµ удалена. Очень помогает периодически. Да Рё для самообразования — крайне полезная вещь.

Некорректно спирить с собеседником о том, о чём он не говорил.

А, ну тогда я садомазохист с 20-летним стажем. Спасибо :)

У страха глаза велики. Матчасть нужно знать.
FLDCW Default8087CW

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

РќСѓ Рё сейчас РЅРё РІ gcc, РЅРё РІ vc опция генерации ассемблерного РєРѕРґР° РЅРµ удалена. Очень помогает периодически. Да Рё для самообразования — крайне полезная вещь.

РЇ считаю, что СѓР¶Рµ прошли те времена, РєРѕРіРґР° РЅР° каждом шагу был нужен ассемблер (хотя Рё РЅРµ канул РѕРЅ РІ лету насовсем). СейчаСavsimёРЅС‹ достаточно мощные Рё РЅР° высоком СѓСЂРѕРІРЅРµ РјРѕР¶РЅРѕ писать хорошие алгоритмы. Лично для меня РѕРЅ остался нужен лишь для понимания логики работы компилятора. Р�РЅРѕРіРґР° хочется учудить нечто слабоконтролируемое, РІРѕС‚ Рё втыкаешь РІ сгенерированный ассемблер :) РќРѕ это бывает редко. KISS принцип РїРѕ-прежнему рулит.

А, ну тогда я садомазохист с 20-летним стажем. Спасибо

Конечно садомазохист. Почитай сообщение 47. Ты за 20 лет так и не написал функцию round только споришь со мной.

Я конечно, извиняюсь, но лбы сдающие ЕГЭ уже не совсем дети.

 

А давайте отменим основы мат. анализа — он же тоеж для детей бесполезен? Зато введём богословие, пусть развивают духовность! Вот это важно, да!

Речь в исходном псто макГордона шла о 8 (восьмом) классе. А отнюдь не о «лбах, сдающих ЕГЭ»

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

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

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

Это уж потом, когда начали изучать символическую логику

1355715378_1.jpg

И это сейчас детям суют?

ЭЭй Начальник?!

Речь в исходном псто макГордона шла о 8 (восьмом) классе. А отнюдь не о «лбах, сдающих ЕГЭ»

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

А сегодня эти знания необходимы.

Ребяты, я вам вот что скажу.

Я не могу ничего сказать про математику, физику, химию и прочее. Но компьютеры — моя профессия. Я знаю про них очень много. Мой сын в свое время начал учиться в «информатизационном» первом классе. Это означало, что информатика у них начнется прямо 1 сентября. Я прошел с ним все 10 классов и ЕГЭ по информатике. Я показал ему азы, я показал просторы. Сейчас он не уступает мне в умении пользоваться компьютером. Он не теряется при виде незнакомого гаджета, а осваивает его за пять минут. Потому что знает принципы. И да, он не имеет ни малейшего понятия о программировании. Нужны ли ему программирование и булева алгебра? Нет, нафик не нужны. Нужно ли ему умение с полпинка использовать любую электронную железяку и незнакомую программу на компьютере? Да, безусловно.

Я утверждаю, что сегодняшняя информатика в школе устроена совершенно неправильно. Это чушь собачья, а не информатика. Начиная с программы, в которую входит то, что нахрен не надо школьнику. И заканчивая тем, что преподают информатику профаны. Я могу научить детей, хоть у меня нет педагогического образования. А учитель «физики и информатики» — нет.

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

Зачем кому бы то ни было знать таблицы истинности? Посмотри вокруг — люди не знают действительно животрепещущих вещей. Просто элементарно не умеют мыслить, читать, так чтобы осмыслить два предложения вместе. Причём так всегда было. А Вы всё матан ставите во главу угла. Да кому он нужен кроме горстки?

1285268963.jpg

Сегодня российскому сегменту Всемирной паутины исполнилось 20 лет!

 

Поздравляю всех жителей Сети.

 

http://news.yandex.r…lr=56&rpt=story

Зачем кому бы то ни было знать таблицы истинности? Посмотри вокруг — люди не знают действительно животрепещущих вещей. Просто элементарно не умеют мыслить, читать, так чтобы осмыслить два предложения вместе. Причём так всегда было. А Вы всё матан ставите во главу угла. Да кому он нужен кроме горстки?

Например всё тем же пяти процентам… Те кому не надо — спишут или зазубрят. Те кому надо что-то да узнают. Так всегда было.

Есть мнение, что те 95%, которые не умеет воспринимать обычный текст, представляют собой гораздо более интересное поле для деятельности тех, кто стремится что-то улучшить. Какие на фиг таблицы истинности, если субъект реальное умственное бревно? 95% это как известно цифра фольклорная, но суть отражает.

Ну тогда можно отказаться и от той же термодинамики (кто ещё помнит второй закон термодинамики в формулировке Клаузиуса).

 

У немцев есть разделение на всякие хауптшуле, реалшули и гимназии, и предполагается что в первые две попадают люди в основном из этих самых 95%, но оценить, лучше ли такая система в сравнении с нашей, сложно.

У немцев есть разделение на всякие хауптшуле, реалшули и гимназии, и предполагается что в первые две попадают люди в основном из этих самых 95%, но оценить, лучше ли такая система в сравнении с нашей, сложно.

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

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

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

Особенно если говорить о территориях бывшего СССР… есть люди которые «окончили математический лицей» а разницы не видно в сравнении с обычной «среднеобразовательной школой».

Особенно если говорить о территориях бывшего СССР… есть люди которые «окончили математический лицей» а разницы не видно в сравнении с обычной «среднеобразовательной школой».

Те, кто в Москве заканчивали 18-ую или 542-ую, очень отличались. Кроме того, в той же Москве были спецшколы, куда не всех брали. Соответственно школы без быдла, шпаны. Ну и без «братьев меньших», которых в те времена ещё в таких количeствах не было. Что в Москве, что в Западном Берлине.
 

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

Разделяют по способностям и стараются каждому дать максимум. Одного научить читать, другого тоже научить читать, но умные книги и на 3 иностранных языках. Как Кая Янар говорил: «во всей гимназии было двое турок: я и мой брат».

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

Ну я не спорю, суть в том, что, насколько я понимаю, особых преимуществ у такого разделения нету.
Особенно если говорить о территориях бывшего СССР… есть люди которые «окончили математический лицей» а разницы не видно в сравнении с обычной «среднеобразовательной школой».

Так ведь это не идея разделения виновата, а её реализация. Как всё в совке и происходит.