Java Ayrıcalığı

By-CyL1nD3r

Uzman üye
1 Eyl 2008
1,485
14
BuRs4
Java neden iyidir ? - 1
• Küçük cihazlardan büyük sistemlere kadar birçok
ortamda çalışır.
• Akıllı kartlarda (Smart cards)
• Gömülü cihazlarda (JStamp),
• Cep telefonlarında (Nokia, Ericsson, Motorola, .. vb),
• PDA (Palm, Symbian, Sharp),
• Diz üstü bilgisayarda, masaüstü bilgisayarlarda (MacOS,
Linux, Windows)
• Sunucularda (Unix, Linux)
• Kesintisizi sunucularda (non stop servers) (Tandem)
• Büyük bilgisayarlarda (Mainframes) ( IBM )

• Satıcı bağımsızlığı
• .NET bir pazarlama programıdır. Java pazarın kendisidir.
– James Gosling
• Java teknolojileri birçok satıcı tarafından
desteklenmektedir.
• Örneğin “Java Mesajlaşma Servisi (JMS) “
IBM, SpiritSoft , Fiorina , Swift , Open3 , JBoss gibi
çeşitli satıcılar tarafından desteklenmektedir.
• Bunun anlamı özgürlüktür. Yani siz tek satır kod
değiştirmeden, istediğiniz satıcının “Java Mesajlaşma
Servisini (JMS)” kullanabilirsiniz”
• Peki bu özgürlüğün aynısı Microsoft ürünleri için geçerli
midir ?
Java neden iyidir ? - 2

• Açık Toplum Süreci (Open Community Process)
• Java Toplum Süreci – JCP – (Java Community Process –
www.jcp.org ) , satıcılara, organizasyonlara ve bireylere Java
teknolojilerinin geleceğine katkıda bulunmak için bir ortam sunar.
• JCP ‘de bir çok konu bulunur.
– Real-time Specification for Java
– Mobile Game API
– JavaTM 3D API 1.4
– .....
• JCP herkes üye olabilir.
• Örneğin Mobile Game API de olması gereken özellikler veya
olmaması gereken özellikler burada oylanarak bir sonuca varılır.
• Bu sonuç, belirtime (specification) dönüştürülür.
• Son olarakta bu belirtime (specification) sadık kalınarak çeşitli
üreticiler tarafından gerçekleştirilerek piyasaya sunulur.
• Bu belirtimlere sadık kalınmadan ilgili ürün üretilirse hukuki bir suç
işlenmis olur.
Java neden iyidir ? - 3

• Gerekli ortamın daha ufak olması.
• Java uygulamalarını çalıştırmak için gerekli olan
JRE’in (Java Runtime Environment) boyutu 8 MB’dır.
• .NET uygulamalarını çalıştırmak için gerekli olan
ortamın (.NET Runtime Environment ) boyutu ise 23.1
MB’dır.
• Binlerce makinanın bulunduğu bir şirkette, bu
ortamların güncel sürümlerini tüm makinalara
yüklemek istersek, ortamın boyutu ciddi sorunlar
oluşturabilir.
Java neden iyidir ? - 4

• Ticari kalitedeki IDE ‘lerin (Integrated
Development Environment ) fiyatları
• Eclipse ve NetBeans IDE’leri ne tür yazılım (ticari
/ akademik) geliştirirseniz geliştirin bedavadır.
• JBuilder and JDeveloper IDE’leri akademik
yazılım projeleri için bedavadır.
• Visual Studio.NET fiyatı ise 500$ civarlarındadır.
Java neden iyidir ? - 5

• Gelecek Güvencesi - 1
• Java gelecek sürümlere uyumluluktan öte gelecek güvencesi
verir.
• İspat : 1997 yılında yazılan bir program, bügün tüm VM’lerin
(Sanal Makina – Virtual Machine) üzerinde sorunsuz bir
şekilde çalışır.
• Fakat aynı güvence Microsoft teknolojileri için söylenemez
(bkz .NET)
• Canlı bir örnek olarak VB 6’ya olan desteğin kesilmeseni
gösterebiliriz.
• DNA, Microsoft’un iptalinden önce kaç sene piyasa da kaldı ?
Java neden iyidir ? - 6

