Zgjedhja e gjuhës tuaj të parë të programimit

Sigurisht që kjo është një nga pyetjet që më vjen më shumë në postën time kur flasim për programimin. Nëse do të fillojmë një seri artikujsh që do t'ju lejojnë të mësoni të programoni dhe të ktheni njohuri falas në formën e kontributeve në softuer të lirë / komunitete me burim të hapur në të gjithë botën, është e nevojshme t'i përgjigjeni kësaj baze nëse është pak e vështirë pyetje Çfarë gjuhe programimi duhet të mësoj?

Një histori pak

Në mënyrë që të fillojmë të kuptojmë dhe të zgjedhim një gjuhë programimi, së pari duhet të dimë pak për historinë e tyre, përdorimet dhe funksionet e tyre dhe mënyrën se si ato zgjidhin nevoja të ndryshme me kalimin e kohës.

Gjuhët e makinës (nivel i ulët)

Zakonisht njihet si KuvendAto janë gjuhë programimi që ne mund t'i përcaktojmë si dialekte të një gjuhe më të përgjithshme ... Kjo tingëllon paksa e ndërlikuar, por unë do ta ilustroj atë ... Ne e dimë se gjuha universale e informatikës është ELECTRICIDAD, kjo do të thotë se në fund të fundit ato që lexon një kompjuter janë 0sy 1po, le ta quajme kete eanglisht kompjuterik. Në këtë shembull, Spanjishtja është rregulli themelor, por siç e dimë mirë, Spanjishtja e folur nga Latinët nuk është e njëjtë me atë që flitet në Spanjë, dhe madje edhe kështu, Spanjishtja e Perusë nuk është e njëjtë me Spanjishten e Argjentinës. Padyshim që të gjithë kemi pothuajse të njëjtat fjalë (0sy 1s), por përdorimi dhe kuptimi mund të ndryshojnë sipas kontekstit.

Kjo ndodh në nivelin e procesorit. Kur flasim për arkitektura kompjuterike, (amd64, intel, arm, ...) i referohemi dialektit të asaj kompjuter spanjisht. Kjo është për shkak se kompani të ndryshme e kuptojnë rendin dhe kuptimin në mënyrën e tyre, kështu që disa ndryshojnë në detaje të tilla si rrjedha e rrymës, ose renditja në të cilën ato do të mbahen. 0sy 1s.

Këto gjuhë programimi janë jashtëzakonisht të shpejta, pasi ato punojnë në nivelin më të ulët të mundshëm të programimit, por ato janë shumë të varura nga arkitektura dhe sigurisht që janë pak më të komplikuara për tu mësuar se sa të tjerët. Këto shpesh kërkojnë një bazë më të gjerë të koncepteve në mënyrë që të transformohen të dhënat dhe të përdoren gjëra të dobishme mbi to. Për dashamirët e lojërave video, një shembull do të ishin tastierat SEGA, të cilat përdorën Assembly për të programuar lojërat e tyre. Padyshim që në atë kohë sasia e kujtesës ishte minimale në krahasim me sot, dhe ishte e nevojshme të zotëronte një gjuhë që mund të ishte e shpejtë dhe të prodhonte programe të lehta.

Gjuhë të nivelit të lartë

Ky grup i madh parashikon ato gjuhë që erdhën më pas Kuvend. Nevoja për të marrë një kod portativ çoi në shfaqjen e një grupi gjuhësh të quajtur hartuar. Midis këtyre, i pari që përfitoi ishte C, i cili ka dominuar programimin në nivelin e sistemit operativ që nga vitet 70.

Gjuhët e përpiluara

Le të shohim një shembull praktik të asaj që unë komentoj. Le të shohim një program shumë të thjeshtë në gjuhën C që shtyp një rresht të kodit.

Vetanake. Christopher Diaz Riveros

Pas përpilimit të saj kemi sa vijon:

Dizajni i tij: Christopher Díaz Riveros

Por tani le të shohim se çfarë do të duhet të shkruajmë për të përsëritur të njëjtin rezultat në kodin e Asamblesë:

Vetanake. Christopher Diaz Riveros

Ky është përkthimi i 3 linjave tona të kodit nga simple.c, dosja simple.s krijohet nga komanda gcc -S simple.c dhe është ajo që procesori ynë do ta kuptonte në një dialekt Kuvend. Padyshim që të krijohet një ekzekutues që konsiston në 0sy 1s skedari duhet të përpunohet simple.s dhe ta lidhni atë me bibliotekat e përbashkëta të sistemit tonë. Kjo është bërë duke përdorur një montues (as) dhe një lidhës (ld).

Gjuhët e përpiluara ofrojnë një avantazh të madh ndaj atyre të nivelit të ulët, ato janë portabël. Portabiliteti jep kod që mund të ekzekutohet në procesorë të ndryshëm pa pasur nevojë të gjeneroni kod specifik për secilën arkitekturë. Një avantazh tjetër i dukshëm është thjeshtësia që përdor gjatë leximit dhe shkrimit të kodit. Ndër disavantazhet kryesore të tij kemi një kompleksitet të lartë, pasi që në krahasim me llojet e mëposhtme të gjuhëve që do të shohim, liria që ofron C mund të jetë e dëmshme nëse nuk dini të kontrolloni, është sigurisht si të dorëzoni një armë , mund të ndodhë që në mungesë të përvojës një person të përfundojë duke qëlluar këmbën e tij në një përpjekje për të pastruar armën.

Gjuhët e interpretuara

Brenda këtij grupi kemi një larmi të madhe gjuhësh, ndër më të rëndësishmet kemi Python, Ruby, Javascript, PHP, etj ... Ideja themelore e këtyre gjuhëve është të ofrojnë një mënyrë të shpejtë për të krijuar dhe ekzekutuar programe , kjo është për shkak se shumë prej proceseve të vështira kryhen në interpret, dhe programimi i logjikës është ai që zbatohet në kod. Le të shohim të njëjtin shembull më lart, por këtë herë të shkruar në Python:

Vetanake. Christopher Diaz Riveros

Ndër gjërat më të jashtëzakonshme mund të shohim se rreshti i parë është përgjegjës për thirrjen e përkthyesit (programi që do të ekzekutojë aplikimin tonë) dhe kodi pasues është më "i thjeshtë" sesa versioni i tij në C, pasi që e gjithë puna e rëndë është kryer në përkthyes.

Vetanake. Christopher Diaz Riveros

Gjuhët e interpretuara i ofrojnë zhvilluesit një shtresë më të madhe sigurie, pasi ato kanë kontrolle më rigoroze të sigurisë (KUJDES se nuk janë perfekte, pasi edhe më të mirët mund të bëjnë gabime) dhe ne nuk vuajmë më rrezikun e gjuajtjes së armës pa e kuptuar ajo, pasi që në provën e parë, përkthyesi do të ngrinte një alarm dhe ekzekutimi do të anulohej. Disavantazhi kryesor bëhet i dukshëm gjatë ekzekutimit të programit, pasi ai është më i ngadaltë se homologu i tij binar, kjo pikërisht për shkak të sasisë më të madhe të përpunimit për të qenë në gjendje të sigurohet që kodi funksionon. Nëse programi nuk kërkon afate jashtëzakonisht të shkurtra, ndryshimi mund të mbetet pa u vërejtur, por nëse po flasim për mijëra ose miliona të dhëna në sekondë, ndryshimi bëhet eksponencialisht i dukshëm në gjuhët e përpiluara.

Shtypja

Kjo është një karakteristikë e gjuhëve programuese, këto mund të jenë fuqimisht dobët shtypur. Do ta lë këtë temë për një postim tjetër, pasi është e nevojshme dhe kurioze të kuptojmë se si ruhet memoria në një program, por tani duhet vetëm të bëjmë dallimin: Gjuhët e shtypura fort janë ato që kërkojnë të njohin llojin të të dhënave që do të punohen në një ndryshore ose konstante, ndërsa dobët llojet mund të kryejnë shndërrime kështu nënkuptuar dhe gjithçka do të varet nga një hierarki e konvertimit e ndjekur nga gjuha. (nëse nuk kuptohet tani, nuk ka problem, do ta lëmë për më vonë)

Paradigmat

Ashtu si gjithçka në botën GNU / Linux, gjuhët e programimit bazohen sipas paradigmave, dhe komunitetet gjenerohen rreth tyre. Për shembull ne kemi Fondacioni Python o rubin o PHP o Bash (në këtë rast është bashkësia GNU). Ajo që dua të arrij me këtë është se nuk mund të shpreh numrin e madh të pro dhe të këqijave që ka secili, por mund t'ju them se atje ku ka një gjuhë programimi falas, ka një komunitet për të mësuar dhe marrë pjesë. Vlen të përmendet se shumë, nëse jo të gjithë interpretuesit e gjuhës janë shkruar në C, ose ndonjë derivat i afërt, dhe zhvillimi i tyre zakonisht kryhet nga një grup më i vogël i komunitetit, të cilët janë të ngarkuar me marrjen e vendimeve që do të prekin të gjithë përdoruesit e gjuhës. Institucionet madje mund të formohen për të siguruar zhvillimin korrekt të gjuhës, siç është rasti me C.

Cilin të zgjedhim?

Ne tashmë kemi folur mjaftueshëm për gjuhët dhe unë akoma nuk i përgjigjem gjëes më të rëndësishme. Por shpresoj që pasi të kem shqyrtuar këtë artikull të vogël, nuk është e nevojshme që unë t'ju tregoj se cilën gjuhë duhet të zgjidhni, pasi që me këtë informacion jeni plotësisht të aftë të kërkoni një që krijon kuriozitet. Padyshim nëse doni të mësoni të programoni në një gjuhë Kuvend do të duhet shumë kohë para se të keni diçka funksionale, koha do të zvogëlohet shumë nëse vendosni një gjuhë të përpiluar, ku përveç se keni transportueshmëri në sistemet * NIX, do të jeni në gjendje të mësoni informacione në lidhje me funksionimin e i njëjti sistem, pasi që të qenit në kontakt me C ose derivatet ju bën që në një mënyrë ose në një tjetër të mësoni se si funksionon një sistem operativ në një mënyrë të përgjithshme. Së fundmi, nëse doni të mësoni diçka të lehtë dhe kjo ju lejon të bëni shumë pa pasur nevojë të kuptoni shumë, gjuhët e interpretuara janë një mënyrë argëtuese për të mësuar dhe zhvilluar aftësitë e programimit.

Mësoni me diçka emocionuese

Kjo është këshilla më e mirë që mund t'ju jap, nëse dëshironi të mësoni diçka, së pari duhet të gjeni diçka emocionuese, përndryshe do të jetë mjaft e vështirë të kapërceni kurbën tipike të të mësuarit të çdo gjuhe programimi. Supozoni se menaxhoni sisteme, në atë rast mund t'ju duhet të mësoni një gjuhë ideale për të scripting (interpretohet), brenda këtyre kemi Perl, Python, Bash, etj etj ... Ndoshta tuajat janë lojëra, ka shumë projekte në gjuhë të tilla si Javascript, Lua, C ++, në varësi të llojit të lojës që dëshironi te luaj. Ndoshta do të dëshironit të krijonit një mjet në nivelin e sistemit, pasi kemi C, Python, Perl, siç do të shihni disa përsëriten, dhe kjo sepse shumë gjuhë mund të përdoren për shumë detyra, prandaj përkufizimi e gjuhë për shumë qëllime në shumicën e këtyre.

Filloni një projekt

Me këtë nuk dua të them që krijoni përpiluesin e mëposhtëm, apo edhe gjuhën e mëposhtme të programimit, një projekt mund të jetë për të rregulluar një defekt të vogël në programin tuaj të preferuar, ndoshta edhe për të ndihmuar në përmirësimin e dokumentacionit. Pse dokumentacioni? sepse nuk ka asnjë mënyrë më të mirë për të mësuar se si funksionon softueri sesa duke lexuar dhe ndihmuar për të shkruar dokumentacionin e tij, sepse pas kodit burimor, ai është burimi më i madh i informacionit që do të gjeni në lidhje me programin. Në një moment tjetër do të shohim se si të lexojmë kodin e një projekti dhe të kuptojmë funksionet dhe vlerat që ata marrin.

Faleminderit shumë për arritjen këtu dhe si gjithmonë, komentet tuaja më ndihmojnë të krijoj përmbajtje më të mirë dhe të di se ku të përqendrohem, Përshëndetje.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   anonim dijo

    Si gjithmonë një 10 !!!!!! Faleminderit për artikujt tuaj. Përshëndetje dhe më shumë për të ardhur !!!!

    1.    ChrisADR dijo

      Faleminderit shumë 🙂 më inkurajon të vazhdoj të shkruaj. të fala

  2.   Rubén dijo

    Mendoj se është gabim të shtrohet pyetja "cilën gjuhë të zgjedh?" Unë jam një nga ata që mendojnë se gjuha është më e pakta, e rëndësishme është të mësosh bazat e programimit dhe të "mendosh në mënyrë kompjuterike". Vendosni për një sintaksë, shtypjen e saj, nëse mbështet OOP, dobinë e tij, etj. Unë mendoj se është diçka që do të vijë natyrshëm në studim dhe në fund të fundit, çdo programues di më shumë se 1, 2 dhe 3 gjuhë ... dhe falë koncepteve të programimit (dhe jo sintaksës) që ai ka, ai është në gjendje të programosh në një gjuhë që nuk e ke provuar ende.
    Sidoqoftë, për të iniciuarit, unë mendoj se një gjuhë e mirë mund të jetë Python për thjeshtësinë e saj, por mbi të gjitha, për të shkuar pak më tej, për të studiuar algoritme dhe për të ditur se si funksionojnë gjërat "brenda".

    Përshëndetje ChrisADR

    1.    ChrisADR dijo

      Përshëndetje Rubén, faleminderit për ndarjen
      Somethingshtë diçka që unë kam mësuar me kalimin e kohës në botën e programimit, dhe kjo është se "ai që mbulon shumë nuk shtrydh" dhe me këtë frazë të njohur dua të them se shumë herë, dhe sidomos më entuziastët, vendosin të provoni pak të gjitha, dhe bëni kthesa shumë të shpejta sa i përket mësimit të kodimit. Unë besoj, dhe është mendim personal, që një zhvillues i mirë duhet të dijë dhe zotërojë një gjuhë përpiluese dhe një gjuhë interpretuese, përveç që të ketë një nocion të disa dialekteve të Asamblesë.
      Arsyeja është si vijon, prototipizimi duhet të jetë gjithmonë diçka e thjeshtë dhe e shpejtë, e lehtë për tu gjeneruar dhe që në përgjithësi tregon një rezultat, por nëse nuk mjafton, duhet të ketë një "plan B" për të përdorur kur përkthyesi ka mbërritur në kufiri i tij.
      Njohja e një dialekti të Asamblesë jo vetëm që ju jep besim, por gjithashtu ju mëson të mendoni "në mënyrë kompjuterike", por padyshim që kjo pjesë është më e komplikuara nga të gjitha, dhe sigurisht është diçka për të cilën nuk vijnë të gjithë programuesit.
      Por përsëri në temë, sepse ideja kryesore që unë mendoj është, "zgjidh një gjuhë dhe praktiko SHUMOT", sepse me të vërtetë mënyra e vetme për t'u bërë i mirë në programim është duke lexuar dhe shkruar kod, dhe kjo është diçka që unë kam mësuar nga bashkësia e kernelit Kur mbani të njëjtën sintaksë për një kohë të gjatë, ju pushoni së shikuari formularin dhe filloni të shqetësoheni për HISTORIKU. Ideja e zgjedhjes së një gjuhe ose sintakse që nga fillimi është që dikush të jetë në gjendje të mësojë leximin dhe shkrimin e saj në një mënyrë të tillë që të mund të fillojë të lexojë KUPTIMIN e programit në vend të sintaksës së programit.
      Kjo është arsyeja kryesore për këtë postim, që secili zgjedh gjuhën e tij në mënyrë që në vijim të mund të shpjegojmë konceptet, mbase me këtë sqarohen dyshimet
      Përshëndetje dhe faleminderit për ndarjen.

  3.   deibis kontreras dijo

    faleminderit per postimin ishte mire.

    të fala

    1.    ChrisADR dijo

      Përshëndetje Deibis, faleminderit për ndarjen ... Përshëndetje

  4.   JorgeFS dijo

    Këshilla ime: çdo gjë tjetër përveç PHP. Njëzet vjet më parë PHP kishte një kuptim të caktuar në ekzistencën e tij për shkak të nivelit të lartë të kompleksitetit që po programonte Web-in në një gjuhë tjetër duke përdorur CGI. Por sot ekziston një larmi e madhe e Kornizave për ta bërë zhvillimin e Uebit shumë më të këndshëm në gjuhë të fuqishme, të tilla si Django për Python, Spring për Java ose Rails për Ruby. Edhe pse PHP aktualisht shfaqet në të gjitha tabelat e popullaritetit në gjuhë, për mendimin tim PHP do të humbasë rëndësinë e saj me kalimin e kohës.
    Unë fuqimisht këshilloj që të filloni me C \ C ++ për të kuptuar realitetin e programimit, megjithëse kurba e të nxënit është e pjerrët.
    Përshëndetje.

    1.    ChrisADR dijo

      Përshëndetje Jorge, faleminderit për ndarjen, vetëm duke kujtuar Laravel, i cili është një Kuadër mjaft i fortë. Unë personalisht kurrë nuk e kam pëlqyer Pranverën ose Java për zhvillimin e internetit, e shoh atë mjaft të rëndë, por mendoj se është pjesë e kohës që kanë qenë tregu, në atë kohë ata ishin pionierë dhe sigurisht sot alternativat moderne (Js, Python dhe Ruby) kanë qenë në gjendje të përmirësojnë mënyrën e paraqitjes së kodit që është i lexueshëm dhe i modifikueshëm pa shumë punë.
      Unë jam gjithashtu i prirur drejt njerëzve që mësojnë C / C ++ në një moment të jetës së tyre, kam filluar me Java, por mendoj se kjo është bukuria e programimit, ju mund të filloni me çfarë të doni, për sa kohë që jeni të qëndrueshëm jini të dobishëm 🙂

    2.    Rubén dijo

      Nuk mund të mos pajtohem më me ju. Kam filluar shumë vite më parë me C dhe VB, për t'u përqëndruar më vonë në PHP dhe JS (pasi u përqëndrova në zhvillimin e faqeve në internet) dhe më vonë gjatë studimit mësova C / C ++ dhe Java kryesisht.
      PHP ka një numër përparësish që nuk mund t'i rendis në këtë mesazh. PHP7 është i shpejtë (më i shpejtë se Python ... pa përdorur hhvm, memorije të ndryshme, korniza si Phalcon ose bytecode në rastin e Python), ka një numër të madh të bibliotekave dhe kornizave, ka një sasi të madhe funksionesh të implementuara drejtpërdrejt për t'u përdorur ato në çdo kohë, sintaksa e saj aq e ngjashme me C e bën shumë të lehtë migrimin në gjuhë të tjera.
      30% e faqeve në të gjithë botën janë bërë me WordPress (PHP) dhe kjo duket se nuk do të ndryshojë, Wikipedia e përdor atë, Facebook (me hhvm) dhe një numër i madh faqesh, në total, 80%.

      Unë ju kujtoj që Ruby on Rails si Django janë 12 vjeç! Çfarë kuote kanë arritur në këtë kohë? Dhe sigurisht, ne po flasim për 2 korniza që praktikisht kanë një monopol dhe nuk ka asnjë lloj fragmentimi. Çfarë alternative të tjera serioze kam? Të thuash se PHP do të humbasë rëndësinë ka shumë pak kuptim.

      Tani që Python është në modë sepse ka një kurbë të shpejtë të të mësuarit, është një gjuhë e thjeshtë dhe ata e shesin atë tek ju «bëhuni një programues në 20 orë me Python dhe punoni në të», me mbështetjen e kompanive si Google dhe se tani ekziston moda e kërkimit të gjuhëve të reja (Shko, Dart.) për të diferencuar veten në një CV (ose si lindja ditore e 50 kornizave për Javascript!), nuk do të thotë që gjërat të ndryshojnë.

      Ruby është një gjuhë shumë interesante, por prishet aq shumë me modelet e vendosura sa e kam të vështirë të besoj se u bë më e popullarizuar se PHP. Sigurisht, Ruby mendoj se është gjuha më e keqe për të filluar programimin nga të gjithë.
      Unë e kuptoj që ju më thoni që Python mund të jetë kënaqësi për të programuar, madje edhe Ruby me pafundësinë e tij të veçantë ... por Pranvera me Java? Vërtet? Java mund të jetë shumë gjëra ... por më e këndshme se Python dhe PHP?

      E gjitha është shumë mirë të fillosh me Python, por meqenëse qëndron vetëm me Python, rrezikon që shumë kompani të besojnë se niveli yt i programimit nuk është "i thellë" (edhe nëse je shumë i mirë në Python). Kjo sepse konkurron me gjuhë të tjera "për shumë qëllime" si C ++ ose Java. Ju mund të programoni në Python pa e ditur ndryshimin se çfarë dreqin është një tregues, operacionet pakëz, si funksionon një mbledhës plehrash dhe një etj.
      Python është ndoshta më pak i ngjashëm me "programimin klasik" që ekziston dhe mund të shihet si një "gjuhë për fëmijë" (merrni metaforën), dhe kjo nga ana tjetër është një avantazh dhe një disavantazh.

      1.    JorgeFS dijo

        "Python është ndoshta më pak i ngjashëm me 'programimin klasik' që ekziston dhe mund të shihet si një" gjuhë për fëmijët "(kupto metaforën), dhe kjo nga ana tjetër është një avantazh dhe një disavantazh." LOL, kjo është një nga gjërat më qesharake që pashë të them në lidhje me Python. A e keni mësuar ndonjëherë Python?
        Sa kohë ka qenë në të gjithë botën jashtë PHP?
        Shoku PHP lindi i vdekur. PHP (\ d +) ka shumë barrë për shkak të një dizajni fillestar shumë të keq dhe në mënyrë që të ruajë komunitetin e përdoruesve vazhdon të tërheqë shumë thellë të gjitha ato gabime fillestare të dizajnit. PHP lindi pa modularitet, me shumë funksionalitete të stilit C (që nga rruga, nuk e di nga e keni marrë pasi që sintaksa e saj është e ngjashme me C, ajo lehtë mund të bartet në gjuhë të tjera). Një gjuhë e nivelit të lartë, siç duhet të sillet PHP, ka gjëra të tilla të shëmtuara, siç janë gjurmët e funksioneve të renditura në faqen e saj zyrtare http://php.net/manual/en/indexes.functions.phpKjo sepse ka lindur pa modularitet, kështu që gjithçka është e ndyrë e përzier dhe pa hapësira emrash.
        Kjo është një pjesë e kodit PHP:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (rryma_context_get_params ($ ctx));
        ?>
        në një moment mund të përcaktohet nga janë importuar të gjitha këto funksionalitete të 'rrjedhës'? JO, atëherë mund të thuash që ato janë funksione të ndërtimit, por atëherë i gjithë ekosistemi janë funksione të ndërtimit? Dhe kështu, ka shumë mbeturina në kodin PHP, që nëse nuk jeni në gjendje të kuptoni kompleksitetin dhe padobishmërinë e një dizajni kaq të keq, më falni por ka akoma shumë botë për të parë.
        Wordpress është një zgjidhje e shkëlqyeshme softuerike, por kjo nuk do të thotë se ka një bazë të mirë teknologjike. Ju mund të çekiçoni me një gur dhe të nxirrni thonjtë me dhëmbët tuaj, dhe përsëri mund të bëni një punë të shkëlqyeshme zdrukthtari, por natyrisht, me shumë më shumë punë sesa një tjetër marangoz që përdor një çekan të mirë.

        Nga ana tjetër: "bëhu programues në 20 orë me Python dhe puno në të", nuk kam parë kurrë një marrëzi të tillë. Ju mund të ndërtoni një faqe në PHP brenda 20 orësh dhe pa pasur njohuri se si funksionon programimi në internet, ose vetë programimi. Në fakt kjo është arsyeja pse PHP është kaq e popullarizuar, sepse të sapoardhurit me të hyrë në këtë botë e shohin PHP si një pikë të zhvillimit të shpejtë (prandaj kaq shumë kod PHP thith aq shumë).
        Lidhur me mangësitë e Python, e vetmja në të cilën ishte e suksesshme ishte të punonte me pointerë, por në çdo rast, Python është një gjuhë e nivelit të lartë (siç është Java) dhe nuk i përdor ato në nivelin e sintaksës; por operacione me bit, serioze?, e keni fjalën për këtë x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Unë e kuptova seriozisht gjënë e mbledhësit të plehrave shumë më pak: https://docs.python.org/3/library/gc.html.
        Boshllëqet e PHP:
        -PHP ka një dizajn shumë të dobët të orientuar drejt objektit (OOP).
        -Ju nuk mund të mbingarkoni akoma operatorë.
        -E papritur, function overloading në PHP nuk është ajo që natyrshëm pret nga ky koncept.
        … .. dhe sapo u mërzita hehe.
        Përshëndetje.

        1.    Rubén dijo

          Vendos në kllapa "kupto metaforën" (nga krahasimi i Python me C ++ / Java në të njëjtin mjedis pune), është e qartë që nuk e kuptonit. Unë mund t'ju them se një programues C ++ mund të mësojë Python në një mënyrë shumë më të shpejtë sesa një programues Python mund të mësojë C ++, ashtu siç nuk është për t'u habitur që paga mesatare e një programuesi C / C ++ është më e lartë se një Një Python.
          Mund ta shpjegoj me shembuj të tjerë, madje edhe me një vizatim! por duket se ju përqendroheni vetëm në dekontekstualizimin dhe përqeshjen e asaj që unë vë.

          Në asnjë moment nuk kam thënë që PHP është gjuha më e mirë në botë ose se ka një dizajn shembullor, nuk e di nga e merrni atë. Unë mendoj se para se të gjykoni njohuritë e të tjerëve, ju duhet të përmirësoni të kuptuarit tuaj të leximit. Ajo që është e vërtetë (dhe e thashë në mesazhin tim) është se zhvillimi me të është shumë i shkathët, përveç gjithë ekosistemit të kornizave, bibliotekave dhe shërbimeve që mund të gjeni.
          Gjithashtu, çfarë lloj krahasimi bëjmë? Python si gjuhë me shumë qëllime apo për ueb? Në atë rast, pse e krahasojmë atë me PHP? PHP ka një fushë specifike dhe është në atë fushë ku Python (me një përqindje 0.2%, e cila nuk ka ndryshuar gjatë gjithë këtij viti) zbehet pranë PHP.
          Tani do të shohim trendet e PHP; nga 82,4% në janar 2017 në 83.1% në janar 2018: https://w3techs.com/technologies/history_overview/programming_language

          A do Python të rrëzojë PHP-në nga froni? Ne cilin vit në cilat pesë vjet? dekada?
          Python do të jetë në gjendje të përdoret në shumë detyra të tjera, madje edhe të bëhet më i përdorur se PHP, por Python si gjuhë e zhvillimit të faqes në internet është vite drite larg nga të qenit madje e rëndësishme, 0.2% duke ngecur kundrejt 83.1% (me një rritje këtë vit).

          Ju gjithashtu i merrni gjërat për të mirë duke thënë që unë nuk shkoj rreth PHP, duke lënë të kuptohet se unë di vetëm PHP, kur saktësisht nuk kam programuar në PHP për një kohë të gjatë haha. Aktualisht, për arsye pune, kryesisht programoj në Java.
          As nuk kam thënë që duke programuar në Python nuk keni njohuri për bitwise, një mbledhës plehrash ose një tregues. Përkundrazi, ju mund të programoni në Python edhe pa e ditur se çfarë është kjo. Sidoqoftë, dyshoj shumë se do të ishte rasti për një programues të C ++. Dhe padyshim që bëj krahasimin kur Python hyn në atë fushë të "gjuhës me shumë qëllime", jo për programimin në internet.

          Bëhuni programues në 20 orë është thjesht një shaka, një ekzagjerim. Sidoqoftë, unë mund t'ju vë këtu lidhje të ndryshme në lidhje me platformat dhe kurset arsimore në internet që premtojnë gjëra të ngjashme. Mos më fajëso, fajëso atë në një treg pune që mendon se të bësh një "programues ekspert" është çështje e marrjes së një kursi 20-orësh. Dhe Python është një nga gjuhët në modë dhe gjithashtu, me kurbën e të mësuarit më të shpejtë ... të bardhë dhe në një shishe.

          Unë këmbëngul, ju e bazoni mesazhin tuaj duke thënë se sa keq është PHP (që në një pjesë të caktuar, jam dakord). Më duket korrekte, përveç që mesazhi im nuk ka të bëjë me këtë, por pse PHP do të vazhdojë të përdoret dhe nuk do të zhduket nesër siç mendoni.

          Një përshëndetje

  5.   askush dijo

    C -> Shko -> (Lisp | Haskell | Java | çfarëdo)

    1.    ChrisADR dijo

      Kohët e fundit një lexues më dërgoi në emailin tim një rekomandim të një libri Go, sigurisht një gjuhë që duhet të merret parasysh në të ardhmen dhe për të cilën mbase do të ketë një postim këtu 🙂 Shumë grafikë për të ndarë

  6.   mvr1981 dijo

    Epo ... dhe çfarë programoj? Pse të mësoni një gjuhë programimi sot me programues kaq të mirë dhe me përvojë që tashmë ekzistojnë? Çfarë problemesh mund të zgjidh që të tjerët nuk i kanë zgjidhur tashmë në një mënyrë shumë më efikase?… Shkurtimisht: Sa origjinale është të jesh programues sot? Si mund të bashkëpunoj me të tjerët pa u shkelur ose përjashtuar nga mungesa e njohurive dhe përvojave të mia?

    1.    ChrisADR dijo

      Përshëndetje mvr1981, pyetje vërtet interesante ... ne do t'i mbështjellim ato nga e fundit tek e para.

      Si mund të bashkëpunoj me të tjerët pa u shkelur ose përjashtuar nga mungesa e njohurive dhe përvojave të mia?

      Nëse nuk doni t'ju godasin, hapi i parë është të mësoni procesin, nuk mund ta imagjinoni numrin e njerëzve që vijnë në projekte që dëshirojnë t'i bëjnë gjërat ekskluzivisht në mënyrën e tyre, duke dashur që komuniteti t'i përshtatet dëshirave të tyre. Sigurisht është sikur unë të vij në shtëpinë tënde dhe të bëj rrëmujë dhe të mos respektoj familjen tënde (kështu ndihet shumë herë). Nëse doni të parandaloni që kjo të ndodhë, kushtojini vëmendje udhëzimeve për të kontribuar, mjeteve me të cilat mund ta bëni atë dhe mos dërgoni diçka jo të plotë, nëse keni nevojë për ndihmë, gjithmonë ka mjete për të komunikuar, por një punë e bërë keq ndoshta krijojnë përshtypje të këqija të para. Nëse nuk doni të përjashtoni veten që varet nga ju, ju mund ta shihni atë si një programues të padobishëm që nuk di se çfarë po bën ose ai që është në rrugën e tij për t'u bërë një programues i shkëlqyeshëm, dhe kjo ndodh vetëm me praktikë dhe sigurisht me mete gjatë rrugës. Kam gabuar shumë herë para se të merrja statusin tim të zhvilluesit në Gentoo, dhe kjo nuk më ndaloi të përpiqem pavarësisht nga "koha e keqe".

      Sa origjinale është të jesh programues sot?

      -Nuk ka të bëjë me origjinalitet, është një domosdoshmëri sot, thjesht mendo për sa vijon, 20 apo 30 vjet më parë, shtypja ishte një domosdoshmëri, shumë punë të konkluduara që ti i dinit ose të paktën mund ta bënit. Sot njohja e Zyrës është një domosdoshmëri, praktikisht nuk ka punë që nuk ju vë përpara dokumenteve të Zyrës. Nesër, shumë shpejt, programimi do të jetë një domosdoshmëri. Dhe kjo vlen edhe nga pikëpamja personale, duke ditur se çfarë ndodh në programet të cilave u beson gjëra aq të rëndësishme sa paratë, shëndetin, familjen, është diçka logjike për mua, sepse ju mund të dini kufizimet e tyre vetëm nëse i dini se si punoni dhe për ta njohur atë, duhet të dini të programoni.

      Çfarë problemesh mund të zgjidh që të tjerët nuk i kanë zgjidhur tashmë në një mënyrë shumë më efikase?

      -Ju do të habiteni nga sasia e karakteristika që kërkohen sot, dhe të them të drejtën, nuk ka rëndësi që ka programuesit më të mirë në botë në komunitet, puna do të jetë gjithmonë më e madhe se kapaciteti i punës i zhvilluesve, unë mund ta verifikoj këtë në Gentoo, atje janë njerëzit që zhvillojnë bërthamën, njerëzit që punojnë për Google, Sony, etj etj ... e vetmja gjë që kemi të përbashkët është se askush nuk ka aq kohë sa ata do të donin të ishin në gjendje të bënin të gjithë punën në pritje.

      Pse të mësoni një gjuhë programimi sot me programues kaq të mirë dhe me përvojë që tashmë ekzistojnë?

      -Kjo është përgjigjur në pyetjen e dytë ... Por tani mund të shtoj që brezat duhet të jenë në gjendje të mbështesin punën që është zhvilluar tashmë, me këtë dua të them që ata zhvillues "me përvojë" do të zhduken gradualisht dhe do të jetë e nevojshme për " më të rinj »Zhvilluesit marrin përgjegjësi dhe ndihmojnë në mbajtjen gjallë të ciklit, një komunitet që nuk ka njerëz të rinj dhe pa përvojë është i prirur të zhduket me kalimin e kohës, pikërisht sepse nuk do të ketë mundësi për të transmetuar njohuri.

      Dhe çfarë programoj?

      -Kjo është ndoshta gjëja më e vështirë për t'u përgjigjur, por do të përpiqem t'ju jap një shembull poco Kohët e fundit fillova të vuaja nga problemet me GNOME 24 dhe lidhja e tij me Wayland që parandalojnë programe si Shutter të marrin pamje nga ekrani. Ky është një problem për mua sepse kur shkruaj artikujt e mi, duhet të ju tregoj atë që them say duke shikuar pak rreth, erdha te aplikacioni GNOME Screenshot, disi "minimalist" për të thënë të paktën. Ndër funksionet e tij, ekziston një nga marrja e një rajoni të ekranit, por çfarë ndodh nëse nuk e bëj foton mirë? Epo, unë duhet të largohem dhe të futem sërish në program, diçka e lodhshme sigurisht, një buton që thotë "Retake" ose diçka e tillë më lejon të marr një kapje të re pa pasur nevojë të dal dhe të hyj përsëri do të më ndihmonte. projekti i programimit, unë kurrë nuk kam programuar asgjë në kornizën GNOME, kështu që padyshim që kam shumë për të mësuar para se të dërgoj "patch" tim me butonin e ri, por gjatë rrugës mësoj të programoj dhe shpresoj që kjo tipar do të jetë në ndihmë të më shumë se një, kur të jetë në dispozicion për të gjithë.

      Ky është një shembull, është diçka e thjeshtë dhe që me siguri çdo programues tjetër "ekspert" mund ta ketë bërë tashmë, por për shkak të mungesës së dukshme të kohës, nuk ka qenë kështu, tani unë jam ai që kam mundësinë të bëj ajo, pa qenë në të vërtetë një super programues.

      Tani ju mbetet vetëm juve të gjeni diçka që do ta bënte jetën tuaj "më të thjeshtë" në atë softuer që e përdorni kaq shpesh, bukuria e kësaj është që nëse ndjekim këshillat që do t'ju jap në artikujt vijues, gjuha nuk do të ketë rëndësi, sepse ata do të dinë bazat për të filluar të kuptojnë kodin që lexojnë dhe ta modifikojnë atë për të bërë atë që ju dëshironi, kjo është një ndjenjë shumë e veçantë

      Përshëndetje dhe faleminderit përsëri

      1.    askush dijo

        Unë mendoj se vetëm pasi të kem hapur programin e kapjes së gnome, gjëja më e lehtë është të shkosh te shkurtoret e tastierës dhe të caktosh tre kombinime të shtypura për të kapur të gjithë shtypjen alt për të kapur dritaren aktive dhe super shtypjen për të bërë një zgjedhje nga kapni rajonin, shkurtesat e disponueshme janë këtu, thjesht është çështje e caktimit të tyre

        1.    ChrisADR dijo

          Kjo është arsyeja pse ne ju japim një shembull 🙂 sepse gjëra të vogla si ai buton janë duke programuar, ata mund të ndihmojnë disa pasi mund të kalojnë pa u vërejtur nga të tjerët, por ato sigurisht përmbushin objektivin kryesor, ndihmojnë të mësojnë të programojnë dhe t'u japin rrugë veçorive të reja, Pas këtij butoni mund të fillojnë shumë gjëra, të tilla si një menaxhim i sesionit, ose një ekran paraprak i të gjitha fotove të bëra, ose me pak fjalë, shumë gjëra që mund të bëhen. Ideja është që ju të gjeni diçka që ju bën të hidhni kureshtjen tuaj, çdo softuer që funksionon në sistemin tuaj mund të ketë nevojë për përmirësime ose karakteristika të reja që për shkak të mungesës së kohës ose personelit nuk janë zbatuar ende

      2.    mvr1981 dijo

        Fale teje. janë përgjigje shumë të mira.

    2.    Guillermo dijo

      Epo, për dikë që nuk do të jetë një profesionist në këtë fushë, do të ishte e nevojshme të shihet se në cilin mjedis punojnë, si për detyrat administrative dhe direktivat mund të jetë interesante të dihet, për shembull, Python / Basic dhe të dijë se si të programojë makrot në paketat e zyrave siç janë LibreOffice ose MS Office. Ka raste kur kjo mund të kursejë shumë orë punë për ju ose punëtorë të tjerë që ju rrethojnë dhe u kërkoni atyre të kryejnë ndonjë detyrë të përsëritur, ju mund të krijoni një panel për të llogaritur shpejt raportet kryesore të kompanisë pasi të lidheni me bazën e të dhënave të saj dhe kryej disa pyetje SQL.
      Si gjithçka, nëse i njihni mjetet në majë të gishtave mund të mendoni se si të përfitoni sa më shumë prej saj. Jo gjithçka është e sajuar.

  7.   Marcelo dijo

    Guillermo, pajtohem plotësisht me ty, "Jo gjithçka është shpikur" dhe ajo që është shpikur është e modifikueshme. Ju duhet të përfitoni sa më shumë nga mjetet dhe të përdorni atë që i përshtatet më mirë nevojave tuaja.

  8.   Ricardo dijo

    Për programimin, gjuha e parë për të mësuar është anglishtja, pastaj ajo që i tërheq më shumë dhe u duket më e bukur për ta.

    1.    ChrisADR dijo

      Nuk e kisha shkruar, por e vërtetë 🙂 njohja e anglishtes ndihmon shumë pasi që shumica e gjuhëve janë shkruar në të, por edhe sepse sasia më e madhe e informacionit të dorës së parë gjithashtu Faleminderit shumë për ndarjen

  9.   Ruben salgado dijo

    Artikull i shkëlqyeshëm, përveç motivimit.

    1.    ChrisADR dijo

      Shumë i sjellshëm, faleminderit shumë 🙂 Përshëndetje

  10.   Gonzalo martinez dijo

    Programimi është të dish të arsyetosh dhe përkthesh atë arsyetim në udhëzime.

    Dy sqarime në lidhje me artikullin:

    1) Bazuar në përvojën time si mësues programimi për gati 10 vjet, nuk ka rëndësi se me çfarë gjuhe mësoni, por si mësoni dhe sa komplekse është.

    Unë mendoj se një gjuhë që mund të mësohet në një mënyrë të strukturuar, dhe pastaj të kalojë në gjëra të tjera më komplekse, është më e lehtë sesa të fillosh me një gjuhë si Java që nga fillimi.

    Easiershtë më lehtë të mësosh diçka si Hello World në C ose Pascal si bazë, sesa me disa rreshta (PROGRAM në rastin e Pascal, ose # përfshij Në rastin e C) ju mund të filloni të zhvilloni algoritmin dhe të kodoni programin me logjikën e tij drejtpërdrejt, si në Java, e cila në vetvete ka nevojë për një klasë, një metodë dhe disa gjëra të tjera që për një fillestar është një mbingarkesë informacioni e panevojshme, dhe që fare mirë mund të injorohet dhe të kalojë në gjëra të tjera, por ato janë koncepte që janë atje, dhe për mendimin tim, mbikëqyrja e gjërave nuk është një mënyrë e mirë për të mësuar, veçanërisht nëse gjuha ju detyron t'i përdorni ato. Likeshtë si të fillosh një praktikë të shënjestruar për herë të parë me një M-16, dhe të gjuajsh për muaj në modë gjysmë automatike duke mbajtur dorezën me të dy duart si një pistoletë.

    2) Nëse një gjuhë interpretohet ose përpilohet varet nga zbatimi i saj, jo nga vetë gjuha. Për shembull, nëse përdoret Python, për një aplikacion në internet që përdor wsgi (ose mod_wsgi në apache, ose uwsgi për Nginx), kodi python përpilohet kur filloni modulin përkatës, duke gjeneruar skedarë .pyc

    Ekzistojnë gjithashtu gjeneratorë skedarësh binarë për java (të cilët gjenerojnë binarë vendas në vend të bytecode), ose përpilues të skriptave php në binarë të pastër.

    Lidhur me atë që thonë ata për PHP, ajo është thjesht një gjuhë e krijuar në një epokë tjetër, me gjëra të tjera në mendje, dhe pa marrë parasysh aspektet që nuk ekzistonin në atë kohë. Shtë e qartë, fakti që është më i përdorur nuk e bën atë më të mirën për asgjë në botë, por ekziston një realitet: është gjuha me të cilën ka shansin më të madh për të gjetur një punë në të gjitha programet. Të dish se nuk të dhemb, edhe nëse nuk të pëlqen.

    Edhe unë kam punuar si Administrator i Sistemit për disa vjet dhe kam lënë punën e zhvilluesit, aq shpesh më duhet të vendos kodin PHP në diçka.

    1.    ChrisADR dijo

      Përshëndetje Gonzalo, faleminderit për ndarjen,

      Padyshim që flasim për mbingarkesat e panevojshme të informacionit, të dish se e njëjta gjuhë mund të interpretohet ose përpilohet është diçka që nuk është e nevojshme në këtë fazë 🙂 Sigurisht që zbatimi është i rëndësishëm, por nëse themi se në këtë nivel, ne nuk gjenerojmë më shumë se konfuzion. Në të njëjtën mënyrë, çështjet e programimit të orientuara drejt objektit nuk adresohen, ose koncepte të tjera që duhet të dozohen gradualisht në mënyrë që të mos i marrin mendtë njerëzit.

      Meqenëse hapësira është e kufizuar, qëllimi kryesor i postimit është t'u tregojë lexuesve që dëshirojnë të programojnë se ekzistojnë dy botë të mëdha gjuhësh, se interpretimet "tradicionalisht" janë më "të thjeshta", se "tradicionalisht" të përpiluara janë pak më shumë "kompleks" por që ia vlen që niveli i kompleksitetit të ketë një kuptim më të fortë dhe se i takon secilit person të zgjedhë gjuhën, pasi që varësisht nga qasja e programimit, ata do të jenë në gjendje të zgjedhin projektet e tyre të preferuara dhe në në të njëjtën kohë ata do të jenë në gjendje të kuptojnë se çfarë lexojnë dhe / ose shkruajnë

      Shumë faleminderit përsëri, përshëndetje.

      1.    Gonzalo martinez dijo

        Ky është një gabim, nuk ka gjuhë të përpiluara ose të interpretuara, ka interpretues dhe përpilues për secilën gjuhë, si për raste të ndryshme.

        Nuk është një mbingarkesë informacioni për ta përmendur tani, është gabim të bësh një deklaratë të tillë. Sipas mendimit tim, do të kishte qenë më produktive të injoroni përkthyesit nëse nuk dëshironi të mbingarkoni me informacion.

        1.    ChrisADR dijo

          Faleminderit për sqarimin, do ta marr parasysh kur të kthehem në temë. Brohoritje

  11.   Ares dijo

    Çfarë gjuhe rekomandoni për anën e serverit duke pasur parasysh që php nuk ju pëlqente?
    E njëjta gjë për bazat e të dhënave, nuk e di nëse do të ketë diçka më të mirë dhe më moderne se mySQL.

    1.    ChrisADR dijo

      PHP nuk ka rënë në sy të mirë ... Çdo gjuhë ka ciklin e saj të jetës, dhe php është sigurisht tashmë një gjuhë që hyn në shkallën e "pjekur", gjë që e bën atë të dobishme në nivelin e biznesit, ku stabiliteti është mbi të gjitha ... Ashtu si disa banka ku është zhvilluar ende në java, e cila është më "e pjekur" se php dhe sigurisht që ka ndjekësit dhe keqbërësit e saj ... Dhe për të mos përmendur COBOL ...

      Nëse ajo që po kërkoni është uniformiteti dhe moderniteti, javascript po bëhet një nga më të preferuarit e të ashtuquajturve "zhvillues të plotë stack", megjithëse paradigma e rubinës ose "thjeshtësia" e python janë gjithashtu referenca të mira. Edhe perl mund të jetë opsion në varësi të nevojave

      Në ditët e sotme ORM (hartuesit relacionalë të objektit) po fiton shumë forcë në drejtim të menaxhimit të të dhënave relacionale. Shkon nga sintaksa SQL në trajtimin e klasave dhe atributeve ... Pothuajse të gjitha gjuhët (nëse jo të gjitha) trajtojnë disa ORM.

      . Mongo DB është një alternativë ndaj bazave të të dhënave relacionale që është bërë mjaft e rëndësishme, megjithatë, është e nevojshme të njihni pro dhe kundër të saj dhe të vërtetoni nëse do të ishte zgjidhja më e mirë në varësi të nevojës specifike.

      Shpresoj të të ndihmojë, përshëndetje

      1.    Ares dijo

        Faleminderit, do ta kontrolloj atë.

      2.    Ares dijo

        Harrova

        Çfarë më rekomandoni të punoj me JAVA në Linux?
        Nëse mund të bëni më mirë dallimin midis të lirë dhe të mbyllur.

        1.    ChrisADR dijo

          Eclipse dhe NetBeans janë burim i hapur, nuk jam i sigurt nëse ka ndonjë softuer thjesht falas, unë kam zakon të përdor vim sepse ndonjëherë sasia e kodit e bën përdorimin e një IDE të tërë të ngadaltë dhe të prirur për gabime ekzekutimi. Pershendetje

        2.    paulzeta dijo

          Për të punuar me java në Linux unë përdor IntelliJ ju rekomandoj.

          1.    ChrisADR dijo

            PS, IntelliJ është softuer i pronarit

  12.   je dijo

    Djemtë gjithashtu kujtojnë se ... Unë punoj në një bankë dhe ju them se gjuhët e programimit zënë vendin e dytë për të lejuar SQL dhe Procedurat e Ruajtura të shkojnë më parë.

    1.    Gonzalo martinez dijo

      Ju duhet t'i merrni parasysh procedurat e ruajtura, por duke mos përdorur një gjuhë të lëvizshme midis motorëve, të paktën në përvojën time, ka të bëjë gjithmonë me shmangien e tyre nëse nuk ka ndonjë mundësi tjetër.