Ben PHP gelen, Çapraz-Plataform yazılım geliştirmek için ne dil öğrenmek gerekir?

5 Cevap php

Sanırım yaklaşık 3 ya da 4 yıl için PHP in "programlama" oldum, ve ben çok daha karmaşık bir şey için taşınmaya karar verdi, bunu zaten oldukça iyi olduğumu düşünüyorum. PHP (örneğin bir değişkenin türünü bildirmek zorunda değilsiniz) çok esnek ve böyle yollarla kod alışmak gerekecek anlıyoruz.

Yani temelde ben birçok CPU çekirdeği kontrol ve Windowed uygulamaları oluşturabilir uygulamaları yazmak istiyorum. DirectX veya OpenGL gibi bir 3D kütüphane kullanmak için güçlü olmak düz harika olurdu.

Gerçekten bu tür uygulamalarda için uygun olacağını dilleri hakkında çok fazla bilmiyorum. Yani, sizce, hangi dil ben öğrenmek gerekir? Ve bunu öğrenmek için ne kitap satın almalıyım?

5 Cevap

Python (var ya örneğin o hiç "değişkenlerin ilan türleri", s) ve (çoklu, OpenGL, vb aracılığıyla çoklu çekirdek) ve diğer ihtiyaçlarını karşılayan sizin için kolay bir adım olacaktır. C # sonraki kolaydır (Python ve PHP gibi, sizin adınıza belleği yönetir, değişken türleri bildirmek zorunda, ama) ama multi-platform yönleri (her yerde ama Windows sen Mono proje güvenmek zorundayız) vardır az inandırıcıdır; Diğer yönleri için C # zengin olmasına rağmen, Java hala daha iyi bir "çoklu" bir deneyim sunuyor olabilir (ama, onlar temelde benzer güç ve zorluk ile iki dil demektir).

C + + kesinlikle (sen de bir şeyler beyan olarak bellek yönetmek zorunda) en zor biri olacak, ama aynı zamanda çoğu get to bellek yönetmek gibi (güçlü, yanı sıra söz her şeyi yapıyor ve daha pek çok).

Yani, sizin çağrısı: ne kadar öğrenme / geçiş / kullanımı, vs sırf güç, esneklik, multiplatform iyilik, ve benzeri kolaylığı değer mi? Doğru seçim bu faktörlere koymak göreceli ağırlığının ne bağlı olabilir. Bu kesinlikle önyargılı olacak gibi kitap için, Python almak eğer (ben Wesley Chun'un Çekirdek Python iyi olabilir ;-) benim kendi kitaplarını tavsiye olmaz; C + + ise, benim en sevdiğim Lippman, Lajoie ait ve Moo'nın "C + + Primer" dir. C # (veya Java) için en iyi ne kitaplar emin değil.

Gerçekten Alex MARTELLI cevabını sevdim, ama ben bir çift daha fazla fikir eklemek istiyorum. Kullanım kolaylığı açısından, Visual Basic veya REALbasic deneyebilirsiniz. Hem de çok hızlı bir şekilde programlarını pencereli alacağı, ve kolayca Mac, Linux veya Windows için derlemek için izin REALbasic kesinlikle çapraz-platform olacaktır. Ancak, bir ya da birden fazla çekirdek veya çoklu kullanımı üzerinde verir ne kadar kontrol emin değilim.

Alex Martelli Dediğim gibi, orada seçenekleri bir yeri vardır, bu yüzden gerçekten size en uygun olanı seçebilirsiniz, ama almak hangisi, ben bunu öğrenmek için sadece bir kitap güvenmek olmaz. Bir programlama dili öğrenme beri takes time and patience, kendinizi dil ve mantık öğretmek için çeşitli kitaplar, arkadaşlar ve internet kullanımı. Ve (örneğin, Donald E. Knuth tarafından Bilgisayar Programcılığı Sanatı) genel olarak Bilgisayar Bilimleri ile ilgili kitaplar alma düşünebilirsiniz.

PHP, Python den C / C + + için sözdizimi daha benzer, ancak Python öğrenmek için daha kolay ve daha modern.

Windows üzerinde iseniz, Java, C # deneyin ya değilse isteyebilirsiniz. Bu dillerin her ikisi de bir C + + tarzı sözdizimi var ama C + + öğrenmekten daha kolaydır.

"Çapraz platform" biraz çok genel. , Tam olarak platformlarda ne yapmak istiyorsun?

Silverlight ve Flash / Flex gibi zengin internet platformlar kesinlikle çapraz tarayıcı, Windows ve Mac dışında tarayıcı çalışacaktır.

Eğer herhangi bir ortamda kullanabileceğiniz bir programlama dili istiyorsanız, C + +, Python, Ruby ve Java (C # Mono dikkate istekli iseniz de) kuvvetli seçenek, ama bu birinde yazmak bu kodu garanti etmez platformu diğer platformlarda da (ya da hiç) çalışacaktır. Sorun çok vb işletim sistemi, platform-özel kütüphaneler, kullanıcı arayüzü platformları, Taşınabilirlik zordur, ve muhtemelen son derece paralel programlama gibi geliyor sorunlara baktığınızda kolay almazsınız için arabirim olarak dil değildir.

Çapraz platform neden önemli olduğunu tam olarak söyleme; bu da seçim şekli olabilir. Belirli bir uygulama veya hizmet türleri? O da çapraz platform olarak gerçekleşmesi ister belirli araçları? Uygulama kodunda, altyapı kodu, platform kodu ile ilgileniyor musunuz?

Benim kişisel önyargı C # ve. NET doğru değildir. . NET sonraki sürümü bazı müthiş paralel programlama araçları ve büyük ölçüde geliştirilmiş parçacığı modelini sahip oluyor. WPF ve Silverlight grafikler ön heyecan verici, ancak DirectX veya OpenGL çok daha yüksek düzeyde, bu yüzden hedeflerinize çok bağlıdır.

Flex, Flash, and the AIR Platform could be your best bet.
Failing that, mastering the Mozilla XUL Platform might be the way to go.

Her iki platform zaten çapraz platform vardır ve yalnızca bir kez uygulama oluşturmak gerekiyordu ve bu platformu destekleyen tüm işletim sistemi üzerinde çalıştırmak gerekir (Mac, Windows, Linux, ve daha fazlası)