Elektante vian unuan programlingvon

Certe ĉi tiu estas unu el la demandoj, kiuj plej venas al mia leterkesto kiam mi parolas pri programado. Se ni komencos serion da artikoloj, kiuj permesos vin lerni programi kaj redoni senpagan scion en la formo de kontribuoj al liberaj programoj / malfermfontaj komunumoj tra la mondo, necesas respondi ĉi tiun bazan se iom malfacilan demandon. Kian programlingvon mi lernu?

Iom da historio

Por ekkompreni kaj elekti programlingvon, ni devas unue scii iomete pri ilia historio, iliaj uzoj kaj funkcioj, kaj kiel ili solvas malsamajn bezonojn laŭlonge de la tempo.

Maŝinlingvoj (malalta nivelo)

Ofte konata kiel asembleo, estas programlingvoj, kiujn ni povus difini kiel dialektojn de pli ĝenerala lingvo ... Ĉi tio sonas iom komplike, sed mi ekzempligos ĝin ... Ni scias, ke la universala lingvo de komputado estas elektro, ĉi tio signifas, ke finfine legas komputilo 0sy 1jes, ni nomu ĉi tion ekomputila angla. En ĉi tiu ekzemplo, la hispana estas la baza regulo, sed kiel ni bone scias, la hispana parolata de latinamerikanoj ne samas kiel la hispana parolata en Hispanio, kaj eĉ tiam, la hispana de Peruo ne samas kiel la hispana de Argentino. Evidente ni ĉiuj havas preskaŭ la samajn vortojn (0sy 1s), sed la uzo kaj signifo povas varii laŭ kunteksto.

Ĉi tio okazas ĉe la procesora nivelo. Kiam ni parolas pri komputilaj arkitekturoj, (amd64, intel, arm, ...) ni rilatas al la dialekto de tio komputila hispano. Ĉi tio estas ĉar diversaj kompanioj komprenas la ordon kaj signifon laŭ sia maniero, do iuj varias en detaloj kiel la fluo de la fluo aŭ la ordo en kiu ili estos konservataj. 0sy 1s.

Ĉi tiuj programlingvoj estas ekstreme rapidaj, ĉar ili funkcias laŭ la plej malalta ebla nivelo de programado, sed ili tre dependas de la arkitekturo kaj certe estas iom pli komplike lerneblaj ol la ceteraj. Ĉi tiuj ofte postulas pli larĝan bazon de konceptoj por transformi la datumojn kaj uzi utilajn aferojn sur ĝi. Por amantoj de videoludoj, ekzemplo estus SEGA-konzoloj, kiuj uzis Asembleon por programi siajn ludojn. Evidente tiutempe la kvanto da memoro estis minimuma kompare kun hodiaŭ, kaj necesis regi lingvon rapidan kaj produkti malpezajn programojn.

Altnivelaj lingvoj

Ĉi tiu granda grupo pripensas tiujn lingvojn postajn asembleo. La bezono akiri porteblan kodon estigis grupon de lingvoj nomatan kompilita. Inter ĉi tiuj, la unua, kiu profitis, estis C, kiu regas programadon je la operaciuma nivelo ekde la 70-aj jaroj.

Kompilitaj lingvoj

Ni vidu praktikan ekzemplon de tio, kion mi komentas. Ni rigardu tre simplan C-lingvan programon, kiu presas unu kodlinion.

Propra. Christopher Diaz Riveros

Post kompili ĝin ni havas la jenon:

Propra projektado: Christopher Díaz Riveros

Sed nun ni vidu, kion ni devus skribi por repliki la saman rezulton en Asemblea kodo:

Propra. Christopher Diaz Riveros

Jen la traduko de niaj 3 linioj de kodo de simple.c, la dosiero simple.s estas kreita per la komando gcc -S simple.c kaj estas tio, kion nia procesoro komprenus en dialekto asembleo. Evidente por krei efektivigeblon, kiu konsistas el 0sy 1s la dosiero devas esti prilaborita simple.s kaj konekti ĝin kun la komunaj bibliotekoj de nia sistemo. Ĉi tio estas farita per asemblero (as) kaj a konektilo (ld).

Kompilitaj lingvoj donas grandan avantaĝon super malaltnivelaj, ili ja estas porteblaj. Porteblo liveras kodon, kiu povas esti ekzekutita sur malsamaj procesoroj sen la bezono generi specifan kodon por ĉiu arkitekturo. Alia evidenta avantaĝo estas la simpleco, kiun ĝi uzas legante kaj skribante kodon. Inter ĝiaj ĉefaj malavantaĝoj ni havas altan kompleksecon, ĉar kompare kun la jenaj specoj de lingvoj, kiujn ni vidos, la libereco, kiun C ofertas, povas esti malutila se vi ne scias kiel regi, ĝi certe estas kiel transdoni pafilon. , povus okazi, ke en la manko de sperto persono finas pafi sian propran piedon en provo purigi la pafilon.

Interpretitaj lingvoj

En ĉi tiu grupo ni havas tre diversajn lingvojn, inter la plej gravaj ni havas Python, Ruby, Javascript, PHP, ktp ... La baza ideo de ĉi tiuj lingvoj estas provizi rapidan manieron krei kaj ekzekuti programojn. , ĉi tio estas ĉar multaj el la malfacilaj procezoj efektivigas en la interpretilo, kaj la programado de la logiko estas efektivigita en la kodo. Ni rigardu la saman ekzemplon supre sed ĉi-foje skribitan en Python:

Propra. Christopher Diaz Riveros

Inter la plej elstaraj aferoj ni povas vidi, ke la unua linio komisias nomi la interpretiston (la programo, kiu ekzekutos nian aplikaĵon) kaj la posta kodo estas pli "simpla" ol ĝia versio en C, ĉar la tuta peza laboro estas prezentita ĉe la interpretisto.

Propra. Christopher Diaz Riveros

Interpretitaj lingvoj donas al la programisto pli grandan sekurecon, ĉar ili havas pli rigorajn sekurecajn kontrolojn (ATENTU, ke ili ne estas perfektaj, ĉar eĉ la plej bonaj povas fari erarojn) kaj ni ne plu suferas la riskon lanĉi armilon sen rimarki ĝi, ĉar je la unua provo, la interpretisto atentigus kaj la ekzekuto estus nuligita. La ĉefa malavantaĝo evidentiĝas dum plenumado de la programo, ĉar ĝi estas pli malrapida ol sia duuma ekvivalento, ĝuste pro la pli granda procezo por certigi ke la kodo funkcias. Se la programo ne postulas ekstreme mallongajn templimojn, la diferenco eble preterpasos nerimarkite, sed se ni parolas pri miloj aŭ milionoj da datumoj por sekundo, la diferenco fariĝas eksponente rimarkinda en kompilitaj lingvoj.

Tajpado

Ĉi tio estas karakterizaĵo de programlingvoj, ĉi tiuj povas esti forte malforte tajpita. Mi lasos ĉi tiun temon por alia afiŝo, ĉar necesas kaj scivolas kompreni kiel memoro estas konservita en programo, sed nuntempe ni nur bezonas distingi: Forte tajpitaj lingvoj estas tiuj, kiuj bezonas scii la tipon de datumoj, kiuj iras labori pri variablo aŭ konstanto, dum la malforte tipoj povas fari konvertiĝojn do implicita kaj ĉio dependos de konverta hierarkio sekvata de la lingvo. (Se ĝi ne kompreniĝas nun, neniu problemo, ni lasos ĝin por poste)

Paradigmoj

Kiel ĉio en la GNU / Linukso-mondo, programlingvoj baziĝas laŭ paradigmoj, kaj komunumoj estas generitaj ĉirkaŭ ili. Ekzemple ni havas la Python Foundation o Rubeno o PHP o Bash (tiukaze temas pri la GNU-komunumo). Kion mi volas atingi per tio estas, ke mi ne povas esprimi la grandan nombron da avantaĝoj kaj malavantaĝoj, kiujn ĉiu havas, sed mi povas diri al vi, ke kie estas senpaga programlingvo, estas komunumo, kie vi povas lerni kaj partopreni. Menciindas, ke multaj se ne ĉiuj lingvaj interpretistoj estas skribitaj en C, aŭ iu proksima derivaĵo, kaj ilian disvolviĝon kutime efektivigas pli malgranda grupo de la komunumo, kiu respondecas pri prenado de decidoj, kiuj influos ĉiujn lingvouzantojn. Institucioj eĉ povas esti formitaj por certigi la ĝustan evoluon de lingvo, kiel okazas kun C.

Kiun elekti?

Ni jam sufiĉe parolis pri lingvoj kaj mi ankoraŭ ne respondas la plej gravan aferon 😛. Sed mi esperas, ke post revizio de ĉi tiu malgranda artikolo ne necesas, ke mi diru al vi, kiun lingvon elekti, ĉar per ĉi tiuj informoj vi plene kapablas serĉi iun, kiu generas scivolemon. Evidente se vi volas lerni programi en lingvo asembleo daŭros longan tempon antaŭ ol vi povos havi ion funkcian, la tempo multe reduktiĝos se vi elektos kompilitan lingvon, kie krom havi porteblecon en * NIX-sistemoj, vi povos lerni informojn pri la funkciado de la sama sistemo, ĉar vi estas en kontakto kun C aŭ derivaĵoj igas vin iel aŭ alie lerni kiel funkcias mastruma sistemo ĝenerale. Fine, se vi volas lerni ion malpezan kaj tio ebligas al vi fari multon sen la bezono kompreni multe, interpretitaj lingvoj estas amuza maniero lerni kaj disvolvi programajn kapablojn.

Lernu kun io ekscita

Jen la plej bona konsilo, kiun mi povas doni al vi, se vi volas lerni ion, vi devas unue trovi ion ekscitan, alie estos sufiĉe malfacile superi la tipan lernokurbon de ĉiuj programlingvoj. Supozu, ke vi administras sistemojn, tiaokaze vi eble bezonos lerni idealan lingvon skribado (interpretita), ene de ĉi tiuj ni havas Perl, Python, Bash, ktp ktp ... Eble via afero estas ludoj, ekzistas multaj projektoj en lingvoj kiel Javascript, Lua, C ++, depende de la tipo de ludo, kiun vi volas ludi. Eble vi ŝatus krei ilon je la sistemo, ĉar ni havas C, Python, Perl, kiel vi vidos, ke iuj ripetiĝas, kaj tio estas ĉar multaj lingvoj povas esti uzataj por multaj taskoj, tial la difino de universalaj lingvoj en plej multaj el ĉi tiuj.

Komencu projekton

Per ĉi tio mi ne volas diri, ke vi kreas la jenan kompililon, aŭ eĉ la jenan programlingvon, projekto povas esti ripari malgrandan cimon en via plej ŝatata programo, eble eĉ helpi plibonigi la dokumentadon. Kial la dokumentado? ĉar ne ekzistas pli bona maniero lerni kiel la programaro funkcias ol legante kaj helpante verki ĝian dokumentaron, ĉar post la fontkodo, ĝi estas la plej granda informfonto, kiun vi trovos pri la programo. En alia momento ni vidos kiel legi la kodon de projekto kaj kompreni la funkciojn kaj valorojn, kiujn ili akiras.

Koran dankon pro via alveno kaj kiel ĉiam, viaj komentoj helpas min generi pli bonan enhavon kaj scii kie fokusi, Salutoj.


La enhavo de la artikolo aliĝas al niaj principoj de redakcia etiko. Por raporti eraron alklaku Ĉi tie.

