Что делать?
Драсте, я учусь на 2 курсе кафедры – "Комплексное обеспечение информационной безопасности автоматизированных систем". Но я не совсем понимаю, что я буду делать после учебы, нужно ли мне освоить что-то еще? Сейчас пичкают математикой и логикой(6 математик). В университете мне внятного ответа, что я буду делать, востребован ли я буду или нет не дал.
Вот я и говорю, произвели бы аналог 286 процессора хотя-бы, и собрали бы на нём полностью собственный компьютер – для большинства задач ИБ он сгодился бы...
Неразрушающий реверсинг микросхем – это круто! :) Пока нет собственного производства, это всё, к сожалению, "для галочки"...
[/offtop]
Кстати, чем не направление для теоретической криптографии – есть маломощьные защищённые и мощьные незащищённые компьютеры – как организовать на этом "нормальную жизнь".
[/off]
Технологии этой в обед уж 40 лет
Вы сами себе противоречите: сначала пишете а потом про предметную область А то, что свойства языка вообще-то определяют сей процесс, вам неважно? Казалось бы, логично если язык отражает предметную область. Попробовали бы вы уравнения в частных производных на асме порешать, и не на x86, а на RISC'е — вот это процесс разработки будет :) А про согласен — это такая максима, что "программисты как таковые" не нужны массово как профессия. Умение программировать, типа, должно быть уподоблено умению машину водить: число водителей много больше числа шофёров (профессиональных), но никто ж всех водителей не выделяет в отдельную профессию. И эта максима подтверждается тем эмпирическим фактом, что чистые прогеры плохо осваивают какие-либо domains, начиная от физики и электроники, и кончая разработкой интерфейсов и лингвистикой. Просто разрабатывать DSL и пользовать их, естественно, должны разные люди: заставлять каждого делать DSL под себя — это очень дурная рекурсия. Разработчки DSL, в идеале, — это и есть те самые программисты, хорошо знающие как CS/прикладную математику, так и много чего другого.
[/offtop]
Ангстрем
++ Логично. Только основные трудности в реальных задачах лежат не в этом.++
++ Ну тут главное библиотека численных методов (кстати, оптимизировалась она именно на асме), а на чём вызовы писать – не так уж важно. Вот на фортране же решают, и на макроассемблере не сильно усложнит дело. ;) ++
Вот, например, в документации на компютеры Cray время исполнения команд стояло наравне с прочими их характеристиками (а не было упрятано в отдельную таблицу мелким шрифтом) и гораздо чаще существенно учитываелось при написании программ. Просто когда мощьности не хватает (а её нехватает всегда), всё равно приходиться лезть глубже. Так уж лучше сразу думать о тех, кому придётся делать эту работу... :)
Ну а вообще я вёл речь о том, что языков уже придумано достаточно и новых НЕ НУЖНО! Основная сложность – в задаче, а от языка требуется главным образом только хорошее владение им со стороны программирующего
++ Под процессом разработки имелось ввиду взаимодействие между людьми.++
[/off]++
Имелось в видуОтсюда и т.п.
[/offtop]
Оптимизация, требующая асма (peephole optimization) идёт двумя путями — это либо использование спец. инструкций (векторных), либо игрища с тактами и пр. И то, и то компилятор в 99.99% случаев делает лучше человека. Так что если мощности с существующими компиляторами не хватает, надо не переписывать на асм (это займет времени гораздо больше, чем прибавит эффективности), а приложить мозг и улучшить алгоритм. В оставшихся случаях не перебирают в теории все сочетания команд, а пишут разные реализации и сравнивают скорости экспериментально. Абсолютно все в библиотеки не засунешь. Веселуха состоит в эффективной реализации (за разумное время) последовательности вычислений по каким-нибудь сложным математическим формулам. Компилятор это может, а люди — обычно нет. Было бы так, если бы все классы задач уже были решены. Естественно было бы ожидать, что для каждого нового класса задач в принципе существует язык, который для неё подходит лучше, чем предыдущие. Окончательный вопрос — за какое время и бюджет будет сделан продукт. На асме, даже макро, он будет делаться долго (все-таки макроасм намного уступает современному фортрану). Далеко не всё руками задрачивается на асме еще по одной причине — с выходом каждого нового семейства процов вся работа обнуляется. Кроме того, редко нужно "написать что-то и забыть про", чаще — поддерживать код, развивать, а в таком случае тем проще это делать, чем более высокоуровневый и более адекватный задаче язык. Это же позволяет совершать меньше ошибок. Уже есть примеры, когда современные компиляторы так оптимизируют высокоуровневый код, как человек никогда уже соптимизирует вручную за разумное задаче время. Где не справится компилятор, там поможет кодогенерация и метапрограммирование (см. FFTW, где код на C генерируется программой на OCaml). Большая часть аргументов, кстати, собрана в этой статье Пола Грэма.
[/offtop]
Вполне себе достаточно и не нужно, всё можно сделать, например, на форте :)
forth
Другое дело, что желание идти своим путём и коммерческие интересы приводят к зоопарку языков, как и к зоопарку реализаций того же форта. От было бы здорово если бы вся планета писала в машкоде, то к 2011 г мы точно бы имели стройную иерархию либ и подпрограмм для всех процов и задач :)
Не кормите больше его.
Ну какие же?
И вам того же
Да, по большей части это так. Но, вообще, это вы меня сбили в разговор об уровне языка. :) Я имел ввиду не столько "вертикальные" различия, сколько "горизонтальные". Языки приблизительно равной выразительной сил, но одни широко распространённые и имеющие надёжную и практичную реализацию, а другие созданные новоиспечёнными выпускниками университетов, где их учили такие же в прошлом выпускники местных аспирантур, не писавших ни разу в жизни программ длиннее 1000 строк, и не работавшие в коллективе.
По моему используемый язык определяется не столько задачей, сколько типом "мозгов" пишущего. (Кстати, что считать, а что не считать задачей, определяется тоже типом мозгов). Так вот этих типов не так много, и под каждый УЖЕ создан язык. И как в некомпьютерной жизни – если вам есть, что сказать, вы это сможете сказать и на существующем языке, А если сказать нечего, язык не поможет...
Возможно, я отстал от жизни, но по моему "на практике теория отличается от практики гораздо больше, чем в теории". Этими "метапрограммированиями" в основном занимаются люди, далёкие от реальных проблем, и в основном их усилия направлены на облегчение написания и без того простых программ. Вообще, можно сказать, если задача зависит от языка – это простая задача.
Ну а мои аргументы проистекают в основном из этой. В каждой шутке – только доля шутки...
зы. Посты, что выше не мелким шрифтом – не мои
[/offtop]