Boshqalar

C# dasturlash tili va tarixi, ixtisosi, bozordagi oʻrni

Maqolada:

  • C# nimani anglatadi?

  • Tilning rivojlanish tarixi

  • Boshqa tillar bilan taqqoslash

  • .NET platformasining ahamiyati

  • .NET Framework va .NET Core

  • C# tilining afzallik va kamchiliklari

  • C#ʼni oʻrganishga qancha vaqt ketadi?

  • Bozordagi talab

Siz dasturlash sohasida yangisiz va birinchi tilni hali tanlay olmadingizmi? Yoki biron bir narsani oʻzlashtirishga ulgurdingiz-u, endi qaysi tomonga rivojlanish haqida oʻylayapsizmi? U holda gʻalati panjaraga ega C# tili haqida eshitgan boʻlsangiz kerak. Bu maqolada “si-sharp” sizga qanchalik mos kelishini bilib olishingiz uchun barcha kerakli maʼlumotlarni berishga harakat qilamiz.

C# (“si-sharp” deb talaffuz qilinadi) — Microsoft kompaniyasi tomonidan ishlab chiqilgan zamonaviy dasturlash tili. U turli xil ilovalarni ishlab chiqishda, shu jumladan, Windows ilovalari, veb-ilovalar, Xamarin platformasi uchun mobil ilovalar, Unity platformasidagi oʻyinlar va boshqa koʻplab dasturlarni yaratishda keng qoʻllanadi.

C# nimani anglatadi?

“Si sharp” (ingl. sharp — diez) oʻziga xos “ilohiy” maʼnoga ega. “#” belgisi (nota yozuvida “diez” deb oʻqiladi) tovushning yarim ohangga koʻtarilishini anglatadi. Boshqa tomondan, “C#” nomi quyidagi “evolyutsion zanjir” orqali hosil boʻladi: C → C++ → C++++(C#), chunki 4 ta “+” belgidan “#” belgisini yaratish mumkin.

Tilning rivojlanish tarixi

C# dasturlash tili 1993–2001-yillarda Anders Xeylsberg va Skott Viltaumot boshchiligidagi Microsoft kompaniyasi muhandislar guruhi tomonidan Microsoft platformasi uchun ilovalarni dasturlash tili sifatida ishlab chiqilgan.

2000-yilga kelib Microsoftʼning yangi texnologiyalar hamda xabar va maʼlumotlar almashish, shuningdek, internet ilovalarini yaratish uchun yechimlarning sanoat versiyalari tayyor edi. Yangi yechimlar yordamida dasturlash uchun yangi platforma — .NET ham chiqarildi. Unda oʻsha davr uchun yangilik sifatida qaralgan hodisa – biryoʻla bir nechta dasturlash tillari birlashtirilgan edi.

.NET platformasining yana bir yangiligi faol server sahifalari texnologiyasi ASP.NET (Active Server Page) boʻlgan. Uning yordamida maʼlumotlar bazalari bilan oʻzaro aloqada boʻladigan veb-ilovalarni nisbatan tezda dasturlash mumkin edi. ASP.NET uchun maxsus C# dasturlash tili yaratildi. ASP.NETʼning oʻzi ham toʻliq unda yozilgan.

Boshqa tillar bilan taqqoslash

“Si-sharp” Cʼnikiga oʻxshash sintaksisga ega til. Bu jihatdan u C++ va Javaʼga yaqin turadi.

Obyektga yoʻnaltirilgan til boʻlgani uchun u koʻp narsani Java va C++ʼdan oʻzlashtirgan. C# ham Java singari dastlab veb-dasturlash uchun moʻljallangani sababli sintaktik imkoniyatlarining taxminan 75% i Javaʼniki bilan bir xil. Shuningdek, C# “Javaʼning tozalangan versiyasi” deb ham ataladi. Qahramonimiz yana 10% ni C++ dan va 5% ni Visual Basicʼdan olgan. C#ʼning qolgan 10% qismi ishlab chiquvchilarning oʻz gʻoyalari mahsuli hisoblanadi. Obyektga yoʻnaltirilgan yondashuv C# yordamida yirik, ammo ayni paytda moslashuvchan, masshtablanadigan va kengaytiriladigan dasturlarni yaratish imkonini beradi.

C#ʼda ancha vaqtdan beri koʻplab foydali funksiyalar mavjud:

  • inkapsulyatsiya;

  • vorislik;

  • polimorfizm;

  • operatorlarni haddan tashqari yuklash;

  • statik tipiklashtirish.

Shu bilan birga, u hali ham faol rivojlanmoqda va har bir yangi versiyasi bilan tobora koʻproq qiziqarli narsalar, masalan, lambdalar, dinamik bogʻlanish, asinxron metod va boshqalar paydo boʻlyapti.

Boshqa tillar bilan taqqoslaganda C# ancha yosh, ammo katta yoʻlni bosib oʻtishga ulgurdi. Tilning birinchi versiyasi 2002-yilning fevral oyida Microsoft Visual Studio.NET relizi bilan birga chiqqan edi. Tilning joriy versiyasi C# 8.0 boʻlib, u 2019-yilning sentyabr oyida .NET Core 3 relizi bilan birga chiqarildi.

.NET platformasining ahamiyati

C# deb koʻpincha .NET platformasi texnologiyalarini (Windows Forms, WPF, ASP.NET, Xamarin) nazarda tutishadi. Aksincha, .NET deganda C#ʼni nazarda tutish odatiy holga aylangan. Ammo bu tushunchalar bir-biriga bogʻliq boʻlsa-da, ularni tenglashtirish notoʻgʻridir. C # tili .NET freymvorki bilan ishlash uchun maxsus yaratilgan, ammo .NET biroz kengroq tushunchadir.

Bir paytlar Bill Geyts .NET Microsoft yaratgan eng yaxshi narsa, degan edi. Bunday hisoblash uchun unda salmoqli asoslar bor. .NET freymvorki ilovalar yaratish uchun kuchli platformani taqdim etadi. Quyida uning killer-fichalari:

  • Bir nechta tillarni qoʻllab-quvvatlashi. .NET asosida tillar uchun umumiy bajarilish muhiti Common Language Runtime (CLR) hisoblanadi. Platforma bir nechta tillarni — C# bilan bir qatorda VB.NET, C++, F#, shuningdek, .NET bilan bogʻlangan boshqa tillarning turli dialektlari, masalan, Delphi.NETʼni qoʻllab-quvvatlaydi. Bu tillarning istalganini yigʻish uchun .NET platformasining oʻziga xos assembleri – umumiy til CIL (Common Intermediate Language)da kompilyatsiya qilish mumkin. Shuning uchun bitta dasturning turli tillardagi alohida modullarini yaratsa boʻladi.

  • Kuchli sinflar kutubxonasi. .NET barcha qoʻllab-quvvatlanadigan tillar uchun yagona sinflar kutubxonasini taqdim etadi. C#ʼda har qanday ilova: matn muharriri, chat yoki murakkab veb-sayt yozmoqchi boʻlishdan qatʼi nazar .NET sinflar kutubxonasidan foydalaniladi.

  • Texnologiyalar xilma-xilligi. Tillar uchun umumiy bajarilish muhiti CLR va sinflarning bazaviy kutubxonasi dasturchilar uchun turli xil ilovalarni yaratishda foydalanishi mumkin boʻlgan butun bir texnologiyalar steki uchun asos boʻladi. Masalan, bu stekda maʼlumotlar bazalari uchun ADO.NET va Entity Framework Core texnologiyasi mavjud. Boy interfeysga ega grafik ilovalar uchun WPF va UWP texnologiyalari bor. Soddaroq grafik ilovalar uchun Windows Forms, mobil ilovalarni dasturlash uchun Xamarin, veb-saytlarni yaratish uchun ASP.NET va hokazo.

.NET Framework va .NET Core

.NET uzoq vaqt davomida asosan Windows uchun platforma sifatida .NET Framework nomi ostida rivojlandi. Ammo 2019-yildan beri takomillashishdan toʻxtadi — bu platformaning soʻnggi versiyasi .NET Framework 4.8 boʻldi.

2014-yilda Microsoft eskirgan .NET Frameworkʼning barcha imkoniyatlarini oʻzlashtirgan va yangi funksiyalar qoʻshilgan muqobil platforma — .NET Coreʼni chiqarishni boshladi. Shuning uchun asosan Windows uchun moʻljallangan .NET Framework va kross-platformali .NET Core oʻrtasidagi farqni tushunish kerak.

C# tilining afzallik va kamchiliklari

“Sharp”ning koʻplab afzalliklari bor:

  • Microsoft mahsulotlarining aksariyat qismiga koʻrsatiladigan koʻmak

  • Kichik kompaniyalar va baʼzi individual dasturchilar uchun bir qator bepul vositalar: Visual Studio, Azure buluti, Windows Server, Mac Pro uchun Parallels Desktop va boshqalar.

  • Maʼlumotlar turi belgilangan hajmga ega (32-bitli int va 64-bitli long) boʻlib, bu har doim nima bilan ish koʻrayotganingizni aniq bilganingiz sababli tilning “mobilligini” oshiradi va dasturlashni osonlashtiradi.

  • Avtomatik tarzdagi “chiqindilarni toʻplash”. Bu esa koʻp hollarda xotirani boʻshatish haqida qaygʻurmasligimiz mumkinligini anglatadi. Yuqorida tilga olingan umumiy til muhiti CLRʼning oʻzi chiqindi toʻplovchini ishga tushirib, xotirani tozalaydi.

  • Koʻp sonli “sintaktik ʻshakarʼ” — kodni tushunish va yozish uchun ishlab chiqilgan maxsus konstruksiyalar. Ular kompilyatsiya qilishda qiymatga ega boʻlmaydi.

  • Kirish uchun past chegara. C# sintaksisi boshqa dasturlash tillariga juda oʻxshash boʻlib, dasturchilar uchun boshqa tildan oʻtishni osonlashtiradi. Koʻpincha C# yangi boshlayotganlar uchun eng tushunarli va mos dasturlash tili deb hisoblanadi.

  • Xamarin yordamida C#ʼda iOS, Android, MacOS va Linux kabi operatsion tizimlar uchun dastur va ilovalarni yozish mumkin;

Ammo C#ʼning ayrim kamchiliklari ham bor:

  • Windows platformasiga ustuvor yoʻnaltirilganlik;

  • Til faqat kichik firmalar, individual dasturchilar, startaplar va talabalar uchun bepul hisoblanadi. Katta kompaniya uchun bu tilning litsenziyalangan versiyasini sotib olish anchagina pulga tushadi.

C#ʼni oʻrganishga qancha vaqt kerak?

Oʻrganish va tushunish nisbatan oson boʻlgani uchun C# yangi boshlayotganlar uchun qiyinchilik tugʻdirmaydi. Internetda C# boʻyicha 1 oydan 6 oygacha boʻlgan taʼlimni taklif qiladigan koʻplab oʻquv kurslari va onlayn maktablarni topish mumkin. Shuningdek, yangi boshlayotganlarga bir necha kun ichida asoslar oʻrgatiladigan tezkor kurslar ham mavjud. Umuman olganda, agar C, C++ yoki Javaʼni bilsangiz, C#ʼni oʻzlashtirish ancha oson boʻladi.

Bozordagi talab

C# dasturiy taʼminotni ishlab chiqish sohasidagi eng mashhur dasturlash tillaridan biri boʻlib qolmoqda. Quyida C#ʼning bozorda mustahkam oʻrin egallaganining bir nechta sabablari keltiriladi:

  1. Microsoft dasturchilari ekotizimi: C# Microsoft ekotizimi, shu jumladan, Visual Studio kabi dasturlash vositalari, .NET Framework va .NET Core kabi platformalar bilan chambarchas bogʻliq. Bu Microsoft ekotizimida ishlaydigan dasturchilar uchun C#ʼni afzal tanlovga aylantiradi.

  2. Keng qoʻllanishi: C# korporativ ilovalar, oʻyinlar, mobil ilovalar va veb-dasturlash kabi turli sohalarda qoʻllanadi. Mana shu universalligi tufayli C# talabgir til boʻlib qolmoqda.

  3. Yirik korporatsiyalar qoʻllovi: Microsoft, Unity Technologies kabi yirik kompaniyalar va boshqalar C# ekotizimi rivojlanishi hamda undan foydalanish vositalari yaratilishida faol ishtirok etadi.

  4. Kengayuvchanligi: .Net Core va keyinroq .NET 5/6 paydo boʻlishi bilan C# yanada koʻchma va masshtablanadigan tilga aylandi va undan Windows, Linux va macOS kabi turli platformalarda foydalanish imkonini berdi.

