Pirmosios programavimo kalbos pasirinkimas

Be abejo, tai yra vienas iš klausimų, kuris labiausiai patenka į mano pašto dėžutę programavimo srityje. Jei mes pradėsime straipsnių seriją, kuri leis jums išmokti programuoti ir grąžinti nemokamas žinias indėlio forma į nemokamos programinės įrangos / atvirojo kodo bendruomenes visame pasaulyje, būtina atsakyti į šį pagrindą klausimas. Kokią programavimo kalbą turėčiau išmokti?

Šiek tiek istorijos

Norėdami pradėti suprasti ir pasirinkti programavimo kalbą, pirmiausia turime šiek tiek žinoti apie jų istoriją, naudojimo būdus ir funkcijas bei tai, kaip jie laikui bėgant sprendžia skirtingus poreikius.

Mašinų kalbos (žemas lygis)

Paprastai žinomas kaip SurinkimasJie yra programavimo kalbos, kurias galėtume apibrėžti kaip bendresnės kalbos dialektus ... Tai skamba šiek tiek komplikuotai, bet aš tai parodysiu ... Mes žinome, kad universali skaičiavimo kalba yra elektra, tai reiškia, kad galiausiai tai, ką skaito kompiuteris 0sy 1taip, pavadinkime tai ekompiuteris angliškai. Šiame pavyzdyje ispanų kalba yra pagrindinė taisyklė, tačiau, kaip mes gerai žinome, lotynų kalba kalbama ispanų kalba nėra tokia pati kaip Ispanijoje, ir netgi taip, Peru ispanų kalba nėra tokia pati kaip Argentinos ispanų. Akivaizdu, kad visi turime beveik tuos pačius žodžius (0sy 1s), tačiau naudojimas ir reikšmė gali skirtis priklausomai nuo konteksto.

Tai atsitinka procesoriaus lygiu. Kai kalbėsime apie skaičiavimo architektūros, (amd64, intel, arm, ...) mes vadiname to dialektu kompiuteris ispanas. Taip yra todėl, kad skirtingos įmonės savaip supranta tvarką ir prasmę, todėl kai kurios skiriasi detalėmis, tokiomis kaip srovės srautas ar tvarka, kuria jos bus laikomos. 0sy 1s.

Šios programavimo kalbos yra ypač greitos, nes jos dirba kuo žemesniame programavimo lygyje, tačiau jos labai priklauso nuo architektūros ir yra tikrai šiek tiek sudėtingesnės išmokti nei likusios. Tam dažnai reikia platesnės sąvokų bazės, norint transformuoti duomenis ir atlikti juose naudingus dalykus. Vaizdo žaidimų mėgėjams pavyzdys galėtų būti „SEGA“ konsolės, kurios žaidimus programavo „Assembly“. Akivaizdu, kad tuo metu atminties kiekis buvo minimalus, palyginti su šiandieniniu, todėl reikėjo išmokti greitą kalbą ir sukurti lengvas programas.

Aukšto lygio kalbos

Ši didelė grupė mąsto apie tas kalbas, kurios atsirado Surinkimas. Dėl poreikio gauti nešiojamąjį kodą atsirado vadinamų kalbų grupė sudarytas. Tarp jų pirmasis pasinaudojo C, kuris nuo 70-ųjų vyravo programuojant operacinės sistemos lygiu.

Sudarytos kalbos

Pažiūrėkime praktinį pavyzdį, ką komentuoju. Pažvelkime į labai paprastą C kalbos programą, kuri atspausdina vieną kodo eilutę.

Savo. Christopheris Diazas Riverosas

Jį sukompiliavę turime:

Nuosavas dizainas: Christopher Díaz Riveros

Bet dabar pažiūrėkime, ką turėtume parašyti, kad pakartotume tą patį rezultatą Asamblėjos kode:

Savo. Christopheris Diazas Riverosas

Tai yra mūsų 3 eilutės kodo vertimas iš simple.c, failas simple.s yra sukurtas naudojant komandą gcc -S simple.c ir tai, ką mūsų procesorius suprastų tarme Surinkimas. Aišku, norint sukurti vykdomąjį failą, kurį sudaro 0sy 1s failą reikia apdoroti simple.s ir susiekite jį su mūsų sistemos bendrosiomis bibliotekomis. Tai daroma naudojant a surinkėjas (as) ir jungtis (ld).

Sudarytos kalbos suteikia didelį pranašumą prieš žemo lygio kalbas nešiojamas. Perkeliamumas pateikia kodą, kurį galima vykdyti skirtinguose procesoriuose, nereikia generuoti konkretaus kodo kiekvienai architektūrai. Kitas akivaizdus pranašumas yra paprastumas, kurį jis naudoja skaitydamas ir rašydamas kodą. Tarp pagrindinių trūkumų mes labai sudėtingi, nes, palyginti su šių kalbų tipais, kuriuos matysime, laisvė, kurią siūlo C, gali būti žalinga, jei nežinote, kaip valdyti, tai tikrai panašu į ginklo atidavimą, gali atsitikti taip, kad trūkus kalbos patirtis, kai žmogus baigia šaudyti savo koja bandydamas išvalyti ginklą.

Aiškinamos kalbos

Šioje grupėje yra daugybė kalbų, tarp kurių svarbiausios yra „Python“, „Ruby“, „Javascript“, PHP ir kt. ... Pagrindinė šių kalbų idėja yra greitas būdas kurti ir vykdyti programas, nes daugelis sunkių procesų yra atliekami vertėjo žodžiu, o logikos programavimas yra tai, kas įgyvendinama kode. Pažvelkime į tą patį aukščiau pateiktą pavyzdį, bet šį kartą parašytą „Python“:

Savo. Christopheris Diazas Riverosas

Tarp puikiausių dalykų galime pastebėti, kad pirmoji eilutė atsako už vertėjo (programos, kuri vykdys mūsų programą) iškvietimą, o paskesnis kodas yra „paprastesnis“ nei jo versija C, nes visas sunkus darbas yra atliekama vertėjui.

Savo. Christopheris Diazas Riverosas

Išaiškintos kalbos suteikia kūrėjui didesnį saugumo sluoksnį, nes jie turi griežtesnę saugumo kontrolę (ĮSIPRAREPĖKITE, kad jos nėra tobulos, nes net ir geriausi gali padaryti klaidų) ir mes nebepatenkame pavojaus paleisti ginklą to nesuprasdami, kadangi pirmu bandymu vertėjas paskelbė perspėjimą ir vykdymas buvo atšauktas. Pagrindinis trūkumas išryškėja vykdant programą, nes ji yra lėtesnė nei jos dvejetainis atitikmuo, būtent dėl ​​didesnio apdorojimo kiekio, kad būtų galima užtikrinti, jog kodas veikia. Jei programai nereikia itin trumpų terminų, skirtumas gali būti nepastebėtas, tačiau jei kalbame apie tūkstančius ar milijonus duomenų per sekundę, skirtumas tampa eksponentiškai pastebimas kompiliuojamose kalbose.

Rašyti

Tai būdinga programavimo kalboms, tokių gali būti stipriai silpnai spausdinta. Paliksiu šią temą kitam įrašui, nes tai yra būtina ir įdomu suprasti, kaip programoje saugoma atmintis, tačiau kol kas mums reikia tik atskirti: Stipriai įvestos kalbos yra tos, kurioms reikia žinoti duomenų, kurie bus apdorojami pagal kintamąjį ar konstantą, tipas silpnai tipai gali atlikti konversijas taip numanomas ir viskas priklausys nuo konversijos hierarchijos, po kurios eis kalba. (jei dabar nesuprantama, jokių problemų, paliksime vėliau)

Paradigmos

Kaip ir viskas GNU / Linux pasaulyje, taip ir programavimo kalbos yra pagrįstos paradigmomis, o aplink jas kuriamos bendruomenės. Pavyzdžiui, mes turime „Python“ fondas o rubinas o PHP o Bashas (tokiu atveju tai yra GNU bendruomenė). Noriu tuo pasinaudoti tuo, kad negaliu išsakyti daug privalumų ir trūkumų, kuriuos kiekvienas turi, bet galiu pasakyti, kad ten, kur yra nemokama programavimo kalba, yra bendruomenė, kurioje gali mokytis ir dalyvauti. Verta paminėti, kad daugelis, jei ne visi vertėjai žodžiu, yra parašyti C arba kokiu nors artimu dariniu, o jų kūrimą paprastai vykdo mažesnė bendruomenės grupė, atsakinga už sprendimai, kurie palies visus kalbos vartotojus. Kad būtų užtikrintas teisingas kalbos vystymasis, kaip ir C atveju, netgi galima suformuoti institucijas.

Kurį pasirinkti?

Mes jau pakankamai kalbėjome apie kalbas ir aš vis dar neatsakau į svarbiausią dalyką 😛. Bet tikiuosi, kad peržiūrėjęs šį nedidelį straipsnį, man nereikia pasakyti, kurią kalbą pasirinkti, nes turėdami šią informaciją jūs visiškai sugebate ieškoti kalbos, kuri sužadintų smalsumą. Aišku, jei norite išmokti programuoti kalba Surinkimas praeis daug laiko, kol galėsite turėti ką nors funkcionalaus, laikas bus žymiai sutrumpintas, jei pasirinksite kompiliuotą kalbą, kurioje, be perkeliamumo * NIX sistemose, galėsite sužinoti ir informacijos apie tos pačios sistemos veikimą, nes esate kontaktas su C arba išvestinėmis priemonėmis vienaip ar kitaip leidžia sužinoti, kaip operacinė sistema veikia paprastai. Galiausiai, jei norite sužinoti ką nors lengvo ir tai leidžia daug nuveikti nereikalaujant daug ko suprasti, aiškinamos kalbos yra įdomus būdas mokytis ir lavinti programavimo įgūdžius.

Mokykis kažko įdomaus

Tai yra geriausias patarimas, kurį galiu jums duoti, jei norite ko nors išmokti, pirmiausia turite rasti ką nors įdomaus, kitaip bus gana sunku įveikti tipišką bet kurios programavimo kalbos mokymosi kreivę. Tarkime, kad valdote sistemas, tokiu atveju gali tekti išmokti idealios kalbos skriptų (išaiškinta), mes turime „Perl“, „Python“, „Bash“ ir kt. ... Galbūt jūsų dalykas yra žaidimai, yra daugybė projektų tokiomis kalbomis kaip „Javascript“, „Lua“, „C ++“, priklausomai nuo norimo žaisti žaidimo tipo. Galbūt norėtumėte sukurti sistemos lygio įrankį, nes mes turime C, Python, Perl, kaip matysite, kai kurie kartojasi, ir todėl, kad daugeliui užduočių galima naudoti daug kalbų, todėl apibrėžimas daugiafunkcinės kalbos daugumoje jų.

Pradėkite projektą

Tai nereiškia, kad jūs sukūrėte šį kompiliatorių ar net šią programavimo kalbą. Projektas gali būti išspręsti nedidelę jūsų mėgstamos programos klaidą, galbūt net padėti patobulinti dokumentaciją. Kodėl dokumentai? nes nėra geresnio būdo sužinoti, kaip programinė įranga veikia, nei skaityti ir padėti parašyti jos dokumentaciją, nes po šaltinio kodo tai yra didžiausias informacijos šaltinis, kurį rasite apie programą. Kitą akimirką pamatysime, kaip perskaityti projekto kodą ir suprasti jų įgyjamas funkcijas bei vertybes.

