JavaRush /Java Blog /Random-TK /Programmirleme dilini saýlamak

Programmirleme dilini saýlamak

Toparda çap edildi
Ilki bilen mekdepde, informatika sapaklarynda programmirleme bilen tanyşdym. Bular n-ary san ulgamlarynyň ýörelgelerine ýadaw düşündirişlerdi. Synag hökmünde öz web sahypamy ýazmaly boldum. Soň bolsa dünýäde indi içgysgynç işjeňlik ýok ýalydy. Nädogry boldum! Gynansagam, mekdep kompýuter ylymlary okuw meýilnamasy IT-iň işiniň doly suratyny bermeýär we programmirleme dilini nädip saýlamalydygy belli däl. Programmirleme dilini saýlamak - 1“Haýsy programmirleme dilini öwrenmegi saýlamaly” diýen soragy bermezden ozal, haýsy dilleriň bardygyny we tapawudynyň nämedigini öwrenmeli.

Giriş bosagasy: ýokary, pes, orta

Programmistleriň arasynda köplenç “giriş bosagasy” hakda eşidip bilersiňiz - bu aýratyn “kiçi” adamyň ilkinji çynlakaý programmasyny ýazmak we iş tapmak üçin ýeterlik derejede programma dilini özleşdirmek üçin zerur güýji görkezýän düşünje. “Giriş bosagasy” bilimlerden ybarat:
  • sintaksisiň aýratynlyklary we diliň nuanslary;
  • kitaphanalar;
  • algoritmler we maglumatlar gurluşlary.
Aslynda Excel-de işlemek programmirlemegiň bir görnüşi diýip hem atlandyryp bolar. Theeri gelende aýtsak, bu tanyş ofis programmasy görnüşi ýaly ýönekeý däl. Biri üçin giriş bosagasy stol gurmak ukyby, beýlekisi üçin - çylşyrymly formulalary we makroslary bilmek bolar. Her niçigem bolsa, bu çäk az. Indiki kwazi dilleri geler: mysal üçin 1C programmirleme. Soň - öwrenmek üçin iň aňsat diller: mysal üçin PHP . Ondan soň ýadyň el bilen özara täsirini talap etmeýän ýerli (köplenç iňlis dilinden alnan) sintaksisli diller bar: mysal üçin Java , JS . Soňra ýadyň, maglumat gurluşlarynyň we algoritmleriň gaty seresaply işlemegini talap edýän diller bar: mysal üçin C , C ++ . Multiaş köp paradigma dilleri, giriş üçin iň ýokary päsgelçilik bolup biler, sebäbi olary özleşdirmek üçin beýleki programmirleme dillerinde birden köp it iýmeli: mysal üçin Skala . Allöne ilki bilen dil saýlanyňyzda indiki näme etjekdigiňizi çözmeli: web, kärhana, iş stoly ýa-da ykjam programmalary ösdürmek.

Web ýa-da ýok?

Web

Web programmistleri “Frontend” we “Backend” döredijilerine bölmek mümkin . Bu adalgalaryň manysyna düşünmelidiris. “Frontend” döredijiler müşderi tarapy diýilýän zat - ulanyjynyň görjek zady bilen iş salyşýarlar. “Backend” hyzmatyň programma üpjünçiligi we apparat bölegi - serwerde işleýän zat. Haýsy programmirleme dilini saýlamalydygyny kesgitleýän “Frontend” döredijisi üçin hökmany JavaScript we onuň çarçuwalary: Angular JS, React we başgalar. JS şiweleri ene-atalary ýaly meşhur däl, ýöne peýdaly bolup biler: CoffeeScript, TypeScript. JScript we VBScript-den ozal fleş AS hem bar, ýöne diňe dinozawrlar muny ýatda saklaýarlar =) Mundan başga-da, HTML we CSS-e düşünmeli .
Programmirleme dilini saýlamak - 2
Täze öwrenenleriň köpüsi JavaScript bilen Java bir zat diýen ýaly pikir edýärler, bu dilleri bulaşdyrmaly däl. JS öň “LiveScript” diýlip atlandyrylýar we häzirki adyny “Java” sözüniň meşhurlygy sebäpli alýar. PHP, Python, Ruby, Pearl, Java web arkasy üçin amatly . Bu ýerde PHP -e ünsi çekmek isleýärin - beýleki diller hakda gürleşeris - giriş çäkleri pes bolan öwrenmek üçin iň aňsat dilleriň biri. Tanymal web döredijileriniň gözlegine görä, Ruby ýuwaş-ýuwaşdan meşhurlyga eýe bolýar: gysgalygy we gözelligi bilen söýülýär.

Web däl (kärhana, iş stoly, ykjam)

Bu programmirleme dillerini şeýle geň at bilen kategoriýa böldüm. Olaryň köpüsi kärhana, iş stoly we hatda ykjam programmalar ýazmak üçin ulanylyp bilner. Düşünmek aňsat OOLP bolan Python , Machine Learning- iň ösmegi sebäpli soňky döwürde ajaýyp meşhurlyk gazandy : onuň tarapdarlary Python-dan giňden peýdalanýarlar. ML IT ulgamynda diýseň ýaş sebit, ilkinji miweler eýýäm alnan hem bolsa, programmirleme dilini saýlanda bu pudaga çümmäge howlukmaýaryn. Ilki bilen, matematikadan gaty ökde bolmaly. Ikinjiden, meşhurlyk tolkuny “blockchain” ýa-da “nanotehnologiýa” ýaly bolup biler. Mundan başga-da, ýadyňyzda bolsa, Python web ösüşinde ulanylýar. C ++ : nusgawy, hemme zat “plýuslar” esasynda gurulýar. Bu dil ähli meşhur OOLP-leriň nesilbaşysydy we täze öwreniji hökman oňa üns bermelidir. Köp meşhur programmalar şoňa esaslanýar. “Öne“ özüňi aýakdan atmagyň ”ähtimallygy we düşünmek kyn sintaksis, bu programmirlemegiň mastodonyny öwrenip başlamagyň ähtimallygyny aradan aýyrýar. Kotlin - hipsterler üçin Java - OOP we funksional programmirlemegiň däli garyndysy. Javaaňy-ýakynda Java-dan Kotline geçýän tejribeli işläp düzüjiniň öndürijiligini ep-esli ýokarlandyrýandygy sebäpli meşhur. Tejribeli işläp düzüji bu dile çalt öwrenişer. Theeri gelende aýtsak, bu Scala-da degişlidir, ýöne Kotlin “Android” -de meşhur. Java öwrenýän üçin öwrenmek aňsat. Şol sanda, JavaRush-yň kömegi bilen : programmirleme dilini nädip saýlamalydygyna şu ýerde düşündim =) Java sintaksisiniň düşnükli, “özüňi aýakdan atmagyň” mümkinçiligi bar, ýöne tankydy däl.

OOP ýa-da POP?

Prosessual çemeleşme

Prosedura gönükdirilen çemeleşme, belli bir meseläni netijeli çözmek üçin bitewi bir ýere jemlenip boljak yzygiderli jümlelerden ybarat programma ýazmagy öz içine alýar. Bu diller: C , PureBasic we Paskal . Orta we orta mekdep okuwçylaryna umytsyzlyk getirýänler. Şeýle hem birneme ýaş GO bar . Şeýle-de bolsa, prosessual diller bilen tanyşlyk potensial dörediji üçin örän peýdalydyr. Prosessual dillere çümmek Matematika ulgamy (Wolfram) we uniwersitetiň gözleg işleri bilen baglanyşykly. Dogry algoritmiki çemeleşmeleriň we ýönekeý proseduralaryň kömegi bilen programmanyň başyndan ahyryna çenli çyzykly hereket edip, häzirki zaman teoretiki fizika bilen baglanyşykly bahalary hasaplap bildim. Bu “yzygiderli” dilleriň kömegi bilen, kod ýazmagyň kämahal özüňe ynanmakdan has aňsatdygyna düşünip başlaýarsyň. PPP-ni öwrenmek gowy algoritmiki okuwy üpjün edýär, iş beriji işe alnanda dalaşgäriň hemişe diýen ýaly görmek isleýär. Hemme zadyň we IT ulgamynda işleýänleriň hemmesi prosedura dillerine esaslanýar, şonuň üçin olara baha bermäň. Theeri gelende aýtsak, haýsy programmirleme dilini öwrenmelidigini saýlaýanlar, köp okalmagy OOP-yň aýratyn hukugy diýip hasaplaýarlar. Bu nädogry. Prosessual programmirleme dilleri hem parallel hasaplamalary amala aşyrmaga mümkinçilik berýär.
Programmirleme dilini saýlamak - 3

Obýekte gönükdirilen çemeleşme

Prosessual dillerden başlanlar köplenç matematika, algoritmler we maglumatlar gurluşlaryny gowy bilýärler (bu tehniki uniwersitetlerde bilimleriň bu ugurlaryna ünsi çekýär). Şeýle-de bolsa, häzirki zaman hakykatlarynda üstünlikli programmistler köplenç programmirleme - obýekte gönükdirilen başga bir çemeleşmäni gowy özleşdirenlerdir. OOP ideologiýasy hakykatdanam global ulgamlary gurmaga mümkinçilik berýär. Bu çemeleşmäniň aýratynlygy, onuň hakyky dünýä meňzeşligi:
  • dürli jisimler biri-biri bilen täsirleşýär we biri-birine garaşsyz bar.
  • obýektleriň iýerarhiýasy bar we ata-babalarynyň özüni alyp barşyny üýtgetmäge ýa-da üýtgetmäge ukyply.
  • Abstrakt düşünjeler bilen işläp bilersiňiz, ýöne diňe bar bolan zatlar täsir edip biler.

Mysal

Prosessual gönükdirilen diller belli bir meseläni çözmek üçin guraldyr. Eger-de işiňizde üýtgeşiklik bar bolsa, hatda kiçi hem bolsa, ähli algoritmleri täzeden ýazmak üçin wagt we güýç sarp etmeli bolarsyňyz.

Представим программу, описывающую автосалон, который продает легковые и грузовые автомоб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. Документация.

    Iň giň resminama binýady: resmi Oracle resminamalary, okuw portallary, yzygiderli ösýän jemgyýet. Ösüş döwründe ýüze çykýan soraglaryň köpüsine birnäçe minutdan tapyp bilersiňiz, esasy zat gözleg motoryna näme ýazmalydygyna düşünmek =)

  3. Meşhurlyk.

    Java dünýäde iň meşhur programmirleme dilidir: ýokarda ady agzalan Android we web döredijilerden başga-da, ilkinji gezek kärhana döredijisi Java-da ýazýar. Kärhana iri korporasiýalaryň zerurlyklary üçin zerur içerki ösüşdir.

    Her ýyl ýigrenýänler “Java-yň ölümini” çaklaýarlar, “ Oracle muny goldamagy bes eder we umuman manysyz işleýärsiňiz ” diýýärler . Bu nädogry! Java-yň täze wersiýalarynyň her alty aýdan bir gezek çykjakdygy wada berilýär. Iň soňky wersiýanyň iň möhüm täzelikleri we aýratynlyklaryny şu ýerden okap bilersiňiz .

    Java 8-de lambdalar meniň üçin täze wersiýalary aýtmazlyk üçin öwrülişik we açyş boldy! Indi “retrograd” taslamasynyň üstünde işleýärin, şonuň üçin täzeliklere göz aýlamok, ýöne Java-yň ýaşaýandygy hakykat.

    Programmirleme dilini saýlamak - 4
  4. Android.

    “Android” soňky 4 ýylda jübi telefon bazarynyň 80% -den gowragyny ynam bilen eýeledi ; telewizorlar, media pleýerleri we hatda awtoulaglardaky media ulgamlary bu operasiýa ulgamynyň çäginde işleýär. Bu OS üçin ösüş esasan Java-da amala aşyrylýar. Geljegiň nähili açylýandygyny göz öňüne getiriň. “Android” dörediji hökmünde işe girenimde gyzyklandym: ösdürýän önümimiň bahasy näçe? Yearylda bahasynyň takmynan 5 dollardygy ýüze çykdy. Oňaýly sorag ýüze çykdy: bu edara, aýlyk, gutapjyklar, tennis stoly, robotlar we beýleki “gowy zatlar” üçin serişde nireden geldi? Bu mukdar meselesi: programmamyzda 20 million ulanyjy bar.

  5. Aýlyklar

    Şirinlik üçin: Java döredijiniň aýlygy bu pudakda iň ýokary. Belli bir maksat bilen programmirlemegi öwrenjek bolýarsyňyz: gowy iş tapmak.

Programmirleme diliniň meşhurlygy

Programmirleme dilini saýlanyňyzda, öwrenmegiň esasy maksady - ilkinji işe girmek hakda pikirlenmeli. Dürli dilleriň meşhurlygyna baha bermek üçin meşhur işe alyş portalyna bardym we Moskwa üçin dürli haýyşlar üçin boş ýerleriň sanyna seredip başladym. Netijeleri aşakda görüp bilersiňiz.
Java: 277
piton: 227
php: 188
c #: 147
c ++: 131
ýakut: 40
skala: 24
kotlin: 20
Hatda ýaňy-ýakynda meşhur bolan Python hem Java-dan öňe geçip bilmedi. Emma bular subýektiw maglumatlar: belli bir şäher, belli bir gün. Resmi çeşmeler bar, geliň olara ýüzleneliň. TIOBE-iň habaryna görä, 2018-nji ýylyň oktýabr aýyna çenli Java birinji ýerde durýar. PYPL reýtinginde Java JS-den has öňe geçip, “moda” Python bilen bäsleşýär.

Netijeler

Ine, başlangyç dilini programmirleme dilini saýlanyňyzda üns bermeli zatlary:
  • Meşhurlyk (Java yzygiderli öňdebaryjy orny eýeleýär);
  • Giriş bosagasy (Java üçin - ortaça: iş beriji tarapyndan talap edilýän başarnyklaryň diapazony gaty giň);
  • Elýeterli materiallar (rus dilinde JavaRush-a meňzeş portal ýok, şonuň üçin palma kimiň kimdigini çaklamaga gidýär));
  • Ulanylýan ugurlar: programmirleme dilini ulanyp boljak pudaklar näçe köp bolsa, bazarda şonça-da hünärmen gerek. Men eýýäm platforma barada gürleşipdim, ýöne gaýtalamakdan ýadamaryn.
Elbetde, hemme ýerde duzaklar bar, ýöne ýörän adam ýoly özleşdirer: haýsy programmirleme dilini saýlamalydygyny diňe özüňiz kesgitläp bilersiňiz . Okuwyňyzda üstünlik arzuw ediň!
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION