Pengertian, Sejarah, Tujuan dari C#(sharp) - AlfianPen

Tuesday, 23 May 2017

Pengertian, Sejarah, Tujuan dari C#(sharp)

oke gan di sini saya akan memposting pengertian C#(sharp) dalam pemrograman. pasti dari kalian masi pada bingung kan apa itu C#(sharp). langsung saja saya akan mempostingnya.......



1. Penegrtian C#(sharp)

C# atau yang dibaca C sharp adalah bahasa pemrograman sederhana yang digunakan untuk tujuan umum, dalam artian bahasa pemrograman ini dapat digunakan untuk berbagai fungsi misalnya untuk pemrograman server-side pada website, membangun aplikasi desktop ataupun mobile, pemrograman game dan sebagainya. Selain itu C# juga bahasa pemrograman yang berorientasi objek, jadi C# juga mengusung konsep objek seperti inheritance, class, polymorphism dan encapsulation.
Dalam prakteknya C# sangat bergantung dengan framework yang disebut .NET Framework, framework inilah yang nanti digunakan untuk mengcompile dan menjalankan kode C#. C# dikembangkan oleh Microsoft dengan merekrut Anders Helsberg. Tujuan dibangunnya C# adalah sebagai bahasa pemrograman utama dalam lingkungan .NET Framework (lihat C#). Banyak pihak juga yang menganggap bahwa Java dengan C# saling bersaing, bahkan ada juga yang menyatakan jika pernah belajar Java maka belajar C# akan sangat mudah dan begitu juga sebaliknya. Anggapan tersebut sebenarnya tidak salah karena perlu diketahui sebelum adanya C# Microsoft mengembangkan J++ dengan maksud mencoba membuat Java agar berjalan pada platform Windows, karena adanya masalah dari pihak luar maka Microsoft menghentikan proyek J++ dan beralih untuk mengembangkan bahasa baru yaitu C#.


2. Sejarah C#(sharp)

Pada akhir dekade 1990-an, Microsoft membuat program Microsoft Visual J++ sebagai sebuah langkah percobaan untuk menggunakan Java di dalam sistem operasi Windows untuk meningkatkan antarmuka dari Microsoft Component Object Model (COM). Akan tetapi, akibat masalah dengan pemegang hak cipta bahasa pemrograman Java, Sun Microsystems, Microsoft pun menghentikan pengembanganJ++, dan beralih untuk membuat pengganti J++, kompilernya dan mesin virtualnya sendiri dengan menggunakan sebuah bahasa pemrograman yang bersifat general-purpose. Untuk menangani proyek ini, Microsoft merekrut Anders Helsberg, yang merupakan mantan karyawan Borland yang membuat bahasa Turbo Pascal, dan Borland Delphi, yang juga mendesain Windows Foundation Classes (WFC) yang digunakan di dalam J++. Sebagai hasil dari usaha tersebut, C# pun pertama kali diperkenalkan pada bulan Juli 2000 sebagai sebuah bahasa pemrograman modern berorientasi objek yang menjadi sebuah bahasa pemrograman utama di dalam pengembangan di dalam platform Microsoft .NET Framework.
Pengalaman Helsberg sebelumnya dalam pendesain bahasa pemrograman seperti Visual J++, Delphi, Turbo Pascal) dengan mudah dilihat dalam sintaksis bahasa C#, begitu pula halnya pada inti Common Language Runtime (CLR). Dari kutipan atas interview dan makalah-makalah teknisnya ia menyebutkan kelemahan-kelemahan yang terdapat pada bahasa pemrograman yang umum digunakan saat ini, misalnya C++, Java, Delphi, ataupun Smalltalk. Kelemahan-kelemahan yang dikemukakannya itu yang menjadi basis CLR sebagai bentukan baru yang menutupi kelemahan-kelemahan tersebut, dan pada akhirnya memengaruhi desain pada bahasa C# itu sendiri. Ada kritik yang menyatakan C# sebagai bahasa yang berbagi akar dari bahasa-bahasa pemrograman lain. Fitur-fitur yang diambilnya dari bahasa C++ dan Java adalah desain berorientasi objek, seperti garbage collection, reflection, akar kelas (root class), dan juga penyederhanaan terhadap pewarisan jamak (multiple inheritance). Fitur-fitur tersebut di dalam C# kini telah diaplikasikan terhadap iterasi, properti, kejadian (event), metadata, dan konversi antara tipe-tipe sederhana dan juga objek.
C# didisain untuk memenuhi kebutuhan akan sintaksis C++ yang lebih ringkas dan Rapid Application Development yang 'tanpa batas' (dibandingkan dengan RAD yang 'terbatas' seperti yang terdapat pada Delphi dan Visual Basic).
Agar mampu mempromosikan penggunaan besar-besaran dari bahasa C#, Microsoft, dengan dukungan dari Intel Corporation dan Hewlett-Packard, mencoba mengajukan standardisasi terhadap bahasa C#. Akhirnya, pada bulan Desember 2001, standar pertama pun diterima oleh European Computer Manufacturers Association atau Ecma International (ECMA), dengan nomor standar ECMA-334. Pada Desember 2002, standar kedua pun diadopsi oleh ECMA, dan tiga bulan kemudian diterima oleh International Organization for Standardization (ISO), dengan nomor standar ISO/IEC 23270:2006.
C# merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, Visual Basic, dan lain-lain) dengan beberapa penyederhanaan. Menurut standar ECMA-334 C# Language Specification, nama C# terdiri atas sebuah huruf Latin C (U+0043) yang diikuti oleh tanda pagar yang menandakan angka # (U+0023). Tanda pagar # yang digunakan memang bukan tanda kres dalam seni musik (U+266F), dan tanda pagar # (U+0023) tersebut digunakan karena karakter kres dalam seni musik tidak terdapat di dalam keyboard standar.


3.Tujuan C#(sharp)

Bahasa pemrograman C# dibuat sebagai bahasa pemrograman yang bersifat bahasa pemrograman general-purpose (untuk tujuan jamak), berorientasi objek, modern, dan sederhana.
·          Bahasa pemrograman C# ditujukan untuk digunakan dalam mengembangkan komponen perangkat lunak yang mampu mengambil keuntungan dari lingkungan terdistribusi.
·         Portabilitas programmer sangatlah penting, khususnya bagi programmer yang telah lama menggunakan bahasa pemrograman C dan C++.
·         Dukungan untuk internasionalisasi (multi-language) juga sangat penting.
·         C# ditujukan agar cocok digunakan untuk menulis program aplikasi baik dalam sistem klien-server (hosted system) maupun sistem embedded (embedded system), mulai dari perangkat lunak yang sangat besar yang menggunakan sistem operasi yang canggih hingga kepada perangkat lunak yang sangat kecil yang memiliki fungsi-fungsi terdedikasi.
·         Meskipun aplikasi C# ditujukan agar bersifat ‘ekonomis’ dalam hal kebutuhan pemrosesan dan memori komputer, bahasa C# tidak ditujukan untuk bersaing secara langsung dengan kinerja dan ukuran perangkat lunak yang dibuat dengan menggunakan bahasa pemrograman C dan bahasa rakitan.
·         Bahasa C# harus mencakup pengecekan jenis (type checking) yang kuat, pengecekan larik (array), pendeteksian terhadap percobaan terhadap penggunaan Variabel-variabel yang belum diinisialisasikan, portabilitas kode sumber, dan pengumpulan sampah (garbage collection) secara otomatis
C # 2.0 fitur bahasa baru
Fitur Baru di C # 2.0 - dua belas "laboratorium" yang hanya mencakup C # 2.0 fitur baru.
Sebuah bentuk baru dari iterator mempekerjakan co-rutin melalui kata kunci hasil fungsional-gaya yang serupa dengan yang ditemukan dalam bahasa Python.
Metode anonim menyediakan fungsionalitas penutupan.
Generik atau jenis parameter dukungan beberapa fitur tidak didukung oleh C + + template seperti tipe kendala pada parameter generik. Namun, ekspresi tidak dapat digunakan sebagai parameter generik seperti di C + + template. Berbeda dengan pelaksanaan Jawa, jenis parameter adalah objek kelas pertama dalam mesin virtual, memungkinkan untuk optimasi dan pelestarian jenis informasi.
Jenis nilai nullable memfasilitasi interaksi dengan database SQL. Contoh deklarasi tipe nullable:
int? variableName = null;
Jenis parsial memungkinkan pemisahan implementasi kelas menjadi lebih dari satu file source. Fitur ini dilaksanakan terutama kode Visual Studio sehingga dihasilkan dapat disimpan terpisah dari kode pengembang.
C # 3.0 fitur bahasa baru
C # versi 3.0 memperkenalkan beberapa ekstensi untuk mendukung bahasa tingkat tinggi, perpustakaan kelas gaya fungsional. Ekstensi memungkinkan pembangunan API komposisi dengan kekuatan ekspresif bahasa query di daerah seperti database relasional dan XML. C # 3.0 akan mencakup fitur-fitur baru sebagai berikut:
Jenis anonim: tipe tuple otomatis disimpulkan dan dibuat dari initializers objek.
Obyek initializers kemudahan konstruksi dan inisialisasi objek.
Diketik implisit variabel lokal memungkinkan jenis variabel lokal untuk disimpulkan dari ekspresi yang digunakan untuk menginisialisasi mereka.
Secara implisit mengetik array: suatu bentuk penciptaan array dan inisialisasi yang menyimpulkan jenis elemen dari array dari penginisialisasi array.
Metode ekstensi memungkinkan untuk memperluas jenis jenis yang ada dan dibangun dengan metode tambahan.
Ekspresi lambda: evolusi dari metode anonim memberikan inferensi tipe ditingkatkan dan konversi untuk kedua jenis mendelegasikan dan pohon ekspresi.
Pohon ekspresi memungkinkan ekspresi lambda untuk diwakili sebagai data (pohon ekspresi) bukan sebagai kode (delegasi).
Ekspresi query sintaks bahasa menyediakan terintegrasi untuk query yang mirip dengan bahasa query relasional dan hirarkis seperti SQL dan XQuery.
C # 4.0 fitur bahasa baru
Dynamic member lookup
Sebuah dinamis pseudo-jenis baru diperkenalkan ke dalam sistem C # tipe. Hal ini diperlakukan sebagai System.Object, tetapi di samping itu, setiap akses anggota (metode panggilan, lapangan, properti, atau akses indexer, atau doa mendelegasikan) atau aplikasi dari operator pada nilai tipe yang diijinkan tanpa memeriksa jenis, dan resolusi yang ditunda sampai run-time. Kovarian dan jenisparameter generik contravariant
Antarmuka generik dan delegasi dapat memiliki parameter jenis mereka ditandai sebagai kovarian atau contravariant,menggunakan kata kunci luar dan dalam, masing-masing. Deklarasi ini kemudiandihormati untuk konversi tipe,baik implisit dan eksplisit, dan kedua waktu-kompilasi dan run-time

1 comment: