Merhabalar, ben uzun süredir PHP ile orta ölçekli projeler geliştiriyorum. İhtiyaçlarımı çoğu zaman karşılayan bir dil PHP. Fakat PHP'de artık çok fazla derinlik göremiyorum. Öğrenecek pek fazla birşey kalmadı. Bu yüzden Java'ya geçmeyi düşünüyorum uzun zamandır.

Bir dili öğrenmenin iyi yolu öğrenilecek dil üzerinde uygulama geliştirmek olduğunu düşünüyorum. Daha önce java ile XSLT XSD v.b teknolojiler yanında, bir çok kaynaktan farklı formatlarda xml parser eden bir uygulama geliştirdim. Bu süreçte PHP'de 3 günde testleriyle birlikte yazdığım uygulamayı sanırım 3 hafta da felan geliştirmiştim(Aradan 2 yil felan geçti). Aynı zamanda PHP ile 400 satırda bitirdiğim işi java ile 2000 satır kod ile bitirdiğimi hatırlıyorum.

Burada Java'da gördüğüm kodun çok dallanıp budaklanması ve koda hakimiyetin zor olması oldu. (O benim tecrubesizliğim olabilir) Bu tecrube Java'da kod yazmanın zaman bakımından PHP'den daha uzun sürebileceğini düşündürdü.

Tabiki dillerin farklı kullanım alanları vardır. Bunu biliyorum, ihtiyaç neyse ona göre dil, teknoloji belirlenerek ilerlenir.

Özetle siz ne düşüyürosunuz? Uygulama geliştirme sürecinde Java biraz daha fazla mı zaman harcatır? Bu konuya takılmamalı mıyım? Fikirlerinizi belirtirseniz çok sevinirim.

soruldu: 11 Nis '14, 06:45

blue-code's gravatar image

blue-code
835812
cevap kabul oranı: 0%

değiştirildi: 11 Nis '14, 10:10

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183

"Bir dili öğrenmenin iyi yolu öğrenilecek dil üzerinde uygulama geliştirmek olduğunu düşünüyorum." Kesinliklikle katılıyorum.

(11 Nis '14, 08:03) ismailkocacan ismailkocacan's gravatar image

Uygulama geliştirme sürecinde Java biraz daha fazla mı zaman harcatır?

Her iki dilde C/C++ ailesinden, her ikisinde de nesneye yönelik program yazabilirsin. Yazdigin kod nesneye yönelik tekniklerle gelistirilmis ise, o taktirde her iki dilde de yazacagin kod hemen hemen ayni olacaktir. PHP bünyesinde Java'da oldugu gibi cok fazla cati (framework) oldugunu düsünmüyorum. Bu yüzden Java dünyasinda yazdigin kod miktari bu catilari kullandigin taktirde daha da azalacaktir.

Ama yine de bu sorunun en iyi cevabini sen verebilirsin. Bunun icin Java'yi ögrenmen ve iki dili kiyaslayabilecek seviyeye gelmen gerekiyor. Sonuc itibari ile ne tür projeler yaptigini sen biliyorsun ve hangi dilin daha uygun olduguna sen karar verebilirsin.

permanent link

cevaplandı: 11 Nis '14, 10:09

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

çok saolun hocam.

(11 Nis '14, 15:24) blue-code blue-code's gravatar image

Biraz daha tekniğine inersek Java'da daha dağıtık bir yöntem izlenebilir. Her parçayı başkası yazar. Build toollar bu konuda çok iş görüyor (örn maven). Ama php'de böyle bişeyle hiç karşılaşmadım. Her modülü başkası yazsın gibi bir yapı kurulabilir ama bu çok zor. Standartları iyi belirlemek gerekir. PHP'de composer var ama o sadece dependency management işini görüyor. Maven gibi bir build tool değil. Bu anlamda PHP dağıtık şekilde geliştirme konusunda Java kadar başarılı değil gibi geliyor bana.

OOP konusuna gelince Javada herşey çok belirgin. Herşeyin bir mantığı ve sebebi var. Örneğin main metodu neden static? Çünkü bir başlangıç noktası olması gerekiyor ve bu başlangıç noktası uygulama ömrü boyunca var olması gerekiyor. Bu yüzden static. Neden static metod static olmayan bir metoda erişemez? Çünkü static metod class initialize olmazken vardı ama static olmayan metodun var olabilmesi için classın initialize olması gerekiyor. Ayrıca static bir main metod olmadan uygulama başlamaz. Ama PHP öyle değil. Binbir çeşit uygulama başlatma yöntemi geliştirebilirsin. Yani başlangıç noktasını bile sen belirlersin ve bu bir standarda bağlı değildir. Ayrıca her programcının farklı yöntem kullanması işleri daha da zorlaştırır. Yeni bir programcı gelse o yönteme adapte olurken zorlanabilir. Konudan biraz sapmış gibi oldum ama OOP'un sadece tip tanımlama ve static konusundaki farkları açıklamaya çalıştım. Ama diğer şeyler benzer. private, public, protected falan filan bunlar aynı. PHP 5.3 ten sonra Namespace mantığı da geldi. Javadaki package mantığı gibi sayılabilir. Bu yönlerden pek farkı yok. Javadaki gibi reflection olayı phpde de var ve bu iyi bişey.

PHP de birsürü library var. phpclasses.org, pecl, pear, composer vs vs vs aradığın şeyi rahatlıkla bulabilirsin. Javada da aynı şekilde. Maven repository ye giriyosun ve lazım olan ne varsa alıp kullanıyosun. Library konusunda sıkıntı yok ama PHPde aynı işi gören farklı librarylerden hangisi en iyisi bunu bilemezsin. Library seçimi konusunu ya hislerinle ya tecrübelerinle yada internetten uzun araştırmalar sonucu yapabilirsin. PHP bu konuda bazen vakit kaybına sebep olabilir. Ama Java öyle değil. Tamam onda da aynı işi gören birçok library var ama hangisinin daha iyi olduğunu öğrenmen daha kolay. İnternetten kısa bir araştırmayla bile bulabilirsin.

Belki de çok havada oldu bu cevap ama kısaca 6 yıllık PHP ve 3 yıllık Java Developer olarak şunu diyebilirim ki büyük projelerde Java küçük ve orta projelerde PHP kullan kardeş. Orta ve büyük projelerde TDD ve OOP, üçbeş günlük projelerde ise spagetti yaz geç gitsin. Eğer daha sonra geliştirme yapmayacaksan spagetti, geliştirme yapacaksan OOP.

permanent link

cevaplandı: 11 Nis '14, 11:09

kodmanyagha's gravatar image

kodmanyagha
3.1k132852
cevap kabul oranı: 15%

değiştirildi: 11 Nis '14, 11:13

PHP web uygulamalarına özelleştirilmiş bir scripting dili. Bu nedenle web development'a yönelik içinde çok fazla built-in fonksiyon bulunur ve bir çok eklenti yüklemeye hazırdır. Java ile geliştirme yapmak istediğinizde ihtiyacınıza en uygun çatıları ve kütüphaneleri bulup projenizde kullandığınızda çok değişiklik olacağını düşünmüyorum. Basit bir örnek olarak PHP json fonksiyonlarıyla, Java için geliştirilmiş gson kütüphanesini örnek verebilirim sanırım.

PHP ile geliştirmeye başlanırken genelde çatılar ihmal edilir. Sanırım kolay öğrenilebildiği için topluluğunun da büyük kısmı bilgi seviyesi olarak pek iyi durumda değil(Türkçe gruplardaki kendi gözlemim). Bu nedenle Laravel, zend, codeigniter gibi bir çok çatıya sahip olsa da Java ile web uygulaması geliştirirken çok daha fazla çözüm ve çatı bulabilirsiniz.

PHP'de fazla derinlik görememeniz aynı tür projelerle uğraştığınız için olabilir mi?

permanent link

cevaplandı: 11 Nis '14, 10:50

baran's gravatar image

baran
2.1k81939
cevap kabul oranı: 30%

Evet aslında söylediğiniz gibi, php yazanlar kendini geliştirmeye ve detaylara pek dikkat etmiyor. Aynı projeler de çalışmakta söylediğiniz gibi etkiliyor fakat daha çok kastettiğim farklı yaklaşımlar. Mesela java'nın kendine has tasarım kalıpları bulundurması. Yani biraz kafa açacak teknolojilerle uğraşmak istiyorum. PHP taraflı yaşayacağım sorunların her birine çözüm üretebilirim, dil cevap verdiği sürece. Farklı frameworkler de öğrenmenin bana pek birşey katacağını düşünmüyorum şu saatten sonra. (2009 dan bu yana farklı frameworkler ile çalışıyorum)

(11 Nis '14, 11:52) blue-code blue-code's gravatar image

Java 'da proje büyüdükçe, kaynak kodların karmaşıklaştığını, gereksizce uzadığını ve okunabilirliği epey düşürdüğünü okumuştum bir yerden.

permanent link

cevaplandı: 11 Nis '14, 15:36

kagan's gravatar image

kagan
1.2k61323
cevap kabul oranı: 7%

yanlış okumuşsun :)

(11 Nis '14, 15:41) kodmanyagha kodmanyagha's gravatar image

Bu yazılımın nasıl geliştirildiğine bağlı biraz da.

(12 Nis '14, 03:03) omerozkan omerozkan's gravatar image

İyi bir yazılım çatısı ile bende tam tersini rahatça söyleyebilirim.

(19 Nis '14, 15:40) Turgay Can Turgay%20Can's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×168

Soruldu: 11 Nis '14, 06:45

Görüntüleme: 1,416 kez

Son güncelleme: 19 Nis '14, 15:40

powered by BitNami OSQA