C # ve Java'nın bir dilin yarısı olmasıyla ilgili bu ifadenin anlamı nedir? [kapalı]


32

Makalede: Neden POCO , şu cümle var:

Maciej Sobczak bunu iyi ifade ediyor: “Sadece birinin bana dilin yarısını vermesi ve bana kendi korumam için söylemesi hoşuma gitmiyor”.

Ne anlama geldiğini anlamıyorum, C # Microsoft & Java'ya ait olmasına rağmen Oracle'a ait olmasına rağmen , dilin yarısına sahip oldukları anlamına gelmiyor, değil mi? Bu cümleyi kanıtlayacak bir kanıt bulamadım ve bunu gerçekten merak ediyorum. Ve “kendi korumam için” bölümü hakkında daha fazla merak ediyorum.


12
Programcının özgürce tahsisat ve boş hafıza ve bu tür bir "koruma" gibi şeyleri yapmasına izin verme eleştirisi olarak yorumladım, ancak yapmaya çalıştığı nokta bu olup olmadığından emin değilim.
Kayaman

15
Tam olarak emin değilim, çünkü alıntı yaptığı makalede ölü gibi görünüyor, ancak Java ve C # 'nın birden fazla kalıtım veya şablon metaprogramlama gibi bir dizi C ++' ın daha 'tehlikeli' veya tartışmalı özellikleri eksik olduğunu söylüyor gibi görünüyor.
GoatInTheMachine

3
Alıntı bağlamı eksik (link 404), bu yüzden burada elde edeceğiniz tek şey muhtemelen ne anlama geldiğini tahmin eden insanlar veya sadece kendi fikirlerini sunan insanlar. İçeriği, yani kayıp sayfadakileri gerçekten bilmek istiyorsanız, en iyi bahis muhtemelen yazarı doğrudan yazmak veya belki de geri dönüş makinesi veya benzeri bir şekilde kayıp sayfayı bulmaya çalışmaktır.
JacquesB

2
İfadede eksik olan husus var; bununla başa çıkabilseniz bile, yazılım geliştirmenin her yönünü her zaman bir dilde açığa vurmak istemezsiniz . Tabii ki bellek yönetimi kodunu okurken sorun yaşamazsınız, ancak diğer geliştiriciler bu kodu korumak için inanılmaz derecede heyecanlı olmayabilir. Kapsülleme kavramına benzer. Ayrıca C #, derleyici direktifleri, özel nitelikler ve yansıma yoluyla bir çok şeye erişmenize izin veriyor, ancak bu şeyleri kullanması gerekmiyor.
Mark Rogers,

32
Kendi iyiliğiniz için, bir dilin "gerçek" ve "tamamlanmış" sayılması için C ++ 'nın tüm özelliklerine sahip olması gerektiğini düşünen insanlara dikkat etmeyin. Bu tip güvenlik, hafıza güvenliği ve iyi tanımlanmış davranışların “eğitim çarkları” olduğunu düşünen insanlara dikkat etmeyin. Doğruluk çoğu sektörde yazılımın en önemli özelliği haline geliyor ve bunu umursamamaktan gurur duyan insanlar yakında ilgisizleşecekler.
Theodoros Chatzigiannakis

Yanıtlar:


162

Sobczak kurumsal mülkiyet hakkında konuşmuyor. Eksik olduğu "yarım" dil, pek çok modern dilde yapamayacağınız şeylerdir, iyi eğitimli bir bilgisayar uzmanı olarak, mümkün olabileceğini bildiği halde : istediğiniz kadar sınıftan miras alın. Herhangi bir nesneyi, tür kısıtlaması olmayan başkalarına atayın. Derleyici ve onun için yapması gereken çalışma zamanına güvenmek yerine kaynakları el ile kullanma ve kaynakları serbest bırakma.

Mesele şu ki, bütün bu kısıtlamalar bir sebeple programlama dillerine kondu. Biz did tüm bu izin dilleri var. Zaman içinde, ortalama programcının belirli kısıtlamalarla ve elde tutma ile daha iyi durumda olduğunu gördük, çünkü gerçekten kötü hatalar yapma potansiyeli, ek güç ve açıklığa değmeyecek kadar büyük.

(Açıkçası, bu bazen Onların şikayetler bazen meşru. Gerçekten çok bilenden olduğu gerek olmazdı programcıları rahatsız ediyor. Ama insanlar vardır herkesin bildiği gibi kendi becerilerini değerlendirmeyi kötü ve onlar önlemler gerekmez düşünenler birçok yapın Aslında, onlara çok fazla ihtiyaç var.Aşağıdakilerin üst düzey dillerdeki kısıtlamalarla tutulduğunu hisseden gerçek üst düzey zekâları ayırt etmek her zaman kolay değildir; daha iyi


67
Bu benim olduğu git cevap.
Neil

71
Ayrıca, kısıtlamalara ihtiyaç duymayan üstün akıllar gibi bir şeyin olmadığını da eklerdim. Herkesin er ya da geç karıştığını farz etmek her zaman güvenlidir. Genelde akıl ne kadar üstün olursa, o kadar büyük olur.
Neil

29
Java ve C # için, insanların kendilerini yaya olarak vurmalarını engellemekten biraz daha fazlası var. Örneğin, hafızanın yönetimi çöp toplanmasından önce önemli miktarda geliştirici zaman ve çaba harcadı ve manuel hafıza yönetimini doğru yapmak zordur. Çöp toplama programcı verimliliğini artırır.
Robert Harvey,

12
@RobertHarvey Ben% 100 katılıyorum. Uzun zamandır bir C ++ programcısı olarak, C # 'ya taşınırken otomatik bellek yönetiminden şüpheliydim. Bunu geçtikten sonra, zamanın% 99'u için endişelenmenize gerek kalmaması inanılmaz derecede özgürdü. Beyin gücümü diğer meseleler hakkında düşünmek için serbest bıraktı.
26

8
"Ata tip kısıtlamaları olmadan başka herhangi bir nesne." ... Yani, dynamic?
Arturo Torres Sánchez

34

Bu, teklifin orijinal kaynağında oldukça iyi açıklanmıştır :

C ++ hakkında daha fazla şey öğrenmeye karar verdim ve güvenilir bir tutkulu oldum - bu dilin gelişmesi ihtimaline olan ilgimi de içerir. Dahası, en güncel ve en modern tekniklerin asıl uygulamalar değil faydalı kütüphaneler geliştirmek için gerekli olduğunu fark ettim . Bunu göz önünde bulundurarak, farklı amaçlar için kendi kütüphanelerimden birkaçını yazmaya çalıştım (indirme sayfama bakın) ve ayrıca C ++ Boost geliştiricisinin omuzlarına bakmaya çalışıyorum (bağlantılar sayfamı inceleyin). üst düzey tekniklerdir. Aynı zamanda hem jenerik hem de faydalı olduğu düşünülen kütüphanelerin geliştirilmesine zaman harcamak gerçekten de çok zor. Bu yüzden programcılar asla öğrenmeyi bırakmazlar.

[...]

C ++ ve sağlam yazılım yazma teknikleri ile oynamaya devam ediyorum. Güvenilir yazılım alanında daha geniş bir bakış açısı kazanmak için, gerçekten karmaşık ve güvenilir bir şekilde tasarlanmış olan Ada olmasına rağmen, iş tarafından tamamen terkedilmiş gibi görünen bir dil olan Ada'yı (ve ilgili şeyleri) öğrenmeye biraz zaman ayırmaya karar verdim. sistemleri. Ada'yı öğrenmenin, iş ve gelişim yaklaşımlarıma daha yakından bakmamı sağlaması açısından benim için gerçekten faydalı olduğunu kabul etmeliyim. En önemlisi, Ada dünyasındaki fikirlerin bir kısmı, sağlamlık ve doğruluk alanında iyi sonuçlarla C ++ 'a doğrudan veya daha az uygulanabilir.

[...]

Tamam unuttum. Java öğrenmemeye bir yemin ettim. Ama yaptım. Çalışma kodunu okumama ve yazmama izin verecek ölçüde. 'Java'da Düşünme' (çevrimiçi, ücretsiz) ve 'Çekirdek Java' (çevrimiçi değil, ücretsiz değil) 'i de okudum, dolaylı olarak bazı Java geliştirmelerine de dahil oldum ve ... Satın almıyorum o. Sadece birinin bana dilin yarısını vermesi ve bana kendi korumam için söylemesi hoşuma gitmiyor . Bir kağıt çekiç gibi, ışık yaptı ki hiç kimse parmağını çarptığında kendine zarar vermesin ... Aynı şey C # için de geçerli. Çelik kızak çekiçini seçiyorum, böylece maço oynamak istediğimde dayanabileceğinden emin olabilirim.
Soru - neden bu kadar çok insan kullanıyor (Java, C #, vb.)? Hmmm ... Belki de bazı yerlerde çok iyi. Ancak hem dilin hem de kütüphanenin her şeyden önce yardımcı programlar olmaktan ziyade uygulamalar için (başlangıçta) tasarlandıklarını gösterdiği durumlar vardır. Sadece çok fazla vaat ediyor ve hepsini yakalama teknolojisi için çok az şey veriyor. Ya da herhangi bir rekabeti sürdürebilecek bir çözüm olarak ..

Maksimum güç ve en geniş perspektif gerektiğinde C ++ 'ı seviyorum. C ++ 'ın açıklığının olmazsa olmaz olmadığı yerlerde, Tcl veya Python gibi diller tasarıya uygun görünüyor. Sadece evrimleşmeleri konusunda açık değiller, aynı zamanda belirli ihtiyaçlara bağlı olarak onları genişletebilir ve gömebilirler. Bu teknolojilerde rüya gördüğüm birçok imkan görüyorum. Ayrıca normal programlama dili olarak C'yi bırakma eğilimindeyim - bu sadece kod üretme hedefi olarak makul bir seçim gibi görünüyor, aksi halde hataya açık. Bugün Ada, özgür seçimim olması koşuluyla (ne yazık ki çoğu durumda değil), daha ciddi projeler için ikinci tercihim olarak geliyor.

Yani, başka bir deyişle, bu alıntı C ++ 'ı seviyor ve Java’yı sevmiyor ve Java’nın C ++' ın yarısı eksik olduğunu hissediyor. Ve hepsi bu teklif için var.


18
İronik olarak, C ++ 'dan tam olarak aynı sebepten hoşlanmıyor, çok açık ve çok fazla hataya izin veriyor.
GreySage

8
C ++ 'ın Python'dan daha anlamlı olduğunu düşünüyor
benxyzzy

12
@GreySage Bu da benim gözüme çarptı ... C de hata eğilimli ama C # size yeterli güç vermiyor mu? C, C ++ 'dan bu kadar uzakta mı kaldı? C # size daha fazla kontrol sağlayan "güvensiz" köşelere sahip değil mi? Kesin düşüncelerin ilginç karışımı ...
WernerCD

10
@WernerCD gerçekten güvenli olmayan C # hakkında bilgi veremez, ancak C ve C ++ 'ın ortak hiçbir özelliği yoktur, ancak temel bir C90 snippet'ini, derleyicinin boğulmayacağı geçerli bir C ++ - ish snippet'ine sokabilirsiniz.
Quentin

23

Gönderdiğiniz blogda bağlantı verilen makale kaldırıldı, bu yüzden emin olmak zor, ancak Kilian'ın dediği gibi, "dilin yarısı" derken, C # ve Java'nın C ++ gibi hissettiği, ancak bir sürü Kullanımları ve güvenli olmalarını sağlamak için kaldırılan özellikler ve yapılar.

2006'da, bu yazı yazıldığında, C # nispeten gençken ve Java birçok yönden olgunlaşmamışken ve güvenlik ile güvenlik arasında yalnızca birini seçebileceğiniz bir takas gibi göründüğü zaman, bu kesinlikle kabul edilemez bir durum değildi. .

Bugünlerde bu pozisyon hiç makul değil. Sadece ana dilleri düşünerek, C # ve Java güvenli bir şekilde yazmayı teşvik etmek için diğer dillerden (özellikle de işlevsel) ödünç alma özelliklerini muazzam ölçüde olgunlaştırdı. Ayrıca bunu yapmak için sıfırdan inşa edilen Rust ve Swift gibi dillerimiz var.

Biri elinize tuttuğu için diline bakarsa veya kullanması zor olan bir dilin bir şekilde iyi bir şey olduğunu söylerse, söyledikleri her şeyi bir tuz tuzuyla alırdım. Sadece, her gün bağlı olduğumuz, sektördeki en parlak beyinler tarafından yazılan ve nedenini görmek için 'güvenli' dilleri kullanarak önemsiz şekilde kaçınılacak olan utanç verici hata sayısına bakmak zorundasınız.


6
Son paragraftaki pozisyonunuza katılıyorum. C ++ "Exploits Çeşmesi" olarak adlandırılmalıdır.
Caleb Mauer

3
Ayrıca 2. paragrafınızı tamamlamak için, hem Java hem de C #, C / C ++ geliştiricilerini daha düşük bir öğrenme eğrisi vaadi vaadiyle teşvik etmek de dahil olmak üzere çeşitli nedenlerden dolayı yoğun şekilde C ve C ++ sözdizimini kullandı. Olgunlaştıklarında, kendi özelliklerini eklediler ve kendi lezzetlerine sahipler, ancak ilk günlerinde, C ++ 'a alternatif olarak doğrudan konumlandırıldıkları için onları "C ++ ama daha az güçlü" olarak görmek daha kolaydı.
Harrison Paine

12

Kısmındaki geri bakıldığında arşivler , (2006 uzakta olmanın gerekçe makale rağmen) bu alıntı 2003 olduğu anlaşılmaktadır. O zaman, C #, Versiyon 1'deydi ve x , modern özelliklerinin çoğundan mahrumdu :

Yeni özellikler

C # 2.0

  • Jenerik
  • Kısmi türleri
  • Anonim yöntemler
  • yineleyiciler
  • Null türleri
  • Alıcı / ayarlayıcı ayrı erişilebilirlik
  • Yöntem grubu dönüşümleri (delegeler)
  • Delegelerin Eş-Varyansı
  • Statik sınıflar
  • Temsilci çıkarımı

C # 3.0

  • Örtük olarak yazılmış yerel değişkenler
  • Nesne ve koleksiyon başlatıcıları
  • Otomatik Uygulanan özellikler
  • Anonim türleri
  • Uzatma yöntemleri
  • Sorgu ifadeleri
  • Lambda ifadesi
  • İfade ağaçları
  • Kısmi yöntemler

C # 4.0

  • Dinamik bağlama
  • Adlandırılmış ve isteğe bağlı argümanlar
  • Genel eş ve kontravaryans
  • Gömülü birlikte çalışma türleri ("NoPIA")

C # 5.0

  • Asenkron yöntemler
  • Arayan bilgisi özellikleri

C # 6.0

  • Bir hizmet olarak derleyici (Roslyn)
  • Statik tür üyelerinin ad alanına içe aktarılması
  • İstisna filtreleri
  • Yakalama / nihayet bloklarda bekliyor
  • Otomatik özellik başlatıcıları
  • Yalnızca alıcı özellikleri için varsayılan değerler
  • İfade gövdeli üyeler
  • Boş üretici (boş koşullu işleç, boş boş kontrol)
  • Dize enterpolasyonu
  • operatörün adı
  • Sözlük başlatıcı

C # 7.0

  • Out değişkenleri
  • Desen eşleştirme
  • Tuples
  • Yapıçözüm
  • Yerel fonksiyonlar
  • Rakam ayırıcılar
  • İkili değişmezler
  • Ref döner ve yerliler
  • Genelleştirilmiş zaman uyumsuz geri dönüş türleri
  • İfade gövdeli yapıcılar ve sonlandırıcılar
  • İfade gövdeli alıcılar ve ayarlayıcılar

C # 7.1

  • Asenkron ana
  • Varsayılan hazır ifadeler
  • Çıkarılan tuple elemanı isimleri

- "C Sharp" , Wikipedia (referanslar ve bağlantılar kaldırıldı)

Bu bağlamda C # 'nın yarı dil gibi görünmesi muhtemelen daha anlaşılır, çünkü bugün C #' dan çok fazla şey yoktu. staticDersleri bile olmadığını düşünmek çok garip !

C # .NET ile bağlı olduğundan, daha fazla şeyler de eksikti. Örneğin, WPF o zamanlar etrafta değildi; hepsi WinForms'dı.


Statik sınıflar, Java'nın hala sahip olmadıklarını (C # türünün) görmeyen eksik bir özellik için kötü bir seçim olabilir. Bu Java’da bir pürüz değilse?
user253751

1
@ immibis Java’daki kasıtlı bir bıçak değil, gerçekten mi? staticsınıflar böyle ilkel bir özellik gibi gözüküyor; Önceden belirlenmiş sınıflarla çıktıklarını hayal ettim.
Nat

2
Pistonlu motor jetleri, önceden hazırlanmış jet motorlu jetleri; "Instanced class", genel olarak tüm kodun bir sınıf içinde olması gereken diller dışındaki bir modül veya ad alanı olarak adlandırılır . (Ya da bir bisikleti manuel bir otomobil olarak çağırmak, ya da sabit bir telefonu sabit bir cep telefonu
aramak

@Nat - Statik sınıflara sahip olmak güzel, ama bunlara sahip olmamak kesinlikle hiçbir şeyi değiştirmiyor. Sınıfın tüm üyelerini sadece statik hale getirebilirsiniz ve kaybedeceğiniz şey, sınıfın statik kalması gerektiğini unutursanız, birkaç tür derleyici hatasıdır.
Jirka Hanika,

@JirkaHanika Evet, staticzaten çoğu durumda sınıfların büyük bir hayranı değilim . Dürüst olmak gerekirse, C # gerçekten basit, ilkel bir parçası gibi göründüğü için bunu bir özellik olarak seçtim; Java olmadıklarını düşünmedim.
Nat

3

İnce taneli kontrolü mümkün kılan dil özelliklerinin olmamasından şikayetçiydi. Bunlar için araçlar

  • Değişmezliği güçlendirmek (C ++ constanahtar sözcüğü gibi)
  • Nesnenin ömrünü ve sahipliğini kontrol etme
  • Bellek kullanımını kontrol etme, kopyalama ve ayırma stili

Bu bana Java eleştirilerimden birini hatırlatıyor:

her şey bir işaretçidir, ancak işaretçiler yoktur.

C ++ nesnelerinde işaretçiler ve referanslar, anlambilimsel olan üç ayrı kavramdır. Java'da sadece sözde nesne-işaretçi var. Bunları bir araya getirerek ve gerçek işaretçi anlamını engelleyerek nesne modeli daha az netleşir.

İyi tanımlanmış bir C ++ programında programcı referansların geçerli ve boş olmamasını bekleyebilir. Basitleştirilmiş modeli nedeniyle, Java aynı garantileri veremez.

Bu daha az net olan modelin belirtileri, boş nesne modelini ve gibi yoda koşullarını içerir 5.equals(potentiallyNullIntegerReference).


5
Bu çok karışık. İşaretçiler (mantıksal anlamda Java'da var) sadece onlarla dalga geçemezsiniz. Modeli basitleştirmenin tek amacı, daha fazla garantiye olanak sağlamaktır. Bir dilde kod hakkında daha fazla bilgi edinebileceğiniz mantık daha az kısıtlama getirecektir. Daha fazla kısıtlama -> daha fazla garanti.
JimmyJames

1
@JimmyJames ifadesi, tüm java sınıflarının örtük (yuck, btw) referans semantiklerine sahip olmasına rağmen, gerçek bir işaretçiye sahip olamayacağınız anlamına gelir. Örneğin, referansa "referans" almanın bir yolu yoktur. Bu, dili çılgınca geçici çözümlere ihtiyaç duyan çeşitli yerlerde saklar ( Map.mergebir haritanın değerini ne zaman güncellemek istediğinize bakın ).
Quentin

3
@JimmyJames: Bazı faydalı garantiler belirli sınırlamalar getirilmeden pratik olarak sunulamaz. Ayrıca, bazı yararlı optimizasyonlar bazı kısıtlamalar getirmeyi gerektirebilir. Bununla birlikte, bazı diller, programlayıcılar için herhangi bir yararlı garanti vermeyen ve faydalı optimizasyonlar yapılması gerekmeyen anlamsız kısıtlamalar getirmektedir. Bazı kısıtlamalar sadece kötü.
supercat

3
@JimmyJames: Öte yandan, Java ve "güvenli mod" C # gibi daha temel kısıtlamaların bazıları, C ++ 'ya yapamayacağına dair çok faydalı bir garanti sunmalarına izin verdi : Belirli bir nesneyi tanımlamak için gözlemlenen hiçbir şeyi tanımlamak için asla gözlemlenmeyecektir .
supercat

3
Cevabınızı desteklemek için bazı teklifler verebilir misiniz? Örneğin, AFAIK, sayfadan bahsetmiyor const. O does örnektir Şeması, olduğu gibi söz "fonksiyonel programlama" Ancak dil kullandığı değil aslında, Şema tasarımcıları kelime "işlev" ve yaklaşık konuşma "kullanımını önlemek için dikkatli (saf işlevsel dil prosedürler "), bu yüzden" referans şeffaflığı "değil, FP'nin" birinci sınıf alt rutinleri "yorumunu kullanıyor gibi görünüyor.
Jörg W Mittag

1

@Kilian cevabı ile aynı fikirdeyim ancak bazı elementler ekleyeceğim.

1- İşletim Sistemine değil Sanal Makineye Karşı Çalışmak

Java ve C #, Sanal Makine üzerinden çalıştığından, işletim sistemi üzerinde çalışırken istediğinizi tam olarak yapamayacağınız için mantıklı bir şekilde beklenir, çünkü VM'de bir şeyi bozma ihtimaliniz vardır. Üstelik Java platform agnostik olarak yönlendirildiğinde, daha da mantıklı.

2- Tonlarca uygulama bu tür şeylere ihtiyaç duymanızı gerektirmez.

Gerçekten de bu kadar ayrıntıyı incelemenizi gerektirmeyen tonlarca uygulama var, ancak bunu yapmanız için gereken bir dille yaparsanız, şunları elde edin:

  • Bu gereksiz şeylerden dolayı hata olması için daha fazla risk.
  • Daha fazla geliştirme maliyeti, belleği yönetme ve test etme zaman ve çok para alıyor!

3- Dil, her şey gibi maliyet / kullanım / risk ağırlıklı bir seçim yapılır.

C ++ ile istediğinizi hemen hemen yapabilirsiniz, bu C ++ 'in tercihidir. Bununla birlikte, ne kadar fazla olursa, o kadar çok başa çıkmak gerekir.

Dolayısıyla, çoklu miras gibi şeyler sadece tehlikeli olmaları nedeniyle pes edilmezler, pes ederler, çünkü bunların uygulanmasının bir maliyeti (geliştirme, bakım) vardır, bunun için nadiren doğru bir şekilde kullanılan ve kullanılabilecek bir özellik için genellikle farklı şekilde yeniden yazılır.


Aşağıdaki teminat hem korumak mümkün değildir aslında birden miras yalan gerçek maliyeti: Baz sınıfının bir üyesi ise (1) Borta sınıfta geçersiz kılınır M, sonra B'o üyesinin s sürümü yalnızca erişilebilir aracılığıyla olacak M' geçersiz kıl; (2) herhangi bir tip referans verilmiş T, herhangi bir süper tipe dönüştürülmüş ve geriye Tdönüş, orijinaline eşdeğer bir referans verecektir. Bu garantilerin her ikisi de kullanışlıdır ve çoklu kalıtımın desteklenmesi en az birinden vazgeçmeyi gerektirecektir.
supercat

-1

Programlayıcıyı korumak için tüm kısıtlamaları C # ve Java gibi yüksek seviyedeki dillere koyun. Programcıyı kendisinden korumak için çok fazla değil, programcıyı diğer programcılardan korumak için çok fazla şey var!

Programcılar kodlama uygulamalarında ve tasarımlarında düpedüz saygılı olan ancak bir sebepten dolayı kullanmak zorunda kaldığımız kütüphanelerle karşılaştığımız kaç kez?

Bu programlar tipik olarak eski prosedürel programlama yönteminin özelliklerine sahiptir, enkapsülasyon eksikliği ile birlikte, doğrudan hafızaya yazma konusunda çok fazla hata yapmayan ya da hiç tutmayan ya da çok az bellek vardır. Segfaults, herhangi bir büyük ölçekli projede kullanılmaya çalışılırken kitlesel olarak devam eder.

Java ve C # gibi dillerin son derece yararlı olduğu yer; diğer dillerin yaptıkları temiz işleri yapmamıza izin vermemeleri gerçeğini sevmiyorlar, diğer programcılar diğer dillerin yapabileceği temiz şeyleri kötüye kullanacakları için katlanmamız gereken baş ağrısı eksikliğinden hoşlanıyoruz. yap.

Arayüzler, aklımdaki hafıza ya da işlem hızı bakımından her türlü takasta değer. Herhangi bir zaman sınırlı görev kritik uygulamasında, tüm bu korumaların, uygun hataların ele alınmasının ve hafızanın engellenmediğinden emin olmanın iyi şeyler olduğunu görmeyi umuyorum!


Bu, önceki 5
cevapta

1
They exist not so much to protect the programmer from him/herself, but rather to protect the programmer from other programmers!veya diğer programcıları programcıdan korumak mı?
Tobia Tesan

@ TobiaTesan O da :)
Akumaburn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.