> Но только никакой компилятор не сможет софтовую реализацию деления из либы сделать
> быстрее и экономичнее, чем аппаратную — я имею в виду общий случай, без сдвигов.
А что по-Вашему есть «аппаратная реализация» какой-либо сложной команды? Все команды в CISC точно так же на низком уровне выполняется микропрограмами. Зато в RISC (как правило) большее количество регистров общего назначения, более короткие опкоды, бОльшая тактовая частота, простая архитектура. В целом сложно сказать что именно эффективнее и быстрее получается.
Обсуждаемое сжатие на самом деле заключается в основном в урезании частот (ну, и некоторых других преобразованиях, следующих из психоакустической модели) и если разжать сжатый mp3 в wav, а потом сжать его обратно, то в целом мало что изменится.
Всё оттого, что на перле в это играть проще всего, сам язык располагает к этому — множество лаконичных ёмких по смыслу конструкций. Когда по работе выпадал (и сейчас бывает, выпадает) случай писать скрипты на perl, это занимало надолго — всё время хотелось сделать короче и короче, полдня мог вылизывать один скрипт. Работа стоит а я успокоиться не могу :( Однажды скрипт строк в 30 (все из них полезные) сжал в одну кострукцию, не очень длинную причём. Главное — потом вспомнить что это вообще здесь написано или хотя бы понять, что оно делает :)
Кстати. Если почитать хотя бы основы построения интерпретаторов, можно понять, что убирание пробелов — это именно семечки. И, предвидя ссылки на когда-то распространённые статьи про оптимизацию php скриптов, где утверждалось, что сократив имена переменных до 7 символов мы ускорим скрипт на 15%, замечу, что всё это, возможно, было актуально во времена php3, когда он был чистым интерпретатором. Сейчас, когда интерпретатор исполняет байткод это не настолько уж к месту.
И ещё. Полноценный автоматический текстовый(!) рефакторинг php-скрипта (вплоть до замены имён переменных) провести практически невозможно, ибо, очевидно, по трудоёмкости это сравнимо с написанием нового интерпретатора. А на уровне байткода оптимизировать уже вроде как и нечего. А хотите здесь ускорить — для этого есть акселераторы. И именно этот путь будет во много раз эффективнее. Убирать пробелы из текста (чтобы потом из него сделался байткод, который будет выполняться без акселератора) для ускорения скрипта это всё равно, что приделывать спойлер на «девятку», чтобы она быстрее ехала, когда есть возможность поставить двигатель от «тойоты».
Это экономия на семечках. Никакого реального прироста производительности не будет заметно. И это при том, что на порядок (а то и больше) можно ускорить скрипт, оптимизировав алгоритмически и архитектурно.
Пусть хоть NetWare ставят в школы, лишь бы хоть что-нибудь в головах оставалось после уроков информатики. Надо что-то другое менять — учебные планы, заинтересованность учеников, зарплаты учителям информатики, в конце концов. А это всё баловство, имхо. Бабло как распиливали, так и будут распиливать.
Так у нас пока нет другой системы образования, потому все, кто к нам приходили за всё время — выпускники текущей :) Приходили за последние пару лет из тех кто сейчас остались — 4 человека. Приходили больше, но некоторые не справлялись и уходили, тупо не хватало… ну, знаний что ли и способностей эти знания приобретать на ходу, а учить элементарным вещам у нас времени особо нет.
И вот как раз ЭТО — способность и умение приобретать знания на ходу и вплетать их в общую картину своих знаний я лично считаю тем, что как раз и должны давать в высшем образовании. А то люди приходят — ни бе, ни ме, «ой, а мы делфи учили, а это я не знаю», «ой, а нам не так рассказывали», «а как это делать, а я не знаю как делать», и т.д. и т.п.
Нет, поймите, на самом деле я не отрицаю ни один факт из тех, что Вы говорите — и дают материал часто плохо, и выпускается много неучей и по специальности работают меньше половины. Ну, так это везде так, в любой системе и в любой стране.
Вы же не предлагаете альтернатив как таковых. Ваша альтернатива уже реализована — это среднеспециальное образование, техникумы, ПТУ итд. Когда человек хочет стать, например, конкретно слесарем или там токарем, он идёт в ПТУ, ему там показывают станок, учат основам БЖД, неким основам его работы, он выходит и работает на станке. То же самое в любом другом: мастер по пошиву одежды учится в техникуме, выходит и шьёт одежду. И уж тут по специальности работают многие. А если человек хочет расти выше — он идёт в университет. Там дают гораздо более общий уровень и при этом более глубокий. Учат уже всему, что вокруг его специальности. Его вполне могут вообще не учить конкретным швейным машинкам или там на чём они шьют. И, кстати, если рассматривать выше — аспирантуру, например, так там всё вообще ещё более общее, там даже узких степеней как таковых нет, есть «кандидат технических наук» и всё. И уж там точно не учат «как». К этому времени человек сам знает «как», «что-то» и как других научить «как».
Вы просто выдумали проблему, а теперь привязываете её к какой-то системе и пытаетесь объяснить её, моими в том числе словами. Ваша система («надо учить так-то и так-то») кажется Вам почему-то правильной, хотя то, что она даст более лучший результат в решении рассматриваемой проблемы — ещё не доказано.
Никогда не будет такого, что 100% выпуска будет работать по специальности, да и вообще — зачем это? Это нереально как минимум потому, что слишком много факторов влияет на выбор человеком той или иной специальности, кто-то передумывает, кто-то вообще идёт лишь бы получить любую специальность, кто-то во время учёбы понимает, что это не его. Таких очень много и это вполне нормально.
Ой, ну бросьте :) Напрасно Вы считаете предположение о том, что вы что-то не поняли с дальнейшим объяснением этой позиции переходом на личности.
Я вашу позицию прекрасно понял и высказал свою, и основное там было не замечание о том, что Вы ничего не понимаете, а прямое указание на разницу между средним профессиональным образованием и высшим. Что Вы как раз таки благополучно опустили в своём ответе. А именно это — главное, на что указывалось вам неоднократно и выше.
Что вас удивляет в понятии «умение программировать в общем»? Не нужно искать какие-то крайние случаи, типа «получил диплом и не умеет открыть IDE». Да, таких случаев полно, но это к разговору мало относится. И не нужно придумывать и замещать понятия (например, «умение программировать в общем» и «только запись в дипломе»), я совсем не вкладывал в это такой смысл.
Умение программировать — это не знание IDE и не способность «сделать на практике хоть что-то». Прежде всего это обширное знание предметной области, умение поставить задачу, умение формализовать задачу, умение построить математическую модель и т.д. и т.п., перечислять долго можно. А открыть IDE и сделать — это одно единственное звено, причём не самое сложное.
Я — программист с дипломом, и у нас также в выпуске не более 20% стали программистами, не оттого, что навыка нет и т.д., а просто это не интересно им. Как практикующий программист я представляю в чём заключается работа программиста, оттого и говорю. Кроме того, мы постоянно имеем дело с молодыми кадрами, опытными и не очень, оттого я здесь сужу, что именно важнее — умение открыть IDE или широкий кругозор, гибкость и способность обучаться. В аспирантуре я видел как и кто учится и кто выпускается.
Будучи модератором большого (в рунете) программерского форума каждый день вижу людей, которые умеют открыть IDE и решать задачи по книге, но любой шаг в сторону или необходимость более-менее сложной постановки задачи ставит их в тупик. Там же постоянно наблюдается куча людей, которые считаются программистами, открывают IDE и даже пишут там сайты, но не имеют ни малейшего представления о механизмах HTTP, путают серверную сторону и клиентскую, не понимают где выполняются вообще php-скрипты и каким образом их результат видит юзер и точно так же говорят «а зачем нам это, главное — практика». Так что можете спорить дальше, постараюсь больше не приставать со своими личностями.
Ну, это ведь как обычно — сначала придумывают закон, а потом придумывают куда и как его применять. Формулировка очень расплывчатая. Если вдуматься — под него можно подгрести всё что угодно в инете и многое за его пределами. Участвую в разработке большого программного продукта, который прямиком попадает под действие этого закона, следили за этим законом очень давно, обсуждали с обеспокоенными им клиентами, консультировались с компетентными людьми — никто толком не знает что он означает, что из него следует, как учитывать его действие в нашем ПО и вообще зачем он нужен.
>Нас не учат «программировать на языке АВС», нас учат «программированию на примере языка АВС».
>Нас не учат, как решать примеры, нас учат «методам интегрирования».
Если Вы не поняли, что именно так и должно быть в самом идеальном случае (и, к сожалению, это ооооочень далеко не всегда так) — Вам не нужно высшее образование или Вы просто не понимаете его предназначения. То, о чём Вы говорите — это в чистом виде среднее профессиональное образование, но никак не высшее. Очень образно говоря, в высшем даются более общие знания. И из умения «программировать в общем» всегда следует умение программировать на чём угодно. Но из умения «программировать на языке ABC» в общем случае не следует почти ничего.
Это всё оттого, что этот же способ — пока самый популярный способ распространения и самого линукса :)
з.ы. а заметка как раз о том, что в плане локальной безопасности не нужно расслабляться. И отличий тут от других систем мало. Распространение вирусов на 99% обусловлено человеческим фактором, а не самой системой.
> быстрее и экономичнее, чем аппаратную — я имею в виду общий случай, без сдвигов.
А что по-Вашему есть «аппаратная реализация» какой-либо сложной команды? Все команды в CISC точно так же на низком уровне выполняется микропрограмами. Зато в RISC (как правило) большее количество регистров общего назначения, более короткие опкоды, бОльшая тактовая частота, простая архитектура. В целом сложно сказать что именно эффективнее и быстрее получается.
И ещё. Полноценный автоматический текстовый(!) рефакторинг php-скрипта (вплоть до замены имён переменных) провести практически невозможно, ибо, очевидно, по трудоёмкости это сравнимо с написанием нового интерпретатора. А на уровне байткода оптимизировать уже вроде как и нечего. А хотите здесь ускорить — для этого есть акселераторы. И именно этот путь будет во много раз эффективнее. Убирать пробелы из текста (чтобы потом из него сделался байткод, который будет выполняться без акселератора) для ускорения скрипта это всё равно, что приделывать спойлер на «девятку», чтобы она быстрее ехала, когда есть возможность поставить двигатель от «тойоты».
И вот как раз ЭТО — способность и умение приобретать знания на ходу и вплетать их в общую картину своих знаний я лично считаю тем, что как раз и должны давать в высшем образовании. А то люди приходят — ни бе, ни ме, «ой, а мы делфи учили, а это я не знаю», «ой, а нам не так рассказывали», «а как это делать, а я не знаю как делать», и т.д. и т.п.
Нет, поймите, на самом деле я не отрицаю ни один факт из тех, что Вы говорите — и дают материал часто плохо, и выпускается много неучей и по специальности работают меньше половины. Ну, так это везде так, в любой системе и в любой стране.
Вы же не предлагаете альтернатив как таковых. Ваша альтернатива уже реализована — это среднеспециальное образование, техникумы, ПТУ итд. Когда человек хочет стать, например, конкретно слесарем или там токарем, он идёт в ПТУ, ему там показывают станок, учат основам БЖД, неким основам его работы, он выходит и работает на станке. То же самое в любом другом: мастер по пошиву одежды учится в техникуме, выходит и шьёт одежду. И уж тут по специальности работают многие. А если человек хочет расти выше — он идёт в университет. Там дают гораздо более общий уровень и при этом более глубокий. Учат уже всему, что вокруг его специальности. Его вполне могут вообще не учить конкретным швейным машинкам или там на чём они шьют. И, кстати, если рассматривать выше — аспирантуру, например, так там всё вообще ещё более общее, там даже узких степеней как таковых нет, есть «кандидат технических наук» и всё. И уж там точно не учат «как». К этому времени человек сам знает «как», «что-то» и как других научить «как».
з.ы. судя по результатам поиска музыку он берёт с вконтакта — выдаваемые треки и их порядок точь-в-точь при любых одинаковых запросах ;)
Никогда не будет такого, что 100% выпуска будет работать по специальности, да и вообще — зачем это? Это нереально как минимум потому, что слишком много факторов влияет на выбор человеком той или иной специальности, кто-то передумывает, кто-то вообще идёт лишь бы получить любую специальность, кто-то во время учёбы понимает, что это не его. Таких очень много и это вполне нормально.
Я вашу позицию прекрасно понял и высказал свою, и основное там было не замечание о том, что Вы ничего не понимаете, а прямое указание на разницу между средним профессиональным образованием и высшим. Что Вы как раз таки благополучно опустили в своём ответе. А именно это — главное, на что указывалось вам неоднократно и выше.
Что вас удивляет в понятии «умение программировать в общем»? Не нужно искать какие-то крайние случаи, типа «получил диплом и не умеет открыть IDE». Да, таких случаев полно, но это к разговору мало относится. И не нужно придумывать и замещать понятия (например, «умение программировать в общем» и «только запись в дипломе»), я совсем не вкладывал в это такой смысл.
Умение программировать — это не знание IDE и не способность «сделать на практике хоть что-то». Прежде всего это обширное знание предметной области, умение поставить задачу, умение формализовать задачу, умение построить математическую модель и т.д. и т.п., перечислять долго можно. А открыть IDE и сделать — это одно единственное звено, причём не самое сложное.
Я — программист с дипломом, и у нас также в выпуске не более 20% стали программистами, не оттого, что навыка нет и т.д., а просто это не интересно им. Как практикующий программист я представляю в чём заключается работа программиста, оттого и говорю. Кроме того, мы постоянно имеем дело с молодыми кадрами, опытными и не очень, оттого я здесь сужу, что именно важнее — умение открыть IDE или широкий кругозор, гибкость и способность обучаться. В аспирантуре я видел как и кто учится и кто выпускается.
Будучи модератором большого (в рунете) программерского форума каждый день вижу людей, которые умеют открыть IDE и решать задачи по книге, но любой шаг в сторону или необходимость более-менее сложной постановки задачи ставит их в тупик. Там же постоянно наблюдается куча людей, которые считаются программистами, открывают IDE и даже пишут там сайты, но не имеют ни малейшего представления о механизмах HTTP, путают серверную сторону и клиентскую, не понимают где выполняются вообще php-скрипты и каким образом их результат видит юзер и точно так же говорят «а зачем нам это, главное — практика». Так что можете спорить дальше, постараюсь больше не приставать со своими личностями.
>Нас не учат, как решать примеры, нас учат «методам интегрирования».
Если Вы не поняли, что именно так и должно быть в самом идеальном случае (и, к сожалению, это ооооочень далеко не всегда так) — Вам не нужно высшее образование или Вы просто не понимаете его предназначения. То, о чём Вы говорите — это в чистом виде среднее профессиональное образование, но никак не высшее. Очень образно говоря, в высшем даются более общие знания. И из умения «программировать в общем» всегда следует умение программировать на чём угодно. Но из умения «программировать на языке ABC» в общем случае не следует почти ничего.
з.ы. а заметка как раз о том, что в плане локальной безопасности не нужно расслабляться. И отличий тут от других систем мало. Распространение вирусов на 99% обусловлено человеческим фактором, а не самой системой.