Bir programcı olarak neden açık kaynağı seçmiyorsunuz?

Son yıllarda, "açık kaynak", büyük teknoloji şirketleri tarafından teknolojinin hızlandırılmış uygulaması ve yaygınlaştırılmasının arkasındaki itici güç haline geldi. Bununla birlikte, sürekli yinelemeli gelişimde, çok önemli ve acil bir sorunu da keşfettik: genellikle kendi geliştirdiği açık kaynaklı yazılımın piyasaya sürülmesi Geliştiricilerin büyük öngörülemeyen işlere yatırım yapmasını zorunlu kılın. Günümüzde açık kaynaklı yazılım, bilim ve teknoloji çevrelerinde hayati bir yazılım olarak kabul edilmekle birlikte, finansal desteği sürdürülebilir değildir.

Daha önce, birçok anket raporuna dayanarak, birçok bireysel geliştiricinin açık kaynağı seçmemesinin birincil nedeninin, zaman ve enerji sınırlı olduğunda açık kaynaklı projeleri sürdürmenin maliyetinin çok yüksek olması olduğunu gördük.

Bu soruna yanıt olarak, Ar-Ge bakımı ile finansal destek arasında bir denge nasıl korunur? Bu konudaki fikriniz nedir?

Yazar | Anna Nowogrodzki

Çevirmen | Su Benru, sorumlu editör | Tu Min

Üretildi | CSDN ( İD: CSDNhaberler)

Aşağıdaki çeviridir:

10 Nisan'da astrofizikçiler, tarihte bir kara deliğin ilk fotoğrafını çektiklerini duyurdular. Bu heyecan verici bir haber, ancak bu baş döndürücü haberlerin hiçbiri, bu fotoğrafı açık kaynak yazılım yardımı olmadan çekmenin imkansız olacağından bahsetmiyor. Bu fotoğraf, bir Python çizim kitaplığı olan Matplotlib ve açık kaynaklı Python ekosisteminin diğer bileşenleri kullanılarak oluşturuldu. Ancak, sadece beş gün sonra, Ulusal Bilim Vakfı (NSF), yazılımın yeterli etkiye sahip olmadığını söyleyerek açık kaynak ekosistemini finanse etmek için bir hibe teklifini reddetti.

Bu yaygın bir sorundur: Açık kaynaklı yazılım, bilimsel ve teknolojik dünyada hayati bir yazılım olarak kabul edilmektedir, ancak finansal desteği sürdürülebilir değildir. Açık kaynak yazılım destek çalışması genellikle fazla mesai yapan yüksek lisans öğrencileri ve doktora sonrası öğrenciler tarafından yürütülür ve bu da genellikle tükenmeye yol açar. Harvard Üniversitesi ve Cambridge, Massachusetts'teki Broad Institute of MIT'de hesaplamalı biyolog Anne Carpenter'ın laboratuvarı CellProfiler adlı görüntü analiz aracını geliştirdi. "Tıpkı büyükannelerinin hastaneye gitmesi gibi, sağlık sigortası desteği almakla GoFundMe kitle fonlaması platformuna güvenmek arasındaki fark gibi. Açık kaynaklı yazılım için bu sağlıklı bir hayatta kalma yolu değil."

Açık kaynaklı yazılım yazan bilim adamları genellikle yazılım mühendisliğinde resmi eğitimden yoksundurlar, bu da kod dokümantasyonu ve testi için en iyi uygulamaları öğrenme fırsatına asla sahip olamayacakları anlamına gelir. Ancak bakımı iyi yapılmamış yazılımlar zaman ve çaba harcanır ve yazılımın yeniden kullanılabilirliğini engeller. New York'taki Cold Spring Harbor Laboratuvarı'nda hesaplamalı biyolog olan Adam Siepel, hesaplamalı araç yazılımı kullanan biyologların, diğer araştırmacılar tarafından yazılan kodu çalıştırmak için genellikle "birbiri ardına bir saat" harcadıklarını söyledi. . Adam Sipper, karşılaştırmalı ve evrimsel genomik için bir yazılım aracı olan PHAST'ın da geliştiricisidir. "Kodu bulmak için zaman alıyorlar, ancak bazen bulunacak bir web sitesi yok, bağlantı kopuyor veya derleme başarısız oluyor veya yazılımı kendi verileriyle çalıştırmaya çalıştıklarında yazılım çöküyor."

Ancak yardımcı olacak bazı kaynaklar ve taklit edilecek bazı modeller var. Almanya, Heidelberg'deki Avrupa Moleküler Biyoloji Laboratuvarı'nda hesaplamalı bir biyolog olan Wolfgang Huber, araştırma grubunuz açık kaynaklı yazılım yayınlamayı planlıyorsa, yazılımı desteklemeye başlayabileceğinizi ve insanlar onu kullanmaya başladıktan sonra ortaya çıkabileceğinizi söyledi. Sorun için hazırlandı. Bu iş kolay değil, ancak geliştiriciler için övgü kazanabilir ve sahadaki iş verimliliğini artırırken görünürlüğünü artırabilir. Ayrıca "Bence bu bir zevk" dedi.

Bir plan yap

Bilimsel yazılım geliştiriciler için, yazılımın yayınlanma günü işin sonu değil, başlangıcıdır. Kuzey Carolina, Raleigh'deki Cirence'den bir veri bilimcisi olan Tim Hopper, Twitter'da şunları söyledi: Bir kişiye bir balık verin ve onu sadece bir gün beslemeniz gerekir. Onun için balık tutmak için bir program yazın. Bunu bir ömür boyu korumalısınız. Annie Carpenter, CellProfiler yazılımının bakımını yürütmesi için tam zamanlı bir yazılım mühendisi tuttu. Program her yıl veya her yıl yaklaşık 700 sorun ve 100 hata raporu veya yeni özellik talebi kaydediyor Her hafta yaklaşık 15 soru kaydedilir. Ancak çoğu açık kaynaklı yazılım bakımı, gönüllülük esasına göre yapılır. PHAST için teknik destek alan Adam Sippel, "Bu bakım görevlerinin tamamı gece yarısından sonra kendi başıma yapılıyor." Dedi.

Olmak üzere olanlarla başa çıkmak için, yapacağınız işin doğasını anlamak faydalı olacaktır. Bazı yazılımlar yalnızca kısa vadeli destek gerektirirken, diğer yazılımlar on yıllarca kullanılabilir. Nelle Varoquaux, biyolojik makine öğrenimi alanında, veri setinin boyutu çok hızlı değiştiği için yazılım araçlarının hızla modası geçmiş hale geldiğine dikkat çekti. Nelle Varoquaux, California Üniversitesi, Berkeley'de hesaplamalı bir biyolog ve Python diline dayalı bir makine öğrenimi araç seti olan Scikit-Learn'ün ortak geliştiricisidir. Dedi ki: "Doktora programıma başladığımda, yaptığım her şeyin rastgele erişim belleğine ihtiyacı vardı ve hiçbir zaman bir bellek sorunu ile karşılaşmadım." . DNA ve kromozom yapısını analiz etmek için geliştirdiği iki aracın (Iced ve Pastis) beş yıllık bakımdan sonra modası geçmiş olacağını tahmin etti.

Modası geçmiş yazılımların kötü bir şey olmadığını ekledi: Yazılımları desteklemeyi ne zaman durduracağını bilmek önemli bir beceridir. "Etkinliği sınırına ulaştığında bir aracın ölmesine izin verin veya bakımcı bırakmak istediğinde, yetim bırakın ve onun için evlat edinen bir ebeveyn bulun." Wolfgang Huber Önermek Tao.

Columbia Üniversitesi'nde bir makine öğrenimi bilimcisi olan Andreas Mueller, yazılımınız ne kadar süreyle kullanılacak olursa olsun, iyi yazılım mühendisliği uygulamaları ve dokümantasyonunun gerekli olduğuna işaret etti. Bunlar arasında sürekli entegrasyon sistemleri (TravisCI gibi), sürüm kontrolü (Git) ve birim testi bulunur. Mueller şunları söyledi: Çalışmak için doğru test programını yazdığınız sürece, kodu her değiştirdiğinizde, sürekli entegrasyon sistemi size kodun hala geçerli mi yoksa bozuk mu olduğunu söyleyecektir. Sürüm kontrolü bir kayıt kaynağıdır. Bir kod sistemi, gerekirse kodu herhangi bir önceki sürüme geri yükleyebilmeniz için değişir; birim testleri her bir bileşeni sağlam olduğundan emin olmak için test eder. Birleştirmek Birlikte, size zamanınızın% 100'ünü kazandıracak. "Gönüllüler tarafından yönetilen Yazılım Marangozluğu ve Seattle'daki Washington Üniversitesi'ndeki eScience Enstitüsü gibi bazı kuruluşlar, yazılım geliştirme eğitim kampları düzenliyor ve Github'da eğitimler veriyor. Amsterdam'daki Hollanda eScience Merkezi Yazılım geliştirmeye yönelik en iyi uygulama kılavuzu, https: //guide.escience center.nl web sitesinde sağlanmaktadır.

Bakımı kolaylaştırmak için Nelle Varoquaux Önermek En yüksek performansa değil, kod okunabilirliğine odaklanın. Dedi ki: "Kodu her zaman iyi okunabilir, iyi belgelenmiş ve dikkatlice test edilmiş tutmaya çalışıyorum, böylece bir şey kırılırsa çabucak düzeltebilirim."

Yazılım söz konusu olduğunda, bu kaçınılmazdır: "Kullanıcılarınız olduğunda, hatalar bulacaklar," dedi Nelle Varoquaux. Ve Wolfgang Huber Önermek Kullanıcıların sorunlarını etiketlemek için yazılımın adını kullanabilecekleri Stack Overflow gibi genel forumları kullanarak kullanıcı sorularını yanıtlayın. o Önermek : "Destek arayan kullanıcılardan gelen özel e-postalara cevap vermeyin." Ve halka açık forumların üç avantajı olduğunu belirtti. İlk olarak, tek bir e-postadan daha fazla kullanıcıya ulaşırlar. E-posta yazan bir kişiye kıyasla, soru sormak için fazla utangaç olan 100 kişi olabilir. İkincisi, daha odaklı ve düşünceli soruları teşvik etme eğilimindedirler. Üçüncüsü, kullanıcıların aynı sorunu birden çok yazılım geliştiricisine göndermesini ve böylece değerli zamanlarını boşa harcamasını önleyebilirler.

Wolfgang Huber ayrıca Önermek Yazılımınızı kişisel ana sayfanıza veya Github'a göndermek yerine CRAN (Kapsamlı R Arşiv Ağı) veya Bioconductor gibi bir kod havuzuna gönderin. CRAN veya Bioconductor, R dilinde yazılmış bir biyolojik yazılım şemsiye arşiv ağıdır. Bilimsel dergiler gibi, bu tür depolar da özel personel tarafından yönetilir ve gönderim sırasında adlandırma kuralları ve bileşen gereksinimleri için yönergelere sahiptir. Wolfgang Huber, CRAN ve Bioconductor'ın birden çok platformda test ve sürekli entegrasyonun yanı sıra güçlü ve kullanımı kolay kurulum programları sağladığını önerdi.

finansal destek

Yazılım desteği zaman ve para gerektirir. Ancak fon bulmak zor olabilir. Ulusal Sağlık Enstitüleri (NIH) ve Ulusal Bilim Vakfı (NSF) Dikkat Yeni teknolojilerin araştırılması nedeniyle, açık kaynaklı yazılımın bakımı çoğu zaman gereksinimlerini karşılamıyor. Anne Carpenter, "Genel olarak, bu fon ajansları için gerçekten bir trajedi. 50 farklı algoritma oluşturmak için 50 farklı grubu finanse edecekler, ancak bir yazılım mühendisi için ödeme yapmayacaklar." Dedi.

Ancak bu kuruluşlar ve diğerleri bir miktar fon sağladı. Bir Twitter konusu (bkz. Go.nature .com / 2yekao5) NSF Biyolojik Altyapı Departmanı, NIH İnsan Genomu Araştırma Enstitüsü ve Ulusal Kanser Enstitüsü, ayrıca NSF ve İngiliz Biyoteknoloji ve Biyolojik Bilimler Araştırma Konseyi (şimdi Birleşik Krallık Ulusal Araştırma ve Yenilik Ajansı'nın (UKRI) bir parçası) kayıtları ) Ortak projeler için finansman. Gordon ve Bettimoore Vakfı, Alf Sloan Vakfı ve Zuckerbergs tarafından kurulan CZI Vakfı gibi özel Amerikan vakıfları da açık kaynak yazılım desteğini finanse ediyor. CZI Foundation Python tabanlı görüntü işleme yazılımı scikit-image, ImageJ ve Fiji platformları için mali destek ve Anne Carpenter ekibinin yazılım mühendisleri için mali destek sağlıyor.

Birleşik Krallık'ta, Edinburgh Üniversitesi Yazılım Sürdürülebilirlik Enstitüsü, İngiliz araştırmacılar veya onların işbirlikçileri için ücretsiz, kısa çevrimiçi yazılım sürdürülebilirlik değerlendirmeleri sağlar ve 30 00 £ (3,800 ABD Doları) burs. Enstitü, düzenli olarak insanlara yeni yazılım geliştirmek veya mevcut yazılım ve bakım uygulamalarını iyileştirmek için altı aya kadar uzmanlarla çalışma fırsatları sunar. Almanya'da Wolfgang Huber Önermek Avrupa Birliği Ağı Hibe Komitesi ve Alman Bilim ve Teknoloji Bakanlığı bünyesindeki deNBI Vakfı, Bioconductor için mali destek sağlıyor.

Dijital altyapı bakımının genel sorunu giderek daha fazla dikkat çekiyor. Nelle Varoquaux ve meslektaşları, bu işe zaman ayıranlar da dahil olmak üzere, "açık kaynak yazılımın görünür ve görünmez çalışmasını sürdürme" üzerine araştırmalar için Alf Sloan Vakfı ve Ford Vakfı'ndan 138.000 ABD Doları tutarında fon aldı. Araştırmacıların fazla çalışması. Bu finansman, toplam 1 fonla 13 dijital altyapı araştırma projesinden oluşan bir portföyün parçasıdır. 30 On bin dolar. Bu yılın Mayıs ayında, CZI Vakfı, açık kaynak biyomedikal yazılımı finanse etmek için üç başvurunun onaylandığını duyurdu ve bunlardan ilki bu yıl Haziran ayında başlayacak. Adam Sipper ayrıca Genome Biology dergisinde, açık kaynaklı yazılım desteğini finanse etmenin zorluklarını tartışan bir inceleme makalesi yayınladı.

Başkalarının geniş bir veri temelinde kullanması kolay bir yazılım yazmak, yalnızca kendiniz için çalışan bir yazılım yazmaktan daha fazla çaba gerektirir. Wolfgang Huber şunları söyledi: "Bu fark çok büyük, en azından Nature dergisinde ve laboratuvarda yayınlanan parlak bir makaleye eşittir. toplantı Temel deneyin sonuçlarını gösteren ilk slayt yığını arasındaki fark. "

Ancak, bu zaman ve enerji yatırımının hala pratik değeri vardır. Adam Sippel'in ekibi bazen kullanıcılar tarafından sorulan soruları yanıtlıyor ve yanlış verilere yazılım uyguladıklarını belirtiyor. Bu, evrimsel biyologların yalnızca fark ettiği ince bir noktadır, ancak yazılım mühendisleri fark etmeyebilir. Wolfgang Huber şöyle dedi: "Karşılaştığınız gerçek sorunları çözmek için kendi yazılımınızı kullanırsanız, o zaman bu yazılımda neyin yanlış olduğunu anlayacaksınız. , Nerede eksik. Bir alan uzmanından bu alandaki sorunları çözen bir yazılım yazmasını istemek genellikle bu yazılımı daha değerli hale getirir. "

Orijinal: https: // www. doğa .com / makaleler / d41586-019-02046-0

Son

MATLAB, Julia ve Python'un kapsamlı karşılaştırması, kim bilimsel hesaplamada daha iyi?
önceki
Birleşik Krallık'taki en yaşlı köpeklere bir bakın, hayatın 100 yaşından itibaren çok geç olmadığını kanıtlıyorlar.
Sonraki
OPEC ham petrol pazar payı 17 yılın en düşük seviyesine iniyor! Suudi Arabistan pazar payını ele geçirmek için üretimi artırabilir
190622 Wang Junkai'nin genç görünümünü görmek için İlk Aşk Yüzü İdolü Okul Üniforması Yarışması
"TFBOYS" "Paylaş" 190622 First Love Face Idol Okul Üniforması Yarışması, Wang Junkai'nin genç görünümünü görmek
Bir haftalık yapay zeka etkinlikleri: MIT ve IBM, sinirbilimi keşfetmek için yapay zekayı kullanıyor, Google, yapay zeka tartışmalarına yanıt veriyor
Ödediğinizin karşılığını ödersiniz, TV alırken ucuza açgözlü olmayın
Qingdao Dongjiakou: Geliştirmeyi gururla yazmak için bir kalem sallamak, 5 büyük savaş başlatmak ve yeniden yola çıkmak
Eserlerin açık artırma fiyatı Picasso'yu eziyor Ruhsuz AI ruh ressamının geleceği nedir?
Üç atış onaylandı! Honor 9Xin ilk ID tasarımı, "endüktif X dokusu" tasarımı amiral gemisi
Komik: Kız arkadaşına adaptör modunun ne olduğunu nasıl açıklayabilirim?
Programcılar düşük kodlu ve kodsuz geliştirme arasında seçim yapmalı mı?
Zaobao: İtalyan basını, Bayern'in Sane + Pepe'den 165 milyon euro alacağını söyledi, Inter Milan imzası Barrera
190622 Wang Junkai, onun yere düşüşünü izlemek için çevrimiçi oldu, anlamak için ilginç bir ruh
To Top