Microsoft ingin .NET Core bisa menggantikan Java


Microsoft pada Senin (14/8) kemarin telah merilis versi final dari .NET Core 2.0. Microsoft juga mengatakan akan menghadirkan ASP.NET Core 2.0, Entity Framework Core 2.0, serta spesifikasi .NET Standard 2.0 yang lengkap. Pembaruan baru ini menambahkan banyak teknologi dari versi standar .NET, serta beberapa peningkatan untuk kinerja dan keamanan.

Menurut Scott Hunter, yang bekerja untuk Microsoft sebagai Direktur Program Management untuk .NET, misi perusahaannya adalah untuk bisa menyebarkan .NET kemana saja dan dimana saja. Hal ini penting di tengah persaingan yang meningkat dengan Java Framework milik Oracle. Hunter mengatakan bahwa .NET Core mewakili "kebangkitan .NET" yang membuatnya bisa tetap relevan.

Sejak tahun 2002, Microsoft telah mendorong .NET sebagai cara premium untuk membangun software dan aplikasi untuk semua platform Windows, dan hanya tersedia di Windows. Pada akhir 2014, Microsoft secara mengejutkan meluncurkan .NET Core, versi open source lintas platform dari .NET Framework. Menurut Microsof, .NET Framework tidak akan hilang, tapi fokus mereka saat ini ada pada .NET Core sebagai masa depan platform pengembangannya.

Langkah Microsoft pada saat itu dipandang sebagai pertahanan diri terhadap Java Frameworks (yang waktu itu masih dimiliki oleh Sun Microsystem), yang terus mengancam Windows berkat kemampuan lintas platform yang dikombinasikan dengan bahasa pemrograman yang lebih mudah dan lebih produktif daripada C atau C++. Java terbukti populer untuk mengembangkan aplikasi bisnis, sesuatu yang ingin dicapai oleh Microsoft dengan C#, bahasa pemrograman yang digunakan oleh .NET.


Kemiripan C# dan Java

C# dan Java adalah dua bahasa pemrograman yang berusaha meningkatkan C++. Java meluncur lebih dulu pada tahun 1995. Dari awalnya untuk memprogram buat perangkat televisi, Java kemudian cepat menjadi populer berkat kemampuan lintas platform - yang terkenal dengan slogannya “Write Once, Run Anywhere” - dan banyaknya dukungan dari browser web yang ada. Sedangkan C# diluncurkan tahun 2000 oleh Microsoft dengan tujuan untuk memudahkan sistem operasi Windows untuk beroperasi dengan platform lain melalui layanan web.

Seperti Java, C# adalah sebuah bahasa pemrograman yang berorientasi objek dan juga menyertakan "garbage collection", yang merupakan kemampuan untuk membebaskan memori yang dialokasikan untuk menjalankan aplikasi saat aplikasi dimatikan.

"Secara alami, Java hadir sebelum C#, dan C# tidak dibuat dalam ruang hampa. Sangat wajar bila C# belajar dari kekuatan dan kelemahan Java, sama seperti Java belajar dari Objective-C, yang belajar dari C. Jadi, C# seharusnya berbeda dari bahasa Java. Jika Java sudah sempurna, maka tidak ada alasan untuk membuat C#. Jika C# sudah sempurna, maka tidak ada alasan untuk membuat bahasa pemrograman baru," kata Kirk Radeck, seorang konsultan software senior dan pemegang Windows Embedded MVP.


Open Source Mempercepat Pengembangan .NET Core

Pengembangan .NET Core dan bahasa pemrogaman C# secara open source diawali oleh Mono Xamarin, yang berhasil menghadirkan versi lintas platform dari .NET Framework pada perangkat berbasis Android, iOS dan Linux.

Pada Februari 2016, Microsoft mengakuisisi Xamarin dengan harapan bahwa perangkat lunak buatannya juga bisa digunakan oleh lebih banyak platform dan sistem operasi mobile, sehingga pengembang aplikasi tidak hanya terkonsentrasi pada Android dan iOS. Langkah yang sebelumnya juga dilakukan oleh Apple yang membuat bahasa pemrograman Swift miliknya bisa bekerja di Linux.

"Xamarin memiliki lebih dari 15.000 pelanggan di 120 negara, termasuk lebih dari seratus perusahaan Fortune 500 - dan lebih dari 1,3 juta pengembang unik yang telah memanfaatkan penawaran mereka," kata Scott Guthrie, Wakil Presiden Eksekutif untuk Cloud dan Enterprise Group di Microsoft. "Kami melihat bahwa akuisisi ini sebagai kesempatan untuk mengambil apa yang telah mereka bangun dan menjadikannya bagian inti dari strategi kami."

Membuat .NET menjadi open source dan kemudian mengakuisisi Xamarin telah diakui oleh Microsoft telah mempercepat pengambangan dari .NET Framework.

"Dengan menjadi open source, kami melihat banyak perubahan [kinerja] selama setahun terakhir yang berasal dari komunitas [open source]," kata Scott Hunter. "Sebagai pelanggan [.NET Standard], Anda akan melihat kami bergerak lebih cepat dengan .NET Core."



Dukungan Beragam Sistem Operasi

Salah satu motivasi awal untuk membuat Java adalah menciptakan bahasa perograman di mana kode yang dikompilasi bisa berjalan di sistem operasi manapun. Kenyataannya Java yang telah dikompilasi tidak berjalan pada sistem operasi "apapun", tapi berjalan berjalan pada sebagian besar daripada sistem operasi yang ada.

"Saat ini, Java adalah 'pemenang' dalam kategori ini karena didukung pada lebih banyak sistem operasi daripada C#," kata Kirk Raderk.

Dari awal yang menargetkan berbagai layanan web, Java semakin populer setelah dirilisnya Java 1.2 Micro Edition (J2ME) yang banyak digunakan oleh feature phone untuk dukungan aplikasi pihak ketiga. Popularitas Java di kalangan pengguna ponsel ini membuat Google sangat berharap untuk bisa bekerjasama dengan Sun Microsystem untuk mengembangkan sistem operasi mobile. Google pada saat itu sangat khawatir Microsoft akan menguasai software mobile, sementara di pasar tidak ada pilihan yang open source untuk digunakan Google buat menjual layanan mobile mereka.

"Jika Sun tidak mau bekerja sama dengan kita, kita memiliki dua pilihan: 1) Meninggalkan pekerjaan kita dan mengadopsi MSFT CLR VM dan bahasa C# atau - 2) Tetap menggunakan Java bagaimanapun juga dan membela keputusan kita, yang mungkin akan mendatangkan banyak musuh di sepanjang jalan," kata Andy Rubin, pendiri Android yang kemudian dibeli oleh Google. Pernyataan ini terungkap lewat dokumen email dari tahun 2005 yang menjadi salah satu bukti pengadilan sengketa paten terkait Java antara Oracle - yang telah mengakuisisi Sun pada tahun 2009 - dan Google.

Apapun yang terjadi, C# mungkin adalah pilihan terbaik untuk membuat aplikasi mobile selain Java, yang memenuhi kriteria yang bisa dipelajari dengan mudah. Hal ini mungkin yang menjadi pemikiran Samsung untuk bekerjasama dengan Microsoft pada proyek open source .NET Core dan Xamarin.Forms, untuk mengaktifkan dukungan .NET buat Tizen.


.NET Core 2.0 - Supported OS Versions
OS
Version
Architectures
Notes
Windows Client
7 SP1+
x64, x86

Windows Server
2008 R2 SP1+
x64, x86
Configurations: Full, Server Core, Nano (2016 only) 
Windows IoT
10+
[C] arm32
IoT Core (for Raspberry Pi)
Red Hat Enterprise Linux
7.3+
x64
This includes Centos and Oracle Linux
Fedora
25+
x64

Debian
8.7+
x64
Debian 9 (Stretch) workaround
Ubuntu
14.04+
x64, [C] arm32       
This includes Linux Mint 17 for x64
Raspberry Pi for arm32
openSUSE
42.2+
x64

Tizen
4+
[S] arm32
Tizen .NET Developer Preview
Mac OS X
10.2+
x64

  • Note: The goal is to support these OS's up to the version that has released when .NET Core 2.0 releases. Some will be officially supported by Microsoft and/or Samsung while others may be made available with community support. Entries will be supported by Microsoft per the Microsoft support policy except where support is explicitly called out as coming from elsewhere.
  • [S] This is supported by Samsung.
  • [C] This is supported by the Community

Comments