37 komentoj, lasu la viajn

Lasu vian komenton

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita per *

*

*

  1. Respondeculo pri la datumoj: Miguel Ángel Gatón
  2. Celo de la datumoj: Kontrola SPAM, administrado de komentoj.
  3. Legitimado: Via konsento
  4. Komunikado de la datumoj: La datumoj ne estos komunikitaj al triaj krom per laŭleĝa devo.
  5. Stokado de datumoj: Datumbazo gastigita de Occentus Networks (EU)
  6. Rajtoj: Iam ajn vi povas limigi, retrovi kaj forigi viajn informojn.

  1.   anonima diris

    Kiel ĉiam 10 !!!!!! Dankon pro viaj artikoloj. Salutojn kaj pli por veni !!!!

    1.    ChrisADR diris

      Koran dankon 🙂 kuraĝigas min plu skribi. Saluton

  2.   Rubeno diris

    Mi pensas, ke estas eraro fari la demandon "kiun lingvon elekti?" Mi estas unu el tiuj, kiuj opinias, ke lingvo estas la plej malgranda el ĝi, la grava afero estas lerni la bazojn de programado kaj "pensi komputile." Decidu sintakson, ĝian tajpadon, se ĝi subtenas OOP, ĝian utilecon, ktp. Mi pensas, ke ĝi nature venos en la studio kaj finfine ĉiu programisto scias pli ol 1, 2 kaj 3 lingvojn ... kaj danke al la programaj konceptoj (kaj ne sintakso), kiujn li havas, li kapablas programi. en lingvo, en kiu vi ankoraŭ ne spertis.
    Tamen, por la iniciatintoj, mi pensas, ke bona lingvo povas esti Python pro sia simpleco, sed ĉefe iru iom pli, studu algoritmojn kaj sciu, kiel aferoj funkcias "interne".

    Salutojn ChrisADR

    1.    ChrisADR diris

      Saluton Rubén, dankon pro dividado
      Estas io, kion mi lernis laŭlonge de la tempo en la mondo de programado, kaj tio estas, ke "tiu, kiu multe kovras, ne premas" kaj per ĉi tiu konata frazo mi volas diri, ke multaj fojoj, kaj precipe la plej entuziasmaj, decidas provi tute iomete, kaj havas tre rapidajn turnojn rilate al lernado kodigi. Mi kredas, kaj estas mia persona opinio, ke bona ellaboranto devas scii kaj regi kompillingvon kaj interpretan lingvon, krom havi nocion pri iu Asemblea dialekto.
      La kialo estas la sekva, la prototipado ĉiam devas esti io simpla kaj rapida, facile kreebla kaj tio ĝenerale montras rezulton, sed se ĝi ne sufiĉas, devas esti "plano B" al kiu uzi kiam la interpretisto alvenis ĝis ĝia limo.
      Scii dialekton de Asembleo ne nur donas al vi konfidon, sed ankaŭ instruas vin pensi "komputile", sed evidente ĉi tiu parto estas la plej komplika el ĉiuj, kaj ĝi certe estas io, al kiu ne ĉiuj programistoj venas.
      Sed revenu al la temo, ĉar la ĉefa ideo, kiun mi pensas, estas "elekti lingvon kaj praktiki MULTE", ĉar vere la sola maniero lerni programadon estas per legado kaj skribado de kodo, kaj ĉi tion mi lernis de la kerna komunumo Kiam vi konservas la saman sintakson dum longa tempo, vi ĉesas vidi la formon kaj komencas zorgi pri la FONO. La ideo elekti lingvon aŭ sintakson dekomence estas, ke oni kapablas kutimi ĝian legadon kaj skribadon tiel, ke oni povas komenci legi la SIGNIFON de la programo anstataŭ la sintakson de la programo.
      Ĉi tiu estas la ĉefa kialo de ĉi tiu afiŝo, ke ĉiu elektas sian lingvon, por ke en la sekvaĵo ni povu klarigi la konceptojn, eble per tio la duboj estas klarigitaj 🙂
      Salutojn kaj dankon pro interŝanĝo.

  3.   Deibis Contreras diris

    dankon pro la afiŝo ĝi estis bona.

    salutoj

    1.    ChrisADR diris

      Saluton Deibis, dankon pro dividado 🙂 Salutojn

  4.   JorgeFS diris

    Mia konsilo: io ajn alia ol PHP. Antaŭ dudek jaroj PHP havis iom da senco en sia ekzisto pro la alta nivelo de komplikeco, kiu programis la retejon en alia lingvo per CGI. Sed hodiaŭ ekzistas granda vario de Kadroj por fari retejon multe pli plaĉa en potencaj lingvoj, kiel ekzemple Django por Python, Printempo por Java aŭ Rails por Ruby. Kvankam PHP nuntempe aperas sur ĉiuj lingvaj popularaj furorlistoj, miaopinie PHP perdos sian gravecon laŭlonge de la tempo.
    Mi forte konsilas komenci per C \ C ++ por kompreni la realon de programado, kvankam la lerna kurbo estas kruta.
    Salutojn.

    1.    ChrisADR diris

      Saluton Jorge, dankon pro interŝanĝo, nur memorante Laravel, kiu estas sufiĉe solida Kadro. Mi persone neniam ŝatis Printempon aŭ Ĝavan por interreta disvolviĝo, mi trovas ĝin sufiĉe maloportuna, sed mi supozas, ke ĝi estas parto de la tempo, kiun ili pasigis. la merkato, tiutempe ili estis pioniroj kaj certe hodiaŭ modernaj alternativoj (Js, Python kaj Ruby) povis plibonigi la manieron prezenti kodon legeblan kaj modifeblan sen multe da laboro.
      Mi ankaŭ emas, ke homoj lernas C / C ++ iam en iliaj vivoj, mi komencis kun Java, sed mi supozas, ke tio estas la beleco de programado, vi povas komenci per ĉio, kion vi volas, kondiĉe ke vi konsekvencos, ke ĝi estos utila 🙂 Saluton

    2.    Rubeno diris

      Mi ne plu povas malkonsenti kun vi. Mi komencis antaŭ multaj jaroj kun C kaj VB, por poste fokusiĝi al PHP kaj JS (ĉar mi fokusiĝis al interreta disvolviĝo) kaj poste studante mi lernis ĉefe C / C ++ kaj Java.
      PHP havas kelkajn avantaĝojn, kiujn mi ne povis listigi en ĉi tiu mesaĝo. PHP7 estas rapida (pli rapide ol Python ... sen uzi hhvm, malsamajn kaŝmemorojn, kadrojn kiel Phalcon aŭ bitokodo en la kazo de Python), ĝi havas grandegan nombron da bibliotekoj kaj kadroj, ĝi havas grandegan nombron de rekte efektivigitaj funkcioj por uzi ilin iam ajn, ĝia sintakso tiel simila al C faciligas migri al aliaj lingvoj.
      30% de la retejoj tutmonde estas faritaj per WordPress (PHP) kaj tio ŝajnas ne ŝanĝiĝi, Vikipedio uzas ĝin, Facebook (kun hhvm) kaj granda nombro da retejoj, entute 80%.

      Mi memorigas vin, ke Ruby on Rails kiel Django havas 12 jarojn! Kian kotizon ili atingis ĉi-foje? Kaj kompreneble, ni parolas pri 2 kadroj, kiuj praktike havas monopolon kaj ekzistas neniu speco de fragmentiĝo. Kiujn aliajn seriozajn alternativojn mi havas? Diri, ke PHP perdos gravecon, havas tre malmultan sencon.

      Nun, kiam Python estas en modo ĉar ĝi havas rapidan lernan kurbon, ĝi estas simpla lingvo kaj ili vendas ĝin al vi kiel la "fariĝi programisto en 20 horoj kun Python kaj prilabori ĝin", kun la subteno de kompanioj kiel Google kaj ke nun ekzistas la La modo serĉi novajn lingvojn (Iru, Sageto ...) por diferencigi vin en CV (aŭ kiel la ĉiutaga naskiĝo de 50 kadroj por Ĝavaskripto!), Ne signifas, ke aferoj ŝanĝiĝas.

      Ruby estas tre interesa lingvo, sed ĝi tiel rompas kun establitaj ŝablonoj, ke mi malfacilas kredi, ke ĝi fariĝis pli populara ol PHP. Kompreneble, Ruby, mi pensas, estas la plej malbona lingvo por komenci programadon.
      Mi komprenas, ke vi diras al mi, ke Python povas esti amuze programebla, eĉ Ruby kun sia multego da proprecoj ... sed Printempo kun Java? Ĉu vere? Java povas esti multaj aferoj ... sed pli plaĉa ol Python kaj PHP?

      Estas tre bone komenci per Python, sed ĉar vi nur tenas Python, vi riskas, ke multaj kompanioj kredos, ke via nivelo de programado ne estas "profunda" (eĉ se vi tre bonas Python). Ĉi tio estas ĉar vi konkurencas kun aliaj "universalaj" lingvoj kiel C ++ aŭ Java. Vi povas programi en Python sen scii la diferencon, kio diablo estas montrilo, laŭbitaj operacioj, kiel funkcias rubujo kaj longa ktp.
      Python estas eble la malplej simila al "klasika programado", kiu ekzistas kaj videblas kiel "infana lingvo" (ricevu la metaforon), kaj tio siavice estas avantaĝo kaj malavantaĝo.

      1.    JorgeFS diris

        "Python eble estas la malpli simila al 'klasika programado', kiu ekzistas kaj videblas kiel 'lingvo por infanoj' (komprenu la metaforon), kaj tio siavice estas avantaĝo kaj malavantaĝo." LOL, ĉi tio estas unu el la plej amuzaj aferoj, kiujn mi diris pri Python. Ĉu vi vere vere lernis Python?
        Kiom longe ĝi estis ĉirkaŭ la mondo ekster PHP?
        Amiko PHP estis malvive naskita. PHP (\ d +) havas multan tiradon kun ĝi pro tre malbona komenca projektado kaj por konservi la uzanton, ĝi daŭre trenas ĉiujn tiujn komencajn projektajn erarojn tre ĝisfunde. PHP naskiĝis sen modulareco, kun multaj C-stilaj funkcioj (kiuj cetere mi ne scias, de kie vi venis, ĉar ĝia sintakso similas al C, ĝi povas esti facile portata al aliaj lingvoj). Altnivela lingvo, kiel PHP devas konduti, havas tiel aĉajn aferojn kiel ĉi tiu spuro de funkcioj listigitaj en sia oficiala retejo http://php.net/manual/en/indexes.functions.phpĈi tio estas ĉar ĝi naskiĝis sen modulareco, tial ĉio estas malpura miksita kaj sen nomspacoj.
        Ĉi tio estas peco de PHP-kodo:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        iumomente oni povas determini, de kie ĉiuj ĉi tiuj "fluaj" funkcioj estis importitaj? NE, vi povus diri tiam, ke ili estas konstruaj funkcioj, sed tiam la tuta ekosistemo estas konstruaj funkcioj?. Kaj do estas multe da rubo en la PHP-kodo, ke se vi ne kapablas kompreni la kompleksecon kaj senutilecon de tia malbona projekto, pardonu min, sed ĝi ankoraŭ havas multan mondon por vidi.
        Wordpress estas bonega programara solvo, sed tio ne signifas, ke ĝi havas bonan teknologian bazon. Vi povas marteli per ŝtono kaj elpeli najlojn per viaj dentoj, kaj vi ankoraŭ povas fari bonegan lignaĵistan laboron, sed kompreneble, kun multe pli da laboro ol alia ĉarpentisto, kiu uzas bonan martelon.

        Aliflanke: "fariĝu programisto en 20 horoj kun Python kaj prilaboru ĝin", mi neniam vidis tian stultecon. Vi povas krei retejon en PHP en 20 horoj kaj sen scii kiel funkcias TTT-programado aŭ la programado mem. Fakte tial PHP estas tiel populara, ĉar novuloj enirinte ĉi tiun mondon vidas PHP kiel punkto de rapida disvolviĝo (tial tiom multe da PHP-kodo suĉas tiel).
        Pri la mankoj de Python, la sola, en kiu ĝi sukcesis, estis labori per montriloj, sed ĉiukaze Python estas altnivela lingvo (kiel ankaŭ Java) kaj ĝi ne uzas ilin je sintaksa nivelo; sed bitlaraj operacioj, seriozaj?, vi celas ĉi tion x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Mi serioze komprenis la rubaĵkolektanton multe malpli: https://docs.python.org/3/library/gc.html.
        PHP-breĉoj:
        -PHP havas tre malbonan projektadon pri objektema programado (OOP).
        -Vi ankoraŭ ne povas troŝarĝi telefonistojn.
        -Surprizo, function overloading en PHP ĝi ne estas tio, kion vi nature atendas de ĉi tiu koncepto.
        ... .. kaj mi ĵus enuis hehe.
        Salutojn.

        1.    Rubeno diris

          Mi metis inter krampoj "komprenu la metaforon" (per la komparo de Python kun C ++ / Java en la sama labora medio), estas klare, ke vi ne komprenis ĝin. Mi povus diri al vi, ke programisto C ++ povas lerni Python multe pli rapide ol Python-programisto povas lerni C ++, same kiel ne surprizas, ke la averaĝa salajro de programisto C / C ++ estas pli alta ol Python.
          Mi povus klarigi ĝin al vi per aliaj ekzemploj, eĉ per desegno! sed ŝajnas, ke vi nur fokusas pri malkontekstualigado kaj ridindigado de tio, kion mi metis.

          Neniam mi diris, ke PHP estas la plej bona lingvo en la mondo aŭ ke ĝi havas ekzemplan projekton, mi ne scias, de kie vi prenas tion. Mi pensas, ke antaŭ ol juĝi la sciojn de aliaj vi devas plibonigi vian legokomprenon. Kio estas vera (kaj mi diris en mia mesaĝo) estas, ke disvolvi kun ĝi estas tre lerta, krom la tuta ekosistemo de kadroj, bibliotekoj kaj utilecoj, kiujn vi povas trovi.
          Ankaŭ, kian komparon ni faras? Python kiel universala lingvo aŭ por la interreto? Tiuokaze, kial ni komparas ĝin kun PHP? PHP havas specifan kampon, kaj ĝuste en tiu kampo Python (kun 0.2% da parto, kiu ne ŝanĝiĝis dum la tuta jaro) palas apud PHP.
          Nun ni vidos la PHP-tendencojn; de 82,4% en januaro 2017 al 83.1% en januaro 2018: https://w3techs.com/technologies/history_overview/programming_language

          Ĉu Python detronigos PHP? En kiu jaro? en kiuj kvin jaroj? jardeko?
          Python povos esti uzata en multaj aliaj taskoj, kaj eĉ fariĝos pli uzata ol PHP, sed Python kiel interreta disvolva lingvo estas lumjaroj for de esti eĉ grava, 0.2% stagnas kontraŭ 83.1% (kun altiĝo ĉi-jare) .

          Vi ankaŭ donas aferojn por certaj dirante, ke mi ne ĉirkaŭiras ekster PHP, sugestante, ke mi nur konas PHP, kiam ĝuste mi ne programas en PHP delonge haha. Nuntempe, pro laboraj kialoj, mi plejparte programas en Ĝavo.
          Ankaŭ mi ne diris, ke per programado en Python vi ne havas sciojn pri bito, rubujo aŭ montrilo. Prefere vi povas programi en Python eĉ ne sciante, kio temas. Tamen mi tre dubas, ke tio estus la kazo de programisto C ++. Kaj evidente mi faras la komparon kiam Python eniras tiun kampon de "universala lingvo", ne por interreta programado.

          Fariĝi programisto en 20 horoj estas simple ŝerco, troigo. Tamen mi povus meti al vi ĉi tie diversajn ligojn pri interretaj edukaj platformoj kaj kursoj, kiuj promesas similajn aferojn. Ne kulpigu min, kulpigu ĝin sur labormerkato, kiu pensas, ke fariĝi "sperta programisto" estas afero preni 20-horan kurson. Kaj Python estas unu el la modaj lingvoj kaj ankaŭ kun la plej rapida lerna kurbo ... blanka kaj en botelo.

          Mi insistas, ke vi bazas vian mesaĝon dirante kiom malbona PHP estas (kiu en certa parto, mi konsentas). Ŝajnas al mi ĝusta, krom ke mia mesaĝo ne temas pri tio, sed kial PHP daŭre uziĝos kaj ĝi ne malaperos morgaŭ kiel vi pensas.

          Salutoj

  5.   neniu diris

    C -> Iru -> (Lisp | Haskell | Java | kio ajn)

    1.    ChrisADR diris

      Lastatempe leganto sendis al mi al mia retpoŝto rekomendon de Go-libro, certe lingvo konsiderinda en la estonteco kaj pri kiu eble estos afiŝo ĉi tie

  6.   mvr1981 diris

    Nu ... kaj kion mi programas? Kial lerni programlingvon hodiaŭ kun tiel bonaj kaj spertaj programistoj, kiuj jam ekzistas? Kiujn problemojn mi povas solvi, kiujn aliaj ne jam solvis en multe pli efika maniero? ... Resume: Kiel originale estas programisto hodiaŭ? Kiel mi povas kunlabori kun aliaj sen esti piedbatita aŭ ekskludita de mia manko de scio kaj sperto?

    1.    ChrisADR diris

      Saluton mvr1981, vere interesaj demandoj 🙂 ni bobenos ilin de la lasta ĝis la unua.

      Kiel mi povas kunlabori kun aliaj sen esti piedbatita aŭ ekskludita de mia manko de scio kaj sperto?

      Se vi ne volas esti piedbatita, la unua paŝo estas lerni la procezon, vi ne povas imagi la nombron da homoj, kiuj venas al projektoj, kiuj volas fari aferojn ekskluzive laŭ sia maniero, dezirante, ke la komunumo adaptiĝu al siaj deziroj. Certe similas al mi, ke mi venos al via domo kaj fuŝos kaj malrespektos vian familion (tiel ĝi sentas sin multfoje). Se vi volas malebligi, ke tio okazu, atentu la kontribuajn gvidliniojn, la rimedojn por fari ĝin, kaj ne sendu ion nekompletan, se vi bezonas helpon, ĉiam ekzistas rimedoj por komuniki, sed malbone farita laboro probable kreos malbonajn unuajn impresojn. Se vi ne volas ekskludi vin, tio dependas de vi, vi povas vidi lin kiel la senutilan programiston, kiu ne scias, kion li faras aŭ tiu survoje fariĝi bonega programisto, kaj tio okazas nur kun praktiko kaj certe kun cimoj survoje. Mi eraris multajn fojojn antaŭ ol mi akiris mian programon pri Gentoo, kaj tio ne malhelpis min provi malgraŭ la "malbona tempo" 🙂.

      Kiel originale estas esti programisto hodiaŭ?

      -Ne temas pri originaleco, ĝi estas neceso hodiaŭ, nur pripensu la jenajn, antaŭ 20 aŭ 30 jaroj, tajpado estis neceso, multaj laboroj konkludis, ke vi sciis aŭ almenaŭ povus fari ĝin. Hodiaŭ scii Oficejon estas neceso, preskaŭ ne ekzistas laboro, kiu ne metas vin antaŭ Office-dokumentojn. Morgaŭ, tre baldaŭ, programado estos necesa. Kaj ĉi tio validas ankaŭ laŭ persona vidpunkto, scii, kio okazas en la programoj, al kiuj vi konfidas aferojn tiel gravajn kiel via mono, sano, familio, estas io logika por mi, ĉar vi povas scii iliajn limojn nur se vi scias kiel ili labori kaj por scii ĝin, vi bezonas scii kiel programi.

      Kiujn problemojn mi povas solvi, kiujn aliaj ne jam solvis en multe pli efika maniero?

      -Vi surprizus vin per la kvanto de Trajtoj kiuj necesas hodiaŭ, kaj por diri la veron, ne gravas, ke ekzistas la plej bonaj programistoj en la mondo en la komunumo, la laboro ĉiam estos pli granda ol la laborkapablo de la programistoj, mi povas kontroli tion en Gentoo, estas homoj, kiuj disvolvas la kerno, homoj laborantaj por Google, Sony, ktp ktp ... la sola afero, kiun ni ĉiuj komune havas, estas, ke neniu havas tiom da tempo, kiom li ŝatus povi fari ĉiujn pritraktitajn laborojn.

      Kial lerni programlingvon hodiaŭ kun tiel bonaj kaj spertaj programistoj, kiuj jam ekzistas?

      -Tion respondas la dua demando 😉 Sed nun mi povas aldoni, ke generacioj devas povi subteni la jam disvolvitan laboron, per tio mi volas diri, ke tiuj "spertaj" programistoj iom post iom malaperos kaj ĝi estos necesa por la "pli junaj »Programistoj respondecas kaj helpas konservi la ciklon vivanta, komunumo, kiu ne havas junajn kaj nespertajn homojn, emas malaperi laŭlonge de la tempo, ĝuste ĉar ne estos ŝanco transdoni sciojn.

      Kaj kion mi planas?

      -Ĉi tio eble estas la plej malfacila afero respondebla, sed mi provos doni al vi ekzemplon poco. Mi ĵus komencis suferi problemojn kun GNOME 24 kaj ĝia ligo al Wayland, kiuj malebligas programojn kiel Shutter ekrankopioj. Ĉi tio estas problemo por mi, ĉar kiam mi verkas miajn artikolojn, mi devas montri al vi tion, kion mi diras, iomete ĉirkaŭrigardante, mi venis al la GNOME-Ekrankopio, iom "minimumisma" por diri almenaŭ. Inter ĝiaj funkcioj, ekzistas unu el ekrano de regiono, sed kio okazas se mi ne bone fotis? Nu, mi devas forlasi kaj reeniri la programon, io teda certe, butono kiu diras "Repreni" aŭ io simila permesas al mi fari novan kapton sen devi eliri kaj eniri denove helpus min. ĝi estas malgranda programprojekto, mi neniam programis ion ajn en la GNOME-kadro do evidente mi havas multon por lerni antaŭ ol sendi mian "flikaĵon" per la nova butono, sed dumvoje mi lernas programi kaj espereble ĉi tio trajto ĝi helpos pli ol unu, kiam ĝi estos disponebla por ĉiuj.

      Jen ekzemplo, ĝi estas io simpla kaj ke certe iu ajn alia "sperta" programisto povus fari ĝin jam, sed pro evidenta tempomanko, ne estis tiel, nun mi estas tiu, kiu havas la eblon fari ĝin, sen efektive esti superulo programisto.

      Nun dependas de vi trovi ion, kio farus vian vivon "pli simpla" en tiu programaro, kiun vi uzas tiel ofte, la beleco de tio estas, ke se ni sekvos la konsilojn, kiujn mi donos al vi en la sekvaj artikoloj, la lingvo ne gravos, ĉar Vi scios la bazojn por ekkompreni la kodon, kiun vi legis kaj modifi ĝin por fari tion, kion vi volas, tio estas tre speciala sento 🙂

      Saluton kaj dankon denove

      1.    neniu diris

        Mi pensas, ke nur post kiam mi malfermis la programon Gnome Captures, la plej facila afero estas iri al la klavkombinoj kaj atribui tri kombinaĵojn print por kapti ĉiujn alt-print por kapti la aktivan fenestron kaj super-print por elekti el la kapto regiono, la disponeblaj ŝparvojoj estas ĉi tie, temas nur pri asignado de ili

        1.    ChrisADR diris

          Tial ni donas al vi ekzemplon 🙂 ĉar malgrandaj aferoj kiel tiu butono programas, ili povas helpi iujn ĉar ili povas esti nerimarkitaj de aliaj, sed ili certe plenumas la ĉefan celon, helpas lerni programi kaj cedas lokon al novaj funkcioj, Post tiu butono multaj aferoj povas esti lanĉitaj, kiel sesia mastrumado, aŭ antaŭrigarda ekrano de ĉiuj fotoj faritaj, aŭ resume, multaj aferoj fareblaj. La ideo estas, ke vi trovu ion, kio instigas vin scivoligi, ajna programaro, kiu funkcias en via sistemo, eble bezonos plibonigojn aŭ novajn funkciojn, kiuj pro manko de tempo aŭ dungitaro ankoraŭ ne estis efektivigitaj implemented

      2.    mvr1981 diris

        Dankon al vi. estas tre bonaj respondoj.

    2.    Vilhelmo diris

      Nu, por iu, kiu ne fariĝos profesia sur la kampo, necesus vidi en kiu ĉirkaŭaĵo ili laboras, kaj por administraj taskoj kaj direktivoj, povas esti interese scii, ekzemple, Python / Basic kaj scii kiel por programi makroojn en oficejaj pakaĵoj kiel LibreOffice aŭ MS Office. Estas fojoj, kiam tio povas ŝpari multajn horojn da laboro por vi aŭ aliaj laboristoj, kiuj ĉirkaŭas vin kaj petas ilin plenumi iun ripetan taskon, vi povas krei instrumentpanelon por rapide kalkuli la ĉefajn rilatojn de la kompanio post konektado kun la datumbazo de ĝi plenumi iun SQL-demandon.
      Kiel ĉio, se vi konas la ilojn ĉe via fingropinto, vi povas pripensi kiel eltiri la plej grandan parton el ĝi. Ne ĉio konsistas.

  7.   Marcelo diris

    Vilhelmo, tute konsentas kun vi, "Ne ĉio estas elpensita" kaj tio, kio estas elpensita, modifeblas. Vi devas eltiri la plej grandan parton de la iloj kaj uzi tiun, kiu plej taŭgas por viaj bezonoj.

  8.   ricardo diris

    Por programado, la unua lerninda lingvo estas la angla, tiam tiu, kiu plej allogas ilin kaj ŝajnas al ili plej bela.

    1.    ChrisADR diris

      Mi ne verkis ĝin, sed vere 🙂 scii la anglan helpas multe, ĉar plej multaj lingvoj estas skribitaj en ĝi, sed ankaŭ ĉar ankaŭ la pli granda kvanto de unuamanaj informoj 🙂 Koran dankon pro interŝanĝo

  9.   Ruben salgado diris

    Bonega artikolo, krom instiga.

    1.    ChrisADR diris

      Tre afabla, dankegon 🙂 Salutojn

  10.   Gonzalo martinez diris

    Programado estas scii rezoni kaj traduki tiun rezonadon en instrukciojn.

    Du klarigoj pri la artikolo:

    1) Surbaze de mia sperto kiel programinstruisto de preskaŭ 10 jaroj, ne gravas kun kiu lingvo vi lernas, sed kiel vi lernas kaj kiom kompleksa ĝi estas.

    Mi pensas, ke lingvo lernebla laŭ strukturita maniero, kaj poste transiri al aliaj pli kompleksaj aferoj, estas pli facila ol komenci kun lingvo kiel Java dekomence.

    Estas pli facile lerni ion kiel Saluton Mondo en C aŭ Paskalo kiel bazo, ol kun kelkaj linioj (PROGRAMO en la kazo de Paskalo, aŭ # inkludi En la kazo de C) vi povas komenci disvolvi la algoritmon kaj kodi la programon per ĝia logiko rekte, kiel en Java, kiu mem bezonas klason, metodon kaj iujn aliajn aferojn, kiuj por komencanto estas superŝarĝo de informo nenecesa, kaj tio povas esti ignorata kaj transiri al aliaj aferoj, sed ili estas konceptoj, kiuj estas, kaj laŭ mi, preteratenti aferojn ne estas bona maniero lerni, precipe se la lingvo devigas vin uzi ilin. Estas kiel komenci celpraktikadon por la unua fojo per M-16, kaj pafi dum monatoj en duonaŭtomata reĝimo tenante la tenilon per ambaŭ manoj kiel pistolo.

    2) Ĉu lingvo estas interpretita aŭ kompilita dependas de ĝia efektivigo, ne de la lingvo mem. Ekzemple, se vi uzas Python, por retejo-programo, kiu uzas wsgi (ĉu mod_wsgi en apache, aŭ uwsgi por Nginx), la python-kodo estas kompilita kiam startas la responda modulo, generante .pyc-dosierojn.

    Ekzistas ankaŭ duumaj dosiergeneriloj por java (kiuj generas denaskajn duumaĵojn anstataŭ bitokodo), aŭ kompililojn de PHP-skriptoj en puraj duumaĵoj.

    Pri tio, kion ili diras pri PHP, ĝi estas simple lingvo projektita en alia epoko, kun aliaj aferoj en la kapo, kaj sen pripensi aspektojn, kiuj tiam ne ekzistis. Klare, la fakto, ke ĝi estas la plej uzata, ne igas ĝin la plej bona por io ajn en la mondo, sed ekzistas realo: ĝi estas la lingvo kun kiu estas la plej multaj ŝancoj akiri laboron en ĉiuj programoj. Scii, ke ĝi ne doloras, eĉ se vi ne ŝatas ĝin.

    Eĉ mi, kiu laboras kiel Sistema Administranto de kelkaj jaroj kaj forlasis la laboron de programisto, ĉiufoje mi devas meti PHP-kodon en ion.

    1.    ChrisADR diris

      Saluton Gonzalo, dankon pro dividado,

      Certe paroli pri nenecesaj informaj troŝarĝoj, scii, ke la sama lingvo povas esti interpretita aŭ kompilita, estas io, kio ne necesas en ĉi tiu etapo. Certe la efektivigo gravas, sed se ni diras, ke ĉi-nivele, ni ne generas pli ol konfuzon. Sammaniere ne temas pri objektemaj programaj problemoj, aŭ pri aliaj konceptoj, kiujn oni devas iom post iom dozi por ne kapti homojn.

      Ĉar spaco estas limigita, la ĉefa celo de la afiŝo estas montri al legantoj, kiuj volas programi, ke ekzistas du grandaj mondoj de lingvoj, ke la "tradicie" interpretitaj estas pli "simplaj", ke la "tradicie" kompilitaj estas iomete. pli "kompleksa" sed indas tiu nivelo de komplekseco havi pli solidan komprenon kaj ke dependas de ĉiu persono elekti la lingvon, ĉar depende de la programa aliro, ili povos elekti siajn plej ŝatatajn projektojn kaj samtempe ili povos kompreni kion ili legas kaj / aŭ skribas 🙂

      Koran dankon denove, salutojn.

      1.    Gonzalo martinez diris

        Ĉi tio estas eraro, ne estas kompilitaj aŭ interpretitaj lingvoj, ekzistas interpretistoj kaj kompililoj por ĉiu lingvo, ambaŭ por malsamaj kazoj.

        Ne estas informa troŝarĝo mencii ĝin nun, estas eraro fari tian deklaron. Laŭ mi, estus pli produktive ignori la interpretistojn, se vi ne volus troŝarĝi informojn.

        1.    ChrisADR diris

          Dankon pro la klarigo, mi konsideros ĝin kiam mi revenos al la temo. Saluton

  11.   Ares diris

    Kiun lingvon vi rekomendas por la servila flanko, konsiderante, ke PHP malfavoris?
    Same pri datumbazoj, mi ne scias, ĉu estos io pli bona kaj pli moderna ol mySQL.

    1.    ChrisADR diris

      PHP ne defalis ... Ĉiu lingvo havas sian vivociklon, kaj php certe estas jam lingvo, kiu eniras la skalon de "matura", kio igas ĝin utila en la komerca nivelo, kie stabileco estas ĉefe ... Kiel iuj bankoj, kie ĝi ankoraŭ disvolviĝas en java, kiu estas pli "matura" ol php kaj certe havas siajn sekvantojn kaj kritikantojn ... Kaj ne menciante COBOL ...

      Se vi serĉas unuformecon kaj modernecon, Ĝavaskripto fariĝas unu el la plej ŝatataj de la tiel nomataj "plenstakaj programistoj", kvankam la rubena paradigmo aŭ la "simpleco" de pitono ankaŭ estas bonaj referencoj ... Eĉ perl povus esti la eblo depende de la bezonoj 🙂

      Nuntempe la ORM (objekta interrilata mapado) prenas multan forton rilate administradon de interrilataj datumoj. Ĝi iras de SQL-sintakso al klaso kaj atributoj ... Preskaŭ ĉiuj lingvoj (se ne ĉiuj) traktas iom da ORM.

      . Mongo DB estas alternativo al interrilataj datumbazoj, kiu fariĝis sufiĉe grava; tamen necesas scii ĝiajn avantaĝojn kaj malavantaĝojn kaj validigi ĉu ĝi estus la plej bona solvo depende de la specifa bezono.

      Mi esperas, ke ĝi helpos vin, salutojn 🙂

      1.    Ares diris

        Dankon, mi kontrolos tion.

      2.    Ares diris

        Mi forgesis.

        Kion vi rekomendas al mi labori kun JAVA en Linukso?.
        Se vi povas pli bone diferencigi inter libera kaj fermita.

        1.    ChrisADR diris

          Eklipso kaj NetBeans estas liberkodaj, mi ne certas, ĉu ekzistas nur senpaga softvaro, mi kutimas uzi vim, ĉar kelkfoje la kvanto de kodo faras uzon de tuta IDE malrapida kaj inklina al ekzekutaj eraroj. Salutojn 🙂

        2.    paulzeta diris

          Por labori kun java en Linukso mi uzas IntelliJ, kiun mi rekomendas al vi.

          1.    ChrisADR diris

            PS, IntelliJ estas proprieta programaro 🙂

  12.   je diris

    Uloj ankaŭ memoras tion ... Mi laboras en banko kaj mi diras al vi, ke programlingvoj prenas malantaŭan lokon por lasi SQL kaj Stored-procedurojn unue.

    1.    Gonzalo martinez diris

      Vi devas konsideri ilin pri la konservitaj procedoj, sed ne uzante porteblan lingvon inter motoroj, almenaŭ laŭ mia sperto, temas ĉiam pri evitado de ili krom se ne ekzistas alia eblo.