Rusça kod yazma. Böyle bir programın artıları ve eksileri.

 
Sevgili programcılar, sizinle oldukça garip bir konuyu tartışmak istiyorum - Rusça programlama . İngilizce konuşan insanlar programlarını ana dillerinde yazarlar ve Rusça konuşan programcılar arasında böyle bir uygulama yoktur. Ancak, ana dil her zaman daha net ve daha kullanışlıdır. Programda kullandığımız dil kaçınılmaz olarak gelişim kalitesini etkiler ve kişi bunu fark etmese de kendi ana dilinde yazmaya çalışmakta fayda var ve artık İngilizceye dönmek istemiyorsunuz. Kodun okunabilirliği programla çalışırken en önemli faktördür, bu durumda - uluslararası programlama ekiplerinin olmadığı ve herkesin kendisi için yazdığı yerlerde bile İngilizce programlama pratiği neden bu kadar yaygınlaştı? Neden herkes bu kurala a priori uymalı ve bu klişeyi yok edersek ne olur?
 

Bu bir klişe değil, topluluğun boyutudur. Ayrıca İngilizce, Rusça'dan çok daha özlüdür.

Dünya diliyle yarışacak ağırlık kategorisi değil.

 
Комбинатор :

Bu bir klişe değil, topluluğun boyutudur. Ayrıca İngilizce, Rusça'dan çok daha özlüdür.

Dünya diliyle yarışacak ağırlık kategorisi değil.

Belki daha özlü, ama kimin için? Örneğin - mesajınızı İngilizce olarak kolayca tekrar satabilir misiniz? Sizin ve benim için İngilizce daha az özlü, çünkü daha az anlaşılır. Bence...

Ve genel olarak, "dünya dili" ile ilgili ifadeler ... Rusça daha da kötü değil.

sana 2 sorum var:

1. Kaç yıldır programlama yapıyorsunuz?

2. En az bir kez (kendiniz için) Rusça bir program yazmayı denediniz mi?


Soru şu ki, bir klişe var mı ve biz onun rehineleri değil miyiz?

 
Реter Konow :
Bu stereotipi kırarsak ne olur?

Cevap verirmisiniz? Yok etmek mesele değil, onu hemen şimdi yok edeceğiz. Pratikte ne izlenmelidir?

 
Alexander Puzanov :

Cevap verirmisiniz? Yok etmek mesele değil, onu hemen şimdi yok edeceğiz. Pratikte ne izlenmelidir?

Önemli olan bu. Cevabım: Genel olarak program yazma pratiğine uzun zamandır hayret ediyorum. Verimsizlik her zaman görülebilir. OOP (birisi tarafından icat edilmiş) bile asla sorgulanmaz. Daha iyi ve daha verimli bir yaklaşım olamaz mı? Daha iyi ve daha verimli bir yaklaşım olduğunu ve ana dilinizde programlamanın birçok kez daha uygun olduğunu güvenle söylüyorum. Bunların hepsi benim üç yıllık pratiğim tarafından doğrulandı ve programlamadaki başarımla kanıtlandı.

Stereotipi kırabilirsek daha özgür olabiliriz, yeni bir yaklaşım getirebiliriz, verimliliği artırabiliriz, kodu sıkıştırabiliriz... Kendimize yeni olasılık ufukları açılacaktır.

Alternatif yaklaşım örnekleri verebilirim. Elbette daha da geliştirilmesi gerekiyor, ancak bir başlangıç yapıldı. Bununla ilgili bir yazı yazmayı düşündüm... Genel olarak pratikte parlak bir yazılım geleceği bizi bekliyor.)

İşte cevabım.

 
1C'de Rusça kod yazabilirsiniz. Ve sadece 1C tamamen Rus bir gelişme olduğu için. Ve çoğunlukla programlama dilleri ve derleyicileri Rusya'da geliştirilmediğinden, kullanılan dil Rusça değildi.
 
Vitalii Ananev :
1C'de Rusça kod yazabilirsiniz.
1C? Bu ne?
 
Реter Konow :
1C? Bu ne?
Kısacası, muhasebe yazılımı, ancak bundan daha fazlası için kullanabilirsiniz. Aynı platforma dayalı birçok farklı konfigürasyona sahiptirler. Açık kaynak kodu sizin takdirinize göre düzenlenebilir veya tamamen kendinize ait bir şey yazılabilir.
 
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 ;
 //-----------------------------------
İşte programımın küçük bir kod örneği. Burada Rusça ve İngilizce'yi birleştiriyorum, ancak Rusça'nın açık bir üstünlüğü ile. Her şey çok açık ve okunaklı.
 
Реter Konow :
İşte programımın küçük bir kod örneği. Burada Rusça ve İngilizceyi birleştiriyorum, ancak Rusça'nın açık bir üstünlüğü ile. Her şey çok açık ve okunaklı.

Ve kullanıcı tanımlı fonksiyonların ve değişkenlerin isimlerini Rusça yazmaktan bahsediyorsunuz. Yani kimse yazmıyor. Zaten uzun zaman önce, programcılar belirli zevk kuralları geliştirdiler. Kaynak kodu , yalnızca sizin için değil, başkaları için de okunması uygun olacak şekilde nasıl düzgün biçimde biçimlendirilir. Sosyal görgü kuralları gibi.

1C'de her şey tamamen Rusça yazılmıştır. Örneğin işlev () ..... işlevin sonu. döngü ... döngüyü sonlandırın ... eğer sonlandırın. vb. vb.

 
Реter Konow :

Genel olarak pratikte parlak bir yazılım geleceği bizi bekliyor.)

Bazı İngiliz akımları için parlak bir gelecek çifte standarttır, soru sorulmaz. Şu anki durum utanç verici ki Çinliler ve Japonlar da klişeyi kırmaya başlayacaklar.. Muhtemelen kimse sizden kaynak kodları istemiyor?