Scrivere codice in russo. Pro e contro di un tale programma.

 
Cari programmatori, vorrei discutere con voi un argomento piuttosto strano - la programmazione in russo. Le persone di lingua inglese scrivono programmi nella loro lingua madre, mentre non c'è questa pratica tra i programmatori di lingua russa. Ma la lingua madre è sempre più chiara e conveniente. La lingua che usiamo in un programma influenza inevitabilmente la qualità dello sviluppo e anche se una persona potrebbe non accorgersene, una volta che prova a scrivere nella sua lingua madre non ha più voglia di tornare all'inglese. La leggibilità del codice è il fattore più importante quando si lavora con un programma, in questo caso - perché la pratica di programmare in inglese è diventata così comune, anche dove non ci sono team internazionali di programmazione e ognuno scrive per sé? Perché tutti devono seguire questa regola a priori e cosa succede se rompiamo questo stereotipo?
 

Non è uno stereotipo, ma la dimensione della comunità. Inoltre, l'inglese è molto più sintetico del russo.

Non è la classe di peso giusta per competere con la lingua mondiale.

 
Комбинатор:

Non è uno stereotipo, ma la dimensione della comunità. Inoltre, l'inglese è molto più sintetico del russo.

Non è la classe di peso giusta per competere con la lingua mondiale.

Può essere più conciso, ma per chi? Per esempio - puoi raccontare facilmente il tuo messaggio in inglese? Per noi, tu ed io, l'inglese è meno conciso, perché è meno comprensibile. Quindi penso...

Sì, e in generale parlando di "lingua mondiale"... Il russo non è peggio.

Ho due domande per voi:

1. Quanti anni hai programmato?

2. Hai mai provato (da solo) a scrivere un programma in russo?


La domanda è se esiste uno stereotipo e se non ne siamo ostaggi?

 
Реter Konow:
Cosa succede se rompiamo questo stereotipo?

Posso avere la sua risposta? Distruggetelo - non c'è dubbio, facciamolo ora. Cosa dovrebbe seguire in pratica?

 
Alexander Puzanov:

Posso avere la sua risposta? Distruggetelo - non c'è dubbio, facciamolo ora. Cosa dovrebbe seguire in pratica?

Questo è il punto. La mia risposta: sono stato a lungo stupito dalla pratica di scrivere programmi in generale. L'inefficacia si vede molto spesso. Anche l'OOP (inventato da qualcuno) non viene mai messo in discussione. Non ci può essere un approccio migliore e più efficiente? Dico con sicurezza che c'è un approccio migliore e più efficiente e che programmare in una lingua nativa è molte volte più conveniente. Tutto questo è verificato dai miei tre anni di pratica e provato dal mio successo nella programmazione.

Se rompi lo stereotipo, puoi diventare più libero, trovare un nuovo approccio, aumentare l'efficienza, comprimere il codice... Si aprono nuovi orizzonti di possibilità per noi stessi.

Posso dare esempi di un approccio alternativo. Certo, deve essere sviluppato ulteriormente, ma l'inizio è stato gettato. Stavo pensando di scrivere un articolo al riguardo. Tutto sommato, un brillante futuro software ci aspetta in pratica).

Ecco la mia risposta.

 
Puoi codificare in russo nella 1C. E solo perché la 1C è uno sviluppo puramente russo. Poiché la maggior parte dei linguaggi di programmazione e dei compilatori non sono stati sviluppati in Russia, il linguaggio utilizzato non era russo.
 
Vitalii Ananev:
Nella 1C si può codificare in russo.
1С? Che cos'è?
 
Реter Konow:
1С? Che cos'è?
In breve, è un software di contabilità, ma può essere usato per molto di più. Hanno molte configurazioni diverse basate sulla stessa piattaforma. Il codice sorgente è open source e potete modificarlo come volete o scriverne uno vostro.
 
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;
 //-----------------------------------
Ecco un piccolo esempio di codice del mio programma. Qui combino il russo e l'inglese, ma con una netta preponderanza del russo. Tutto è molto chiaro e leggibile.
 
Реter Konow:
Ecco un breve esempio del mio codice di programma. Qui ho un mix di russo e inglese, ma con una grande preponderanza di russo. Tutto molto chiaro e leggibile.

E stai parlando di scrivere i nomi delle funzioni e delle variabili personalizzate in russo. Nessuno li scrive in quel modo. Molto tempo fa i programmatori hanno sviluppato alcune regole di etichetta. Come formattare correttamente il codice sorgente in modo che sia facile da leggere non solo per voi ma anche per gli altri. È come le regole del galateo nella società.

Nella 1C, invece, tutto è scritto interamente in russo. Per esempio la funzione () ..... endfunction. ciclo ... fine del ciclo se ... fine se. ecc. ecc.

 
Реter Konow:

In generale, ci aspetta un futuro software luminoso in pratica).

Un futuro brillante solo per gli inglesi è un doppio standard, senza dubbio. Ma è imbarazzante che anche cinesi e giapponesi comincino a rompere lo stereotipo... Immagino che nessuno ti stia chiedendo il codice sorgente?
Motivazione: