MQL5'te OOP hakkında sorular - sayfa 24

 
Alexey Volchanskiy :

Sharp 2000 civarında bir yerde doğdu ve o zamanlar çok emekleme dönemindeydi ve artıları artıyordu, bu yüzden popülerleşmek için dotnet'e bir C++ köprüsü yaptılar. Bu arada, Sharp, Delphi ve C++Builder geliştiricileri tarafından yaratıldı, o zamanlar ne kadar çok ortak kavramın olduğuna çok şaşırdım. Aynı özellikleri, olayları alın.

IMHO, Sharp, Microsoft'tan oldukça başarılı bir projedir - yalnızca insanları /Net platformları altında cezbetmekle kalmadılar, bu nedenle .Net altındaki tüm rengarenk dil sözdizimini verdiler - en azından BASIC'te yazın!

 
Igor Makanu :

IMHO, Sharp, Microsoft'tan oldukça başarılı bir projedir - yalnızca insanları /Net platformları altında cezbetmekle kalmadılar, bu nedenle .Net altındaki tüm rengarenk dil sözdizimini verdiler - en azından BASIC'te yazın!

Ve beni içine çekmiyor. Kullanışlı ve basit görünüyor, ancak sürücü, profesyonellerde olduğu gibi ya da başka bir şey. Demirden uzaklaşın.
 

@fxsaber burada birçok örnek yayınladığı için forumda arama yaptım.

son örneğe sihir ekleyelim))), ellerinle yazamayacak kadar tembel, tam da görmek istediğim kavram, anladığım kadarıyla, şimdi klapa daha az vurabilirsin

 interface IStrategy
  {   void Algorithm()                 { Print ( "Это не должно запускаться!!!" ); } };
//+------------------------------------------------------------------+
class CStrategy : public IStrategy
  {
protected :
   int                x;
  };
//+------------------------------------------------------------------+
#define CLASS(NAME) class NAME: public CStrategy{\
public :              NAME()   { Print ( __FUNCTION__ );  x = 01 ;    }\
void               Algorithm() { Print ( __FUNCTION__ , ", x = " , x);} };
//+------------------------------------------------------------------+

CLASS( CStrategy_01 );
CLASS( CStrategy_02 );

//+------------------------------------------------------------------+
class Context
  {
private :
   IStrategy         *s;
public :
                     Context(IStrategy *_strategy)    { Print ( __FUNCTION__ ); s = _strategy;  }
                    ~Context()                        { delete s;                            }
   void               GetStrategy()  { s.Algorithm();                       }
  };
//+------------------------------------------------------------------+
Context c1( new CStrategy_01);
Context c2( new CStrategy_02);
//+------------------------------------------------------------------+
void OnStart ()
  {
   c1.GetStrategy();
   c2.GetStrategy();
  }
//+------------------------------------------------------------------+

Vladimir Simakov :
Ve beni içine çekmiyor. Kullanışlı ve basit görünüyor, ancak sürücü, profesyonellerde olduğu gibi ya da başka bir şey. Demirden uzaklaşın.

bence, C++ 'ın donanıma daha yakın olduğu konusunda bir yanılsamanız var, modern işlemciler için mümkün olduğunca verimli bir şekilde kod yazmak için doğru kod yazımı üzerinde rıhtım bulabileceğinizden şüpheliyim, 90'ların sonlarında Pentium'larda okumaya bayılırım, ancak daha sonra kütükler hızla büyümeye başladığında, okumaya bile zamanım olmadığını fark ettim, ama şimdi zaten işlemciler için Windows sürücüleri yüklüyorum - IMHO saçmalığı, nasıl olabilir? yakacak odun yüzdesi altında yapılır ... ama ne yazık ki, şimdi her şey böyle çalışıyor - her şey sanal, her şey hazır İnciller aracılığıyla, hepsi derleyici optimizasyonu ile .... genel olarak, IMHO çok etkili bir şey yazmanız bir yanılsamadır, kodun orijinal olarak tek bir yerde ve çarpık ellerle yazılmışsa, hiçbir şeyin yardımcı olmayacağı açıktır)))

 
Alexey Volchanskiy :

Evet, keskinlikte çok daha kolay. Ve hız neredeyse aynı, ancak cli olmadan, artılar bir buçuk kat kazanıyor.

Çıplak döngülere dayanan her türlü benzer testi gördüm, ancak bu hiçbir şeyle ilgili değil. Orada hiç kimse CLR altında kaç tane iş parçacığı olduğunu (en azından bayt kodunun derlenmesi gerektiğini) ve tüm bu ekonominin ne kadar bellek tüketeceğini düşünmüyor.

Uzun zaman önce cTrader'ı bir şekilde kurdum, izlenimler bir fren g .... .

Ve genel olarak - herkes tarafından uygulanan minimum set gibi işlemci talimatlarının tekdüzeliği (ikili yazılım çok iyi tolere edilmesine rağmen) üzerinde anlaşabildiğiniz zaman, başka bir soyutlama katmanı (bayt kodu, sanal makine ) oluşturmak neden gerekliydi? Muhtemelen tanrı oldukları ve yeri doldurulamaz oldukları bir sanal alan yaratma arzusu. Nokta ağlarını nasıl bir ısrarla zorladılar, aynı zamanda artıları yazmak isteyenler için hayatı zorlaştırdılar.

Not: cli c ++'dan bahsetmiyorum, bu genellikle bir tür yanlış anlamadır.

 
Igor Makanu :

IMHO, Sharp, Microsoft'tan oldukça başarılı bir projedir - yalnızca insanları /Net platformları altında cezbetmekle kalmadılar, bu nedenle .Net altındaki tüm dillerin rengarenk sözdizimini verdiler - en azından BASIC'te yazın!

Farklı söyleyebilirim - insanlar Windows'tan atıldı. Belki subjektif.

Not: istatistikler için - github'da C / C ++ üzerinde Sharp'tan (17 yıl) üç kat daha fazla proje var.

 
Vict :

Not: istatistikler için - github'da C / C ++ üzerinde Sharp'tan (17 yıl) üç kat daha fazla proje var.

öznel değerlendirme, kalite veya daha doğrusu proje görevleri çok küçük olabilir ... burada uzun süre düşünebilirsiniz

ve durumu değerlendirmek için önemsiz bir nokta, Çin ve Hindistan'dan programcıların sayısıdır - gerçekten birçoğu var, bu ülkelerdeki endüstri eğilimlerinin ne olduğunu bilmiyoruz, belki şimdi C ++ üzerinde oturuyorlar

Pekala, yukarıda yazdığım gibi - C ++'dan C #'ye geçiş ve geri geçiş oldukça "acısız", o zaman Microsoft programcıları ileri geri koşturmak için her şeyi yaptı))), 2017'de çok fazla C ++ var 2019 çok fazla C# projesi olabilir - burada tahmin edemezsiniz

Not: çok öznel bir değerlendirme ... ama Python'da kaç proje var? - Google'dan tüm yeni videolar, yalnızca Python'daki tüm sunumlar

 
Igor Makanu :

öznel değerlendirme, kalite veya daha doğrusu proje görevleri çok küçük olabilir ... burada uzun süre düşünebilirsiniz

ve durumu değerlendirmek için önemsiz bir nokta, Çin ve Hindistan'dan programcıların sayısıdır - gerçekten birçoğu var, bu ülkelerdeki endüstri eğilimlerinin ne olduğunu bilmiyoruz, belki şimdi C ++ üzerinde oturuyorlar

Pekala, yukarıda yazdığım gibi - C ++'dan C #'ye geçiş ve geri geçiş oldukça "acısız", o zaman Microsoft programcıları ileri geri koşturmak için her şeyi yaptı))), 2017'de çok fazla C ++ var 2019 çok fazla C# projesi olabilir - burada tahmin edemezsiniz

Not: çok öznel bir değerlendirme ... ama Python'da kaç proje var? - Google'dan tüm yeni videolar, yalnızca Python'daki tüm sunumlar

Eh, tüm dillerde projeler için her türlü görev var, ortalama olarak belirli bir ortalama proje ortaya çıkmalı. 14 yaşında olmasına rağmenhttps://githut.info/ burada detaylı istatistikler var.

En azından ideolojik nedenlerle Sharp'a gitmek istemiyorum. Java ile yazmayı tercih ederim (bu pek olası olmasa da).

GitHut - Programming Languages and GitHub
GitHut - Programming Languages and GitHub
  • githut.info
GitHub provides publicly available API to interact with its huge dataset of events and interaction with the hosted repositories. GitHub Archive takes this data a step further by aggregating and storing it for public consumption. GitHub Archive dataset is also available via Google BigQuery. The quantitative data used in GitHut is collected from...
 
