Neden bir masaüstü programlama dili olarak PHP kullanmayın?

13 Cevap php

this question yanıt olarak, Eminim birçok kişi PHP masaüstü programlama için iyi bir seçim olmadığını itiraz edecek değilim, ve bunun yerine Ruby veya Python gibi bir şey tavsiye ederim. Ben bu yüzden bir tartışma için ilginç olacağını düşündüm.

Kenara PHP genel olarak iyi bir dil, ne (web geliştirme aksine) iyi bir masaüstü programlama dili için kriterler olup olmadığı konusunda argümanlar?

13 Cevap

Sen "PHP genel olarak iyi bir dil olup olmadığı ile ilgili tartışmalar bir yana" demek - ama bu konuda dönüm noktası olduğunu düşünüyorum. not iyi tasarlanmış olduğu için - bu web araçları (inline HTML, iyi Apache entegrasyonu, yerleşik MySQL desteği, vb) mevcut bir yığını ile iyi entegre çünkü PHP web geliştirme dili olarak popüler oldu içeri çalışmak kolaydır dil (Bu arada, değil.)

Uzakta web almak ve masaüstü geliştirme için PHP kullanıyorsanız, ne kaldı? Masaüstü Arabirimlerinden ve standart bir kütüphane korkunç bir karmaşa için hiçbir desteği ile zayıf yazdığınız, tutarsız özellikli bir dil. Çünkü it just doesn't make sense İnsanlar PHP bu şekilde kullanmayın.

PHP web uygulamaları yaratmak için tasarlanmıştır. Onu kullanarak masaüstü uygulamaları oluşturmak için technically mümkün olsa da, gerçekten yuvarlak bir delik kare peg uygun köşelerini zımpara ediyoruz.

Bir hedef olarak masaüstü ile tasarlanmış çok programlama dilleri vardır, sadece bunun için anlamı olmayan bir dünyaya PHP denemek ve ayakkabı çekeceği için mantıklı değil.

Perspektif için: PHP benim işim

Masaüstü uygulamaları için PHP:

Bir web uygulaması performansı ile masaüstü uygulamasından dağıtım kolaylığı.

Bu basmakalıp bir cevap gibi geliyor, ama insanlar bir masaüstü programlama dili olarak PHP kullanmayın, çünkü çoğu insan bir masaüstü programlama dili olarak PHP kullanmayın nedeni olduğunu düşünüyorum.

PHP kullanarak GUI masaüstü uygulamaları etrafında çok güçlü bir topluluk yoktur, Anlamı - Bu bir geliştirici, o yardım için gidebilirsiniz kaynaklar mevcut olacak araçları etkileyecek ve bir şirket ya da ticari bir çaba, olacak ek programcılar için olacak araçlar çok niş seti ile çalışmak için gerekli skillsets sahiptir.

$language_under_consideration Ben daha kolay istediğiniz işi mi $other_language?

Örneğin, ben şipşak DB iş için büyük olmak için mysql php arayüzleri buldum. Gerçi Windows üzerinde bir GUI uygulaması için php yazmak istemiyor ediyorum ....

Bu web programlama doğru tamamen yiyecek ve içecek, ve masaüstü programlama için gerekli araçlara sahip olurken iş için çok daha yetenekli, daha verimli diğer dillerde vardır çünkü.

Ben zorunda olduğumda ben sadece bunu kullanabilirsiniz ben şahsen dil ilkeler bir çok sevmiyorum.

Bu hedef platform üzerinde varsayılan olarak yüklenir? Eğer değilse, o zaman kabulü daha fazla sürtünme var çünkü.

Ben şaşırdım kimse bu söyledi. Bu müşteriler genellikle sormak için ne çünkü bir web geliştiricisi olarak, ben sadece PHP kullanabilirsiniz. PHP: Onlar herhangi buldukları hosting ve tüm web hosting paylaşımında ortak bir paydası dağıtmak istiyorum. Ayrıca, biz zaten PHP ile yazılmış siteler düzeltmek zorunda kurtarma misyon tarzı kodlama bir sürü yapmak. Dürüst bir geliştirici ciddi web geliştirme için iyi bir vicdan, bir platform olarak PHP tavsiye edemez gibi. I any projesi, web ya da masaüstü için PHP tercih asla. Python masaüstü uygulamalar için oldukça büyük. Bu, PHP daha dinamik, daha aklı başında, daha üretken oluyor.

Performans masaüstü yazılımı benim kriteridir. Ama masaüstü yazılımları birgün ölecek inanıyorum :)

  1. Eğer bir GUI uygulaması yapıyorsanız, PHP çok uygun değildir. PySide ile (1) NET / Mono veya (2) Python (QT) düşünün. Aşağıya bakın.
  2. Eğer büyük bir arka-uç kurumsal uygulama yapıyorsanız, PHP uygun değildir. Ağır takım için daha alışık olduğu C # veya Java gibi yapılandırılmış bir dil gerekir. Burada bir Python veya PHP. Ancak Java ve C # / Mono Windows bağımlı doğanın ağır ön-uç GUI sakının. (Verimli takım programlama kendisi tarafından bir bütün bilim dalıdır.)

However.. In terms of small or medium-sized desktop scripts or engines, with no GUI (ie, automation scripts, etc) then PHP is actually very strong.

Main reason to use PHP for desktop scripting: Training the IT department on the script is half the battle. Unless you are also the IT department (hopefully you aren't), you will find it hard to have this script run on any Windows and Linux computer if you use the common desktop languages like .NET. The libraries and dependencies needed for other languages make them problematic to use across a large set of computers with different operating systems.

Bu temel pratik sebebi. Burada daha fazla / detaylar:

  • MySQL ve veritabanları kolay erişim: PHP hızlı veritabanı komut ile harika.
  • Vb HTTP, FTP, MD5, web kütüphanelerin bir sürü kolay, taşınabilir erişim
  • Şaşırtıcı çapraz platform ve dağıtmak kolay: tüm işletim sistemleri üzerinde çalışacak değil sadece, ama o senaryoyu paketlemek için çok kolaydır. Sık sık Hatta sadece PHP klasörünü kendisi kopyalayabilirsiniz. Why is this critical? o programmers are not IT aklınızda tutun. BT personeli 02:00 ve 2005 yılında yazdığı kodu bir sunucu göç ne olur. NET 2.0, çünkü bazı bağımlılık eksik veya eksik DLL kilitleniyor? Şahsen, bu çok yaygın buldum. PHP daha iyi bir ifade olmadığı için "iyi kapsüllü" olduğunu birkaç langauges biridir.
  • Betik konusunda çok hızlı geliştirme zamanı.
  • PHP Yürütme hızı yavaştır, ancak veri ton işleme sürece bu pek fark edilir. Script veri çeşit işlemek için günde bir kez çalışıyorsa, kimse C + + yazarak kaydettiğiniz 400ms özleyeceğim. Eğer yıl yazma başına kendi zaman 5 saat kaydedebilir ve PHP kullanarak bu senaryoyu koruyarak ve bu nedenle koduna Yorum eklemek için daha fazla zamanınız varsa henüz, daha iyi imho olduğunu.
  • PHP gevşek yazıldığında da, error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); set ve başlatılmamış değişkenleri bulabilirsiniz. Python da gevşek yazdığınız ve birçok kullanım (Dropbox Python yapıldı) ben burada argüman görmüyorum olmasıdır. Bu PHP dilinin daha tutarsızlık var.
  • Çoğu harici PHP kütüphaneleri de son derece taşınabilir ve çapraz platform vardır.
  • Size yardımcı programcıları bulmak için düşük maliyetli. PHP programcıları bulmak kolay ve işe nispeten düşük maliyetli vardır. Kişisel projeler için ve iş yerinde, hem bu bir fark yok. Işte, ben sık sık PHP otomasyon araçları yapmak için insanların işe ve kendime zaman kurtardım. Bu diğer dillerde daha pahalı olabilir.

Aside from arguments about whether PHP is a good language overall, what are your criteria for a good desktop programming language (as opposed to web development)? Spoiler: Use .NET/Mono (mono is a cross-platform version of the .NET language) and code in MonoDevelop IDE to ensure your app stays cross-platform from day 1. For Mac, often you will need to tweak things since it's a little different, but you can work with .NET using Xamarin Mac (which is based on Mono but allows MacOS interface components): http://xamarin.com/mac

Mono / C # nedeniyle bağımlılık yükü yeterince yalın değilse, PySide ile Python içine bakmak. Python (Dropbox gibi birçok popüler uygulamalar kullanabilirsiniz rağmen) çok yavaş ise C + + ve (Skype ve diğerleri tarafından kullanılan) QT çerçevesini kullanmak. Ben bile hala varsa Delphi, başka iyi bir seçenek olabilir hatırlıyorum.

Akılda tutulması gereken şeyler:

  • % 50 zaman, sonuçta bir hizmet veya komut satırı aracı olarak çalıştırmanız gerekir. Bu durumda eğer çok erken sizin arka ucundan GUI mantığı ayrı. Ayrıca otomatikleştirilmiş test durumlarda yapmanıza olanak sağlar.
  • Bu (Notepad + +, Dropbox, Gtalk gibi) bir kitlesel dağıtılan program ise ana şey çapraz-platform bir kullanıcı deneyimi iyidir. Mac ve Windows kullanıcıları ile rahat bir hızlı yükleme uygulaması var mı? Veya uygulaması başlatıyor bir tepeye bir kamyon kadar itme gibi hissedeceksiniz?
  • NOT: Çoğu kişi Windows kullanmak bu yana, genellikle sadece C # veya VB.NET kullanın ve bir Windows uygulaması yapmak mantıklı.
  • Programlama hızı. Onlar çok uzun sürebilir, çünkü çoğu proje başarısız. Hiçbir kullanıcıları daha mutlu Windows kullanıcıları var ve bu iyi. Gerçek, C # veya VB.NET yarım zaman çoğu insan için çalışan büyük bir uygulama yapalım. Ve Mono ile diğer işletim sistemlerinde liman muhtemelen bunun çoğu yapabilirsiniz. Belki de performans açısından veya genel olarak en iyi en hızlı # 1 değil, ama C + + kodlama çok uzun sürebilir.
  • Dağıtım / montajcılar yarısı savaş vardır. Bir uygulama sadece bazı tuhaf kütüphanesi olmadan XP kilitlenmesine gerçekleştirmek için, Win7 64 bit tamamlanmış olacak kaç kez şok olur. Web aksine, sizin app tüm işletim sistemleri ve hizmet paketleri ile çalışır sağlamak gerekir. BÜYÜK AĞRI! İpucu: Eğer taze, Windows yükler kapalı dönmeye izin GoGrid gibi bulut hizmetlerini kullanarak test taze yükler.

Ben iç kullanım ve kütle-dağıtıma yönelik, tüm bu dillerde tam uygulamalar yapmış ve bu 2cents olduğunu.

Ben web uygulamaları hızlı gelişimi için PHP kullanarak büyük bir savunucusu değilim. Bu, öğrenmek kolay zaten çoğu sorunlarını çözmüş diğer kullanıcıların büyük bir topluluk vardır.

Ancak diğer kullanıcılar sözü ne ek olarak aynı zamanda PHP zaten açıkları çokluğu düşünebilirsiniz (http://www.securityfocus.com/vulnerabilities).

Bu bazı şeyleri ele ve belki Adobe AIR ile görmek ne benzer bir şey paketlenmiş olsaydı, masaüstü uygulaması üretim için iyi bir temel olabilir.

Eğer web ortamı dışında bir programlama dili olarak kullanmak için gidiyoruz eğer PHP yeni perl olduğunu. Ben uygulamalar yazma olmak için gidiyorum, ben decient çevre 3. parti uygulamalar olmadan çalışmak istediğiniz, hata ayıklama php programları bir ağrı olabilir.

Ben sadece farklı kütüphaneler, web veya masaüstü uygulaması için PHP kullanarak herhangi bir fark görmüyorum. Qt ve GTK +, PHP için availables ve birisi böyle bağlamaları yazmak için zaman aldı eğer birisi masaüstü için bunu kullanıyor daha fazla anlamına gelir.

Geçerli bir alternatif yok çünkü benim görüşüme göre, web PHP başarısı: PHP daha az kötüdür başka bir deyişle söyledi. Masaüstü Dünyada bu kadar şanslı değil ve ben şahsen PHP önce diğer dillerde ton seçeceğiz ... güçlü contendents ile rekabet etmelidir.