Bundan 15-20 sene önce tüm yazilimlarimizi kendi elimizle yazardik. Bunu yapmaya zaten istesek de istemesek de mecburduk. Ancak bu yolla yazip cizdigimiz seylere hakimdik.

Sonra yazilimcinin isini kolaylastiran binlerce yeni program üretildi.

Ardindan Eclipse gibi devasa platformlar olustu. Bugün herseyi tabiri caizse "dügmeye basarak" ürettiriyoruz.

Benim merak ettigim su:

Yeni metod ve araclarla kaybettigimiz seyler var mi?

Eski dünyanin ciddi ve sorumlu, yazilima hakimlik durumunu yeni dünyanin "imkanlariyla" en iyi nasil birlestirebiliriz? (Burada sanki kapatilmasi mümkün bir acik var.)

Tembellikten ve ciliz düsünce ve yazilimlardan nasil kurtulabiliriz?

soruldu: 12 Haz '13, 03:27

cakiral's gravatar image

cakiral
1.7k224351
cevap kabul oranı: 18%

değiştirildi: 15 Haz '13, 01:19

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Code generator bence surekli tekrar eden isler icin gerekli. Ornegin bir proje gelistiriyorsunuz 100'un uzerin veritabani tablosu icin JPA Entity modelleri olusturacaksiniz, 100 veritabani tablosu icin elle sadece getters ve setters yazmak bile iskence gibi oluyor, hele bir cok veri alani bulunan buyuk tablolarda is daha da cetrefelli oluyor. Eclipse veya Netbeans JPA Entity araclari ile veritabanindan entity modelleri olusturmak burda programciyi bir gunluk angarya isten kurtariyor. Zaten generator'un olusturdugu kodlar yine elden gecmek zorunda, veritabani tablolalar arasi iliskiler ve degisik duzenlemeler icin vs.

permanent link

cevaplandı: 02 Tem '13, 03:30

CemIkta's gravatar image

CemIkta ♦
19.9k29125190
cevap kabul oranı: 36%

