Лучших работников в сфере IT РАБОТА-КА Вам поможет найти! о нас ✈
Я ищу работу в IT сфере ✈ Я ищу резюме в IT сфере ✈
Инженер схемотехник! 80000-100000 руб. ТК. соц.пак. Подробнее ✈

Почему нет русского языка программирования РЯП ?


Для начала давайте разберемся «почему» ни один русский язык программирования так и не завоевал популярности. Все мы прекрасно знаем, что нынешние русские языки никуда не годятся. Главный вопрос «почему»? Какие такие «силы» помешали созданию полноценного РЯП (Русского Языка Программирования).
Некоторым из нас известно, что попытки создания РЯП были предприняты еще в 70-ых годах. Попытки эти, скажу я вам, были не безуспешны. К примеру — Рапира (По поводу нее посмотрите в Wikipedia). Я называю это «Эпохой Рассвета РЯП». Но, к сожалению, в СССР был один недостаток. С какой легкостью правительство начинало проекты, с такой же легкостью оно их и закрывало (Поинтересуйтесь историей «гонки полета на Луну» вам сразу все станет ясно).
Но СССР больше нет, и что, же теперь? Почему сейчас ничего не происходит. Где наши молодые Никлаусы Вирты? (если вы не знаете, кто это – в топку вас :) Проблема в том, что за несчастные 20 лет Запад ушел настолько далеко, что у нас началась «Эпоха Подражания». И в этом нет ничего постыдного. Меня бесят люди, которые заявляют «Я хочу создать свой язык программирования, в котором нет точки с запятой, неудобно это…», при этом человек даже не знает, что таких языков программирования существует не одна штука. Эти люди даже не понимают смысл «точки с запятой», не интересовались историей программирования. Своими фразами они зачастую заявляют что «Все люди, которые до меня этим занимались, недостаточно умны, и не сделали такой простой вещи». Лично я считаю, что если кто-то до тебя занимался этим вопросом, будь добр, хотя бы поверхностно изучи его труд. Я уверен, что люди создавшие «Паскаль, Си, Смоллтолк» были на порядок умнее нас в данной области. У них учится не стыдно. Но, несмотря на, то что, наши взялись за «подражание», даже это у них не вышло. Безусловно, какие-то успехи на данном фронте были (РАЯ (aka КуМир aka Ершол, от имени создателя), 1С, Глагол), но, ни массовой любви, ни поддержки они не получили. Почему? Здесь, я думаю, сыграло несколько факторов:
Фактор N 1 — В русском языке нет «культуры сокращений»
Меня поражает Английский язык. Почти все его слова на 1—3 буквы короче Русских аналогов. К примеру:
1 – This is the most longest clause, that I ever seen (39 букв на 10 слов – 3,9)
2 – Это самое длинное предложение, из всех, что я видел (41 буква на 9 слов – 4,5)
И, несмотря на это они зачастую, как в повседневной речи, так и в деловых разговорах сокращают слова и словосочетания. К примеру:
OK – k, That is – That's…
Применительно к программированию, зачастую используются сокращения словосочетаний:
Console In – cin, Console Out – cout, Print Line – println…
В русском языке просто напросто нет, такой культуры. Её нам когда-то пытались привить в СССР :) Вспомните – РСФСР, НарКом, КолХоз и так далее. Но после его распада СССР распалась «культура сокращений». И сейчас даже такие названия государственных учреждений как «Министерство по налогам и сборам, федерального округа, при представительстве мэра города» (название вымышленное), даже не пытаются сокращать. «Сокращения» - как таковые, не закрепились у нас в подкорме, возможно, поэтому нам смешно смотреть на тексты вроде:
алг Сумма квадратов (арг цел n, рез цел S)
дано | n > 0
надо | S = 1*1 + 2*2 + 3*3 + … + n*n
нач цел i
| ввод n; S:=0
| нц для i от 1 до n
| | S := S + i * i
| кц
| вывод "S = ", S
кон
(из языка РАЯ, aka КуМир, aka Ершол)
Для н = 1 По Файл.КоличествоЗаписей() Цикл
Файл.Перейти(н);
НазвТовара = Файл.NAME;
Цена = Файл.PRICE;
КонецЦикла;
(1С)
ОТДЕЛ Привет+;
ИСПОЛЬЗУЕТ Вывод ИЗ "…\Отделы\Обмен\";
УКАЗ
Вывод.Цепь("Привет!")
КОН Привет.
(Глагол)
Фактор N 2 – Русский язык является Флективным
Если выражаться простыми словами, то в русском языке преобладают «прилагательные». У нас ОЧЕНЬ много прилагательных, но мало существительных. К примеру:
Main — Главный
В русском языке нет существительного аналогичного «Main» у нас «Главным» должен быть кто-то или что-то. И это главная особенность русского языка. Наш язык изобилует прилагательными. И попытки избавиться от прилагательных, и подражать английскому языку, действительно выглядят смешно. По сути это основная проблема.
Фактор N 3 – Изобретение велосипеда.
Фактически все созданные в последнее время языки программирования – «изобретают велосипед». Они повторяют простые истины, не предлагая ничего взамен. Есть только одно условие, при котором имеет смысл «изобретать велосипед» - если ваш велосипед будет в несколько раз лучше уже существующего велосипеда. К сожалению, за всю «Эпоху Подражания» никто не осознал, что занимается пустой тратой времени.
Фактор N 4 – «Мой бог сильнее твоего…»
Посмотрите внимательно на наши современные языки (1С, РАЯ, Глагол), все они заимствуют семантику языков программирования которые даже на западе не завоевали особой популярности. Они заимствуют семантику Basic (1C) Pascal (РАЯ, Глагол). Я не хочу сказать что Basic и Pascal плохи по определению, просто они не являются лидерами.
И какой же из этого всего следует вывод? А такой — ждите 3 части, в которой я расскажу, КАК надо было делать РЯП на реальном, работоспособном примере…
В начале нам необходимо понять, какие пути для создания РЯП существуют. Есть всего 2 пути:
1) Создать свой язык с нуля
2) Создать переводчик, который бы переводил то, что мы написали на уже существующий язык программирования
Для того чтобы реализовать первый способ необходимо написать язык с учетом «приемуществ\недостатков» русского языка. Для реализации второго способа необходимо минимизировать недостатки русского языка.
Первый способ самый интересный. Но так как у меня за плечами пока нет опыта написания компиляторов, то речь сейчас пойдет о втором способе, ибо он самый простой :) (Это не значит, что я не занимаюсь первым способом. Просто не люблю когда люди не предоставляют «реальных» продуктов своих фантазий. Меня больше всего бесят статьи типа а вот как бы было хорошо написать супер язык, который выглядел бы вот так, но только сам я даже BASIC не знаю, и было бы хорошо если кто-нибудь за меня все сделал. Поэтому я тоже не буду вас травить. А покажу «чистый» РЯП, когда у меня будет, чем подкрепить слова)
В любом случаи моя главная цель, на данный момент – доказать возможность локализация языка программирования. Тем более что тем самым мы избегаем Ф № 3
(Изобретение велосипеда)
Сначала хочу ответить на главный интересующий всех вопрос. А как тогда людям работать без использования чужих исходников, и без возможности поделиться опытом с западными коллегами?. Вот мое представление о будущем:
(«ужасное» будущее неправда ли? :) – прим. Автора) Да вот так вот просто и незатейливо каждый будет писать на своем родном языке, а в результате будет получаться программа, написанная на Английском. Это как раз таки случай, где можно «и съесть и сесть» :)
Почему я считаю, что я умнее всех, и никто до этого не додумался? Во-первых я не считаю себя самым умным. (ну может чуть чуть :) Во-вторых, об этом уже думал не один человек и не раз. Просто зачастую перед людьми вставали неразрешимые проблемы, которые и не позволяли выполнить поставленной задачи. Я уверен, что все эти проблемы можно легко преодолеть ибо – настало время. Сейчас есть, технологии, возможности и прочее…
Подробности я того как проблемы решаются я пока опущу. Если будет спрос, то
выложу подробности способов решения проблем в 4 части… (иначе читать будет ну
очень скучно —_-)
Итак, приступим. Для написания переводчика языка необходимо определить для какого языка программирования его можно написать (логично да? :) - прим. Автора). Избегая Ф № 4 (Заимствование семантики непопулярных языков программирования) выведем список
языков потенциально подходящих для перевода:
1) C
2) Java
3) С#
4) Delphi Win32
5) Python
6) Perl
7) Ruby
8) PHP
ремарка – языки распределены от балды :) не ищите подоплеки
Теперь отсеем языки по Ф № 1 (В русском языке нет «культуры сокращений»). Сразу же отпадают почти все. И что же у нас осталось?
1) Java
2) С#
3) Delphi Win32 (с большой натяжкой)
O_О Негусто, правда? Но что поделаешь С , Python, Perl писались без учета того что какой-то псих будет пытаться их «локализовать». Точнее сами языки «в принципе» можно локализовать, но вот «фреймворки» которые поставляются к этим языкам переводить в принципе – глупо. Большинство констант, классов и структур перевести «без потерь» не получиться.
Первый язык, попавший под мой «нож» был С# ибо у него, по слухам, (которые сами знаете кто распространяет :) более лучшая поддержка Unicode чем у Java, а Delphi Win32 вообще Unicode не поддерживает (хотя в скором времени будет поддерживать).
Чтоб не быть голословным, пример КАК НАДО (на примере языка C#) (тавтология – но что поделаешь):
1) Для тех, у кого есть.Net Framework 2,0 или выше. (Желательно 3,5)
http://anzensoft.smtp.ru/1alpha.zip
2) Для тех, у кого не стоит.Net Framework, и ставить его не собирается.
Ничем пока не могу помочь.

➥ ✈ источник+комментарии

Поиск IT персонала. Давайте решать задачи вместе! rabota@rabota-ka.ru


© Поиск работы, сотрудников © Сайт Работа КА © Блог Работа КА
© Freelance удаленная работа IT © FreeSoft бесплатный софт
© Python news © IT Новинки © Фото нравится



Яндекс.Метрика
Отправить комментарий