Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
900
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6088
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Стоит ли разрабатывать новый язык програмирования?
Просмотров: 371
 
Ответов: 17
Стоит ли разрабатывать новый язык програмирования?
Собственно уже не раз задавался себе вопросом о избыточности
и излишней универсализации существующих решений…
Дело в том что оптимальных решений в области компиляторов
и языков програмирования на сегоднешний день НЕТ.
И вот почему:
— оптимизация под конкретную архитектуру процесора (CPU иль GPU) вещь довольно абстрактная и решается совсем не опытными системами и даже не эвристикой а простым ДКА (if...then) из-за возможных больших нагрузок. Это, казалось бы, решение довольно логичное и оптимальное, но с приходом облаков, кластеров и прочих паралельных плюшек можно было бы найти какое-то «более быстрое» комплексное решение, и оно таки есть… только кому надо придумывать велосипеды с турбонадувом?
— человек решает проблемы абстракции приложений в большинстве случаев императивным
«чёрным ящиком» и пачкой шаблонов (в идеале 2-3), так появляются на свет шаблоно-зомби, и прочие недопроджекты. «0_о я открыл для себя мир erlang'a» — сказал Юра. «А нам пофиг.» — сказала team'a.
И так уже было со мною не раз — в одном случае ООП в другом функционал… в третьем brainfuck и сайт на fasm'e. кому какое дело?.. всем пофиг — «лишь бы работало» никто не задумывается о скорости и эфемерной «оптимальности». Так вот я скажу что у людей слишком много свободы! Абстракция на то и абстракция что бы сказать this is a ball. а вот что внутри пускай решает сам язык, если нужен метан — будет метан, если нужно серебро будет серебро.
— 0_о нам всем нравится STL он такой мягкий и пушистый… в нём столько много плюшек =)
зачем нам учить те долбаные алгоритмы? зачем задумываться о структуре данных?
Она может быть избыточна?,- да что же ты несёшь… работает вот и хорошо, пускай даже медленно…
но ведь работает. И так каждый день… люди часто стараются решать задачу вычисления оптимальности алгоритмов для конечной реализации, но почти всех и всегда ждёт полный epic fail.
Как говорил дядя Кнут: «Низкоуровневая оптимизация — корень всех проблем.»
И тут тоже у людей слишком много свободы…
СОбственно о чём это я?.. а мораль довольно проста:
существующие решения являются отчасти комплексными но ввиду апаратных нагрузок ключевые моменты обобщены и «универсализированы» что ведёт к потери «оптимальности» выходной продукции.
То есть Универсальные решения не могут быть оптимальными, лишь комплексные…
А огромной проблемой в наше время является именно оптимизация, не важно под что многоядерность, многопоточность, распределение нагрузок, низкоуровневая…
Пускай у нас для этого будет такой себе эфемерный торрент-компилятор аля СкайНет.
Нас не волнует ни апаратное время, ни объём памяти.
Нам нужен компилятор «без компромисов» и парадигм времён і386.
Собственно ПО никогда не блестало производительностью — а апаратная платформа уже далеко впереди.
Вот собственно и всё, думаю причины «упадка компиляторовединья» всем понятны.
Интересует стандартный вопрос: «а стоит ли овчинка выделки?»
Я занялся разработкой подобного «чуда», пока (к сожелению) за 1.5 года идеально отточена мат. часть.
Просто не хочу повторять google wave.
Не хочу быть кем-то купленым.
Хочу найти единомышлеников.
P.S. Зарание прошу прощения за возможно допущеные ошибки — русский не мой нативный язык.
Также прошу прощения за излишнюю сумбурность изложения.
Надеюсь на ваше понимание… Просто «это всё» уже на порядок достало.
Можно писать программы на языке, заточенном под одну-единственную железку, и она будет работать быстрее, чем программы на «универсальных» компьютерах. Но что бы использовать возможности железа на 100%, надо под каждую железку писать свою программу на своем языке программирования.
Другой подход — то о чем вы писали, «универсальность». Палка о двух концах. Требования рынка диктуют потребности в быстрой разработке софта — так появляются всякие высокоуровневые языки программирования. А ведь когда-то чистый Си считался непозволительно «раздутым» по сравнению с тем же асмом. Но «рынок» сказал — «нам нужно чтоб работало здесь и сейчас, и что бы специалисты могли легко осваивать новые языки, и писать софт под наше железо». Производительностью пришлось пожертвовать — это называется «компромисс».
Резюмируя, и отвечая на ваш вопрос: если вы хотите потренироваться в разработке оригинальных технологий, научиться наступать на грабли, и замечать их издали в будущем — создавайте свой собственный ЯП.
ИМХО, создавать нужно язык только в том случае если вы имеете отношение к железу…
Ассеммблер писать в том случае если вы создатель своего процессора…
А писать высокоуровневые языки вроде LISP, ADA, PASCAL. Только с целью обучения студентов или как хобби(Python).
P.S. Попробуйте подумать о мире как о рождающим предложения спросом мире… И вопрос о необходимости языков программирования отпадет сам собой…
Думаю это утопия. Если придерживаться поговорки — Каждый программист должен написать свой язык программирования, то может и стоит, для удовлетворения своих порывов. А вот в качестве серъезного языка программирования думаю не стоит, это колосальный труд и одному, даже небольшой командой будет очень сложно довести до конца, а еще потом и поддерживать. Если же делать опенсорсный проект, то лишь бы не получилось как со всякими PHP, когда вышел релиз 5.2.0, в котором была убита передача параметров в функции по ссылкам.
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться