Son 20 yılda muazzam bir yazılım geliştirme kazancı sağlayan gerçekten bir şey olmadı mı? [kapalı]


45

In Hayır gümüş kurşun Fred Brooks iyi özetliyor yazılım mühendisliği, geleceği hakkında tahminlerde çeşitli yapar:

Teknolojide veya yönetim tekniğinde tek bir gelişme yoktur; kendi başına verimlilikte, güvenilirlikte, sadelikte tek bir büyüklük derecesi iyileştirmesi vaat eder .

Argümanı çok ikna edicidir. Brooks 1986'da yazıyordu, o haklı mıydı? 2014'teki geliştiriciler, 1986'daki rakiplerinden 10 kat daha hızlı yazılım üretiyor mu? Bazı uygun metriklere göre - verimlilikteki kazanç gerçekten ne kadar olmuştur?


4
Yorumlar uzun tartışmalar için değildir; bu konuşma sohbete taşındı .
Dünya Mühendisi

Yanıtlar:


58

2014'teki geliştiriciler, 1986'daki rakiplerinden 10 kat daha hızlı yazılım üretiyor mu?

O zamandan beri verimlilikte en azından bir büyüklük iyileştirme sırası olduğunu hayal ediyorum. Ancak , teknolojide veya yönetim tekniğinde tek bir gelişmeyi kaldırarak değil .

Verimlilikteki artış, faktörlerin bir araya gelmesiyle ortaya çıkmıştır. Not: Bu kapsamlı bir liste değildir:

  1. Daha iyi derleyiciler
  2. Çok daha güçlü bilgisayarlar
  3. iyileştirmek
  4. Nesne yönlendirme
  5. İşlevsel yönelim
  6. Daha iyi hafıza yönetimi teknikleri
  7. Sınır kontrolü
  8. Statik kod analizi
  9. Güçlü yazarak
  10. Birim Testi
  11. Daha iyi programlama dili tasarımı
  12. Kod üretimi
  13. Kaynak kodu kontrol sistemleri
  14. Kod yeniden

Ve bunun gibi. Bu tekniklerin tümü verimlilik artışları üretmek için bir araya geliyor; şimdiye kadar büyüklükte bir hızlanma sırası üreten tek bir gümüş kurşun yoktu.

Bu tekniklerin bazılarının altmışlı yıllardan beri var olduğunu, ancak son zamanlarda yalnızca yaygın olarak tanındığını ve benimsendiğini gözlemlediğine dikkat edin.


15
Daha iyi kaynak / sürüm kontrol sistemlerini unutma.
Doval

7
Ah doğru. Bu listeye başka bir düzine (veya yüzlerce) şey ekleyebileceğimizi hayal ediyorum.
Robert Harvey,

44
@ user61852: Çünkü beklentiler daima gerçekliği aşıyor.
Robert Harvey,


1
@RossPatterson: Temel olarak geliştirici araçları için ihtiyaç duyduğumuz şeye bu noktada sahibiz. Şablon metaprogramlamasına bakabildiğimizden, bugünlerde derleme işlemcilerimizle aptalca boşa harcıyoruz bile. 80'lerle karşılaştırdığımızı hatırlayın; Kesinlikle o zaman bir geliştirici değil iken, ben 1990 yılında inşa edilmiş bir makinede koduna öğrendin
tmyklebu

71

Robert Harvey'in cevabı iyidir, ancak programcıların her zamankinden daha üretken olmasının en büyük nedeninin ne olabileceğini düşündü: Yazılım kütüphanelerinin yaygınlığı.

Kariyerime başladığımda STL, .NET, QT vb. Yoktu. Ham C veya C ++ kullandınız ve bununla ilgiliydi.

Günler veya haftalar süren veya iş yapan (XML ayrıştırma, TCP / IP bağlantıları, HTTP iletişimi) işler artık birkaç C # kod satırıyla yapılabilir. Genel geliştirici üretkenliği bakımından büyüklük emirleri daha iyi aldığımız yer burasıdır.

Mevcut ürünümüz, bir satıcıdan satın aldığımız bir yerleştirme penceresi çerçevesi kullanıyor. Bu, birkaç dakika içinde tamamen işlevsel bir yerleştirme penceresi UI'sine sahip olmamı sağladı. Win32 API'sinin kullanıldığı günlerde ne yapılması gerektiğini düşünmeye titriyorum.


19
Buna dokümantasyon ve yardımın mevcudiyetini de eklerdim. Yirmi yıl önce bir e-posta listen ve meslektaşların vardı. Şimdi, dünyanın programlama konusundaki uzmanlığı, hemen hemen her konuda, tek bir arayüz üzerinden anında elde edilebilir.
NWard

15
@NWard çok temelde yığın taşması =)
Chris

2
@tmyklebu people just found other (generally better) solutions[alıntı gerekli]. XML'in "dağlarını" hızlı bir şekilde ayrıştırmak için kitaplıkları kullanmak, benzersiz çözümleri elle kodlamaktan çok daha iyidir. XML kesinlikle aşırı kısa ve tekrarlayıcı olabilir, ancak kütüphaneler çoğu durumda onu kullanmayı çok kolaylaştırır.
WernerCD

5
ağrılı olarak @tmyklebu o 1986 dolaylarında yazılı çoğu uygulama tarafından üretilen olurdu gibi bir belgesiz özel bir biçimde ikili verilerin büyük miktarlarda ayrıştırma deneyin, XML büyük miktarlarda ayrıştırmak için olabildiğince
James_pic

2
@tmyklebu Hiç kimse geri gün içinde gigabaytlık bir şeye ihtiyaç duymuyordu (veya hatta megabayt!). Bu miktarda XML üreten şey, her zamankinden daha fazla veri depolayıp takip etmemizdir. james_pic haklı, XML etrafında tekmeleme bazilyon özel ikili biçimleri sahip olmaktan çok daha iyidir. XML endişe verici olabilir, ancak platformlar arası, okunabilir ve çok esnek. Bunların hepsi değerli özellikler.
26

62

Tartışma uğruna , Fred Brooks'un iddiasına katılmıyorum .

Üretkenlikte tek başına bir büyüklük sırasına göre bir iyileşme sağlayan teknolojide bir gelişme var: internet ve daha doğrusu son yirmi yılda her evde internet bağlantısının ilerici mevcudiyeti.

Bir geliştirici olarak karşılaşabileceğiniz hemen hemen her soruna anında bir cevap bulabilmek üretkenlikte büyük bir artış sağlar. JQuery'de nth elemanının nasıl seçileceğini bilmiyor musunuz? Google araması , Yığın Taşması ile ilgili tam bir sorunun cevabına yol açar . overflowCSS'de nasıl kullanılacağını bilmiyor musunuz ? Mozilla'nın MDN'i burada . virtualAnahtar kelimenin C # ile ne anlama geldiğini unuttum Google yine yardımcı olur .

Programlamaya başladığımda internet yoktu. Yerel olarak depolanan bazı dijital format dokümantasyonların yanı sıra kitaplarım da vardı, ancak kitap ve dokümantasyonu araştırmak yavaş bir süreçti ve ne kadar kitap alsam da, burada bahsedilmeyen birçok konu vardı.

Daha da önemlisi, karşılaştığınız hemen hemen her soruna daha önce başkası tarafından rastlanmıştı. İnternet bu hatayı alan kişileri bulmada başarılı bir şekilde çözüldü. Bu, kitaplarda veya MSDN gibi resmi belgelerde bulduğunuz bir bilgi değildir. Bunun yerine, bu tür bilgiler genellikle bulunur:

  • Açıkça, Stack Overflow'ta. Mesela bu problemden bahseden bir kitap görmedim .

  • Bloglarda Belirli problemlerim olduğunda bloglarda çok yardım buldum , WCF konfigürasyonunda mı yoksa en-ABD’den farklı bir kültürü olan bir makinede belirli bir API kullanırken başlayamayan bir proxy sunucusu veya şifreli bir hata mı olurdu?

  • Açık kaynaklı yazılım ile ilgili hata raporlarında. Örneğin, son zamanlarda Ubuntu'nun MAAS'sini kullanmaya çalıştığımda ve PXE kullandığımda çok yardımcı oldu. Bu tür bilgileri kitaplarda da bulamazsınız.

Bir ekibin bir projeye harcadığı zamanın çoğu zaman bunu sürdürmek için harcandığını hesaba katarsak, birinin karşılaşabileceği çoğu konuya anında ulaşılabilirliğinin önemi özellikle belirgindir .

  • Internet, mimarlık ve tasarım aşamalarında pek yardımcı olmuyor (Programcılar yardımcı olabilir, ancak bir mimar için mimarlık ve tasarım hakkında kitap okumak, tasarım kalıplarını öğrenmek, vb. İçin çok daha değerli olurdu).

  • Gerçek sorunlar ortaya çıktıktan sonra test ve uygulama adımları sırasında yardımcı olmaya başlar.

  • Ancak bakım sırasında ortaya çıkan sorunların çoğu, internet üzerinden başkalarından yardım almanın çok önemli olduğu yerlerdedir . Temel örnek: WCF servisi makinemde mükemmel çalışıyor , ancak son iki hafta boyunca çalışırken üretimde kullanıldığında hiçbir istisna olmadan başarısız oluyor. Bu başıma geldi ve blog yazarlarına ve Stack Overflow topluluğuna, konuyu haftalar yerine birkaç saat içinde çözmeme yardım ettikleri için teşekkür ediyorum.

Verimlilikteki x10 artışı haklı çıkarır mı? Söylemesi zor.

  • Bir yandan, hemen bir cevap bulduğunuz, günlerce yalnız aradığınız (ya da uygulamanın büyük bir bölümünü yeniden yazmak zorunda kalabileceğiniz) durumlar vardır.

  • Öte yandan, daha iyi proje yönetimi (Çevik, TDD vb. Akla geliyor), daha iyi takım yönetimi ( Stephen Denning'in Radikal Yönetimi akla geliyor), daha iyi araçlar (hata ayıklayıcılar, profilciler) gibi birden fazla faktöre dayalı olarak genel verimlilik artmıştır. , IDE'ler, vb.), Daha iyi donanım (hayır, yavaş bir CPU ve çok sınırlı RAM için Assembler'da yazmaya zorlanırsa çok üretken olmayacağım) vb.


4
"İnternet" de tek bir gelişme değil.
Ben Voigt

1
@BenVoigt: Brooks'un teklifinden bir teknoloji olarak nitelendirebilirim . Ancak katılıyorum, terimler açık olmayabilir: ilk olarak, internet (1980'lerin başında) veya World Wide Web (1989) olabilir mi? İkincisi, sadece gerekli olan teknolojinin kendisi değil, popülaritesidir.
Arseni Mourzenko

Ancak “İnternet” kavramı altında topladığımız şeyler birçok farklı teknolojiyi içeriyor. Çok sayıda World Wide Web (DHTML / Javascript / tarayıcı) var. Veri merkezi ölçekli bağlantıları mümkün kılan fiber optik gelişmeler var. Sunucuların terabayt RAM kullanmasına ve veri madenciliği yapmasına izin veren CMOS süreç iyileştirmeleri vardır. Programlama ile ilgili milyonlarca soruyu endeksleyen ve bazı doğal dil anlamında en yakın 10 isabet sağlayan algoritmalar.
Ben Voigt

5
Brooks'un tasarladığı sistemler ile çalışan insanlar, JCL'yi nasıl yazacaklarını hatırlamak için Google’a ihtiyaç duymuyorlardı. Bu sistemler, sürekli olarak kaldıraçlı / on yıllar boyunca kademeli olarak geliştirilmiş iyi belgelenmiş geliştirme ortamları ile geldi. Planlanan eskime ya da daha az uğursuz bir şey yüzünden, ondan kurtulduk. Her durumda, şu anda bir iyileştirme yaptığımızı ve tereddüt etmeyi tamamen "gümüş mermi" olarak ilan etmekte tereddüt ediyorum.
user1172763 12:14

Karmaşıklık düşmandır. JCL'yi kafanızda tutabilir ve kılavuzu elinizde tutabilirsiniz; tek bir raf tüm sistemi belgeleyebilir. Şimdi sistemlerin boyutunda ve temelindeki değişim oranlarında büyük bir patlama oldu.
pjc50

13

İnternetin oldukça iyi bir aday olduğunu söyleyebilirim. StackOverflow ve Google günümüz geliştiricisinin en güçlü araçlarıdır. Global olarak anlık bilgi paylaşımı! Cevapları bilmek gerekmez Bu gün, sadece nasıl bilmek gerekir tanımak cevapları - ve bu geliştiricilerin kodlama ve böylece verimli olmak için daha az zaman okuma ve daha fazla zaman ayırabiliyor mükemmel yeterli bir DEVICEHIGH. Bu, dünyadaki her programcının tüm cevaplara erişimi olduğu ve yapması gereken tek şey, doğru soruları nasıl soracağımızı bilmektir.


Gümüş mermiyi gösteren tek kişi sizsiniz. Programcıları yalnızca bir büyüklükten daha üretken kılmakla kalmadı, aynı zamanda çok sayıda düzen büyüklüğüyle de üretti.
Dunk,

+1000 - belirsiz bir konuda birkaç gün çalışmak yerine, birkaç dakika içinde yardım alabilirsiniz.
jqa

7

Bizi diğer yöne çeken trendlerin (örneğin düşük üretkenliğe doğru) en azından sorduğunuz trendler kadar güçlü olduğunu düşünüyorum. VB6 veya PowerBuilder gibi müşteri / sunucu geliştirme aracı yapma deneyimi, "Hızlı Uygulama Geliştirme" (RAD) idealine oldukça yaklaştı. Formlarınızı çizmek zorundasınız ve prosedür ya da SQL kodunuz için bariz kancalar vardı.

Web geliştirme, en azından başlangıçta, bunları mümkün kılan birçok teknik ve altyapının imhasını verdi ve birçok müşteri / sunucu geliştiricisi, geliştirici olmayı bıraktı veya VB6'ya umutsuzca sarıldı.

Ağır müşteri odaklı Web geliştirmeye geçiş, bir başka kesik ve yakıcı deneyim oldu; Microsoft, WebForms ile RAD idealine geri dönüyordu ve ardından hızla lehine düştü. Bunun yerine geliştiricilerin altyapısını kötüye kullanmaları beklenirdi (örneğin, XML için nadiren kullanılan XMLHttpRequest) ve web sitelerini daha etkileşimli hale getirmek için düşük bir soyutlama seviyesine inebilirlerdi.

Tüm bu geçişlerin ardında iyi nedenler var ve yerel .EXE (bireysel istemcide kurulum ve yönetim gerektiren) işlemlerini Web geliştirme ile karşılaştırmak adil değil, ne de ağır bir şekilde çalışan bir işlemi karşılaştırmak adil değil. daha sorunsuz bir deneyim sağlayan biriyle postback'lerde. Ancak şu anda moda olan uygulamaların, müşteri / sunucu, RAD ve benzeri şeyleri kaçıran insanlar arasında şaşırtıcı derecede düşük seviyeli düşünce süreçleriyle sonuçlandığını söyleyeceğim. İstemci / sunucu düğmeleri yeni çalıştı ve birinin bunu gerçekleştiren olay işleyicilere veri sağlayan altta yatan veri kanalları konusunda endişelenmesine gerek yoktu.

Tersine, daha çağdaş geliştiriciler, müşteri / sunucu gelişimi yapan (hatta postback tabanlı Web geliştirme) kısayollara başvurma eğiliminde olduğumuzu düşünme eğilimindedir (ve bunu kötü bir şekilde ifade eder). Bu anlaşılabilir bir durumdur, ancak hala çağdaş kalkınmanın yapılma şeklinin şaşırtıcı derecede düşük olduğunu düşünüyorum ve "gümüş mermi" arama günleri, madencilik bilgisini sorgulayan bizlerle alay etme çağına girmiş görünüyor. kendi liderliğimizi eritiyor.


Meteor.js'yi gördün mü?
Strugee

2
@strugee Evet ve bence Meteor.js doğru yönde bir adım olabilir. Yine de, Brooks'un kitabını yazmasından bu yana, teknolojik olarak en azından 3-4 kez esasen "başlamıştı" gerçeği (burada PC'ye, sonra müşteriye / sunucuya, daha sonra Web'e ve daha sonra. AJAX) tartışmasız olarak bizi "gümüş mermi" yi bulmaktan ve hatta verimlilikte doğrusal iyileştirmeler yapmaktan alıkoydu. Zaman, mevcut geliştirme tekniklerinin ne kadar dayanabileceğini (ve geliştireceğini) söyleyecektir. İyimserliğin bazı nedenleri var ... herkes şimdi sağlam, platformlar arası bir noktaya ulaşıyor.
user1172763,

5

Teknoloji çok gelişti ve şimdi Robert Harvey'nin cevabında saydığı her şeye sahibiz, ancak:

  • Sorun gereksinimleri değişiyor gibi görünüyor . Müşteri, bir yazılım projesinin gereksinimlerini değiştirirken malzeme israfı olmayacağını bilir, öyle yaparlar. Bu tür bir gereksinim neredeyse hiç bir zaman bir bina gibi fiziksel dünya projesi olmadığında gerçekleşmez.

  • Bir diğer önemli husus, programlamanın el işi olmaya devam etmesidir . Nadiren, RAD tarafından üretilen kod ilk önce elle değiştirilmeden üretime giriyor.

  • Kod oldukça karmaşık olmaya devam ediyor ve bu karmaşıklık yeni teknolojilerle azalmıyor gibi görünüyor.

  • Karşılanmayan ya da bütçelerin aşılmadığı son tarihlerin oranı, diğer disiplinlerden daha yüksek olmaya devam etmekte ve çoğu zaman gizli masraflar yaratarak bunları karşılamak için teknik borcun gerçekleştiği görülmektedir.

  • Şüphesiz ki gerçekleşen bir şey, bölümlendirmenin gerçekleşmiş olmasıdır . Bilinmesi gereken teknolojiler arasında, programcıların kendilerinde gerçekten iyi olabilmek için, çok büyük bir projeyi tamamlamak için farklı türden uzmanlar gerektiren az sayıda teknolojiyi uzmanlaştırması gerekiyordu.

  • Yazılım karmaşıklığından bahseden şeylerden biri, dünyadaki yüzlerce araç üreticisi olmasına rağmen, bir işletim sistemi (masaüstü, mobil, gömülü veya başka türlü) oluşturabilen ve bakımını yapabilen şirketlerin listesinin parmaklarla sayılabilmesidir. Ellerin

  • Yukarıdakilerin tümü, programcı olarak okuyan yeterli sayıda insanın bulunmadığı bir durum yarattı , böylece hükümetler daha fazla öğrenciyi bu kariyer yoluna girmeye motive etmek için kampanyalar yarattı.

  • Yazılım endüstrisinin olgunluğunun bir tadı, yazılım lisanslarının "<companyX> 'in bu yazılımın herhangi bir amaç için uygunluğu hakkında hiçbir beyanda bulunmadığını belirtmeye devam etmesidir." Olduğu gibi "açık veya zımni garanti olmaksızın" sağlanır. Bir donanım üreticisinin, ürünlerinin herhangi bir özel amaç için uygun olmadığını belirttiğini hayal edin. Bu şu anda sanatın durumu.


2
Orada 10'dan fazla şirket kesinlikle vardır yetenekli oluşturma ve kendi işletim sistemi sürdürmenin, ancak diğer fırsatların daha kazançlı olduğu için birkaç Bunu yapmak için seçin.
Ben Voigt

@BenVoigt Elbette, bir işletim sistemi oluşturmak ve sürdürmek, doksanlı yıllarda olgun bir ürün elde etmek için en geç başlarında yapmaları gereken onlarca yıl süren araştırma ve geliştirme çalışmalarını gerektiren karmaşıklıktan nispeten daha az kazançlı.
Tulains Córdova

1
Ayrıca, ROI’nın “iade” tarafı da iyi değil çünkü piyasa zaten doymuş.
Ben Voigt

2
Tabii ki, yaptığınız tek şey, Lady Lovelace'in kalemini aldıktan kısa bir süre sonra olan etkin programlamaya bilinen barikatları sıralamak. 30 yıl öncesine göre farklı olan tek şey, işlerin katlanarak daha karmaşık hale gelmesidir.
Daniel R Hicks,

4

Biri belirli metriklerle tartışabilir (yani, 9.98 katsayısı ile iyileştirilmiş şeyler var mı?), Eski bir zamanlayıcı gibi konuşan ben Brooks'un yorumuna genel olarak katılıyorum.

Öncelikle, belki 1970'ten beri icat edilmiş çok az yeni teknoloji var. Evet, entegre devreler daha uzun, daha alçak, daha geniş ve cam elyafı iletişim hızlarını arttırdı, ancak ilerideki her adım için bir geri dönüş var.

Derleyici teknolojisi, 1970'lere kıyasla "üretkenlik" programında, bir rakamın gerçek kodlama zamanına bölünmesiyle üretilen fonksiyonların 10 kat artmasına izin verdi, ancak yeni veya "revize edilmiş" programlama dillerinin ve ortamlarının çoğalması ortalama programcının giderek daha fazla para harcadığı anlamına geliyor "yetiş" modunda zaman ve daha az üretken etkinlik. Apple, Google ve Microsoft, çevreleri için müşterileri arasında isyan yaratacak kadar az olan bir oranda yeni ve büyük ölçüde uyumsuz "yükseltmeler" yaptılar. Benzer şekilde, HTML / CSS / Javascript / daha da karmaşıklaşmaya devam eden her neyse.

Bir zamanlar dokümantasyonun üretilme ve yayılma oranı tüm bu “inovasyonları” sınırlandırıp sınırlandıracaktı, ancak İnternet sayesinde sıkı dokümantasyon artık gerekli değil - sadece işlevleri dağıtmak ve blogculara güvenmek Ayrıntıları ortaya çıkarmak ve bunları kullanılabilir duruma getirmek.

Eklendi: Dünden beri bunu düşünüyorum ve özellikle 1978'den 2008'e kadar üzerinde çalıştığım projeyi düşünüyorum. Bu proje (IBM System / 38 ve halefleri) başlangıçtaki çabalarından biraz farklıydı. onun karmaşıklığını kontrol etmek için yapılmıştır (biri aralarında bir "makine" arayüzü ile yazılımın kabaca eşit parçalara bölünmesidir). Çalıştığım belirli bir alanda, iş arkadaşlarımdan bazıları benzer şekilde karmaşıklığı kontrol etmeye adadı (bu terimi o zaman fazla kullanmasak da). Sonuç (ilk başta) oldukça sağlam ve git-go'dan hemen hemen müşterileri ile "hit" bir ürün oldu. Ve üzerinde çalışmak iyi oldu - iyi eğitimli bir orkestrada oynamak gibi.

Tabii ki, yıllar geçtikçe karmaşıklık, genellikle karmaşıklığı kontrol etmekten hoşlanmayan piyasa planlamacıları ve yöneticilerin emriyle (bu sadece basitliği korumaktan bir şekilde farklı) ortaya çıktı. Bunun kaçınılmaz olduğu hissine sahip değilim, ancak bu durumda bir menajer olmadan (Glenn Henry'nin yaptığı gibi) kafa karışıklığının güçlerini engellemekten kaçınmak imkansızdı.


2
Fakat 20-30 yıl önce başıma gelen bir şey olduğunu hatırlattığım (ve pek çokları şüphesiz) - Peter'in karmaşıklığın kaçınılmaz şekilde arttığını belirten bir çeşit Peter programlama ilkesi (veya belki de ikinci bir programlama termodinamik yasası) var. anlaşılmazlık noktası. İşler asla kolaylaşmaz.
Daniel R Hicks,

3

Geçtiğimiz 30 + yıl yazılım mühendisliği pratiğinde öğrendiklerini bir hayli yeni yazılımın ilk gelişimini hızlandırabilir formu "teknoloji X, ancak hakkında çok veya daha fazla zaman düşünme olarak harcama yoksa nasıl ve ne zaman kullandığın gibi onu kullandığında, uzun vadede başvurunuzu daha fazla zaman ve çaba harcamanız için size emredecek şekilde teknik borç bataklığı haline getirecektir. ”

Bu ustura altında bulunan teknolojiler şunlardır: el-kodlu meclis dili, derleyiciler, tercümanlar, prosedür kütüphaneleri, zorunlu programlama, fonksiyonel programlama, nesne yönelimli programlama, manuel hafıza tahsisi, çöp toplama, statik tipler, dinamik tipler, sözlük kapsamı, dinamik kapsam , "güvenli" işaretçiler, "güvensiz" işaretçiler, bir dil kavramı olarak işaretçilerin yokluğu, ikili dosya biçimleri, yapısal işaretleme dosya biçimleri, makrolar, şablonlar, makro ve şablonlardan kaçınma , paylaşılan bellek, mesaj iletme, konular, koroinler, zaman uyumsuz olay döngüleri, merkezi uzaktan servisler, dağıtılmış servisler, yerel olarak kurulu yazılımlar, diziler, bağlantılı listeler, karma tablolar ve ağaçlar.

Yukarıdaki listedeki öğelerin çoğunun, birlikte bilinen çözüm alanını tüketen gruplar halinde gelmesi gerçeği çok kasıtlıdır ve kendi başına bir şey söylemelidir. Bir iddia olabilir ancak , kesin geniş kapsamlı ilk Z3 blok yapılandırılmış (spagetti kod aksine) programlama ve hafıza koruma (çocuk, do şimdiye anahtarlamalı beri biz aldık praksisinde iyileştirmeler değil özledim Bir yazım aracının tüm bilgisayarımı çökertebileceği günler).

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.