C# universalligi, yirik kompaniyalar qoʻllovi va boy dasturlash ekotizimi tufayli bozordagi relevant va talabga ega dasturlash tili boʻlib qolmoqda. Ayniqsa Microsoft ekotizimidagi dasturiy taʼminotni ishlab chiqishga qiziqishingiz boʻlsa, C#ʼni oʻrganish karyerangiz uchun katta sarmoya boʻlishi mumkin.

C# dasturchilarining ish haqiga kelsak, Xabr.Karyera statistikasiga koʻra, maosh odatda 120 dan 400 ming rublgacha oraliqda boʻlib, oʻrtacha 200 ming rublni tashkil etadi.

Manba: Язык программирования С#: история, специфика, место на рынке

#c#
Mohirdev Telegram

Telegram kanalimizga obuna bo’lishni unutmang

Obuna bo'lish
GeekBrains

GeekBrains

O'xshash maqolalar

OpenSource qanday yaratiladi? Shaxsiy tajriba
opensource
shaxsiy tajriba

16-aprel, 2024

OpenSource qanday yaratiladi? Shaxsiy tajriba

Men Linuxʼning barcha distributivlariga ozmi-koʻpmi kiritilgan ikkita paket — sane-airscan va ipp-usbʼning muallifiman.

Maqolani o'qish
SI-trener: yangi kasb boʻyicha katta qoʻllanma
Sunʼiy intellekt
YangiSoha

18-aprel, 2024

SI-trener: yangi kasb boʻyicha katta qoʻllanma

Neyrotarmoqlarni tarbiyalaydigan va oʻqitadigan kishilar bilan muloqot qilamiz.

Maqolani o'qish
“Tom va Jerri”ning barcha seriyalarini bir necha oy ichida 2k da remaster qilganim haqida

16-aprel, 2024

“Tom va Jerri”ning barcha seriyalarini bir necha oy ichida 2k da remaster qilganim haqida

Bularning barchasi nimadan boshlandi? Bir kun kelib “Tom va Jerri”ning hamma asl toʻplamini uchinchi marta qayta tomosha qilishga qaror qildim. Ammo men yosh boladan farqli oʻlaroq, sifatga eʼtibor bermagan holda har qanday kontentni qabul qilmayman. Shunday qilib, mavjud boʻlgan versiyani koʻrmoqchi edim, ammo uni butun ekran boʻylab doimiy tirnalishlardan iborat mana bu ranglar shousi “bezab” turgandi. https://youtu.be/gICAFope5Ro

Maqolani o'qish
Dasturlash mashqlarining qanday afzalliklari bor?

2-may, 2024

Dasturlash mashqlarining qanday afzalliklari bor?

Oxirgi paytlarda dasturlash mashqlari haqida oʻylay boshladim, chunki odamlarga koʻnikmalarni oʻrgatishni boshlamoqchi edim. Ammo dasturlash mashqlari nimasi bilan yaxshi hisoblanadi? Bu haqida Twitterʼda soʻraganimda, bir qancha foydali javoblar oldim. Quyida esa ularning baʼzilari bilan boʻlishmoqchiman...

Maqolani o'qish
Qanday qilib yaxshi kod yozish mumkin? Yangi mutaxassislar uchun tez natija beradigan 10 ta qulay usul
Coding
maslahat

3-may, 2024

Qanday qilib yaxshi kod yozish mumkin? Yangi mutaxassislar uchun tez natija beradigan 10 ta qulay usul

Boshlangʻich darajadagi dasturchi uchun kod yozish koʻnikmasini rivojlantirish eng yuqori darajadagi maqsad boʻlsa kerak. Lekin ishni nimadan boshlagan yaxshi? Hozirgi paytdagi bunday katta axborot oqimi bilan qanday texnikalarni oʻrganish afzalligi va ulardan qaysi biri chindan yaxshi kod yozishingizga yordam berishini bilish ham qiyin.

Maqolani o'qish