Programlamada 'taşıma' kelimesinin kullanımı hakkında soru


11

Şu anda Visual Studio'dan derleyerek çalışacak şekilde UNIX sistemi için yazılmış bir C ++ kodunu değiştirme işlemi yapıyorum. Bazı yerleşik işlevlerin adlarını değiştirmek zorunda kaldım ve dinamik dizilerin tanımlanma şeklini değiştirmek zorunda kaldım.

Benim sorum, bu kodu UNIX'ten Windows / Visual Studio'ya 'taşıdığımı' veya yalnızca bir programlama dilinden diğerine (C ++ 'dan Java'ya bağlantı) geçiş yaparken kullanıldığını söyleyebilir miyim?


1
Yıllar önce, 32 bit OS / 2 üzerinde çalışmak için 16 bit OS / 2 yazılımını dönüştürmek zorunda kaldım. Proje sırasında, herkes bu etkinliğe "32 bit'e taşıma" adını verdi. Bu yüzden farklı bir işletim sistemine hatta farklı bir donanıma, hatta farklı bir ortama geçmek anlamına gelmez.
Robot Gort

Yanıtlar:


15

Göre Wikipedia ve kendi kişisel deneyim, "taşıma" terimi başlangıçta sağlamayacağı türde bir platform için yazılım çalışması oluşturmayı ifade eder. Bu süreç bazen dilde bir değişiklik gerektirir, ancak her zaman değil.

Terim genellikle aynı CPU ve işletim sisteminde daha az bellekle çalışacak şekilde yazılımı uyarlama işlemine ya da kaynak kodun farklı bir dilde yeniden yazılmasına (örneğin, dil dönüştürme veya çeviri) uygulanmaz.

İnsanlar Java programlarının daha "taşınabilir" olduğunu söylediklerinde, bunları çeşitli farklı makineler ve işletim sistemleriyle uyumlu hale getirmek için daha az ek çalışma gerektirdiğini ifade ederler.


7
Gördüğüm kadarıyla, insanlar Java programlarının daha taşınabilir olduğunu söylediğinde, Java programlarını taşıma konusunda deneyimsiz oldukları ve Sun / Oracle'ın satış sahalarına güvendikleri anlamına gelir. Benim tecrübelerime göre, Java'yı taşımak aslında ortalamadan biraz daha zordur (çünkü insanların taşınabilirliğin otomatik / garantili olduğuna ve dolayısıyla dikkat veya çalışmaya değmediğine inanmaları teşvik edildiğinden).
Jerry Coffin

2
@JerryCoffin: Bu cephede fazla deneyimim olmadı. Çalıştığım Java programlarının tümü Linux, Windows ve Mac kutularında eşit derecede iyi çalışan web uygulamalarıydı. Ancak, geliştiricilerin taşınabilirliği bu şekilde elde edemeyeceklerine dair protestolarına rağmen, yönetimi kendileri üzerinde Java dönüşümü yapan firmalardan hikayeler duydum.
StriplingWarrior

4
@Jerry - deneyiminizin nerede yattığından emin değilim ama taşıdığım her Java programı bağlantı noktası için önemsiz (bu hem GUI'leri hem de Mac / Win / Linux / Solaris üzerinden sunucu tarafı uygulamaları içerir). Sun ve Oracle, Java uygulamalarının her şeyden daha kolay taşınabileceği ölçüde doğrudur - çoğunun yeniden derlenmesine bile gerek yoktur (bu, muhtemelen taşınabilirlik konusunda 2. en iyi olan iyi yazılmış taşınabilir C / C ++ için bile gereklidir). Gördüğüm en yaygın sorunlar, geliştiricilerin dizin ayırıcısı olarak "/" gibi sabit kodlu platforma özgü şeylere sahip olmaları, ancak bunların düzeltilmesi oldukça kolaydır ....
mikera

@ Jerry 5 yıl boyunca J2ME oyunları programladım. Sona erdiğimde, bir oyunun 80 versiyonunu yapıyorduk - her platformun farklı performansı, hataları vb. Platformlar için standartlar oluşturmadılar, J2ME uygulamaları için standart testler oluşturdular. Bir daha asla.
Ocak'ta Sulthan

2

Bir işletim sistemi arasında yazılım port olabilir. İşlemci mimarileri arasında yazılım taşınabilir. Büyük platform değişiklikleri (Apple'ın PPC -> x86 anahtarı veya Windows XP -> Windows Vista / 7/8) ile uğraşırken normalde "portlama" ile ilişkilendirdiğim bazı aktiviteleri gerçekleştirmek gerekebilir. Programlama dillerini değiştirmenin "bağlantı noktası" olduğunu düşünmezdim. Daha çok tamamen yeniden yazma gibi.

Yazılımı Linux'tan Windows'a ya da tam tersine taşıdım. Yazılımı SPARC'tan x86'ya taşıdım (sadece endian sorunlarıyla uğraşmayı seviyorum) Ve 32 bit'ten 64 bit'e. Bu gün Java programlıyorum ... "Porting" kelimesinin Javaland, belki de büyük JVM sürümleri arasında çok anlamı var emin değilim ....


0

Yayıncılar mümkün olduğunca çok platformu (PC, Xbox, Playstation, vb.) Kapsamak istediklerinden, oyun geliştirmede daha popüler hale geliyor. Belirtildiği gibi, taşıma işlemi orijinal programı tamamen farklı bir sistemde çalışacak şekilde dönüştürmek anlamına gelir. Genellikle oyun yapımcıları konsol oyunlarını PC'ye dönüştürür.


Giderek daha fazla geliştirici, Unity gibi platformlar arası geliştirme araçlarına güveniyor, böylece bağlantı kurmak zorunda kalmıyorlar. Başlangıçta birçok platformda çalışan bir kod tabanı geliştirmek, bir şeyin bir platformda tasarlandığını ve çalıştırıldığını ve daha sonra başka bir platformda çalışacak şekilde değiştirildiğini ima eden "taşıma" ile aynı şey değildir.
Robot Gort

Bu ilginç geliyor! Performansı ve ölçeklenebilirliği nasıl etkiler? Bir endişe büyük olasılıkla konsolların çoğu üst düzey PC'lerden hala çok daha yavaş olması - Unity, daha hızlı sistemlerde maksimum kaliteden ödün vermeden buna nasıl yaklaşıyor?
Juha Untinen
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.