러시아어로 코드 작성하기. 그러한 프로그램의 장단점.

 
친애하는 프로그래머 여러분, 러시아어로 프로그래밍 하는 다소 이상한 주제에 대해 논의하고 싶습니다. 영어를 하는 사람들은 모국어로 프로그램을 작성하고 러시아어를 하는 프로그래머들 사이에는 그런 관행이 없습니다. 그러나 모국어는 항상 더 명확하고 더 편리합니다. 우리가 프로그램에서 사용하는 언어는 필연적으로 개발의 질에 영향을 미치며, 비록 사람이 이것을 알아차리지 못할 수도 있지만, 그들의 모국어로 글을 쓰려고 노력할 가치가 있으며 더 이상 영어로 돌아가고 싶지 않습니다. 코드의 가독성은 프로그램 작업에서 가장 중요한 요소입니다. 이 경우 국제 프로그래밍 팀이 없고 모두가 스스로 작성하는 곳에서도 영어로 프로그래밍하는 관행이 그렇게 널리 보급된 이유는 무엇입니까? 왜 모든 사람이 선험적으로 이 규칙을 따라야 하며, 이 고정관념을 깨면 어떻게 될까요?
 

이것은 고정 관념이 아니라 커뮤니티의 크기입니다. 또한 영어는 러시아어보다 훨씬 간결합니다.

세계 언어와 경쟁하기 위한 체중 범주가 아닙니다.

 
Комбинатор :

이것은 고정 관념이 아니라 커뮤니티의 크기입니다. 또한 영어는 러시아어보다 훨씬 간결합니다.

세계 언어와 경쟁하기 위한 체중 범주가 아닙니다.

아마도 더 간결하지만 누구를 위한 것입니까? 예를 들어 - 메시지를 영어로 쉽게 다시 말할 수 있습니까? 당신과 나에게 영어는 이해하기 어렵기 때문에 덜 간결합니다. 그래서 저는 생각합니다...

그리고 일반적으로 "세계 언어"에 대한 진술 ... 러시아어는 전혀 나쁘지 않습니다.

2가지 질문이 있습니다.

1. 프로그래밍 경력은 몇 년입니까?

2. 러시아어로 프로그램을 작성하기 위해 적어도 한 번(자신을 위해) 시도한 적이 있습니까?


문제는 고정 관념이 존재하고 우리가 그 인질이 아닌가 하는 것입니다.

 
Реter Konow :
이 고정 관념을 깨면 어떻게 될까요?

답변을 부탁드려도 될까요? 파괴하는 것은 문제가 아닙니다. 우리는 지금 그것을 파괴할 것입니다. 실제로 무엇을 따라야합니까?

 
Alexander Puzanov :

답변을 부탁드려도 될까요? 파괴하는 것은 문제가 아닙니다. 지금 바로 파괴하겠습니다. 실제로 무엇을 따라야합니까?

그게 요점입니다. 내 대답: 나는 일반적으로 프로그램을 작성하는 관행에 오랫동안 놀랐습니다. 비효율은 항상 보입니다. OOP(누군가가 발명한 것)조차도 의문을 제기하지 않습니다. 더 좋고 효율적인 접근 방식이 없을까요? 더 좋고 더 효율적인 접근 방식이 있으며 모국어로 프로그래밍하는 것이 훨씬 더 편리하다고 자신 있게 말합니다. 이것은 모두 저의 3년 간의 실습과 프로그래밍에서의 저의 성공으로 입증되었습니다.

고정관념을 깨면 우리는 더 자유로워지고, 새로운 접근 방식을 고안하고, 효율성을 높이고, 코드를 압축할 수 있습니다. 가능성의 새로운 지평이 열릴 것입니다.

나는 대안적 접근의 예를 들 수 있다. 물론 더 발전해야 하지만 시작은 됐다. 이에 대한 글을 쓸까 생각도 해봤는데.. 일반적으로 소프트웨어의 밝은 미래가 우리를 기다리고 있습니다.)

여기 내 대답이 있습니다.

 
1C에서는 러시아어로 코딩할 수 있습니다. 그리고 1C가 순전히 러시아 개발이기 때문에. 그리고 대부분의 프로그래밍 언어와 컴파일러가 러시아에서 개발되지 않았기 때문에 사용된 언어는 러시아어가 아니었습니다.
 
Vitalii Ananev :
1C에서는 러시아어로 코딩할 수 있습니다.
1C? 그것은 무엇입니까?
 
Реter Konow :
1C? 그것은 무엇입니까?
요컨대, 회계 소프트웨어이지만 그 이상으로 사용할 수 있습니다. 동일한 플랫폼을 기반으로 하는 다양한 구성이 있습니다. 오픈 소스 코드는 재량에 따라 편집하거나 완전히 직접 작성할 수 있습니다.
 
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 :
다음은 내 프로그램의 작은 코드 예입니다. 여기서 나는 러시아어와 영어를 결합하지만 러시아어가 분명히 우세합니다. 모든 것이 매우 명확하고 읽기 쉽습니다.

그리고 당신은 러시아어로 사용자 정의 함수와 변수의 이름을 쓰는 것에 대해 이야기하고 있습니다. 그래서 아무도 쓰지 않습니다. 이미 오래 전에 프로그래머는 좋은 취향의 특정 규칙을 개발했습니다. 당신뿐만 아니라 다른 사람들도 쉽게 읽을 수 있도록 소스 코드의 형식 을 올바르게 지정하는 방법. 사회적 에티켓 같은 거죠.

1C에서는 모든 것이 완전히 러시아어로 작성됩니다. 예를 들어 함수 () ..... 함수의 끝. 루프 ... 루프 종료 ... if 종료. 등. 등.

 
Реter Konow :

일반적으로 실제로는 밝은 소프트웨어 미래가 우리를 기다리고 있습니다.)

일부 영국 조류의 밝은 미래는 이중 잣대입니다. 묻지도 따지지도 않습니다. 현재 중국과 일본도 고정관념을 깨기 시작한다는 것이 당혹스럽습니다.. 아마 아무도 당신에게 소스 코드를 요구하지 않을 것입니다.
사유: