Стоит ли разрабатывать новый язык програмирования?

Стоит ли разрабатывать новый язык програмирования?

Собственно уже не раз задавался себе вопросом о избыточности

и излишней универсализации существующих решений…

Дело в том что оптимальных решений в области компиляторов

и языков програмирования на сегоднешний день НЕТ.

И вот почему:

— оптимизация под конкретную архитектуру процесора (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. Зарание прошу прощения за возможно допущеные ошибки — русский не мой нативный язык.

Также прошу прощения за излишнюю сумбурность изложения.

Надеюсь на ваше понимание… Просто «это всё» уже на порядок достало.
  • Вопрос задан
  • 3155 просмотров
Решения вопроса 1
lexxscorp
@lexxscorp
Если есть горячее желание, то пиши свой язык программирования. И не слушай тех, кто говорит тебе «оно того не стоит, это никому не нужно».
Ответ написан
Пригласить эксперта
Ответы на вопрос 16
Old_Chroft
@Old_Chroft
Прошу прощения…
При чтении комментариев перед глазами все ярче разгорается кровавая звезда с логотипа BolgenOS.
Ответ написан
@Christmas
Если вы хотите разрабатывать для собственного удовольствия — стоит однозначно.
Если вы думаете, что ваша разработка решит целый пласт абстрактно описанных проблем и станет нужной везде — забейте. Не будет такого.
Ответ написан
egavrin
@egavrin
А можно посмотреть что-то конкретное по языку? Статьи ваши почитать, посты в блогах и тд?
Ответ написан
Lamo
@Lamo
Бля, чувак, ты под чем? Я много чего пробовал, но что б так крыло… Зависть-зависть-зависть.
Ответ написан
Q2W
@Q2W
Сформулируйте цели проекта, задачи, которые решит новый язык, более явно. Вплоть до формальной подробной формулировки.
Как только у Вас это получится, должно прийти понимание, нужно ли оно, и сколько стоит овчинка, а сколько выделка.
Ответ написан
ooprizrakoo
@ooprizrakoo
Можно писать программы на языке, заточенном под одну-единственную железку, и она будет работать быстрее, чем программы на «универсальных» компьютерах. Но что бы использовать возможности железа на 100%, надо под каждую железку писать свою программу на своем языке программирования.

Другой подход — то о чем вы писали, «универсальность». Палка о двух концах. Требования рынка диктуют потребности в быстрой разработке софта — так появляются всякие высокоуровневые языки программирования. А ведь когда-то чистый Си считался непозволительно «раздутым» по сравнению с тем же асмом. Но «рынок» сказал — «нам нужно чтоб работало здесь и сейчас, и что бы специалисты могли легко осваивать новые языки, и писать софт под наше железо». Производительностью пришлось пожертвовать — это называется «компромисс».

Резюмируя, и отвечая на ваш вопрос: если вы хотите потренироваться в разработке оригинальных технологий, научиться наступать на грабли, и замечать их издали в будущем — создавайте свой собственный ЯП.
Ответ написан
dotneter
@dotneter
Конечно стоит, у вас вся жизнь впереди, будет потом над чем посмеяться что вспомнить.
Вообще, вам бы на rsdn в философию, к более целевой аудитории.
Ответ написан
Bambr
@Bambr
Если Вы задаете себе этот вопрос — ответ нет :)
+понравился вариант ответа от Christmas
Ответ написан
@2Lebedev
Чем новый язык будет отличатся от известных? Какие задачи он будет решать, каковы выгоды его использования? Вот, на что разработчику следует ответить перед созданием детища.
Ответ написан
vit1251
@vit1251
Software Engineer
ИМХО, создавать нужно язык только в том случае если вы имеете отношение к железу…

Ассеммблер писать в том случае если вы создатель своего процессора…

А писать высокоуровневые языки вроде LISP, ADA, PASCAL. Только с целью обучения студентов или как хобби(Python).

P.S. Попробуйте подумать о мире как о рождающим предложения спросом мире… И вопрос о необходимости языков программирования отпадет сам собой…
Ответ написан
AxisPod
@AxisPod
Думаю это утопия. Если придерживаться поговорки — Каждый программист должен написать свой язык программирования, то может и стоит, для удовлетворения своих порывов. А вот в качестве серъезного языка программирования думаю не стоит, это колосальный труд и одному, даже небольшой командой будет очень сложно довести до конца, а еще потом и поддерживать. Если же делать опенсорсный проект, то лишь бы не получилось как со всякими PHP, когда вышел релиз 5.2.0, в котором была убита передача параметров в функции по ссылкам.
Ответ написан
javax
@javax
Software Architect, Java Developer since 1996
Время программистов стоит дороже железа. Поэтому оптимизируют время написания (легче писать, существующие библиотеки) чем время исполнения ( всякие оптимизации).
По этому параметру лучше существующие языки (уже известные программистам), чем новые (которые надо учить)
Ответ написан
izen
@izen
Ух как тебя вставило! ты это поосторожней с дозировкой всяких голюциногенов!
Ответ написан
@tenshi
пролог наносит ответный удар \(*о*)/
Ответ написан
pentarh
@pentarh
По ходу, языками нынче мир пестрит не хуже вавилонской башни. Напишите лучше новый процессор.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы