emel és a típusos nyelvek
2014-08-28T18:52:51+02:00
2014-09-01T12:48:21+02:00
2022-07-19T03:57:03+02:00
  • Ha szerinted csak a fél internet van tele lopott programokkal, akkor szerintem te valami másik csatornát nézel
    Mutasd a teljes hozzászólást!
  • Nem egészen. A nyelv és a környezet két különféle dolog. Java fejlesztő is lehetsz Pl. androidon úgy, hogy fogalmad sincs arról hogy mi a javabeans, hibernate, swing, jsp vagy bármely más alapvető javás technológia.

    Ennél rosszabb hasonlatot nem is hozhattál volna. Abszolút rossz példa amit hoztál, és semmi köze nincs ahhoz, amiről itt szó van. Hiszen amiket felsoroltál azok nem a standard könyvtár részeit képező függvénycsoportok, hanem attól teljesen független és opcionális keretrendszerek. Egyszerűen semmi közük nincs egymáshoz, még felületesen sem.

    A lényeg, hogy amit emel-nek kellett volna használnia, azok a PHP standard könyvtári függvényei voltak. Amik nélkül nincs PHP, és amik a PHP, mint nyelv részeit képezik. Pont. Éppen úgy, ahogy pl. C sem létezik strcpy() nélkül, és ahogy az is a C, mint nyelv része. Függetlenül attól, hogy az strcpy() az nem egy nyelvi szerkezet, hanem egy standard függvény. Te nyilván e kettő közötti különbségre céloztál, csak közben össze-vissza kevertél mindent mindennel.

    A lényeg, hogy éppen úgy, ahogy a C esetében is a nyelvi specifikáció részeit képezik nem csak a nyelvi szerkezetek, de a standard könyvtár függvényei is, éppen úgy PHP esetében is a nyelv részeit képezik nem csak a nyelvi szerkezetek, de a standard könyvtár függvényei is. Amiket ha valaki nem ismer, akkor teljesen nyilvánvalóan nem ismeri a nyelvet.

    Ezen az, hogy te össze-vissza keversz és ekvivalensnek tekintesz valójában teljesen eltérő jelentésű fogalmakat (pl. "nyelv" és "nyelvi szerkezetek", "standard könyvtár" és "keretrendszer", stb.), nyilván nem sokat változtat.
    Mutasd a teljes hozzászólást!
  • A facebookot urban legendek szerint hip-hop-ban írták, nem php-ban (hiszi a piszi). Még ha ugyan úgy $ jelet teszel is a változónevek elé, ugyan mennyiben jelent az hasonlóságot egy script nyelv és egy programnyelv között, amiknek a lib alapjaik is teljesen különbözőek?

    Aha. Ehhez képest a valóság az, hogy a HipHop nem egy nyelv, hanem egy fordító/futtató technológiacsoport. Amik minden elemében az a közös, hogy PHP-s forrásból dolgoznak - ennél fogva pedig egyértelmű, hogy bármit amit velük futtatnak annak PHP-ban kellett íródnia.

    Amiben az említett technológiacsoport elemei különböznek az, hogy hogyan futtatják a PHP kódot. Van ami átfordítja először C++-ra és így generál tárgykódot belőle (HipHop for PHP). Meg van ami egy virtuális gépet (HipHop Virtual Machine, HHVM) rak a PHP alá, és azon futtatja a PHP-s kódot. De mindegyik PHP-s kódot futtat.

    A Facebook egyébként használ ma már egy másik nyelvet, amit viszont nem HipHop-nak, hanem Hack-nek hívnak. Ez ugyanakkor szintén nem a PHP-től különböző nyelv, hanem pont az ellenkezője: a Hack teljes mértében a PHP-re épül  - annyira, hogy a legtöbb PHP programot tudja is futtatni a Hack értelmező. Csak ő még hozzárak néhány magasabb szintű nyelvi szerkezetet. Tehát a Hack kb. úgy viszonyul a PHP-hoz, mint a C++ a C-hez, vagy a Delphi a Pascal-hoz, azzal a különbséggel, hogy a Hack sokkal kevesebbet ad hozzá a PHP-hez, mint utóbbiak az elődnyelveikhez.

    Szóval Facebook egyrészt eredetileg is teljesen PHP alapokon íródott, másrészt máig PHP-s alapokon működik és PHP-s alapokon fejlesztik tovább. Nem véletlenül.

     Üzleti célokra senki más sem választja a php-t.

    Hát, persze, hogy nem. Ezért fut minimum a fél internet rajta.

    Mindent, amit azzal fejlesztenek, valakivel el fognak lopatni

    Azt hiszem éppen sikerült összekeverned a PHP-t és a JavaScriptet.
    Mutasd a teljes hozzászólást!
  •  Ahogy PHP-ben is megírták Pl. a fészbúkot. Más kérdés, hogy mondjuk egy üzleti alkalmazáshoz ma én sem ezt választanám.

    Had tegyek pár észrevételt.

    A facebookot urban legendek szerint hip-hop-ban írták, nem php-ban (hiszi a piszi). Még ha ugyan úgy $ jelet teszel is a változónevek elé, ugyan mennyiben jelent az hasonlóságot egy script nyelv és egy programnyelv között, amiknek a lib alapjaik is teljesen különbözőek? Annyi erővel még visual basic-nek is nevezhetnénk.

    Üzleti célokra senki más sem választja a php-t. A php-t oktatási céllal választja mindenki. Köztörvényes bűnözést tanítanak vele. Mindent, amit azzal fejlesztenek, valakivel el fognak lopatni
    Mutasd a teljes hozzászólást!
  • Nem egészen. A nyelv és a környezet két különféle dolog. Java fejlesztő is lehetsz Pl. androidon úgy, hogy fogalmad sincs arról hogy mi a javabeans, hibernate, swing, jsp vagy bármely más alapvető javás technológia.
    Mutasd a teljes hozzászólást!
  • Ez a kijelentésed csak annyira abszurd, mint ha azt mondtad volna, hogy attól, hogy valaki nem ismeri az összeadást és a kivonást még érthet az agysebészethez és lehet a tudományos akadémia elnöke is.
    Mutasd a teljes hozzászólást!
  • Mi köze a PHP alapvető könyvtári függvényeinek magához a nyelvhez ? Azért mert valaki nem ismeri őket, attól a nyelvet még ismerheti. A környezet megismerése mindig sokszor nagyobb feladat mint a nyelv megismerése. Különösen igaz ez a PHP esetében, ahol különálló frameworkok vannak, amikkel akár úgy is elboldogulhatsz, hogy az alapvető könyvtári függvények jó részének a közelébe sem mész.
    Mutasd a teljes hozzászólást!
  • Hát kár volt ezért külön threadbe szervezni a témát, mert én jócskán többet beszéltem erről, mint szándékoztam.

    ['személyes megtámadtatás' miatt támadt fel újra a halódó téma...]
    Mutasd a teljes hozzászólást!
  • Egy nyelv hiányosságai

    Miután nem vetted a fáradtságot és az időt, hogy megismerd a nyelvet, ezért értelemszerűen nem is tudhattad, hogy mi a hiányosságai. Illetve, azon hiányosságok jelentős része, amiket a nyelvnek tulajdonítottál, vélhetően valójában nem azé, hanem csak a saját tudásod hiányosságai voltak.

    Pl. mint a korábban is linkelt példa is mutatja, te a PHP-ból még a legalapvetőbb standard függvényeket sem ismerted meg. Azokat, amiket minden PHP kóder az első pár nap alatt megtanul - és amik közül egy-egy darabbal kb. 20-30-40 sort ki lehetett volna váltani az általad megírt kódból.

    Most akkor gondolhatod, hogy mennyire megalapozott lehet bármilyen ítélet is részedről a nyelv képességeit, hiányosságait vagy bármilyen egyéb jellemzőit illetően, ha még ennyire sem ismered azt, illetve ha ebből eredően - nyilván a fentiek értelmében teljesen tévesen - nem látod meg, hogy 20-30-40x hatékonyabban, gyorsabban, egyszerűbben is lehet dolgozni vele, mint ahogy azt te tetted.

    Részemről a fordítási idejű, minél jelentősebb kódellenörzésben hiszek. [tapasztalat/szakmai fejlődés okán]

    Mivel mást nyilvánvalóan nem is ismersz, és mivel mással nyilvánvalóan nincs is számottevő tapasztalatod, ezért nincs is alapod, ami alapján eldönthetnéd, hogy akár általánosságban, akár egy konkrét célra vagy adott feltételek között melyik az előnyösebb.

    Tehát úgy véled tudni, hogy A jobb B-nél (jelentsen bármit is a "jobb" fogalma adott esetben), hogy csak A-t ismered, de azt, hogy B mit takar, milyen sajátosságokkal bír, stb., arról halvány lila segédfogalmaid sincsenek.


    A többi dologra itt és most nem reagálnék, mert egyrészt már ezerszer cáfolt hamisságokat írtál le (és ha az eddigi 10 alkalommal nem értetted meg, hogy miért hamisak, akkor most sem fogod), másrészt meg, mert nem akarnék még jobban elkanyarodni az eredeti témától.

    A fentiek előbbiektől függetlenül is egyértelművé teszik, hogy te olyan dolgokról nyilatkozol, amiket nem ismersz, és amiket ennél fogva nem tudsz (nem is tudhatsz) helyesen értékelni, megítélni. Nyilván véleményed is ennek megfelelő súllyal esik latba ezekben a kérdésekben.
    Mutasd a teljes hozzászólást!
  • Hali!

    Tehát, akkor mégsem a nyelv megismerése volt a cél. Nem hiszem, hogy pár óra "belefeccöléssel" meg lehet ismerni egy nyelvet (de ki tudja).

    Egy rossz programnyelvre (szerintem) nem lehet jól építkezni.

    Eltekintve attól, hogy pár óra "belefeccöléssel" mennyire lehet megállapítani egy programnyelvről, hogy rossz vagy jó: nemhogy rossz programnyelvre nem lehet jól építkezni, hanem egyáltalán semmilyen programnyelvre nem lehet jól építkezni, ha nem ismeri kellően azt az ember (amire -- szerintem -- pár óra "belefeccölés" nem elegendő).

    Az teljesen más dolog, hogy te úgy gondolod, hogy neked nem ér meg pár óránál több "belefeccölést".

    Mindezek (és a már sokszor kitárgyalt típusos/nem típusos/stb. változókról szóló véleményed) mellett még mindig érdekelne, hogy szerinted miért/miben gyengébb a változó-kezelés PHP esetében, mint a Clipper 5.2-nél (ha már egyszer annak találtad pár óra "belefeccölés" után).

    Mutasd a teljes hozzászólást!
  • "Nem érzel -- akár minimális -- ellentmondást a két mondatrészed között?"

    Nem igazán.
    Nem egy komplett technológiát, vagy egy komplett nyelvi infrastruktúrát akartam megtanulni, és aztán kielemezni.
    Egy döntést hozni: ha ilyen irányú feladatom támad, ezt a nyelvet használjam-e?
    A technologia ill. köré rakott infrastruktura sok-sok más környezetben adott (sőt sokszor nagyon hasonló vagy szinoním a PHP-jéével), vagyis a *nyelv* mint első döntési szint érdekelt.
    Egy rossz programnyelvre (szerintem) nem lehet jól építkezni. Ennyi.

    Nem állítom, hogy nem hatékony.
    Pár óra alatt egy micro cms nem rossz.
    De mivel építettem már nagy rendszereket is, nekem elég volt ennyi, hogy erre a nyelvre ne tegyek fel nagy tétet. [sok-sok időt és programsort] Mert az én ügyeim gyakran évtizedekre szólnak (ma is jelentős a Clipper kódokból származó bevételem, ha utálok is hozzányúlni, inkább csak patkolgatok, ha muszáj)

    Egy nyelv hiányosságai (a korábbi kellemetlen tapasztalatok) elöntik az embert, amikor ismételten találkozik ilyenekkel, így a gondok hamar kiderülnek.



    "Ha nem nagy kérés, akkor részletezhetnéd ezt a gyengeséget."

    Részemről a fordítási idejű, minél jelentősebb kódellenörzésben hiszek. [tapasztalat/szakmai fejlődés okán]
    Ez meg csak statikusan típusos nyelvekkel adatik meg (jelenleg később MI módszerekkel bizonyára elemezhetőek lesznek a dinamikusan típusos kódok is, de bele sem merek gondolni mekkora erőforrás igénnyel).


    Nem létezik tökéletesen tesztelt program!
    [Elvileg sem, de üzleti, gazdasági, határidő, erőforrás ill. emberi okokból egyértelműen így van]

    Vagyis már egy típusütközéses hiba is gond (ha megáll azért, ha 'defaulttal mást csinál' mint a programozója szeretné, akkor azért).
    De ha ehhez még a nem deklarált és/vagy elírt változónevek problémája is bejön, ami esetleg csak évekkel később, futásidőben robban... az szerintem szakmailag elfogadhatatlan.

    Mutasd a teljes hozzászólást!
  • Hali!

    A NYELV megismerése volt a cél [...] pár órát belefeccölni, hogy érdemes-e foglalkoznom vele.

    Nem érzel -- akár minimális -- ellentmondást a két mondatrészed között? Én úgy látom (lehet, hogy rosszul), nem igazán sikerült ezt a célt elérned.

    a váltózó kezelésben még a Clipper 5.2 alapjainál [*] is *gyengébbnek* találtam...

    Ha nem nagy kérés, akkor részletezhetnéd ezt a gyengeséget.

    Mutasd a teljes hozzászólást!
  • Ez mondjuk igaz. De ezzel együtt egy rakás progit írtak anno Clipperben ami közül néhány a mai napig működik. Ahogy PHP-ben is megírták Pl. a fészbúkot. Más kérdés, hogy mondjuk egy üzleti alkalmazáshoz ma én sem ezt választanám.
    Mutasd a teljes hozzászólást!
  • "abszolút nem ismered a dinamikus nyelveket"

    Mint mondtam nem is fogok belemenni a vitába *ezredszer*...

    Nem vagyok webprogramozó (valszeg soha nem is leszek "igazi"), jelenleg C#/WPF/MVVM/EF-ot nyomok.

    Nem "megoldást" kerestem (mások alkotta modulokat, mintákat, bármit), hanem kipróbáltam a PHP-ben, hogyan működik egy cms rendszer, alkottam egyet (a trustware lap egy micro cms) ami csak pár szövegfilet olvas és abból állítja össze a megjelenített lapot.


    A NYELV megismerése volt a cél... és láttam, amit láttam.
    [az uj OOP bővítményeket nem tekintve] a váltózó kezelésben még a Clipper 5.2 alapjainál [*] is *gyengébbnek* találtam... így ennyi, passz.
    Így nem is akartam 'megtanulni' egy új nyelvet (pláne a patternjeit), hanem pár órát belefeccölni, hogy érdemes-e foglalkoznom vele.

    Mindenesetre ha a jövőben webes ügyem lesz, azt C#/MVC alapon csinálom meg.
    Tudom, mert 'maradi' vagyok


    [*] még a Clipper is képes volt 'túllépni' és alapvető lépéseket megtenni (ha típust nem is, de legalább változó deklarációt bevezetni) a Clipper 5.2-re. A PHP a Clipper 89 (érted! nyolcvankilenc!) szintjén áll mint típus/változó létezés *biztonsága*.

    Nekem(!) erről ennyi...
    Mutasd a teljes hozzászólást!
  • Hát az én definíciómban (értelmezésemben) a 'típusos nyelv' (statikusan meghatározott típusos) a fordítási időben meghatározott és ellenőrzött típus deklarációkat jelenti.

    Pont erről beszélek. Ti. hogy te nem vagy tisztában a szakmailag elfogadott terminológiával és így azzal, hogy mit is jelent valójában ez (meg nagyon sok másik) fogalom, és mit értenek a valódi szakemberek, amikor használják ezeket. Ezzel összefüggésben pedig olyan sajátosságokat tulajdonítasz egyes nyelveknek, amikkel azok valójában nem rendelkeznek, és olyanokat vitatsz el másoktól, amik megvannak azokban. Ott is látsz különbségeket közöttük ahol nincsenek, és ott se ismered fel az azonosságokat, ahol megvannak - pusztán azért, mert nem vagy tisztában azzal, hogy azok a fogalmak, amik leírják az egyes (általad amúgy nagyrészt nem ismert) nyelvek sajátosságait, mit is jelentenek valójában.

    Maradjunk abban, hogy öreg róka vagyok én már, láttam sokmindent... egy ilyen "ósdi" témában nem hiszem hogy megfoghatnál

    Ehhez képest én évekre visszamenőleg nem emlékszem olyan esetre, amikor ne "fogtalak volna meg", amikor ne derült volna ki, hogy annak amit írtál, nagyjából pont az ellentettje igaz. Mellesleg pont azért, mert - ahogy magad írtad - "ósdi" ismeretek és tapasztalatok birtokában vitatkozol a legfrissebb témákról, technológiákról is. Persze lehet, hogy csak az én memóriám rossz.

    nem ma találták ki a dinamikus típusos(típusdeklarációt nélkülöző)/script nyelveket és írtam én is pár százezer programsort ilyesmiben

    Ja, láttuk. Igaz, nem pár százezret, hanem csak pár százat, de az is éppen elég volt annak felméréséhez, hogy egyértelművé váljon: abszolút nem ismered a dinamikus nyelveket, nem érted a mögöttük álló koncepciót, nem ismered a bennük alkalmazandó tervezési mintákat, ezzel összefüggésben pedig képtelen vagy megalapozott vélemény alkotására róluk. Innentől kezdve eléggé mindegy, hogy mit állítasz, hogy mennyit dolgoztál velük és hány sort írtál bennük - mert a lényeg az, hogy nyilvánvalóan nem eleget ahhoz, hogy jól megismerd őket és hogy megalapozott vitát folytathass róluk. Amit te azért ennek ellenére rendszeresen megpróbálsz.
    Mutasd a teljes hozzászólást!
  • "milyen fogalommal kell illetni azt, amire ő valójában gondolt"

    Hát az én definíciómban (értelmezésemben) a 'típusos nyelv' (statikusan meghatározott típusos) a fordítási időben meghatározott és ellenőrzött típus deklarációkat jelenti. [*]
    A 'dinamikus típusú' nyelv a változó típus nélküli deklarációját használó (vagy még a nevének az előírását is nélkülöző) nyelv. Ahol a változó tartalma bármilyen típust felvehet (dinamikus) és csak futás idejű ellenőrzéssel állapítható meg teljes biztonsággal.

    [*] ami nem zárja ki a típusváltás 'erőltetését', de ekkor is az 'új típussal' használjuk azonos nyelvi elvek alapján az adott memóriaterületet.


    Ez a hozzászólás és a rá adott válaszok a moderátor által lett átmozgatva a(z) "Lenyomta a Python a Java-t és a C/C++-t is az egyetemi oktatásban" témából.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd