Bahasa pemrograman Java pertama lahir dari The Green Project,
yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim
panas1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang.
Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai “*7″ (Star Seven).
Setelah era Star Seven
selesai, sebuah anak perusahaan TV kabel tertarik ditambah beberapa
orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada
sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto.
Perusahaan baru ini bertambah maju:
jumlah karyawan meningkat dalam waktu singkat dari 13 menjadi 70 orang.
Pada rentang waktu ini juga ditetapkan pemakaian Internet sebagai medium
yang menjembatani kerja dan ide di antara mereka. Pada awal tahun
1990-an, Internet masih merupakan rintisan, yang dipakai hanya di
kalangan akademisi dan militer.
Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java.
Pada sekitar bulan Maret 1995, untuk
pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan mereka
diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995.
Sayang terjadi perpecahan di antara
mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton
Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini
dariSun Microsystems bersama Marc Andreessen, membentuk Netscape.
Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja “bapak java”, James Gosling.
Nama Oak ini tidak dipakai untuk versi release Java karena sebuah
perangkat lunak sudah terdaftar dengan merek dagang tersebut, sehingga
diambil nama penggantinya menjadi “Java”. Nama ini diambil dari kopi
murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling.
Versi Awal Java
Versi awal Java ditahun 1996 sudah
merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi
ini menyertakan banyak paket standar awal yang terus dikembangkan pada
versi selanjutnya:
java.lang: Peruntukan kelas elemen-elemen dasar.
java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas.
java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan.
java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.
java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)
java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.
kelebihan Java
- Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja.
Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan
dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa
mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas
beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah
program berbasis java dikerjakan diatas operating system Linux tetapi
dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung
sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun
Solaris. Penyebanya adalah setiap sistem operasi menggunakan programnya
sendiri-sendiri (yang dapat diunduh dari situs Java) untuk
meninterpretasikan bytecode tersebut.
- OOP (Object Oriented Programming –
Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di
Java adalah Objek. Java merupakan salah satu bahasa pemrograman berbasis
objek secara murni. Semua tipe data diturunkan dari kelas dasar yang
disebut Object. Hal ini sangat memudahkan pemrogram untuk
mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah
program dengan basis Java secara cepat, tepat, mudah dan terorganisir.
Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman
termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi
antara komputer sekalipun.
- Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan library/perpustakaan
(kumpulan program program yang disertakan dalam pemrograman java) yang
sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun
aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan
komunitas Java yang besar yang terus menerus membuat
perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan
pembangunan aplikasi.
- Bergaya C++, memiliki sintaks seperti bahasa
pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke
Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah
pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika
Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid
yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga
bagi mereka yang bukan mengambil jurusan komputer.
- Pengumpulan sampah otomatis, memiliki fasilitas
pengaturan penggunaan memori sehingga para pemrogram tidak perlu
melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa
C++ yang dipakai secara luas).
Kekurangan Java
- Tulis sekali, perbaiki di mana saja – Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.
- Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode
yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama
kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft
.NET Platform. Dengan demikian, algoritma yang digunakan program akan
lebih sulit disembunyikan dan mudah dibajak/direverse-engineer.
- Penggunaan memori yang banyak. Penggunaan memori
untuk program berbasis Java jauh lebih besar daripada bahasa tingkat
tinggi generasi sebelumnya seperti C/C++ danPascal (lebih spesifik
lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah
bagi pihak yang menggunakan teknologi terbaru (karena trend memori
terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih
harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.
Sun membagi arsitektur Java menjadi 4 bagian, yaitu :
- Enterprize Edition(J2EE) untuk aplikasi Web, aplikasi system
tersebar dengan beraneka ragam klien dengan kompleksitas yang tinggi.
Merupakan SuperSet dari Standart Java.
- Standart Edition (J2SE) ini dikenal sebagai bahasa Java.
- Micro Edtiton (J2ME) merupakan subset dari J2SE dan salah satu aplikasinya yang banyak dipakai adalah untuk Mobile Device.
Fitur-fitur Java yang menarik
- Applet
Program Java yang dapat berjalan di atas browser, yang dapat membuat halaman HTML lebih interaktif.
- Java Networking
Sekumpulan API yang menyediakan fungsi untuk aplikasi-aplikasi jaringan,
seperti penyediaan akses untuk TCP, UDP, IP Address dan URL. Tetapi
Java Networking tidak menyediakan akses untuk ICMP dikarenakan alas an
sekuriti dan pada kondisi umum hanya administrator (root) yang bisa
memanfaatkan Protokol ICMP.
- Java Database Connectivity(JDBC)
Menyediakan sekumpulan API yang dapat digunakan untuk mengakses database seperti Oracle,MySQL,PostgreSQL,Microsoft SQL Server.
- Java Security
Java Security menyediakan sekumpulan API untuk mengatur security dari
aplikasi Java baik secara High Level datau Low Level, seperti
public/private key menegement dan certificates.
- Java Swing
Menyediakan sekumpulan API untuk membangun aplikasi-aplikasi GUI dan model GUI yang diinginkan bisa bermacam-macam.
- Java RMI
Java RMI menyediakan sekumpulan API untuk membangun aplikasi-aplikasi
Java yang mirip dengan model RPC (remote Procedure Call), jadi
objek-objek Java bisa di call secara remote di Jaringan Komputer.
- Java 2D/3D
Merupakan sekumpulan API untuk membangun grafik-grafik 2D/3D yang menarik dan juga akses ke printer.
- Java Server Pages (JSP)
Berkembang dari Java Servlet yang digunakan untuk menggantikan aplikasi-aplikasi CGI. JSP yang mirip ASP dan PHP merupakan alternatif terbaik untuk solusi aplikasi internet.
- JNI (Java Native Interface)
Merupakan sekumpulan API yang digunakan untuk mengakses fungsi-fungsi
pada library (*.dll atau *.so) yang dibuat dengan bahasa pemrograman
yang lain seperti C, C++, dan Basic.
- Java Sound
Menyediakan kumpulan API untuk manipulasi Sound.
- Java IDL + CORBA
Menyediakan dukungan Java untuk implementasi CORBA (Common Object
Request Broker) yang merupakan model distributed-Object untuk solusi
aplikasi besar di dunia Networking.
- Java Card
Java Card utamanya dipakai untuk aplikasi-aplikasi pada smart card, yang sederhana wujudnya seperti SIM Card pada Handphone.
- JTAPI (Java Telephony API)
Sekumpulan API untuk memanfaatkan devices-devices telephony, sehingga
cocok untuk aplikasi-aplikasi CTI (Computer Telephony Integration) yang
dibutuhkan seperti ACD (Automatic Call Distribution) PCPBX dan lainnya.
sumber : http://unyildadakan.com/java/sejarah-dan-perkembangan-java/
http://giriayoga.com/2010/10/28/sejarah-java/