亲爱的程序员们,我想和你们讨论一个相当奇怪的话题--用俄语编程。讲英语的人用自己的母语编写程序,而讲俄语的程序员则没有这种做法。但母语总是更清晰、更方便。我们在程序中使用的语言不可避免地影响到开发质量,即使一个人可能没有注意到这一点,但一旦他或她尝试用自己的母语写作,就不希望再回到英语。代码的可读性 是使用一个程序时最重要的因素,在这种情况下--为什么用英语编程的做法变得如此普遍,甚至在没有国际编程团队和每个人都为自己写作的地方?为什么每个人都必须先验 地遵循这一规则,如果我们打破这一陈规会发生什么?
这不是一种刻板印象,而是社区的规模。此外,英语比俄语要简洁得多。
它的重量级不适合与世界语言竞争。
Комбинатор:
这不是一种刻板印象,而是社区的规模。此外,英语比俄语要简洁得多。
这不是与世界语言竞争的正确重量级。
它可能更简明,但对谁来说?例如--你能轻松地用英语复述你的信息吗?对我们来说,你和我,英语不那么简明,因为它不那么容易被理解。所以我认为...
而说到 "世界语言"...俄国人也不差。
我有两个问题要问你。
1.你从事编程工作有多少年了?
2.你是否曾经尝试过(为自己)用俄语编写程序?
问题是,是否存在陈规定型,以及我们是否没有被它裹挟?
Реter Konow:
如果我们打破这种刻板印象会怎样?
如果我们打破这种刻板印象会怎样?
我可以知道你的答案吗?摧毁它--毫无疑问,我们现在就去做。在实践中,应该遵循什么?
Alexander Puzanov:
我可以知道你的答案吗?摧毁它--毫无疑问,我们现在就去做。在实践中,应该遵循什么?
这就是问题的关键。我的回答是:长期以来,我对一般的编写程序 的做法感到惊讶。无效的情况经常出现,非常多。即使是OOP(由某人发明的)也从未受到质疑。难道就没有更好、更有效的方法吗?我自信地说,有一种更好、更有效的方法,用母语编程要方便很多倍。所有这些都被我三年来的实践所验证,并被我在编程方面的成功所证明。
如果你打破陈规,你可以变得更自由,想出一个新的方法,提高效率,压缩代码......。为我们自己打开了新的可能性的视野。
我可以举出另一种方法的例子。当然,它还需要进一步发展,但开头已经奠定了。我正在考虑写一篇关于它的文章。总而言之,在实践中,一个光明的软件前景在等待着我们)。
这是我的答案。
你可以在1C中用俄语编码。而且只是因为1C是一个纯粹的俄罗斯发展。由于大多数编程语言和编译器都不是在俄罗斯开发的,所以使用的语言也不是俄语。
Vitalii Ananev:
在1C中,你可以用俄语编码。
1С?它是什么?
在1C中,你可以用俄语编码。
Реter Konow:
1С?它是什么?
简而言之,它是会计软件,但它的用途不止于此。他们在同一平台上有许多不同的配置。源代码是开放的,你可以随心所欲地编辑它,或编写你自己的代码。
1С?它是什么?
void Сдвинуть_панель_задач(int Расстояние) { G_CORE[_TASKBAR][_MAIN_FRAME][_Y] += Расстояние; Явление_панели = 1; Объект(_TASKBAR); Явление_панели = 0; } //-------------------------------------- //-------------------------------------- //-------------------------------------- //--------------------------------------------------------------- //--------------------------------------------------------------- //--------------------------------------------------------------- void Явление_таскбара() { int Номер_кнопки = 4; //------------------------ int Позиция_этой_кнопки = 1; //---------------------------------------------------------- //Цикл по окнам, которые представлены на таскбаре кнопками. //---------------------------------------------------------- for(int a = 41; a < 61; a++) { if(G_CORE[_TASKBAR][_W_Properties][a] == 0)break; //----------------------------------- if(G_CORE[_TASKBAR][_W_Properties][a]) { //------------------------------------- //--------------------------------------------------------------- //--------------------------------------------------------------- int Номер_представленного_окна = G_CORE[_TASKBAR][_W_Properties][a]; //-------------------- G_CORE[Номер_представленного_окна][_W_Properties][_WINDOW_REPRESENTED_BY_TASKBAR_BUTTON_NUMBER] = Номер_кнопки + 1; //-------------------- Установить_номер_вызываемого_окна_для_кнопки_таскбара(Номер_кнопки,Номер_представленного_окна); //-------------------- Установить_лейбл_окна_на_кнопке_таскбара(Номер_кнопки + 1,G_CORE[_TASKBAR][_W_Properties][a]); //-------------------- Установить_текст_подсказки_для_кнопки_таскбара(Номер_представленного_окна,Номер_кнопки + 1); //------------------------------- Расставить_черточки_кнопок_таскбара(Номер_кнопки); //------------------------------- Последняя_кнопка_ряда_таскбара = Позиция_этой_кнопки;//G_CORE[_TASKBAR][Номер_кнопки_по_позиции(Позиция_этой_кнопки)][_GROUP_COPY_NUMBER]; // Alert("Явление_таскбара Последняя_кнопка_ряда_таскбара ",Последняя_кнопка_ряда_таскбара); //------------------------------- //------------------------------- //------------------------------- Позиция_этой_кнопки ++; //------------------------------- } //----------------------------------- Номер_кнопки += 5; } //----------------------------------------------------------- //От последней явленной иконки, прячем все остальные иконки. //----------------------------------------------------------- Alert("Номер_кнопки ",Номер_кнопки - 5); for(int a1 = Номер_кнопки; a1 < 500; a1++) { if(G_CORE[_TASKBAR][a1][_NAME] == 0)break; //-------------------------- if(G_CORE[_TASKBAR][a1][_OBJECT_GROUP] == _TASKBAR_BUTTON_1) { G_CORE[_TASKBAR][a1][_OBJECT_HIDE] = 1; } //-------------------------- } // Явление_окон(_WINDOW_OPEN,_TASKBAR);//таскбар }/**/ //--------------------------------------------------------------- //--------------------------------------------------------------- //--------------------------------------------------------------- void Минимизировать_окно() { Явление_окон(_WINDOW_CLOSE,ОКНО); //------------------------------- int Высота_текста = 11, заголовок = 2; //---------------------------------------------------- //Номер первой кнопки как объекта на таскбаре.-------- //---------------------------------------------------- int Позиция_этой_кнопки, Исходная_позиция = 56; //---------------------------------------------------- for(int a = 41; a < 61; a++) { if(G_CORE[_TASKBAR][_W_Properties][a] == ОКНО) { Явление_черточки_на_кнопке_таскбара(DELETE); // Alert("Минимизировать_окно которое уже есть"); return; } } //---------------------------------------------------- for(int a1 = 41; a1 < 61; a1++) { if(a1 == 41)Позиция_этой_кнопки = Исходная_позиция; else Позиция_этой_кнопки += 46; // Alert("Позиция_этой_кнопки ",Позиция_этой_кнопки); //------------------------------------------------- if(G_CORE[_TASKBAR][_W_Properties][a1] == 0) { int Свободная_кнопка_справа = Номер_кнопки_по_позиции(Позиция_этой_кнопки); int Номер_копии_свободной_кнопки = G_CORE[_TASKBAR][Свободная_кнопка_справа][_GROUP_COPY_NUMBER]; //--------------------------------------------------------------- Последняя_кнопка_ряда_таскбара = Номер_копии_свободной_кнопки; //--------------------------------------------------------------- // Alert("Свободная кнопка справа ",Свободная_кнопка_справа," Позиция свободной кнопки справа ",G_CORE[_TASKBAR][Свободная_кнопка_справа][_X]); //---------------------------------------------- G_CORE[_TASKBAR][_W_Properties][a1] = ОКНО; G_CORE[ОКНО][_W_Properties][_WINDOW_REPRESENTED_BY_TASKBAR_BUTTON_NUMBER] = Свободная_кнопка_справа + 1; //---------------------------------------------- //Записываем атрибуты окна.--------------------- //---------------------------------------------- Установить_номер_вызываемого_окна_для_кнопки_таскбара(Свободная_кнопка_справа + 1, ОКНО); //------------------------ Установить_текст_подсказки_для_кнопки_таскбара(ОКНО,Свободная_кнопка_справа + 1); //---------------------------------------------- Установить_лейбл_окна_на_кнопке_таскбара(Свободная_кнопка_справа + 1); //---------------------------------------------- //Являем кнопку таскбара. //---------------------------------------------- Явление_объектов(CREATE,_TASKBAR, 0,_TBB1,_GROUP_COPY_NUMBER,Номер_копии_свободной_кнопки); //---------------------------------------------- Явление_черточки_на_кнопке_таскбара(DELETE); //---------------------------------------------- break; } //------------------------------------------------------------------------ } } //--------------------------------------------------------------- //--------------------------------------------------------------- //--------------------------------------------------------------- void Стереть_кнопку_таскбара(int Номер_кнопки = 0) { int Номер_копии_стираемой_кнопки; //--------------------------------------------------------------- if(!Номер_кнопки)Номер_копии_стираемой_кнопки = G_CORE[_TASKBAR][ОБЪЕКТ][_GROUP_COPY_NUMBER]; else Номер_копии_стираемой_кнопки = G_CORE[_TASKBAR][Номер_кнопки][_GROUP_COPY_NUMBER]; //--------------------------------------------------------------- Явление_объектов(DELETE,_TASKBAR, 0,_TBB1,_GROUP_COPY_NUMBER,Номер_копии_стираемой_кнопки); //--------------------------------------------------------------- if(Открыто_окно[_TOOLTIP_WINDOW])Закрыть_окно_Tooltip(); //--------------------------------------------------------------- //Alert("Номер_копии_стираемой_кнопки ",Номер_копии_стираемой_кнопки); //--------------------------------------------------------------- Сместить_номера_представленных_окон(Номер_кнопки); //--------------------------------------------------------------- if(Номер_копии_стираемой_кнопки != Последняя_кнопка_ряда_таскбара) { Ротация_кнопок_таскбара(Номер_копии_стираемой_кнопки); } //-------------------------------------------------------------- } //--------------------------------------------------------------- //--------------------------------------------------------------- //--------------------------------------------------------------- //--------------------------------------------------------------- int Номер_кнопки_по_номеру_копии(int Номер_копии) { //------------------------- for(int a1 = 4; a1 < 500; a1 += 5) { if(G_CORE[_TASKBAR][a1][_NAME] == 0)break; //--------------------------- if(G_CORE[_TASKBAR][a1][_GROUP_COPY_NUMBER] == Номер_копии)return(a1); } //------------------------- return(0); } //--------------------------------------------------------------- int Номер_кнопки_по_позиции(int Позиция) { //------------------------- for(int a1 = 4; a1 < 500; a1 += 5) { if(G_CORE[_TASKBAR][a1][_NAME] == 0)break; //--------------------------- if(G_CORE[_TASKBAR][a1][_X] == Позиция)return(a1); } //------------------------- return(0); } //--------------------------------------------------------------- //--------------------------------------------------------------- //--------------------------------------------------------------- void Ротация_кнопок_таскбара(int Номер_копии_стираемой_кнопки) { int Шаг = 46; int Номер_последней_кнопки; int q; int Номер_кнопки; int Номер_стираемой_кнопки = Номер_кнопки_по_номеру_копии(Номер_копии_стираемой_кнопки); int Позиция_стираемой_кнопки = G_CORE[_TASKBAR][Номер_стираемой_кнопки][_X]; int Исходная_позиция = Позиция_стираемой_кнопки + Шаг; //Alert(" Позиция_стираемой_кнопки ",Позиция_стираемой_кнопки," Исходная_позиция ",Исходная_позиция," Номер_стираемой_кнопки ",Номер_стираемой_кнопки); //----------------------------------------------------------- for(int Позиция = Исходная_позиция; Позиция < 3000; Позиция += Шаг) { Номер_кнопки = Номер_кнопки_по_позиции(Позиция); //------------------------------------------------ if(G_CORE[_TASKBAR][Номер_кнопки][_OBJECT_HIDE]) { //------------------- G_CORE[_TASKBAR][Номер_стираемой_кнопки][_X] = G_CORE[_TASKBAR][Номер_последней_кнопки][_X]; G_CORE[_TASKBAR][Номер_стираемой_кнопки + 1][_X] = G_CORE[_TASKBAR][Номер_последней_кнопки + 1][_X]; G_CORE[_TASKBAR][Номер_стираемой_кнопки + 2][_X] = G_CORE[_TASKBAR][Номер_последней_кнопки + 2][_X]; G_CORE[_TASKBAR][Номер_стираемой_кнопки + 3][_X] = G_CORE[_TASKBAR][Номер_последней_кнопки + 3][_X]; G_CORE[_TASKBAR][Номер_стираемой_кнопки + 4][_X] = G_CORE[_TASKBAR][Номер_последней_кнопки + 4][_X]; //------------------- //Alert("Ротация_кнопок_таскбара - новая Позиция стертой кнопки ",G_CORE[_TASKBAR][Номер_стираемой_кнопки][_X]); break; } //------------------------------ Alert("Ротация_кнопок Номер_кнопки ",Номер_кнопки); //------------------------------ if(G_CORE[_TASKBAR][Номер_кнопки][_OBJECT_GROUP] == _TASKBAR_BUTTON_1) { //------------------------------ Поведение_объектов(_STOPABLE_SINGLE_PLAY_MODE, _USER_EVENT, _TASKBAR, Номер_кнопки, Номер_ячейки_SCENARIO(_SC35)); Поведение_объектов(_STOPABLE_SINGLE_PLAY_MODE, _USER_EVENT, _TASKBAR, Номер_кнопки + 1, Номер_ячейки_SCENARIO(_SC35)); Поведение_объектов(_STOPABLE_SINGLE_PLAY_MODE, _USER_EVENT, _TASKBAR, Номер_кнопки + 2, Номер_ячейки_SCENARIO(_SC35)); Поведение_объектов(_STOPABLE_SINGLE_PLAY_MODE, _USER_EVENT, _TASKBAR, Номер_кнопки + 3, Номер_ячейки_SCENARIO(_SC35)); Поведение_объектов(_STOPABLE_SINGLE_PLAY_MODE, _USER_EVENT, _TASKBAR, Номер_кнопки + 4, Номер_ячейки_SCENARIO(_SC35)); /* Поведение_объектов(_STOPABLE_SINGLE_PLAY_MODE, _USER_EVENT, _TASKBAR, Номер_кнопки, Номер_ячейки(_SC35)); Поведение_объектов(_STOPABLE_SINGLE_PLAY_MODE, _USER_EVENT, _TASKBAR, Номер_кнопки + 1, Номер_ячейки(_SC35)); Поведение_объектов(_STOPABLE_SINGLE_PLAY_MODE, _USER_EVENT, _TASKBAR, Номер_кнопки + 2, Номер_ячейки(_SC35)); Поведение_объектов(_STOPABLE_SINGLE_PLAY_MODE, _USER_EVENT, _TASKBAR, Номер_кнопки + 3, Номер_ячейки(_SC35)); Поведение_объектов(_STOPABLE_SINGLE_PLAY_MODE, _USER_EVENT, _TASKBAR, Номер_кнопки + 4, Номер_ячейки(_SC35));*/ //------------------------------ Список_перемещенных_объектов[q] = Номер_кнопки; Список_перемещенных_объектов[q + 1] = Номер_кнопки + 1; Список_перемещенных_объектов[q + 2] = Номер_кнопки + 2; Список_перемещенных_объектов[q + 3] = Номер_кнопки + 3; Список_перемещенных_объектов[q + 4] = Номер_кнопки + 4; //------------------------------ Номер_последней_кнопки = Номер_кнопки; //------------------------------ q += 5; } } //------------------------------------ //------------------------------------ Отложенный_вызов = 1; Индекс_отложенного_вызова_функции = 1; Пауза_в_периодах_таймера = 10; //------------------------------------ } //--------------------------------------------------------------- //--------------------------------------------------------------- //--------------------------------------------------------------- void Сместить_номера_представленных_окон(int Номер_кнопки = 0) { int Номер_этой_кнопки; //----------------------------------- if(Номер_кнопки == 0)Номер_этой_кнопки = ОБЪЕКТ; else Номер_этой_кнопки = Номер_кнопки; //----------------------------------- int Номер_окна_стираемой_кнопки = G_CORE[_TASKBAR][Номер_этой_кнопки][_WON]; //----------------------------------- G_CORE[Номер_окна_стираемой_кнопки][_W_Properties][_WINDOW_REPRESENTED_BY_TASKBAR_BUTTON_NUMBER] = 0; //-----------------------------------下面是我的程序的一个小样本代码。在这里,我结合了俄语和英语,但俄语明显占优势。一切都非常清楚,可读性强。
Реter Konow:
仅仅是英国人的美好未来是双重标准,这是毫无疑问的。但令人尴尬的是,中国人和日本人也将开始打破陈规......我想没有人要求你提供源代码吧?
总的来说,在实践中,一个光明的软件前景在等待着我们)。