• Gelecek Güvencesi - 2
• Java’nın eski sürümlerini (Java 1.0.2 ye kadar) Sun Microsystems’in
sitesinden indirebilirsiniz.
• Peki Microsoft, Visual C++ ‘ın eski sürümlerini size verebiliyor mu ?
Para verseniz bile bu eski sürümleri Microsoft’dan temin edemezseniz.
• Örnek :
• Visual Studio .NET 2003, sadece .NET 1.1 sürümünde çalışacak olan
kodu üretir.
• Visual Studio .NET 2002 ise sadece .NET 1.0 sürümünde çalışacak
olan kodu üretiyor.
• Yani kısacası siz .NET 1.1 sürümünü kurup Visual Studio.NET 2002 ile
uygulama geliştiremezsiniz.
• Eğer geliştirtirmeye kalkarsanız Visual Studio.NET 2002 ürününü
sizden güncellemenizi isteyecektir.
Java neden iyidir ? - 7

• Google ve Kaynak olanakları
• İşte sonuçlar (19.05.2004 tarihinde yapılan
arama)
• Java , 71,100,000
• C# , 4,750,000
• Visual basic , 5,270,000
• Arama sonuçları Java’nın Visual Basic
‘den bile daha önde olduğunu
göstermektedir.
Java neden iyidir ? - 8

• Diğer Programlama Dilleri ile Uyum
• Java, diğer programlama dilleri ile uyumlu bir şekilde çalışır.
Örneğin Perl, PHP veya Python ile;
• Kısacası PHP Script’lerini alıp Java ile konuşturup Linux
üzerinde koşturabilirim. Görünenin aksine bu iş sanıldığı kadar
zor değildir.
• Bu iş yerel kütüphaneler (native libraries ) ile standart arabilirim
arasındaki uyumun sonucudur. (Ör : JNI – Java Native
Interface) .
• JNI dışında JSR-223 belirtiminide diğer diller ile ortak
konuşmayı sağlamaya yöneliktir.
[url]https://tik.lat/eNcUe

Java neden iyidir ? - 9

• Java ve Depolanmış İşlemler (Stored
Procedures)
• Java‘yı kullanarak Oracle, DB2 ve Sybase için depolanmış
işlem yazabilirsiniz.
• Bunun için Oracle, DB2, Sybase ve Informix tarafından
desteklenen SQLJ kullanılabilir.
• .NET ortamında deponlamış işlem yazmak için TSQL
kullanmanız gerekli. TSQL, C# veya VB.NET’ den çok farklı bir
yazılım şekline sahiptir.
Java neden iyidir ? - 10

• Milyonlarca Java uyumlu cep telefonu...
• Bugün yaklaşık 250 milyon adet Java uyumlu cep telefonu piyasaya
sürülmüştür.
– 250 milyon adet Java uyumlu cep telefonu
– Bu telefonlar üreten 31 adet üretici
– 77 operatör ile Java bu sektörün lideridir.
– Bkz:
https://tik.lat/2Znkr
• Bunun karşılık .NET ortamında çalışan cep telefonu bulmak çok
zordur.
Java neden iyidir ? - 11

• Milyonlarca Java uyumlu cep telefonu... -2
Java neden iyidir ? - 12

• Büyük Yazılım Projelerinin %75 Java ile
Geliştiriliyor.
• Avrupa Finansal Enstitüsü yaptığı araştırmada büyük yazılım
projelerinin %75 inin Java teknolojileri kullanılarak geliştirildiği
ortaya çıkmıştır.
• Bir başka ankette bu sonuçları doğruluyor.
https://tik.lat/603d3
• Büyük projelerde en fazla kullanılan uygulama sunucuları
(Application Server) ise IBM ve BEA fırmalarına ait.
Java neden iyidir ? - 13

• Akademisyenlerin ve Araştırmacıların Bakış Açısı
• Java teknolojileri sadece üniversitelerde öğretilen bir ders
değildir.
• Java teknolojileri birçok araştırma ve geliştirme çalışmalarında
yoğun olarak kullanılmaktadır ve desteklenmektedir.
• UC Berkeley, Matt Welsh tarafından yapılan çalışmalar sonucu
Yeni I/O sistemi Java 1.4 sürümüne dahil edildi.
• Güney Avustralya Üniversitesi tarafından Java 1.5 ‘de gelecek
olan “Generic Java Language Extension” özelliği geliştirildi.
• Bunun yanı sıra CERN ve HEP gibi araştırma organizasyonları
kullanıcılar için Java projeleri geliştirip sunmaktadırlar.
Java neden iyidir ? - 14

• Java’da Zorunlu güncelleme ücreti yoktur.
• Sizce kaç tane Yönetim Bilgi Sistemi fırması, Microsoft’un
lisans ücreti politıkası yüzünden mağdur durumdadır ?
• Google ‘dan "how to a**** Microsoft's license 6"
şeklinde aratırsanız bu firmaların hiçde az olmadığını
anlarsınız.
• .NET bedava ama .NET kullanmak için Windows işletim
sistemine ihtiyaç duyarsınız. Bunun anlamı lisanslanmanız
gerektiğidir.
Java neden iyidir ? - 15

• Paralel sistemlerde ucuz fiyat
• Google‘ın başarılı olmasında ki sebep nedir ?
• Bu başarının sebeplerinden biri çokta maliyetli olmayan 10.000
adet sunucunun paralel bir şekilde çalışmasıdır.
• Yeni uygulama, tek ve güçlü bir sunucu almaktansa, ucuz ama
bir çok sunucu alıp bunları paralel bir şekilde çalıştırmak.
• Diyelim ki sizde bir çok sunucu aldınız ve .NET ortamında bir
proje geliştiriyorsunuz, bu durumda sizin lisanslanmanız
ortamda çalışan her bir sunucu başına olur.
• Google‘ın böyle bişey yaptığını düşünebiliyor musunuz ? 10.000
adet ufak sunucunun her biri için lisans ücreti vermek büyük
ihtimalle onları iflas ettirirdi.
• Java teknolojilerinde ise sizin iş modeliniz nasılsa, ona göre bir
çözüm bulabilirsiniz.
Java neden iyidir ? - 16

Java neden iyidir ? – 17
Sourceforge.net Projeler ve Programlama Dilleri

67 projects Eiffel
77 projects Ada
283 projects Ruby
778 projects TCL
1,259 projects C#
1,612 projects Javascript
2,999 projects Python
5,317 projects Perl
8,437 projects PHP
11,203 projects Java
12,762 projects C
12,765 projects C++
Java neden iyidir ? – 18
Sourceforge.net Projeler ve Programlama Dilleri

Java neden iyidir ? – 19
İş bulma konusu
Kaynak : www.dice.com [url]https://tik.lat/u0anj
magazine/features/salarysurvey/
https://tik.lat/ICTGS
gazine/features/salarysurvey/

Java neden iyidir ? - 20
• Türkiye’nin Geleceği
• Türkiye‘nin yazılım sektöründe yükselebilmesinin tek
yolu bağımsız teknolojiler kullanmasından geçer.
• Özgürce teknoloji üretmek için kesin olarak Java
teknolojilerini kullanamanız gerekmez.
• Ama .NET kullanmamamız gerektiğide ortadır.
• VB veya .NET ile geliştirilen ürünlerin satılması güzel
bir olay olabilir ama her zaman için Microsoft’a bir
bağımlılık söz konusudur.
• Bağımsız teknolojiler kullanarak üretim yapıp
Türkiye’nin kaynaklarının yurt dışına gitmesini
engellemek hepimizin başlıca görevi olmalıdır.
• Kısacası üretmeliyiz ama özgürce...
...



Java Basittir.
Java, kendisine yakın güçteki dillerin en basitidir. Örneğin, Java model olarak aldığı C++'tan çok daha kolaydır. C++'ın çok güçlü bir dil olduğu tartışılmaz. Ama C++ ve C# çoğu bir dilde bulunması çok da şart olmayan karmaşık bir çok özellik içermektededir. Bütün bu özelliklerin öğrenilmesi çok zaman alır. Oysa Java gereksiz çok fazla özellik içermez. Ve Java'da bir özelliğin öğrenilmesi ve kullanılması çok kolaydır. Başka dillerde çok zor yazılan işlemler Java'da çok basit ifadelerle gerçekleştirilebilmektedir.
Java'nin basitliği yanlış anlaşılmamalıdır. VisualBasic/ASP, Delphi/Pascal, Perl, PHP gibi dillerden ve ortamlardan daha basit değildir. Bu sayılan diller çok kolay öğrenilebilen, kısa zamanda yeterli düzeye ulaşılabilen dillerdir. Ancak bu dillerde yapılabileceklerin belli bir sınırı vardır. Bu dillerde büyük çaplı ve karmaşık işler yapamazsınız veya yapmanız durumda çok zorluk çekersiniz. Oysa Java programlamanın her dalında iddia sahibidir. Her geçen gün Java yeni bir alanda söz sahibi olmaktadır. Bu bağlamda 'basit' demek, 'çok gelişmiş işlemlerin basit bir şekilde yapılabilmesini sağlayan' demektir. Yoksa 'programcı bunu anlamaz' diye düşünülmesinden ötürü hiç bir özellik dışarda bırakılmamıştır.
Java Nesneye Yöneliktir.
Java tamamen (bazı kişilere göre %99) nesneye yönelik'tir. Diğer bazı diller gibi nesneye yöneliklik sonradan dile eklenmemiştir, başından beri Java'da bulunmaktadır. Bir Java programında olabilecek her şey ya nesnedir ya da bir nesnenin parçasıdır. Java nesneye yönelik programlamayı sadece mümkün değil aynı zamanda kolay kılmıştır. Java'da bir nesnenin yapılması, kullanılması, geliştirilmesi, başka bir yere aktarılaması çok kolaydır.
Java Dağıtıktır.
Java 'dağıtık' bir dildir. 'Dağıtık' birden fazla bilgisayarda çalışan programların bir biriyle uyumlu çalışabilmesidir. Bir yazılım parçasının bir kısmının bir makinede diğerinin başka makinede aynı anda çalışması mümkündür. Bu yüzden Internet'in dilinin Java olduğu söylenmektedir. Günümüzde tek bir makine üzerinde çalışan, başka hiç bir yerle bağlantısı olmayan uygulama kalmamış gibidir. Bir çok işletme Interenet üzerinden iş yapmaktadır. Bir çok işletmede birden fazla makine birbirine bağlı olarak çalışmaktadır. Bu yüzden Java dağıtık programlama için en uygun çözümlerden biridir.
Java Sağlamdır.
Java sağlam bir dildir. Programlamadaki hataların çoğu daha yazılma aşamasında anlaşılabilmektedir. Yazılma aşamasında anlaşılmayanlar, programın çalışması esnasında yakalanabilmektedir. Bir 'exception'la, programda hatanın ne olduğu, nerede olduğu ve hangi işlemi yaparken olduğu bile belirtilebilmektedir. Başka dillerin aksine çalışma esnasında bir Java programı "Bir hata oldu!" deyip çökmez. Bir çok durumda hataya rağmen program çökmeden çalışmaya devam eder. Hata olması durumunda da programı çalıştıranlar hatayı ayrıntılarıyla öğrenme olanağına sahip olur.
Java Güvenlidir.
Java güvenli bir dildir. Java diliyle virüs yapılamaz. Hiç bir virüs bir Java programına bulaşamaz. Bir Java programının yaptığı her hareket takip edilir. Kötü niyetli bir program, bir işlemi eğer izin verilmediyse yapamaz. Bu özellik, Internet gibi herkesin başkasının makinesine erişebildiği bir ortmada çok önemlidir. Java'yı güvenlik gereksinimi yüksek bir çok firma bu yüzden tercih etmektedir.
Mimarilere Yansızdır.
Sıradan kullanıcıların bildiğinin aksine dünya üzerinde bir çok işletim sistemi vardır. Hatta kullanıcın çoğunun iyi bildiği Windows işletim sistemi bazı bilgisaya alanlarında hiç kullanılmaz. UNIX/Linux, Apple Mac, IBM'in çeşitli işletim sitemleri dünya işletim sistemi pazarında büyük yer tutmaktadır. Bir çok masaüstü kullanıcısının tek bildiği işletim sisteminin, bazı sektörlerde adı dahi geçmemektedir. Java'da yazılan bir program hemen hemen bütün işletim sistemlerinde hiç değiştirmeye gerek duymaksızın çalışır. Diğer dillerde bu özellik yoktur. Hatta Windows'un bir versiyonunda çalışan program diğer bir versiyonda çalışmayabilmekte, bazen makinenin çökmesi gibi büyük sonuçlar bile doğurabilmektedir. Windows'u üreten Microsoft firmasının yazdığı programlar bile kendilerinin işletim sistemlerinin bazılarında çalışmamaktadır. Kendilerinin yazdığı belgelerde hangi işletim sistemlerinin hangi versiyonlarında hangi programlarının çalışmadığını belirtilmektedir. Bu durum bütün işletim sistemi ve bütün programlar için geçerlidir. Ürettiği yazılımların her platformda çalışmasını isteyen firmalar giderek daha çok Java'ya yönelmektedir.
Java Taşınabilirdir.
Java programları her ortamda aynı veya benzer bir şekilde çalışır. Her ortam/makine için ayrı bir program yazmaya gerek kalmaz. Programcı programın çalışacağı makinenin durumunu göz önüne almak zorunda kalmaz. Bir programın görüntüsü çalıştığı hey yerde hemen hemen aynıdır. C programları da hemen hemen her işletim sisteminde yeniden derlenmek suretiyle çalışabilir. Ama programcı bunun için hazırlık yapmalıdır. Bir işletim siteminde tamsayı -2^15 ile 2^15 arasında değer alırken diğerinde -2^31 ile +2^31 arasında alabilir. Ama Java bu farkları programcıya şeffaf kılar. Programcı her işletim sistemi ve her sürüm için ayrı bir program yazmak zorunda kalmaz.
Java Yorumlanır.
Java 'yorumlamalı' bir dildir. Yani bir Java programının komutları, çalışırken makinenin anlayacağı formata çevrilir. Java'da bu Java Virtual Machine (JVM) tarafından yapılır. Bunun avantajı bir programın kullanıdığı standart kütüphanelerin programla birlikte taşınması zorunluluğunu ortadan kaldırmasındır. Bir yorumlayıcı herhangi bir ortamda varsa, bir dildeki standart her özellik o ortamda var demektir. Programla birlikte bu kütüphanelerin de taşınması gerekmez. Bu da bir Java programının bir makineden başka makineye indirilmesini çok hızlandırır. Çünkü sadece programcının yazdığı nesneler yolculuk yapar. Applet'lerin çalışma prensibi budur. Ana makinede bulunan applet, tarayıcı tarafından kullanıcının makinesine alınır ve çalıştırılır. Java ortamı, yani JVM tarayıcının içinde mevcutur.
Java Yüksek Başarımlıdır.
Diğer dillerde olmayan bir çok özelliğe sahip olmasına rağmen, Java'da bunun için fazla bir performans kaybı yoktur. Java'nın ilk versiyonlarında çalışan programlar diğer dillerde yazılan eşdeğerlerine göre elbette yavaştır. Ancak Java'nın gelişmesiyle birlikte Java bu farkı, üstün özelliklerinde vazgeçmek zorunda kalmaksızın kapatmaktadır. En son Java sürümüyle birlikte JIT (Just-In Time-Tam Zamanında Derleme) teknolojisi devreye girmiş bulunlaktadır. Bununla birlikte Java programları, diğer dillerde en iyi yazılmış programların hızını hemen hemen yakalayabilmektedir. Java yapılması 'imkansız' gibi görüneni çok da fazla performans kaybına yol açmadan yapar.
Java'nın yavaşlığı en fazla eleştiri alan özelliklerden biridir. Bir programın hızlı çalışması, makinelerin hafıza veya işlemcisini terfi ettirerek çözülebilir. İşlemcinin ve hafızanın çok ucuzladığı günlerde, bu, bir işletme için pek fazla maddi bir yük değildir. Bir programcının sağlam, güvenli ve Java'nı sahip olduğu üstün özelliklere sahip program üretmesi daha fazla masraflıdır. Bir işletmenin, durup dururken bir programın makineyi çökertmesinden dolayı katlanacağı külfet az değildir. Programı yapanların bile hatayı anlamak için saatlerce bazen günlerce uğraşması işletmeye yine maliyet olarak yansıyacaktır. Bu kadar eleştiri almasına rağmen Java'nın giderek daha fazla yaygınlaşmasının elbette nedenleri vardır. Java'nın yavaşlığından sadece Java'yı bilmeyenler ve kullanmayanlar şikayet etmektedir. Ancak Java 'hızla' yayılmaktadır.
Java Çok Kanallıdır.
Java dili başından 'çok kanallıdır' (multi-threaded'dir). Çok kanallılık, bir programın aynı anda birden fazla işlemi yürütebilmesi demektir. Bir program herhangi bir şeyi beklerken arada başka bir işlemi gerçekleştirebilir. Beklenen olay gerçekleşince ilk işlem kaldığı yerden aynen devam ettirilir. Üstelik bunun için programcının fazla bir şey yapması da gerekmemektedir. Çok kanallılık bir çok dilde hiç yoktur. C++ gibi dillerde de dilin özelliği değil, ona sonradan eklenmiş kütüphanelerle kullanılabilmektedir. Ama Java'nın kendisi doğuştan çok kanallıdır. Bu yüzden çok kanallı program yapmak için en kolay dil Java'dır.
Java Dinamiktir.
Java'da bir programla kullandığı birimlerin (kütüphaneler,modüller veya sınıfların) birbirine bağlanması çalıştırma anında yapılır. Buna 'sonradan bağlama' (late binding) denir. Kullanılan birimlerin iç yapısı değiştirildiğinde, bu birimleri kullanan programın değişmesi gerekmez. Yeter ki birimlerin dışarıdan çağırma şekilleri değişmesin. Oysa C++ gibi dillerde herhangi bir değişiklikte (bu bir modülün iç yapısında çağıranları ilgilendirmeyen çok ufak bir değişiklik bile olsa) herşeyin yeniden işleme tabi tutulması gerekir. Buna da 'erken bağlama' (early binding) denir. Java'da late-binding bu özellik olmasaydı, Java kütüphanlerindeki her hata düzeltme ve değişiklikte dünyadaki bütün programları yeniden işleme tabi tutmamız gerekirdi ki bu mümkün değildir.
Sonuç
Java iyi bir programlama dilidir. Giderek yaygınlaşması, diğer dillerin giderek Java'ya benzemeye başlaması ve taklitlerinin çıkması da bunu göstermektedir. Java'yı tercih etmeyenler elbette olmuştur ve olacaktır. Ama buzdolabının bile Java bildiği bu dönemde bu dili hiç bilmemek, tümüyle yok saymak bilgisayar alanında var olmak isteyen insanlar için büyük bir eksiklik olacaktır.

Java Platform'u
Java Platform'u
Java sadece bir programlama dili değildir. Aynı zamanda bir yazılım platformudur. Java Platform'u işletim sistemi üzerinde çalışan, uygulamalara çok çeşitli servisler veren, bunu her işletim sistemi için standart bir biçimde başarabilen bir platformdur. Java Programlama Dili ise bu platform üzerinde yazılım geliştirmek için kullanılan programlama dilidir. O yüzden Java'yı öğrenmek sadece Java dilini öğrenmek demek değildir. Java platformu üzerinde çalışan farklı bir dil de üretilebilir. Ancak Java dilinin iyi bir programlama dili olması nedeniyle böyle bir ihtiyaç doğmamışır.
Java platformunun yapısı, daha önce benzer bir platform olmaması nedeniyle, özellikle başka dillerle çalışmış insanlara karmaşık gelebilir. Ancak Java, diğer dillerdeki, özellikle de C/C++ dilindeki "çözümsüz" veya "çözümü zor" konulara pratik çözümler üretmiştir. O yüzden başka dillerle profesyonel programlama yapmış olan insanlar sık karşılaştıkları bir çok sorunun Java'da çok kolay çözülmüş olduğunu görebilmektedirler. Bu bölümde bir Java programının çalışma biçimini, öncellikle diğer dillerde yazılmış programların çalışma biçimlerini gözden geçirerek inceleyeceğiz.
Derleme (Compilation) ve Yorumlama (Interpretation)

Programalama dili, insanla makine (bilgisayar) arasında iletişim kurmak için kullanılan dildir. Başka bir deyişle programcı bilgisayara, özellikle de işlemciye istediklerini yaptırmak için bir dil kullanır. Bu dil konuşma diline yakın bir dil olmalıdır ki insanlar rahatça kullanabilsin. Bilgisayar işlemcisinin dili ise sadece sayılardan oluşur. Bilgisayarlar sayısal (dijital) aygıtlardır. İşlemciler sadece belli sayılarla ifade edilen makine kodlarından anlar. Bu kodlardan oluşan dile 'makine dili' denir, üretilen koda da 'makine kodu' (machine code) denir. Bilgisayarın ilk dönemlerinde insanlar programlarını sayı kodları kullanarak yazıyorlardı. Bu kodlar her işlemci türü için değişik olduğundan, yazılan programlar sadece belli bir işlemci ile çalışabiliyordu. Hatta bir işlemci sürümü için yazılan kod bir önceki sürümde çalışmayabiliyordu. Bu yüzden 'programlama dili' kavramı ortaya çıkmıştır. Bu yapıda, programcı bilgisayarın yapması gerekenleri ona, konuşma diline yakın bir dille söyler. Bu dilde yazılanlar makine diline çevrilir. Böylece programcılar, hem işlemciminin kendine komut kümesini öğrenmek zorunda kalmazlar; hem de yazdıkları programlar birden fazla işlemciyle çalışabilir.

Programalama diliyle düz metin şekinde olan programa 'kaynak kodu' (source code) denir. Makine dilinde olan koda da "ikili kod" (binary code) denir. Programlama dilinden makine diline çevirme işi iki şekilde yapılabilir. Biri 'anında', ikincisi 'önceden'. Anında çevirmek, programa dilindeki ifadeleri bir yandan okuyup bir yandan makine diline çevirmek demektir. Buna 'yorumlama' (interpretation) denir. Önceden çevirme ise, programlama dilindeki ifadelerin çalıştırılmadan önce makine diline çevrilmesi, sonra da çalıştırılması anlamına gelir. Buna da 'derleme' (compilation) denir. Derleme'nin faydası daha hızlı olmasıdır. Çünkü makine diline çevirme sadece ve sadece bir kere yapılmaktadır. Yorumlama da ise her çalıştırmada çevirme işlemi yapıldığından daha yavaştır. Derlemenin zararı da, programdaki her değişiklikte önce derlemeyi sonra çalıştırmayı gerekli kılmasıdır. Sık değişiklik yapılan durumlarda bu, programcı için ciddi bir sorundur. Oysa yorumlama anında olduğu için, değişiklik de anında etkili olmaktadır. Perl, Basic gibi diller yorumlamalı, C ve Pascal gibi diller de derlemeli dildir.
JVM - Java Virtual Machine (Java Sanal Makinesi)
Java'daki durum biraz daha karışıktır. Java hem 'derlemeli' bir dildir, hem de 'yorumlamalı'. Java programlama diliyle yazılmış kaynak kodu, sanal bir işlemcinin anlayabileceği makine koduna çevrilir. Bu kod gerçek bir makine olmadığından ona makine kodu denmez. Ama programala dili gibi konuşma dilinde de olmadığından kaynak kodu da değildir. Bu ara dille yazılmış koda 'bayt kod' (bytecode) denir. Çünkü makine kodu gibi baytlardan oluşur. Yani kaynak kodu bayt koduna 'derlenir'. Sanal işlemci bu bayt kodlarının makine koduna programın çalışması esnasında çevirir. Her işletim sistemi ve işlemci için ayrı bir sanal makine vardır. Java kaynak kodları Java derleyicisi tarafından bayt koda çevrilir. Üretilen bu kod bütün işlemciler için aynıdır. Her işletim sistemi ve işlemciye göre sanal makine, bu bayt kodu ilgili işlemcinin makine diline anında çevirir yani yorumlar. Bu sanal makineye Java Sanal Makinesi - Java Virtual Machine (JVM) denir.
Şimdi teorik olarak anlattığımız sürecin, uygulamadaki bileşenlerini inceleyelim. Java platformunun programlama dili 'Java' dır. Bu dilde yazılmış kaynak kodları '.java' uzantılı dosyalarda saklanır. "javac" adlı bir derleyici ile ikili koda çevrilir. İkili kod'lar '.class' uzantılı dosyalarda saklanır. Bu dosyalar 'java.exe' adlı yorumlayıcı tarafından çalıştırılır. Java kaynak kodu herhangi bir metin düzenleyici ile yazılabilir. Java'nın derleyicisi ücretsiz olarak dağıtılmaktadır. Java'nın yorumlayıcısı (JVM)'de plug-in olarak yüklenebilmektedir. Bu plug-in de ücretsizdir. Ayrıca bilinen bütün tarayıcılar'ın bir JVM'i bulunmaktadır.
Bir JVM içerinde çalışan Java application'u C ile yazılmış native kodu çağırabilir. Bu durumda performans'tan kazanılmakla birlikte platform bağımsızlığı kaybedilmiş olur. O yüzden bu, sadece çok hız gerektiren az sayıda işlem için kullanılabilir. Java'nın hızı giderek arttığından buna zamanla daha az ihtiyaç duyulmaktadır. Bir .exe programı da Java programlarının içerisinden çalıştırılabilir. Ancak bu durumda çalışan proses tamamen JVM'in dışında, aşağıdaki işletim sisteminin kontrolünde bulunur. Application'la veri alışverişi bulunmayan programları dışarıdan çağırmak için kullanılabilir


alıntı

+rep pls
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.