Igor Makanu :

öznel değerlendirme, kalite veya daha doğrusu proje görevleri çok küçük olabilir ... burada uzun süre düşünebilirsiniz

ve durumu değerlendirmek için önemsiz bir nokta, Çin ve Hindistan'dan programcıların sayısıdır - gerçekten birçoğu var, bu ülkelerdeki endüstri eğilimlerinin ne olduğunu bilmiyoruz, belki şimdi C ++ üzerinde oturuyorlar

Pekala, yukarıda yazdığım gibi - C ++'dan C #'ye geçiş ve geri geçiş oldukça "acısız", o zaman Microsoft programcıları ileri geri koşturmak için her şeyi yaptı))) , 2017'de çok fazla C ++ var, 2019 çok fazla C# projesi olabilir - burada tahmin edemezsiniz

Not: çok öznel bir değerlendirme ... ama Python'da kaç proje var? - Google'dan tüm yeni videolar, yalnızca Python'daki tüm sunumlar

2005'te bir Alman ofisinde biraz çalıştım, bir rulo yazıcı için GUI'yi C++'dan C#'a yeniden yazdım. Daha sonra Sharp'ı bir tür ders kitabı verdikleri için tanıyordum, bu yüzden çeviride hiçbir sorun yoktu. Gitti çünkü sıkıcı geldi ama oturup yeniden yaz, düşünmeye gerek yok.

Python ile, bu yorumlanmış, yavaş ve çirkin dilin nasıl zirveye çıkabileceği benim için bir gizem.

 
Igor Makanu :

öznel değerlendirme, kalite veya daha doğrusu proje görevleri çok küçük olabilir ...

Pekala, yukarıda yazdığım gibi - C ++'dan C #'ye geçiş ve geri dönüş oldukça "acısız", burada Microsoft programcıları ileri geri koşturmak için her şeyi yaptı)))

Sharp'ın artılarına katılıyorum, ama tam tersi yönde, eğer c/c++ kelimesinden gelen bilgi hiçbir şekilde değilse... Bazı başlık dosyaları Sharpist'in tüm arzusunu tomurcukta öldürecek. BENİM NACİZANE FİKRİME GÖRE.
 
Alexey Volchanskiy :

Python ile, bu yorumlanmış, yavaş ve çirkin dilin nasıl zirveye çıkabileceği benim için bir gizem.

Sanırım şöyle gitti:

1. Her zaman programcılardan veya programlamanın temellerini bilen insanlardan çok daha fazla kullanıcı vardır.

2. tercümanlar kullanıcılar için daha anlaşılır - şunu yazdı:

a = 2
b = 5
c = a + b

ve makineden bir yanıt aldınız ama orada ne düşündüğünü anlamayacaksınız ama sonra tekrar yazdınız ve makinenin sizin gibi düşündüğünü görüyorsunuz)))

3. türler ve diğer saçmalıklar hakkında kullanıcıya gereksiz bilgiler yüklemeyen yüksek kaliteli bir tercümana ihtiyacınız var

4. Dilin geniş olması için yazılımın mümkün olduğunca açık ve erişilebilir olması gerekir.

peki, sonuç 1,2,3,4 - Python kendi içinde birleşti ve eğer bir kullanıcı ordusu varsa, o zaman kesinlikle onları çeken programcıların çözdüğü ve sırayla bir demet yapan programcıların çözeceği problemler olacaktır. kütüphanelerin

))))


Vladimir Simakov :
Sharp'ın artılarına katılıyorum, ama tam tersi yönde, eğer c/c++ kelimesinden gelen bilgi hiçbir şekilde değilse... Bazı başlık dosyaları Sharpist'in tüm arzusunu tomurcukta öldürecek. BENİM NACİZANE FİKRİME GÖRE.

burada haklısın, ama hiç kimse özellikle C#'dan C++'a geri dönemez - neden? peki, C++'daki bitmiş dll'yi Sharp'a bağlayın ve kullanın, özellikle de C#'da dll'yi içerecek bir exe-shnik'i kolayca yapabileceğiniz için

Bilmiyorum bile, C# dünyasını keşfettim - Kapatmayacağım, çok rahat, internette bir sürü kılavuz var, daha da hazır kütüphaneler var, on can kazandı' her şeyi denemek için yeterli değil)))