JavaRush /Java blogi /Random-UZ /Dasturlash tilini tanlash

Dasturlash tilini tanlash

Guruhda nashr etilgan
Dasturlash bilan birinchi marta maktabda, informatika darslarida duch kelganman. Bu n-ar sanoq sistemalari tamoyillarining zerikarli tushuntirishlari edi. Sinov sifatida men o'z veb-saytimni yozishim kerak edi. Keyin menga dunyoda boshqa zerikarli mashg'ulot yo'qdek tuyuldi. Men qanchalik xato qildim! Afsuski, maktab informatika o‘quv dasturida AT ishi to‘g‘risida to‘liq tasavvur berilmagan, dasturlash tilini qanday tanlash kerakligi ham aniq emas. Dasturlash tilini tanlash - 1"Qaysi dasturlash tilini o'rganishni tanlash kerak" degan savolni berishdan oldin, yangi boshlovchi qaysi tillar mavjudligi va ularning farqlari bilan tanishishi kerak.

Kirish chegarasi: yuqori, past, o'rta

Dasturchilar orasida siz "kirish ostonasi" haqida tez-tez eshitishingiz mumkin - bu "kichik" uchun birinchi jiddiy dasturini yozish va ish topish uchun dasturlash tilini etarli darajada o'zlashtirish uchun zarur bo'lgan kuch miqdorini aks ettiruvchi tushuncha. "Kirish ostonasi" quyidagi bilimlardan iborat:
  • tilning sintaksisi va nuanslari xususiyatlari;
  • kutubxonalar;
  • algoritmlar va ma'lumotlar tuzilmalari.
Aslida, Excelda ishlashni ham o'ziga xos dasturlash deb atash mumkin. Aytgancha, bu tanish ofis dasturi ko'rinadigan darajada oddiy emas. Biri uchun kirish chegarasi jadval tuzish qobiliyati bo'ladi, ikkinchisi uchun - murakkab formulalar va makroslarni bilish. Har holda, bu chegara kichik. Keyinchalik kvazi tillar keladi: masalan, 1C dasturlash. Keyin - o'rganish uchun eng oson tillar: masalan, PHP . Keyinchalik, xotira bilan qo'lda ishlashni talab qilmaydigan mahalliy (odatda ingliz tilidan olingan) sintaksisi bo'lgan tillar: masalan, Java , JS . Keyin xotira, ma'lumotlar tuzilmalari va algoritmlarga juda ehtiyotkorlik bilan ishlov berishni talab qiladigan tillar mavjud: masalan, C , C++ . Yosh ko'p paradigma tillari, ehtimol, kirish uchun eng yuqori to'siqga ega, chunki ularni o'zlashtirish uchun boshqa dasturlash tillarida bir nechta itni iste'mol qilish kerak: masalan, Scala . Lekin, birinchi navbatda, tilni tanlashda, keyin nima qilishni xohlayotganingizni hal qilishingiz kerak: veb, korxona, ish stoli yoki mobil ilovalarni ishlab chiqish.

Veb yoki veb emasmi?

Veb

Veb dasturchilarni Frontend va Backend dasturchilariga bo'lish mumkin . Bu atamalar nimani anglatishini tushunishga arziydi. "Frontend" ishlab chiquvchilari mijoz tomoni deb ataladigan narsa bilan shug'ullanishadi - foydalanuvchi nimani ko'radi. "Backend" - bu xizmatning dasturiy va apparat qismi - serverda ishlaydigan narsa. Qaysi dasturlash tilini tanlashni hal qiladigan Frontend dasturchisi uchun JavaScript va uning ramkalari bo'lishi kerak : Angular JS, React va boshqalar. JS dialektlari ota-onasi kabi mashhur emas, lekin foydali ham bo'lishi mumkin: CoffeeScript, TypeScript. Fleshli AS ham bor, oldin JScript va VBScript bor edi, lekin faqat dinozavrlar buni eslashadi =) Bundan tashqari, siz HTML va CSS-ni tushunishingiz kerak .
Dasturlash tilini tanlash - 2
Ko'pgina yangi boshlanuvchilar JavaScript va Java deyarli bir xil narsa deb o'ylashadi; bu tillarni chalkashtirib yubormaslik kerak. Ilgari JS "LiveScript" deb nomlangan va "Java" so'zining mashhurligi tufayli hozirgi nomini oldi. PHP, Python, Ruby, Pearl, Java veb-server uchun mos keladi . Bu erda men PHPga e'tibor qaratmoqchiman - biz boshqa tillar haqida keyinroq gaplashamiz - o'rganish uchun eng oson tillardan biri, kirish chegarasi past. Ruby, tanish veb-ishlab chiquvchilarning so'roviga ko'ra, asta-sekin, lekin shubhasiz mashhurlikka erishmoqda: u o'zining qisqaligi va go'zalligi uchun seviladi.

Internetdan tashqari (korxona, ish stoli, mobil)

Men ushbu dasturlash tillarini shunday g'alati nomga ega bo'lgan toifalarga alohida guruhladim. Ularning aksariyati korxona, ish stoli va hatto mobil ilovalarni yozish uchun ishlatilishi mumkin. Python , tushunarli OOLP, Machine Learning rivojlanishi tufayli so'nggi paytlarda juda mashhur bo'ldi : uning tarafdorlari Python-dan keng foydalanishadi. ML IT sohasida juda yosh soha bo'lib, birinchi mevalar allaqachon olingan bo'lsa-da, men dasturlash tilini tanlashda ushbu sohaga sho'ng'ishga shoshilmagan bo'lardim. Birinchidan, siz matematikani juda yaxshi bilishingiz kerak. Ikkinchidan, mashhurlik to'lqini "blokcheyn" yoki "nanotexnologiya" bilan bir xil tarzda ketishi mumkin. Bundan tashqari, eslaganingizdek, Python veb-ishlab chiqishda qo'llaniladi. C++ : klassik, hamma narsa "plyuslar" asosida qurilgan. Bu til barcha mashhur OOLP-larning avlodi bo'lgan va yangi boshlanuvchilar unga albatta e'tibor berishlari kerak. Ko'pgina mashhur ilovalar unga asoslangan. Ammo "oyoqqa o'q uzish" ehtimolining yuqoriligi va tushunish qiyin sintaksis yangi boshlanuvchining ushbu dasturlash mastodonini o'zlashtirish ehtimolini inkor etadi. Kotlin - hipsterlar uchun Java - OOP va funktsional dasturlashning aqldan ozgan aralashmasi. Java-dan Kotlin-ga o'tgan tajribali dasturchi o'z mahsuldorligini sezilarli darajada yaxshilaganligi sababli yaqinda mashhur bo'ldi. Tajribali dasturchi tezda ushbu tilga o'rganib qoladi. Aytgancha, xuddi shu narsa Scala-ga ham tegishli, ammo Kotlin Android-da mashhur. Yangi boshlanuvchilar uchun Java o'rganish oson. Jumladan, JavaRush tufayli : men dasturlash tilini qanday tanlashni shu erda tushundim =) Java sintaksisi aniq, "o'zingizni oyog'ingizga otish" ehtimoli bor, lekin muhim emas.

OOP yoki POP?

Protsessual yondashuv

Protseduraga yo'naltirilgan yondashuv ma'lum bir qator muammolarni samarali hal qilish uchun bir butunga yig'ilishi mumkin bo'lgan ketma-ket bayonotlardan iborat dastur yozishni o'z ichiga oladi. Bu tillarga quyidagilar kiradi: C , PureBasic va Paskal . Xuddi shu narsa o'rta maktab o'quvchilari va o'rta maktab o'quvchilarini tushkunlikka soladi. Nisbatan yosh GO ham bor . Biroq, protsessual tillar bilan tanishish potentsial ishlab chiquvchi uchun juda foydali. Men uchun protsessual tillarga kirish Mathematica tizimi (Volfram) va universitet tadqiqot faoliyati bilan bog'liq. To'g'ri algoritmik yondashuvlar va oddiy protseduralar tufayli, dastur boshidan oxirigacha chiziqli harakat qilib, men zamonaviy nazariy fizikaga mos keladigan qiymatlarni hisoblay oldim. Aynan shu "ketma-ket" tillar tufayli siz ba'zida o'zingiz hisoblashdan ko'ra kod yozish osonroq ekanligini tushunishni boshlaysiz. PPPni o'rganish yaxshi algoritmik treningni ta'minlaydi, bu ish beruvchi ishga qabul qilishda deyarli har doim nomzodda ko'rishni xohlaydi. ITdagi hamma narsaning va har bir kishining asoslari protsessual tillarga qurilgan, shuning uchun ularni kamsitmang. Aytgancha, qaysi dasturlash tilini o'rganishni tanlashni hal qilgan yangi boshlanuvchilar ko'pincha multithreading OOP ning eksklyuziv huquqi deb o'ylashadi. Bu unday emas. Protsessual dasturlash tillari ham parallel hisob-kitoblarni amalga oshirish imkonini beradi.
Dasturlash tilini tanlash - 3