Labai ačiū, kad patekote čia, ir kaip visada, jūsų komentarai man padeda sukurti geresnį turinį ir žinoti, kur sutelkti dėmesį.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Anoniminis sakė

    Kaip visada 10 !!!!!! Ačiū už jūsų straipsnius. Sveikinimai ir dar daugiau !!!!

    1.    ChrisADR sakė

      Labai ačiū 🙂 skatina mane toliau rašyti. Cheers

  2.   Rubén sakė

    Manau, kad klaida užduoti klausimą „kurią kalbą pasirinkti?“ Esu iš tų, kurie mano, kad kalba yra mažiausia, svarbu išmokti programavimo pagrindų ir „mąstyti skaičiuojant“. Nuspręskite apie sintaksę, jos rašymą, jei ji palaiko OOP, jos naudingumą ir kt. Manau, kad tai bus kažkas, kas bus savaime atliekant tyrimą, ir galų gale, kiekvienas programuotojas moka daugiau nei 1, 2 ir 3 kalbas ... ir dėka turimų programavimo koncepcijų (o ne sintaksės) jis sugeba programuoti kalba, kuria jis dar neturi patirties.
    Vis dėlto, manau, kad pradėtam, kad gera kalba gali būti „Python“ dėl savo paprastumo, bet visų pirma eik šiek tiek toliau, studijuok algoritmus ir žinok, kaip viskas veikia „viduje“.

    Linkėjimai ChrisADR

    1.    ChrisADR sakė

      Sveiki, Rubénai, ačiū už pasidalinimą
      Yra kažkas, ko išmokau laikui bėgant programavimo pasaulyje, tai yra tas, „kas daug padengia, nesuspausto“, ir turėdamas tai gerai žinomą frazę noriu pasakyti, kad daug kartų, o ypač entuziastingiausias, nusprendžiu pabandyti šiek tiek ir labai greitai pasisuka, kaip išmoksti koduoti. Manau, kad tai yra asmeninė nuomonė, kad geras kūrėjas, be to, turi tam tikros asamblėjos tarmės sąvoką, turėtų mokėti ir mokėti kompiliatoriaus kalbą ir vertėjo kalbą.
      Priežastis yra tokia: prototipai visada turi būti kažkas paprasto ir greito, lengvai generuojamo ir paprastai parodantys rezultatą, tačiau jei to nepakanka, turi būti „planas B“, kuriuo pasinaudoti, kai atvyks vertėjas iki savo ribos.
      Asamblėjos dialekto žinojimas ne tik suteikia pasitikėjimo savimi, bet ir moko mąstyti „skaičiavimais“, tačiau akivaizdu, kad ši dalis yra pati sudėtingiausia, ir tai tikrai ne visi programuotojai.
      Bet grįžkime prie temos, nes manau, kad pagrindinė mintis yra „pasirinkti kalbą ir praktikuoti daug“, nes iš tikrųjų vienintelis būdas gerai mokėti programuoti yra skaitymas ir rašymas kodas, ir tai yra kažkas, ko išmokau iš branduolio bendruomenės Kai ilgą laiką išlaikysite tą pačią sintaksę, nustosite matyti formą ir pradėsite nerimauti dėl PAGRINDO. Kalbos ar sintaksės pasirinkimo nuo pat pradžių idėja yra ta, kad žmogus gali pratinti jos skaitymą ir rašymą taip, kad būtų galima pradėti skaityti programos PRAKTĮ, o ne programos sintaksę.
      Tai yra pagrindinė šio įrašo priežastis, kad kiekvienas pasirenka savo kalbą, kad toliau galėtume paaiškinti sąvokas, galbūt tuo išsiaiškinus abejones 🙂
      Sveikinimai ir ačiū už pasidalinimą.

  3.   Deibis Contreras sakė

    ačiū už įrašą, jis buvo geras.

    saludos

    1.    ChrisADR sakė

      Sveikas Deibis, ačiū, kad pasidalinai 🙂 Sveikinimai

  4.   JorgeFS sakė

    Mano patarimas: viskas, išskyrus PHP. Prieš dvidešimt metų PHP padarė tam tikrą savo egzistavimo prasmę dėl didelio sudėtingumo, kuris programavo internetą kita kalba naudodamas CGI. Tačiau šiandien yra daugybė „Framework“, kad žiniatinklio kūrimas būtų kur kas malonesnis galingomis kalbomis, tokiomis kaip „Django for Python“, „Spring for Java“ ar „Rails for Ruby“. Nors PHP šiuo metu rodoma visose kalbų populiarumo lentelėse, mano manymu, PHP laikui bėgant praras savo aktualumą.
    Primygtinai patariu pradėti nuo C \ C ++, kad suprastumėte programavimo realumą, nors mokymosi kreivė yra kieta.
    Sveikinimai.

    1.    ChrisADR sakė

      Sveiki, Jorge, ačiū, kad pasidalijote, tiesiog prisiminiau „Laravel“, kuris yra gana tvirtas pagrindas. Personally Aš asmeniškai niekada nemėgau pavasario ar „Java“ kuriant internetą, manau, kad tai gana sudėtinga, bet, manau, tai yra dalis laiko, kurį jie praleido rinka, tuo metu jie buvo pionieriai ir, be abejo, šiuolaikinės alternatyvos („Js“, „Python“ ir „Ruby“) sugebėjo patobulinti kodą, kuris būtų skaitomas ir modifikuojamas be didelio darbo, pateikimo būdą.
      Aš taip pat linkęs link žmonių, kurie tam tikru gyvenimo momentu mokosi C / C ++, pradėjau nuo „Java“, bet manau, kad tai yra programavimo grožis, galite pradėti nuo visko, ko norite, jei tik būsite nuoseklus, tai bus naudinga 🙂 Cheers

    2.    Rubén sakė

      Nebegaliu su jumis nesutikti. Prieš daugelį metų pradėjau nuo C ir VB, kad vėliau sutelkčiau dėmesį į PHP ir JS (nes aš sutelkiau dėmesį į interneto plėtrą), o vėliau studijuodamas daugiausia išmokau C / C ++ ir Java.
      PHP turi daugybę privalumų, kurių negalėjau išvardyti šiame pranešime. PHP7 yra greitas (greitesnis nei „Python“ ... nenaudojant „hhvm“, skirtingų talpyklų, rėmų, tokių kaip „Phalcon“ ar „bytecode“, jei kalbama apie „Python“), jame yra daugybė bibliotekų ir rėmelių, jame yra daugybė tiesiogiai įgyvendinamų funkcijų, kurias galima naudoti bet kuriuo metu, jo sintaksė tokia panaši į C, todėl labai lengva pereiti į kitas kalbas.
      30% viso pasaulio svetainių yra sukurtos naudojant „WordPress“ (PHP) ir atrodo, kad tai nesikeičia, „Wikipedia“ naudoja ją, „Facebook“ (su hhvm) ir daugybę svetainių, iš viso 80%.

      Primenu, kad „Ruby on Rails“ kaip Django yra 12 metų! Kokią kvotą jie pasiekė per šį laiką? Ir, žinoma, mes kalbame apie 2 sistemas, kurios praktiškai turi monopolį ir nėra suskaidymo tipo. Kokias dar turiu rimtų alternatyvų? Sakyti, kad PHP praras aktualumą, nėra labai prasmės.

      Dabar, kai „Python“ yra madingas, nes jis turi greitą mokymosi kreivę, tai yra paprasta kalba ir jie ją parduoda jums kaip „tapkite programuotoju per 20 valandų su„ Python “ir dirbkite su juo“, palaikant tokioms įmonėms kaip „Google“ ir kad dabar yra Mada ieškoti naujų kalbų („Go“, „Dart“ ...) norint atskirti save CV (arba, pavyzdžiui, kasdien gimstant 50 „Javascript“ sistemų!), Dar nereiškia, kad viskas keičiasi.

      „Ruby“ yra labai įdomi kalba, tačiau ji tiek atitrūksta nuo nusistovėjusių modelių, kad man sunku patikėti, kad ji tapo populiaresnė nei PHP. Žinoma, manau, kad „Ruby“ yra prasčiausia kalba pradėti programuoti.
      Aš suprantu, kad jūs man sakote, kad „Python“ gali būti smagu programuoti, net ir „Ruby“ su savo begaliniu ypatumų ... bet „Spring with Java“? Tikrai? „Java“ gali būti daugybė dalykų ... bet maloniau nei „Python“ ir PHP?

      Pradėti nuo „Python“ yra labai gerai, tačiau kadangi jūs laikotės tik „Python“, rizikuojate, kad daugelis kompanijų manys, kad jūsų programavimo lygis nėra „gilus“ (net jei jūs labai gerai mokate „Python“). Taip yra todėl, kad konkuruojate su kitomis „daugiafunkcinėmis“ kalbomis, tokiomis kaip C ++ ar „Java“. Galite programuoti „Python“, nežinodami skirtumo, koks pragaras yra rodyklė, operacijos bitais, kaip veikia šiukšlių surinkėjas ir kokia ilga eilutė.
      „Python“ yra mažiausiai panašus į „klasikinį programavimą“, kuris egzistuoja ir gali būti vertinamas kaip „kalba vaikams“ (supraskite metaforą), o tai savo ruožtu yra privalumas ir trūkumas.

      1.    JorgeFS sakė

        „„ Python “yra mažiausiai panašus į„ klasikinį programavimą “, kuris egzistuoja ir gali būti vertinamas kaip„ vaikų kalba “(gaukite metaforą), o tai savo ruožtu yra privalumas ir trūkumas.“ LOL, tai yra vienas juokingiausių dalykų, kuriuos mačiau kalbant apie „Python“. Ar jūs kada nors tikrai išmokote „Python“?
        Kiek laiko tai buvo visame pasaulyje už PHP ribų?
        Draugas PHP gimė negyvas. PHP (\ d +) turi daug naštos dėl labai blogo pradinio dizaino ir, norėdamas išlaikyti vartotojų bendruomenę, jis ir toliau labai kruopščiai traukia visas tas pradines dizaino klaidas. PHP gimė be moduliarumo, su daugybe C stiliaus funkcionalumų (beje, aš nežinau, iš kur jūs atėjote, nes jo sintaksė yra panaši į C, todėl ją galima lengvai perkelti į kitas kalbas). Aukšto lygio kalba, kaip turėtų elgtis PHP, turi tokių negražių dalykų, kaip šis funkcijų takas, nurodytas jos oficialioje svetainėje http://php.net/manual/en/indexes.functions.phpTaip yra todėl, kad jis gimė be modularumo, todėl viskas purvina sumaišyta ir be vardų.
        Tai yra PHP kodo dalis:
        „Srauto_notifikavimo_paskambinimas“);
        „stream_context_set_params“ ($ ctx, $ params);
        var_dump („stream_context_get_params“ ($ ctx));
        ?>
        tam tikru momentu galite nustatyti, iš kur buvo importuotos visos šios „srauto“ funkcijos? NE, tada galėtum pasakyti, kad tai yra „buildin“ funkcijos, bet tada visa ekosistema yra „buildin“ funkcijos? Taigi, PHP kode yra daug šiukšlių, kad jei nesugebate suprasti tokio blogo dizaino sudėtingumo ir nenaudingumo, atleiskite, bet jis vis tiek turi pamatyti daug pasaulio.
        „Wordpress“ yra puikus programinės įrangos sprendimas, tačiau tai nereiškia, kad jis turi gerą technologinę bazę. Galite kalti akmeniu ir vytis nagus dantimis, ir jūs vis tiek galite atlikti puikius dailidės darbus, tačiau, žinoma, dirbdami daug daugiau nei kitas dailidę, kuris naudoja gerą plaktuką.

        Kita vertus: „tapk programuotoju per 20 valandų su Python ir dirbk prie jo“, tokio kvailumo dar nemačiau. Galite sukurti svetainę PHP per 20 valandų ir neturėdami jokių žinių apie tai, kaip veikia žiniatinklio programavimas ar pats programavimas. Tiesą sakant, todėl PHP yra toks populiarus, nes naujokai, patekę į šį pasaulį, PHP laiko greito vystymosi tašku (todėl tiek daug PHP kodo siurbia).
        Kalbant apie „Python“ trūkumus, vienintelis sėkmingas buvo darbas su rodyklėmis, tačiau bet kokiu atveju „Python“ yra aukšto lygio kalba (kaip ir „Java“) ir jų nenaudoja sintaksės lygiu; bet operacijos bitais, rimtos?, turite omenyje šį x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Aš rimtai supratau šiukšlių surinkėjo dalyką daug mažiau: https://docs.python.org/3/library/gc.html.
        PHP spragos:
        -PHP yra labai prastas objektinio programavimo (OOP) dizainas.
        -Jūs dar negalite perkrauti operatorių.
        -Staigmena, function overloading PHP tai nėra tai, ko jūs natūraliai tikitės iš šios koncepcijos.
        ... .. ir man tiesiog nuobodu hehe.
        Sveikinimai.

        1.    Rubén sakė

          Į skliaustus įdėjau „supraskite metaforą“ (lygindamas Python su C ++ / Java toje pačioje darbo aplinkoje), aišku, kad jūs to nesupratote. Galėčiau pasakyti, kad C ++ programuotojas gali išmokti „Python“ daug greičiau nei „Python“ programuotojas - kaip ir nenuostabu, kad vidutinis „C / C ++“ programuotojo atlyginimas yra didesnis nei „Python“.
          Galėčiau jums paaiškinti kitais pavyzdžiais, netgi piešiniu! bet atrodo, kad jūs sutelksite dėmesį tik į tai, ką aš dedu, dekontekstualizuoti ir išjuokti.

          Niekada nesakiau, kad PHP yra geriausia kalba pasaulyje ar kad ji yra pavyzdinio dizaino, aš nežinau, iš kur tai turite. Manau, kad prieš vertindami kitų žinias turėtumėte pagerinti savo supratimą. Tiesa (ir aš sakiau savo žinutėje) yra tai, kad kartu su ja vystytis yra labai judu, be visos sistemos, bibliotekų ir paslaugų, kurias galite rasti, ekosistemos.
          Be to, kokį palyginimą mes darome? „Python“ kaip daugiafunkcinė kalba ar žiniatinklis? Kodėl tokiu atveju mes jį lyginame su PHP? PHP turi konkretų lauką, ir būtent tame lauke Python (su 0.2% dalimi, kuri šiais metais nepasikeitė) išblunka šalia PHP.
          Dabar pažiūrėkime PHP tendencijas; nuo 82,4% 2017 m. sausio mėn. iki 83.1% 2018 m. sausio mėn .: https://w3techs.com/technologies/history_overview/programming_language

          Ar „Python“ ketina sunaikinti PHP? Kuriais metais? per kokius penkerius metus? dešimtmetis?
          „Python“ galės naudoti daugybei kitų užduočių ir netgi taps plačiau naudojamas nei PHP, tačiau „Python“ kaip žiniatinklio kūrimo kalba šviesmečių atstumu net nėra aktuali, 0.2 proc. Stagnacijos, palyginti su 83.1 proc. (Su augimu šiais metais).

          Jūs taip pat laikote savaime suprantamu dalyku sakydami, kad aš neinu aplink PHP, užsimindamas, kad žinau tik PHP, kai tiksliai nesu seniai programavęs PHP Šiuo metu dėl darbo priežasčių dažniausiai programuoju „Java“.
          Aš taip pat nesakiau, kad programuodami „Python“ neturite žinių apie „bitwise“, šiukšlių surinkėją ar rodyklę. Greičiau galite programuoti „Python“ net nežinodami, kas tai yra. Tačiau labai abejoju, ar taip būtų C ++ programuotojo atveju. Ir akivaizdu, kad palyginu, kai „Python“ patenka į „daugiafunkcinės kalbos“ lauką, o ne žiniatinklio programavimui.

          Tapti programuotoju per 20 valandų yra tiesiog pokštas, perdėjimas. Tačiau čia galėčiau pateikti įvairių nuorodų apie internetines švietimo platformas ir kursus, kurie žada panašių dalykų. Nekaltink manęs, kaltink darbo rinką, kuri mano, kad tapimas „ekspertu programuotoju“ yra 20 valandų kursas. „Python“ yra viena iš madingų kalbų, be to, greičiausio mokymosi kreivė ... balta ir butelyje.

          Aš primygtinai reikalauju, kad jūs grindžiate savo pranešimą sakydamas, koks blogas yra PHP (kuris tam tikroje dalyje sutinku). Man atrodo, kad tai teisinga, išskyrus tai, kad mano pranešimas nėra apie tai, bet kodėl PHP bus toliau naudojamas ir jis neišnyks rytoj, kaip jūs manote.

          Sveikinimas

  5.   niekas sakė

    C -> Go -> (Lisp | Haskell | Java | viskas)

    1.    ChrisADR sakė

      Neseniai skaitytojas man atsiuntė rekomendaciją „Go“ knygai į savo el. Laišką, be abejo, kalba, į kurią reikia atsižvelgti ateityje, ir galbūt čia bus įrašas 🙂

  6.   mvr1981 sakė

    Na ... ir ką aš programuoju? Kodėl šiandien mokytis programavimo kalbos su tokiais gerais ir patyrusiais programuotojais, kurie jau egzistuoja? Kokias problemas galiu išspręsti, kurių kiti dar neišsprendė žymiai efektyviau?… Trumpai tariant: kiek originalu šiandien būti programuotoju? Kaip galėčiau bendradarbiauti su kitais, nebūdamas spardomas ar pašalinamas dėl žinių ir patirties stokos?

    1.    ChrisADR sakė

      Sveiki mvr1981, tikrai įdomūs klausimai 🙂 mes juos išvyniosime nuo paskutinio iki pirmo.

      Kaip galėčiau bendradarbiauti su kitais, nebūdamas spardomas ar pašalinamas dėl žinių ir patirties stokos?

      Jei nenorite, kad tave spardytų, pirmas žingsnis yra išmokti procesą, neįsivaizduoji, kiek žmonių, ateinančių į projektus, nori viską daryti tik taip, kaip nori, kad bendruomenė prisitaikytų prie jų norų. Tai tikrai panašu į tai, kad aš ateinu į tavo namus ir darau netvarką bei negerbiu tavo šeimos (taip daug kartų jaučiasi). Jei norite, kad taip neatsitiktų, atidžiai atkreipkite dėmesį į rekomendacijas, priemones, kuriomis galite prisidėti, ir nesiųskite kažko neišsamaus, jei jums reikia pagalbos, visada yra priemonių bendrauti, tačiau blogai atliktas darbas tikriausiai sukuria blogus pirmuosius įspūdžius. Jei nenorite išstumti savęs, tai priklauso nuo jūsų, galite pamatyti jį kaip nenaudingą programuotoją, kuris nežino, ką jis daro, ar tą, kuris siekia tapti puikiu programuotoju, ir tai atsitinka tik praktikuojant ir tikrai su klaidomis kelyje. Daug kartų klydau, kol gavau „Gentoo“ kūrėjo statusą, ir tai man netrukdė bandyti, nepaisant „blogo laiko“ 🙂.

      Kiek originalu šiandien būti programuotoju?

      - Tai nėra originalumas, šiandien tai yra būtinybė, tiesiog pagalvokite apie tai, kad prieš 20 ar 30 metų spausdinimas buvo būtinybė, daugelis darbų padarė išvadą, kad jūs žinote ar bent jau galite tai padaryti. Šiandien žinoti, kad „Office“ yra būtinybė, praktiškai nėra darbo, kuris tavęs nestatytų prie „Office“ dokumentų. Rytoj, labai greitai, programavimas bus būtinybė. Tai galioja ir asmeniniu požiūriu, žinant, kas vyksta programose, kurioms patikite tokius svarbius dalykus, kaip jūsų pinigai, sveikata, šeima, man yra kažkas logiško, nes jų apribojimus galite sužinoti tik tada, jei žinote, kaip jie dirba ir norint tai žinoti, reikia mokėti programuoti.

      Kokias problemas galiu išspręsti, kurių kiti dar neišsprendė daug efektyviau?

      -Tu nustebtum, kiek funkcijos kurių šiandien reikia, ir tiesą sakant, nesvarbu, kad bendruomenėje yra geriausi programuotojai pasaulyje, darbas visada bus didesnis nei kūrėjų darbingumas, tai galiu patvirtinti „Gentoo“, yra žmonių, kurie kuria branduolys, žmonės, dirbantys „Google“, „Sony“ ir kt., ir tt ... vienintelis dalykas, kurį mes visi turime, yra tai, kad niekas neturi tiek laiko, kiek norėtų, kad galėtų atlikti visus laukiančius darbus.

      Kodėl šiandien mokytis programavimo kalbos su tokiais gerais ir patyrusiais programuotojais, kurie jau egzistuoja?

      -Tai atsakyta į antrąjį klausimą 😉 Bet dabar galiu pridurti, kad kartos turi sugebėti paremti jau sukurtą darbą, tuo noriu pasakyti, kad tie „patyrę“ kūrėjai palaipsniui dings ir tai bus reikalinga „. jaunesni »Kūrėjai prisiima atsakomybę ir padeda išlaikyti gyvą ciklą. Bendruomenė, kurioje nėra jaunų ir nepatyrusių žmonių, yra linkusi ilgainiui išnykti būtent todėl, kad nebus galimybės perduoti žinių.

      O ką aš planuoju?

      -Tai galbūt yra sunkiausia atsakyti, bet pabandysiu pateikti pavyzdį poco, kurį neseniai pradėjau kamuoti dėl problemų, susijusių su „GNOME 24“ ir jo ryšiu su „Wayland“, kurios neleidžia tokioms programoms kaip „Shutter“ daryti ekrano kopijas. Tai man yra problema, nes kai rašau savo straipsnius, turiu parodyti, ką sakau, šiek tiek ieškodama atėjau į „GNOME Screenshot“ programą, švelniai tariant „minimalistinę“. Tarp jo funkcijų yra ekrano regiono fotografavimas, bet kas nutiks, jei aš gerai nefotografuosiu? Na, turiu išeiti ir vėl įeiti į programą, tikrai kažkas nuobodus, man pagelbėtų mygtukas, kuriame parašyta „Pakartotinai“ ar kažkas panašaus, leidžiantis nufotografuoti naują vietą neišeinant ir vėl įeinant. Tai nedidelis programavimo projektas, aš niekada nieko nesu programavęs GNOME sistemoje, todėl akivaizdu, kad turiu daug ko išmokti prieš siųsdamas savo „pleistrą“ su nauju mygtuku, bet pakeliui aš mokausi programuoti ir šiek tiek pasisekė ypatybė tai bus naudinga ne vienam, kai ji bus prieinama visiems.

      Tai yra pavyzdys, tai yra kažkas paprasto ir tikrai bet kuris kitas „ekspertas“ programuotojas jau galėjo tai padaryti, tačiau dėl akivaizdaus laiko trūkumo taip nebuvo, dabar aš esu tas, kuris turi galimybę tai padaryti, iš tikrųjų nebūdamas superinis programuotojas.

      Dabar tik nuo jūsų priklauso rasti tai, kas jūsų gyvenimą „supaprastintų“ toje programinėje įrangoje, kurią naudojate taip dažnai, kad grožis yra tas, kad jei mes vadovausimės patarimais, kuriuos jums duosiu kituose straipsniuose, kalba nebus svarbi, nes Jie žinos pagrindus, kad pradėtų suprasti perskaitytą kodą ir jį modifikuotų, kad padarytumėte tai, ko norite, tai yra labai ypatingas jausmas 🙂

      Linkėjimai ir dar kartą ačiū

      1.    niekas sakė

        Manau, kad tik atidarius „gnome captures“ programą, paprasčiausia yra pereiti prie sparčiųjų klavišų ir priskirti tris spausdinimo kombinacijas, kad būtų užfiksuotas visas „Alt-print“, kad užfiksuotumėte aktyvų langą, ir „super-print“, kad pasirinktumėte iš užfiksuoti regioną, galimi spartieji klavišai jau yra, tiesiog reikia juos priskirti

        1.    ChrisADR sakė

          Štai kodėl pateikiame jums pavyzdį 🙂, nes tokie maži dalykai, kaip tas mygtukas, yra programavimas, jie gali padėti vieniems, nes gali likti nepastebėti kitų, tačiau jie tikrai atitinka pagrindinį tikslą, padeda išmokti programuoti ir suteikia kelią naujoms funkcijoms, Po šio mygtuko galima pradėti daugelį dalykų, pvz., Seansų valdymą, visų padarytų nuotraukų peržiūros ekraną arba, trumpai tariant, daugybę dalykų, kuriuos galima padaryti. Idėja yra tai, kad rasite tai, kas priverčia jus pasidomėti, bet kuriai jūsų sistemoje veikiančiai programinei įrangai gali prireikti patobulinimų ar naujų funkcijų, kurios dėl laiko trūkumo ar personalo dar nebuvo įdiegtos 🙂

      2.    mvr1981 sakė

        Ačiū tau. yra labai geri atsakymai.

    2.    Guillermo sakė

      Na, o tam, kuris nebus šios srities profesionalas, reikėtų pamatyti, kurioje aplinkoje jie dirba, tiek administravimo užduotims, tiek direktyvoms gali būti įdomu žinoti, pavyzdžiui, „Python / Basic“ ir mokėti programuoti makrokomandas biurų paketuose, tokiuose kaip „LibreOffice“ ar „MS Office“. Yra atvejų, kai tai gali sutaupyti daug darbo valandų jums ar kitiems jus supantiems darbuotojams ir paprašyti atlikti bet kokią pasikartojančią užduotį. Galite susikurti prietaisų skydelį, kad galėtumėte greitai apskaičiuoti pagrindinius įmonės santykius, prisijungę po duomenų bazės jo ir atlikite SQL užklausą.
      Kaip ir viskas, jei žinote ranka pasiekiamus įrankius, galite pagalvoti, kaip iš to kuo geriau pasinaudoti. Ne viskas sugalvota.

  7.   Marcelo sakė

    Guillermo, visiškai sutikite su jumis: „Ne viskas yra sugalvota“, o tai, kas yra sugalvota, yra modifikuojama. Turite kuo geriau išnaudoti įrankius ir naudoti tuos, kurie geriausiai atitinka jūsų poreikius.

  8.   ricardo sakė

    Programuojant pirmiausia reikia išmokti anglų kalbą, tada ta kalba, kuri juos labiausiai traukia ir atrodo gražiausia.

    1.    ChrisADR sakė

      Aš jos nerašiau, bet tai tiesa 🙂 mokėti anglų kalbą labai padeda, nes joje rašoma dauguma kalbų, bet ir todėl, kad didesnis informacijos iš pirmų lūpų kiekis taip pat labai ačiū, kad pasidalinai

  9.   Rubenas salgado sakė

    Puikus straipsnis, be motyvuojančio.

    1.    ChrisADR sakė

      Labai malonu, labai ačiū 🙂 Sveikinimai

  10.   Gonzalo Martinezas sakė

    Programavimas yra mokėjimas argumentuoti ir paversti tą samprotavimą instrukcijomis.

    Du paaiškinimai apie straipsnį:

    1) Remiantis mano, kaip beveik 10 metų programavimo mokytojo, patirtimi, svarbu ne tai, kokia kalba mokotės, o tai, kaip moki ir kaip sudėtinga.

    Manau, kad kalbą, kurią galima išmokti struktūrizuotai, ir tada pereiti prie kitų sudėtingesnių dalykų, yra lengviau nei pradėti nuo tokios kalbos kaip „Java“ nuo pat pradžių.

    Lengviau išmokti kažką panašaus į „Hello World“ C arba Pascal kaip bazę, nei naudojant kelias eilutes (PROGRAM Pascal atveju arba #include C) atveju galite pradėti kurti algoritmą ir tiesiogiai koduoti programą su savo logika, kaip „Java“, kuriai savaime reikia klasės, metodo ir kai kurių kitų dalykų, kurie pradedantiesiems yra informacijos perteklius nereikalingas, ir to galima nepaisyti ir pereiti prie kitų dalykų, tačiau jie yra sąvokos, kurios yra, ir, mano nuomone, dalykų nepastebėjimas nėra geras būdas mokytis, ypač jei kalba priverčia juos vartoti. Tai panašu į tai, kad pirmą kartą pradedate tikslinę treniruotę naudodami M-16, ir mėnesius šaudote pusiau automatiniu režimu, laikydami rankeną abiem rankomis kaip pistoletą.

    2) Ar kalba yra aiškinama ar kompiliuojama, priklauso nuo jos įgyvendinimo, o ne nuo pačios kalbos. Pvz., Jei naudojamas „Python“, žiniatinklio programai, naudojančiai „wsgi“ (arba mod_wsgi „apache“, arba „uwsgi“ - „Nginx“), pitono kodas sukompiliuojamas paleidus atitinkamą modulį, generuojant .pyc failus.

    Taip pat yra „Java“ dvejetainių failų generatorių (kurie generuoja vietinius dvejetainius failus vietoj baitų) arba PHP scenarijų kompiliatoriai grynuose binaruose.

    Kalbant apie tai, ką jie sako apie PHP, tai tiesiog kalba, sukurta kitoje epochoje, turint omenyje kitus dalykus ir neatsižvelgiant į aspektus, kurių tuo metu nebuvo. Akivaizdu, kad tai, kad jis yra dažniausiai naudojamas, nedaro to geriausio pasaulyje, tačiau egzistuoja realybė: būtent kalboje yra didžiausia tikimybė įsidarbinti vykdant visą programavimą. Žinant, kad tai nepakenkia, net jei jums tai nepatinka.

    Net aš, keletą metų dirbantis sistemos administratoriumi ir palikęs kūrėjo darbą, taip dažnai turiu į ką nors įdėti PHP kodą.

    1.    ChrisADR sakė

      Sveiki, Gonzalo, ačiū už pasidalijimą,

      Be abejo, kalbant apie nereikalingas informacijos perkrovas, žinojimas, kad tą pačią kalbą galima interpretuoti ar sudaryti, yra nereikalingas šiame etape 🙂 Be abejo, įgyvendinimas yra svarbus, bet jei sakome, kad šiame lygyje, mes nesukeliame daugiau nei painiavos. Lygiai taip pat nėra sprendžiami objektyvaus programavimo klausimai ar kitos sąvokos, kurias reikia dozuoti palaipsniui, kad žmonėms nekiltų svaigulys.

      Kadangi erdvė yra ribota, pagrindinis įrašo tikslas yra parodyti skaitytojams, norintiems programuoti, kad egzistuoja du puikūs kalbų pasauliai, kad „tradiciškai“ aiškinami yra „paprasčiau“, kad „tradiciškai“ sudaromi yra šiek tiek „sudėtingesnis“, tačiau verta žinoti tokį sudėtingumo lygį, kad suprastumėte tvirtiau, ir kad kiekvienas žmogus turi pasirinkti kalbą, nes, priklausomai nuo programavimo požiūrio, jie galės pasirinkti savo mėgstamus projektus ir tuo pačiu jie galės suprasti ką jie skaito ir (arba) rašo 🙂

      Dar kartą labai ačiū, linkėjimai.

      1.    Gonzalo Martinezas sakė

        Tai klaida, nėra sudarytų ar interpretuotų kalbų, yra vertėjų ir kompiliatorių kiekvienai kalbai, tiek skirtingais atvejais.

        Paminėti ją dabar nėra informacijos perteklius, tokį teiginį padaryti yra klaida. Mano nuomone, produktyviau būtų ignoruoti vertėjus žodžiu, jei nenorite perkrauti informacijos.

        1.    ChrisADR sakė

          Ačiū už paaiškinimą, aš į tai atsižvelgsiu, kai grįšiu prie temos. Cheers

  11.   A sakė

    Kokią kalbą jūs rekomenduojate serverio pusei, turint omenyje, kad php nepatiko?
    Tas pats ir su duomenų bazėmis, nežinau, ar bus kažkas geresnio ir modernesnio už „mySQL“.

    1.    ChrisADR sakė

      PHP nenukrito iš palankumo ... Kiekviena kalba turi savo gyvenimo ciklą, o PHP jau tikrai yra kalba, kuri patenka į „brandaus“ skalę, todėl ji yra naudinga verslo lygmeniu, kur stabilumas yra visų pirma ... Kaip kai kurie bankai, kur jis vis dar yra išplėtotas java, kuris yra labiau „subrendęs“ nei php ir tikrai turi savo pasekėjų ir niekintojų ... Ir jau nekalbant apie COBOL ...

      Jei jūs ieškote vienodumo ir modernumo, „javascript“ tampa vienu iš vadinamųjų „full stack“ kūrėjų mėgstamiausių, nors rubino paradigma ar „python“ paprastumas taip pat yra geros nuorodos ... Net perl gali būti pasirinkimas, atsižvelgiant į poreikius 🙂

      Šiais laikais ORM (objekto reliaciniai žemėlapiai) įgyja daug jėgų santykinių duomenų valdymo atžvilgiu. Nuo SQL sintaksės pereinama prie klasės ir atributų tvarkymo ... Beveik visos kalbos (jei ne visos) tvarko kai kuriuos ORM.

      . „Mongo DB“ yra gana svarbi reliacinių duomenų bazių alternatyva, tačiau būtina žinoti jos privalumus ir trūkumus bei patvirtinti, ar tai būtų geriausias sprendimas atsižvelgiant į konkretų poreikį.

      Tikiuosi, kad tai jums padės, sveikinimai 🙂

      1.    A sakė

        Ačiū, aš tai patikrinsiu.

      2.    A sakė

        Aš pamiršau.

        Ką man rekomenduojate dirbti su JAVA sistemoje „Linux“?
        Jei galite geriau atskirti laisvą ir uždarą.

        1.    ChrisADR sakė

          „Eclipse“ ir „NetBeans“ yra atviras šaltinis, nesu tikras, ar yra grynai nemokama programinė įranga, turiu įprotį naudoti „vim“, nes kartais dėl kodo kiekio visos IDE naudojimas tampa lėtas ir linkęs į vykdymo klaidas. Sveikinimai 🙂

        2.    paulzeta sakė

          Norėdami dirbti su „Java“ sistemoje „Linux“, naudoju „IntelliJ“. Aš jums rekomenduoju.

          1.    ChrisADR sakė

            PS, „IntelliJ“ yra patentuota programinė įranga 🙂

  12.   je sakė

    Vaikinai taip pat tai prisimena ... Aš dirbu banke ir sakau, kad programavimo kalbos užima antrinę vietą, kad pirmiausia leistų atlikti SQL ir „Stored“ procedūras.

    1.    Gonzalo Martinezas sakė

      Turite atsižvelgti į jas į saugomas procedūras, tačiau nenaudojant nešiojamųjų kalbų tarp variklių, bent jau mano patirtimi, visada reikia vengti jų, nebent nėra kitos galimybės.