Bu konuya değişik yönlerden yaklaşmak lazım.

  • Meta-Programlama macro yoluyla ön işlemciye (Örn. C ya da C++'daki preprocessor) kod yazdırtmak
  • Meta-Programlama Şablon (C++)/Generics (C#, Java) yöntemiyle derleyiciye ya da yorumlayıcıya kod yazdırtmak,
  • "Kod yazım şekliyle" dil ya da kütüphaneye reflection yoluyla kod enjekte ettirmek (örn. Rails MVC'de controller sınıfı ve resource yaratınca tüm CRUD işlemlerinin otomatik oluşması)
  • Bir geliştirme aracına belli bir dil kullanarak başka dilde kod ürettirtmek (örn. bison, google-protocol buffers)
  • Bir geliştirme aracına basit parametreler vererek kod yazdırtmak

Hepimiz bunları zaten yaptık, yapıyoruz, yapacağız. Aslında yeni metod dediğimiz kod üreteçleri ve dil çeviricileri bence eskiden beri büyük projelerde kullanılıyor, çünkü @CemIkta'nın da bahsettiği geniş tasarımlı projelerin koda dökülmesinde bu tip araçlar sadece gerekli değil, şart.

permanent link

cevaplandı: 03 Tem '13, 01:36

nurettin's gravatar image

nurettin
2.2k2441
cevap kabul oranı: 14%

değiştirildi: 03 Tem '13, 01:40

Profesyonelmisin? Daha açık bir ifade ile, bir dil üzerinde minimum 5 yıldır falan uğraşıyor ve o dil ile ciddi projeler geliştirdinmi? Eğer bunlara cevabın evet ise, o zaman kestirme yollardan faydalanabilirsin. Öyle değil, daha birkaç yıl oldu, ciddi projem yok, kestirmeden sonuca varmak istiyorum dersen, kendini kandırırsın.

Kaybettiğimiz şey daha derin, low level uygulama kapasitemiz düşüyor. Daha çok kullanıcıya yakın çözümler üzerine çalışıyoruz. Örneğin, daha alt seviyede işletim sistemi ile çalışabilecek kodlar yazmaktan uzaklaşıyoruz.

permanent link

cevaplandı: 01 Tem '13, 11:38

O%C4%9Fuz%20%C3%87elikdemir's gravatar image

Oğuz Çelikdemir
2.0k52234
cevap kabul oranı: 13%

Daha düşük seviye kod yazma kapasitesinin günümüz gereksinimlerini düşündüğümüzde ne kadar önemi var sorusu aklıma geldi? Şahsen, JEE yada .NET MVC yazan birisi için, bu kavramın düşündüğünüz kadar bir eksiklik yada gereksinim olduğunu düşünmüyorum.

(01 Tem '13, 12:45) Turgay Can Turgay%20Can's gravatar image
1

Söylediğim gibi, yeni jenerasyon daha çok son kullanıcıya hitap eden ürünler üzerine uğraş veriyor. Fakat, unutulmaması gereken, bu ülkenin düşük seviye uygulama geliştiren kişilere de ihtiyacının olduğu. Kısa bir örnek: Aselsan' daki yazılımcı arkadaşlar için MVC ne derece önemlidir sorusunun cevabı düşük seviye yazılımcı ihtiyacının gereksinimini ortaya çıkarır!

(01 Tem '13, 13:12) Oğuz Çelikdemir O%C4%9Fuz%20%C3%87elikdemir's gravatar image

Böyle bir gereksinim olduğuna nasıl karar verdiniz? Türkiye'deki en populer iş arama platformu kariyer dir. Basit bir arama ile bu ihtiyacınızı istatiklere dökelim.

Gömülü sistem yazılımcısı ihtiyacı Arama sonucunda toplam 33 kayıt bulundu. 1 - 33 arasındaki ilanlar: Java Arama sonucunda toplam 98 kayıt bulundu. 1 - 50 arasındaki ilanlar: C# Arama sonucunda toplam 37 kayıt bulundu. 1 - 37 arasındaki ilanlar: Asp[.]Net Arama sonucunda toplam 37 kayıt bulundu. 1 - 37 arasındaki ilanlar:

Düşük Seviye : 33 Yüksek Seviye : 172

Düşündüğünüz kadar ihtiyaç olmadığı ortada.

(01 Tem '13, 13:46) Turgay Can Turgay%20Can's gravatar image
1

Anladım, hayatı paraya endeksleme devreye girdi. Haklısınız!

(01 Tem '13, 14:02) Oğuz Çelikdemir O%C4%9Fuz%20%C3%87elikdemir's gravatar image

Benim herhangi bir parametrem yok istatiksel olarak söyleminizin karşılığının olmadığını belirttim. Sonuçta yazılım üretim işidir, üretmeyi seven bireyler zaten bu işi severek gönülden yaparlar.

Konu için ise; Kod generator yüksek seviye diller için bence gereklidir ve her IDE bu gereksinimi karşılıyor artık bu alışıla gelmiş tekrarlardan kurtulmayı tembellik olarak yorumlamak yanlış bir bakış açısıdır.

(01 Tem '13, 14:17) Turgay Can Turgay%20Can's gravatar image
1

@Oğuz Çelikdemir Derleyici bile yazarken örneğin BNF veya EBNF ile bison ya da yacc kullanılarak C kodu üretme yöntemine gidilebilir. Yani kod üretmenin düşük seviyesi yüksek seviyesi olmaz, her zaman ihtiyaç duyulabilir.

(03 Tem '13, 03:05) nurettin nurettin's gravatar image
1

@nurettin çok haklısın, bir daha okuyunca yorumlarımı olayları biraz karıştırmışım. Aslında söylemek istediğim, bu ülkenin ne tip yazılımcılara da itiyacı olduğu. Kod generated etme konusunda ben bugüne kadar çok fazla kullanmadım fakat emmet tarzı bir uygulama bile iş sürecini o kadar çok kısaltıyorki, bence yeni başlayanda, eski yazılımcılarda kullanabilir. İşin doğrusu, insanoğlu, yaptığı işin farkındaysa, ne ile ürettiğinin bir önemi yok. Fakat bir getter ile setter tanımının mantığını bilmiyorsa arkadaş hata yapıyordur!

(03 Tem '13, 03:12) Oğuz Çelikdemir O%C4%9Fuz%20%C3%87elikdemir's gravatar image
7 yorumdan 5 tanesi gösteriliyor hepsini göster

Bu tarz ürünlerin gelişmesindeki sebep yazılımcıları tembelleştirmek değildir zaten. Rutinleri otomatik hale getirerek yazılımcıya hız kazandırmaktır. Şöyle düşünün, büyük işlerle uğraşan yazılım şirketleri aldıkları işleri üretime dökerken zamandan kazanmalıdır. Bu sebeple her defasında aynı kodları üretmez, bir kütüphane oluşturur ve onu ilgili yerlerde referans alır. Bu tembellik gibi görünebilir ama her projede aynı kodu yazmanın anlamı yoktur. Aynı durum Eclipse gibi şirketler için de geçerlidir. Yazılımcının performansını arttırmak için elle yapılması gereken tanımlamaları kısa yollara bağlarlar, otomatik sınıf oluşturma menüsü ve kısa yolları üretirler, kodu refactoring işleminden çabucak geçirmek için akıllı IDE ler oluştururlar. Bunu bir kar yağışı gibi düşünürsek 10 15 sene önce yerde 2-3 santim kar vardı, ama artık boyumuzu çok çok aşmış bir yığın var. Bu yığında bizi boğulmaktan kurtaran akıllı IDE'ler var. Bana göre kaybedilen bir şey yok. Bu tür yazılımlardan kurtulmamıza da gerek yok çünkü bu gelişimler zaten bizi birçok sıkıntıdan kurtarıyor.

Teşekkürler.

permanent link

cevaplandı: 01 Tem '13, 08:36

ucuncubayram's gravatar image

ucuncubayram
1.4k122840
cevap kabul oranı: 11%

Şimdi güzel bir örnek elime geçti. J2EE bu resmi gördüğünde, ne demek istediğimi gayet iyi anlayacak.

Aselsan, ülke içinde teknolojik anlamda ilk sıradaki firmalardan birisi. Fotoğraftanda gördüğünüz üzere, yaptıkları ürüne Windows işletim sistemini gömmüşler! Şimdi soru, Windows askeri bir üründe ne kadar güvenlidir? Hele hele, bu işletim sisteminin, yamalı bohçaya dönmüş sürümleri mevcut iken. Şimdi anladınmı J2EE, neden alt seviye programcıya da ihtiyaç olduğunu?

Buyrun Bakalım

permanent link

cevaplandı: 28 Tem '13, 09:46

O%C4%9Fuz%20%C3%87elikdemir's gravatar image

Oğuz Çelikdemir
2.0k52234
cevap kabul oranı: 13%

değiştirildi: 28 Tem '13, 09:46

Oğuz bey, benim düşük seviye programcılık önemsiz gibi bir söylemim asla olmadı :) Sadece istatiksel olarak Türkiye'de ihtiyaç olarak aranılan programcı tipinin bir analizi paylaştım. Benimde arkadaşlarım var ASELSAN'da, HAVELSAN'da Aydın Elektronik'te çalışan hatta çalıştığım şirkette C++ ile embeded yazılım geliştiren. Söylemimi hala anlayamamış olmanıza şaşırıyor ve attığınız bu postu tebessüm ile karşılıyorum :)

(28 Tem '13, 10:03) 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:

×58
×10
×2

Soruldu: 12 Haz '13, 03:27

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

Son güncelleme: 28 Tem '13, 10:03

powered by BitNami OSQA