Ob'ektga yo'naltirilgan yondashuv

Protsessual tillardan boshlaganlar ko'pincha matematika, algoritmlar va ma'lumotlar tuzilmalarini yaxshi bilishadi (bu texnik universitetlarda ushbu bilim sohalariga e'tibor qaratilishi bilan bog'liq). Biroq, zamonaviy voqelikda muvaffaqiyatli dasturchilar ko'pincha dasturlashning boshqa yondashuvini - ob'ektga yo'naltirilganligini yaxshi o'zlashtirganlardir. OOP mafkurasi chinakam global tizimlarni qurish imkonini beradi. Ushbu yondashuvning o'ziga xos xususiyati uning haqiqiy dunyoga o'xshashligidir:
  • turli ob'ektlar bir-biri bilan o'zaro ta'sir qiladi va bir-biridan mustaqil ravishda mavjud.
  • ob'ektlar ierarxiyaga ega va ota-bobolarining xatti-harakatlarini qabul qilish yoki o'zgartirishga qodir.
  • Siz mavhum tushunchalar bilan ishlashingiz mumkin, lekin faqat haqiqatda mavjud ob'ektlar o'zaro ta'sir qilishi mumkin.

Misol

Protsessual yo'naltirilgan tillar muayyan muammolarni hal qilish vositalaridir. Va agar sizning vazifangiz kichik bo'lsa ham o'zgargan bo'lsa, siz barcha algoritmlarni qayta yozish uchun vaqt va kuch sarflashingiz kerak bo'ladi.

Представим программу, описывающую автосалон, который продает легковые и грузовые автомобor, How новые, так и подержанные. В proceduresном языке для каждого an object нужно описать функции, обрабатывающие ввод or вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При an objectно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:

  • Марка
  • Объем двигателя
  • Мощность
  • Год выпуска
  • Новый or б/у
  • Цена

И методы для ввода-вывода информации. Затем создадим an objectы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода.

Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время How ООП-язык позволит просто создать новый an object МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения.

А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с an objectми.

Итак, ООП — это стиль программирования, позволяющий объединять данные и методы одной сущности и работать с ними How с цельным an objectом. Сущности могут выстраиваться в иерархии и взаимодействовать между собой, не вдаваясь в подробности внутренней реализации друг друга. Для себя я выделяю три причины, по которым ООП — более прогрессивный подход:
  1. ООП предполагает независимую разработку отдельных модулей, предоставляя программисту or команде выбирать способ и границы соприкосновений и обмена информацией.

  2. Разбиение на небольшие модули намного проще для восприятия, чем монолитные proceduresы. Благодаря этому сторонний разработчик быстро разберется в твоем codeе, а ты при необходимости войдешь в новый проект.

  3. Изменение одного an object может ниHow не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних an objectов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
Нужно помнить о том, что один подход не противоречит другому, но иерархически ООП всё же находится выше. Собственно, почему я рекомендую именно Java? Я бы выделил следующие причины:
  1. Кроссплатформенность.

    Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Howую библиотеку подключить, Howова архитектура у конкретного процессора. «Написано однажды —работает всегда».

  2. Документация.

    Eng keng hujjat bazasi: rasmiy Oracle hujjatlari, o'quv portallari, doimiy rivojlanayotgan hamjamiyat. Rivojlanish jarayonida yuzaga keladigan ko'plab savollarga javoblarni bir necha daqiqada topish mumkin, asosiysi qidiruv tizimiga nima yozishni tushunishdir =)

  3. Mashhurlik.

    Java dunyodagi eng mashhur dasturlash tilidir: yuqorida aytib o'tilgan Android va veb-ishlab chiquvchilardan tashqari, deyarli har bir birinchi korporativ dasturchi Java-da yozadi. Korxona - bu yirik korporatsiyalar ehtiyojlari uchun zarur bo'lgan ichki rivojlanish.

    Har yili nafratlanuvchilar "Javaning o'limini" bashorat qilishadi, ular: " Oracle uni qo'llab-quvvatlashni to'xtatadi va siz umuman bema'nilik qilyapsiz " deyishadi. Bu unday emas! Java-ning yangi versiyalari har olti oyda bir marta chiqarilishi va'da qilingan. Eng so'nggi versiyaning eng muhim yangiliklari va xususiyatlarini bu erda o'qishingiz mumkin .

    Men uchun Java 8-dagi lambdalar yangi versiyalar haqida gapirmasa ham, inqilob va kashfiyot edi! Endi men "retrograd" loyihasi ustida ishlayapman, shuning uchun men innovatsiyalarga kirmayman, lekin Java yashayotgani haqiqatdir.

    Dasturlash tilini tanlash - 4
  4. Android.

    Android so'nggi 4 yil ichida mobil telefonlar bozorining 80% dan ortig'ini ishonchli tarzda egallab oldi ; televizorlar, media pleerlar va hatto avtomobillardagi media tizimlari ham ushbu operatsion tizim ostida ishlaydi. Va bu OS uchun ishlab chiqish asosan Java-da amalga oshiriladi. Qanday istiqbollar ochilayotganini tasavvur qiling. Men Android dasturchisi sifatida ishga kirganimda qiziqib qoldim: men ishlab chiqayotgan mahsulot qancha turadi? Ma'lum bo'lishicha, yillik narx taxminan 5 dollarni tashkil qiladi. O'rinli savol tug'ildi: bu ofis uchun ish haqi, pechene, tennis stoli, robotlar va boshqa "yaxshi narsalar" uchun mablag' qayerdan kelgan? Bu miqdor masalasi: bizning ilovamiz 20 million foydalanuvchiga ega.

  5. Maoshlar.

    Shirinlik uchun: Java dasturchisining maoshi sohadagi eng yuqori maoshlardan biridir. Siz aniq maqsad uchun dasturlashni o'rganmoqchisiz: yaxshi ish topish.

Dasturlash tilining mashhurligi

Dasturlash tilini tanlashda siz o'rganishning yakuniy maqsadi - birinchi ishingiz haqida o'ylashingiz kerak. Turli tillarning mashhurligini baholash uchun men mashhur ishga qabul qilish portaliga bordim va Moskva uchun turli so'rovlar bo'yicha bo'sh ish o'rinlari sonini ko'rib chiqishni boshladim. Quyida natijalar bilan tanishishingiz mumkin.
Java: 277
python: 227
php: 188
c#: 147
c++: 131
yoqut: 40
skala: 24
kotlin: 20
Hatto yaqinda mashhur bo'lgan Python ham Java-dan oldinga chiqa olmadi. Ammo bu sub'ektiv ma'lumotlar: ma'lum bir shahar, ma'lum bir kun. Rasmiy manbalar bor, keling, ularga murojaat qilaylik. 2018 yil oktabr holatiga ko'ra, TIOBE ma'lumotlariga ko'ra, Java birinchi o'rinda turadi. PYPL reytingida Java ikkinchi o'rinni egallaydi, JS dan ancha oldinda va "moda" Python bilan raqobatlashadi.

NATIJALAR

Yangi boshlanuvchi dasturlash tilini tanlashda nimalarga e'tibor berishi kerak:
  • Mashhurlik (Java doimiy ravishda etakchi o'rinni egallaydi);
  • Kirish chegarasi (Java uchun - o'rtacha: ish beruvchi tomonidan talab qilinadigan vakolatlar doirasi juda keng);
  • Mavjud materiallar (rus tilida JavaRush-ga o'xshash portallar yo'q, shuning uchun palma kimligini taxmin qiladi =));
  • Qo'llash sohalari: dasturlash tili qancha ko'p sohalarda qo'llanilishi mumkin bo'lsa, bozorda shuncha ko'p mutaxassislar talab qilinadi. Men allaqachon kross-platforma haqida gapirganman, lekin uni takrorlashdan charchamayman.
Albatta, hamma joyda tuzoqlar bor, lekin yurgan kishi yo'lni o'zlashtirib oladi: qaysi dasturlash tilini tanlashni faqat siz hal qilishingiz mumkin . O'qishlaringizga omad!
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION