vlkamov's Journal
[Most Recent Entries]
[Calendar View]
[Friends View]
Monday, December 24th, 2012
Time |
Event |
12:35p |
О языках программирования Некоторое время назад состоялся вот такой диалог iamphet А вообще ждём, когда же появится на свете чудо-язык, который был бы мужественным и нежным мощным и удобным одновременно.
vlkamov "Не дождетесь" Если серьезно, то ассемблер. В принципе почти любой язык можно сделать удобным, но мощный - он.
iamphet Мощный в смысле залезть в I/O порты и при этом упихнуть программу в некоторое малое количество килобайт и миллисекунд? Согласен. Для остального он ничем не лучше, а зачастую и хуже любого другого языка программирования.
vlkamov А что такое "остальное" ? Речь шла о мощности и удобстве. Мощность несомненна, а удобным его делает пользователь. Например, таким образом: http://vlkamov.livejournal.com/685130.html "Высокоуровневый" язык - это такая же надстройка над ассемблером, но с одним отличием, он прежде всего удобен своему автору. Максимально удобна будет сделанная самому себе надстройка над ассемблером.
iamphet Я считаю довольно расточительным тратить несколько лет на то, чтобы написать язык программирования, полноценно отражающий именно мою индивидуальную разруху в голове. Большинство всё же предпочитает идти другим путём: заточить свою голову под существующие парадигмы или придумать свои парадигмы в рамках существующих языков. Кстати, а почему ассемблер? Если говорить про x86, то кому-нибудь может не понравиться ни интеловский синтаксис, ни AT&T и ему придётся писать свой компилятор своего ассемблера в машинных кодах.
vlkamov Дело в том, что при таком подходе базовый ассемблер быстро уходит под фундамент и какой он там был - маловажно. Годы тоже не нужно тратить, т.к. необходимые кирпичики пишутся только по мере надобности. Более того. Я уверен, что существуют сотни C-библиотек для манипуляций с векторами, но написать такую как у меня быстрее и проще, чем разобраться в чужой. А использовать ее можно много раз - во всех векторных вычислениях - с нулевыми затратами времени. Просто существует предрассудок, что сделать дольше, чем воспользоватьсчя готовым. Но даже и для использования сторонних разработок можно с помощью define соорудить интуитивно понятный вызов. Ассемблер - потому что мощный. Даже прямое программирование в машинных кодах не даст улучшения. А вчера попался отчет о сравнении perl и python. Дальше меня спросили, как в python обстоят дела с регулярными выражениями, и в результате пришли мы к такой задаче: Есть строка, необходимо вывести все слова в ней, которые встречаются N раз. и я тот диалог вспомнил. Регулярные выражения очевидно в базовом питоне не предусмотрены, ну так и что ?! Для любителей регулярных выражений есть #!/usr/bin/env python import re То есть тот самый подход: если нравится/удобно/часто используешь что-то - сделай библиотеку. Время потратишь то же, что и на изучение чужих разработок, зато меньше нагрузка, меньше ошибок - ведь что-то удобно потому, что уже выучено. Да, это не совсем Unix way - использовать не уже готовые кирпичики, а сделать кирпичи самому под себя. Собственно высокоуровневые языки и являются такими библиотеками, и их авторы делали их по своему вкусу. Еще зацепило, что и питон и перл решают задачу вдвое быстрее C++. "Тут что-то не так". | 2:47p |
|
|