58
  • Frenzy
    #58
    Hmm, ez ok hogy sok mindent meg tudnék írni (programozni), ha nem lenne, de azért nehéz határt húzni. Pl. relációs adatbázis kezelő, ha én nekikezdenék írni, évekre ha nem évtizedekre lenne szükségem, és akkor sem biztos, hogy tudnék hasonlóan jót írni, mint mások.

    Ugyanez pl. ha videókártya drivert kéne írjak, valószínűleg nem sikerülne. XML toolkitet (mindenféle DOM kezelő meg hasonló) még talán sikerülne is belátható időn belül. :)

    Most direkt nem írok buildert, meg felhasználói felületet, hanem máshonnan hozok példákat.

    Szóval attól, hogy valaki fentebb említett dolgokat tud írni, mert ezzel foglalkozik, mások meg nem, nem teszi az egyiket jobbá, mint a másik. Valaki a videókártya drivert írja (C-ben meg ASMban), más a játékot (C++-ban, C#-ban, Javaban...). Nem feltétlenül tudnák elvégezni a másik munkáját, de ettől még amit csinálnak, azt lehet nagyon is jól csinálni, érthetnek hozzá. De egyikük sem lesz jobb mint másik.

    Lehet hogy inkább affelé gondolkoztál, mint amerre h4x0r mozgott, hogy pl. alap algoritmusokat jó ha valaki tud kódolni saját maga?

    Mert pl. C#-ban meg Javaban ugye nem kell hashtáblát meg vermet meg mittudoménmit implementálni, mert van alapból. És tényleg könnyebb úgy programozni, hogy nem kell minden egyes alkalommal ezeket megírni.

    De szerintem még talán itt sem biztosan látszik az az elválasztó vonal pontosan, hogy mi az amit tudni kéne mindenkinek (és aki tudja, ettől jobb lesz mint mások, akik nem), és mi az, amit már nem (vagyis nem javít a végterméken annak ismerete vagy nem ismerete). De abban biztos vagyok, hogy a nyelvek között ezt a határt meghúzni nem lehet, hasonlóan nem az alacsony és magas szintű programozás között.
  • Laci73
    #57
    Pheel, Frenzy: Írtam azt valahol hogy nincs szükség pl. a builderekre? Nyílvánvaló hogy egy programozónak a rohanó világban, hatásvadász multimédiás környezetben - ami ma standard - nincs ideje apróságokkal szöszmötölni. De abban tartom a véleményem, hogy az isten mentse meg a világot a mélyebb szaktudás nélküli dilettánsoktól és műkedvelőktől!!! Én biztos vagyok benne hogy Ti sem vagytok ilyenek. Nincs nagyobb és jobban eladható kincse senkinek sem (maffiózók kivételével) a szaktudásánál. Pont magatoknak mondotok ellen.
  • h4x0r
    #56
    Veszpremi Egyetem - Informacios Rendszerek Laborgyakorlat

    Tehat elvileg kene ralatassal rendelkenunk :-)
  • Frenzy
    #55
    Ez melyik egyetem? :)

    Kicsit érdekes ilyen programokat iratni, mert ezekhez azért nem csak programozási ismeret kell (szerintem), hanem mélyebb rálátás az internetre meg annak területeire meg protokolljaira. :)
  • h4x0r
    #54
    Ez egy erdekes kerdes (marmint a buheralassal kapcsolatos). C/C++-hoz is van egy rahedli lib, amikkel lehet eleg hatekonyan dolgozni. Pl. van (bocs a Linux/BSD peldaert :-) egy pthread nevu lib, amivel konnyen es hatekonyan lehet lightweight processekkel jatszadozni, vagy van C++-hoz egy AAPL nevu cucc, ami egy csomo alapstrukturat kezel hatekonyan (meg tudja barki irni, de az AAPL segitsegevel idot takarit meg).

    Megvannom oszinten, hogy a C-hez azota ragaszkodok, amiota megtanultam. Elotte Pascal+ASM volt, de vegig tudtam, hogy egy elavult szar, amivel nem lehet az eletben semmit kezdeni. A C ugy tunt, hogy mindkettobol a legjobbat tartalmazza. De az ASM miatt nagyjabol megertettem a gep "belso lelkivilagat".

    Ez mar nagyon OFF, de elmondom, hatha erdekel valakit:
    A socket alapu programrol annyit, hogy most az egyetemen a C-t nyomatjak, Linuxon (a tanszekiek szerint valamivel konnyebb a Linux szalkezelese). Kepzeljetek el 80 szerencsetlent (tisztelet az akaro es/vagy tudo kivetelnek), aki nem latott meg Linuxot eleteben, C-t is csak minimalisan ismerik, es ev vegere egy HTTP szervert kell irni, file-feltoltessel, csoportosan (5 fo) pedig egy IRC szervert kell irni. Szerintem egy agyhalott otlet, jottek is mar vagy 10-en megiratni velem ezt.
  • Frenzy
    #53
    Én régen C++ -al programoztam elég sokat, és utána a jelenlegi munkahelyre való váltáskor tértem át C#-ra. És nagyon nagyon hatékonynak találom C++-hoz képest, és mellette is (az esetek 99%-ban legalábbis).

    Hihetetlen méretű könnyebséget jelent, hogy nem kell a mutatókkal szivatni magam, meg egyáltalán memóriakezeléssel, ugyanakkor mégis hasonló könnyedséggel és hatékonysággal lehet haladni.

    A felfogás dologról, néha az az érzésem, meg úgy gondolom, hogy nem árt valóban hátulról vagy alulról kezdeni a dolgokat. Vagyis ha értesz bizonyos dolgokat, akkor könnyebben el tudod sajátítani a rá épülő dolgokat, mint ha egyből azokkal a magasabbakkal kezded.

    Példaként (elnézést hogy Windows környezetből van), MFCben jobban fogsz programozni, ha ismered a Windows APIt (WIN32), és ha ezeket ismered, akkor szerintem C#-ban is jobban fogsz programozni, mert van sejtésed róla legalább, hogy a háttérben hogyan mennek a dolgok. Persze ugyanez igaz arra is, hogy jó érteni a .NET keretrendszer működését.

    Hasonlóan mint hogy a hálózat (fizikai) működésének ismerete esetleg jól jöhet, ha socket alapú programokat írsz.

    Persze ez így talán túl általánosan hangzik, vagy olyasminek, ami magától értetődik, mégis nagyon sokan csak valami magasabbal kezdik, főleg, akik most kezdenek neki programozni, és az alul található technikákat, technológiákat nem ismerik (amig általában ugye korábbiak, korábban jöttek - nem feltétlenül rosszabbak).

    Ugyanakkor lehet, én "lihegem" túl a dolgot, és ezek nélkül is lehet az újabb dolgokat hatékonyan használni, de én mindig úgy éreztem, hogy sokat segít ismerni a hátteret.
  • h4x0r
    #52
    Hazudsz! Nem megy arra 40%! Legalabb 80% :-D Foleg ha az ember egy bevadult mutatot keres, elb@szott mutatoaritmetika utan... De erre van a core file, lehet azt is debuggolni :-)

    Amugy nem is a hulye modon hasznalt "C-s modszerekre" gondolok, hanem magara a felfogasra. Aki alacsonyan kezdett, az alltalaban azt kerdezi: "Mit csinal a gep?", aki magasan kezdett, az sokszor azt a kerdest teszi fel, hogy "Mit kene/kell csinalnia a nyelvnek?".

    Ezert ha van egy hiba a nyelvben, hat akkor megszeretkezheti hatulrol a problemat. Nem tudom, hogy ez mennyire gyakori eset, de gondolom nem nagyon.
  • Pheel
    #51
    A tapasztalatok alapján egy C/CPP (tulajdonképpen bármilyen memóriafoglalgatós-felszabadítós) nyelvet használó fejlesztő az idejének 40-60%-át pointerekkel kapcsolatos hibakereséssel tölti. Ezt szüntetik meg a managed nyelvek. Azért ez nem elhanyagolható szerintem. A precízségben egyetértünk, de sok esetben csak hátrány a régi fogások berögzült alkalmazása az új struktúrájú nyelvekben. :(
  • h4x0r
    #50
    Valo igaz, tenyleg a magyar fejlesztesu mplayerre gondolok. Amugy en sem cafolom, hogy a C# kiraly nyelv, amiket mondtak rola, az tetszett. Hallottam, hogy az OpenGL-es C# progiknal nem is tapasztalhato lassulas a C progikhoz kepest.

    A felig-meddig kompillaltat igazabol a Javara ertettem, de ha jol emlexem, a C# pont attol platformfuggetlen, hogy bizonyos run-time libeken keresztul eri el a specifikus (pl. op-rendszer specifikus) dolgokat. Ezert gondoltam eloszor azt, hogy felig kompillalt, azota egy kicsit keresgeltem. :-)

    Teman kivul jegyeznem meg, hogy valaki emlitette, hogy akik programoznak C-ben, azok kenytelenek odafigyelni munka kozben, pont a gyenge (mondhatni ad-hoc) hibakezeles miatt, viszont ezert kesobb, magasabb szintre (nyelvben :-) atterve ezek a programozok precizebben dolgoznak. Persze ez nem statisztikan alapul, csupan egy velemeny, nem akarok senkit leszolni.
  • Pheel
    #49
    Szerintem a magyar fejlesztésű OpenSource MPlayerre gondolt.
  • Frenzy
    #48
    A C# nem félig meddig, hanem teljesen kompilált nyelv. Mikor futtatod, lefordult, az adott platformra és processzorra optimalizált natív gépi kód fut - akárha C vagy C++ fordítót használtál volna (leszámítva, hogy ott nem tudod mindig az adott gépre optimalizálni, hanem előre kell eldönteni, mire optimalizáljon a fordító).

    És C#-al lehet igenis durva dolgokat írni, még ha eszközmeghajtót nem is, ez kétségtelen. Nézd meg az Avalon-t, azt teljesen C#-ban/.NET-ben írják. Vagy nézd meg a Nasa WorldWind nevű programját, ezek igazán durva dolgokat csinálnak, és egyáltalán nem lassúak.

    mplayeren te mit ertesz? A microsoft féle régi mplayert vagy valami más programot? (ugye a régi, 6-os media player még mplayer néven futott általában, ezért kérdezem, hogy pontosan mire gondolsz?)

    Visszábbtérve, én nem akarom cáfolni, hogy a C-nek megvan a maga helye, és hogy esetleg manapság még lehet benne eszközmeghajtót is írni akár (bár már a Microsoft DDK is támogat C++ -t asszem), de hogy az ilyen tudást ásznak nevezzük, az nevetséges. A programok túlnyomó része nem is akar olyan mélyre nyúlni, az az operációs rendszer dolga. De ettől még egy nyelv vagy az abban kódolok nem lesznek kevésbé tehetségesek, vagy hozzá nem értők, esetleg kevésbé jó programozók, mint azok, akikkel pedig ezzel foglalkoznak.
  • h4x0r
    #47
    Laci73: Felrement a megszolitas :-D

    Frenzy, Pheel: Habar a Java, C# es ugy alltalaban a magasszintu, felig-meddig kompillalt nyelvek manapsag menoek, azert nem art meggondolni azt sem, hogy van nehany dolog, ami ezekkel nem megoldhato (driverek, stb.). Viszont az teljesen igaz, hogy "nem erdemes baltaval hazat epiteni", de a C nem eppen balta. Inkabb egy nagyon preciz es eles kis kes, amit tudni kell hasznalni, mert egy rossz mozdulat, es oda az ujjad :-)

    Csak azt hozom fel peldanak, hogy az mplayer eleg gany kod allitolag, felig ASM, felig C, de nagyon gyors es nagytudasu is (felhivom a figyelmet, hogy nem allitom sehol, hogy a legjobb, bar nekem ez tetszik a legjobban). Ezt csak C-ben lehet kifaragni. :-D
  • Pheel
    #46
    Én azért arra is kíváncsi lennék, hogy ezzel az "ász vagyok" érzéssel hány munkahely közül lehet választani úgy, hogy ha azt kérdezik az embertől, hogy objektum vagy éppen öröklés, akkor csak bámul, hiszen ő "ász", minek tudna ilyesmit?

    10 éve "ászság" volt alacsony szinten egeret kezelni, 5 éve menő, manapság felesleges időpocséklás.
  • Frenzy
    #45
    Hát azért ez elég érdekes felfogás. Kiváncsi vagyok a "mély" ANSI C "ász" tudásoddal lehetne-e például valamilyen üzleti alkalmazást jobban megírni (vagy játékot, vagy web alkalmazást, stb), vagy az általad "csak" eszközöknek nevezett nyelveken. Lehet, hogy ANSI C "ász" rendszer gyorsabb volna futását tekintve (talán), de hogy legalább 5x annyi ideig készül és futása során 5x gyengébben kezeli a hibáit az is biztos (ha esetleg a hibás szorzót csökkentjük ászságunkkal, akkor növeljük az idő szorzót).

    Nem egyszerűen arról beszélek, hogy összekattogunk egy felhasználói felületet a "csak eszköz" nyelveken, hiszen míg a C procedurális/eljárás orientált, addig a "csak eszköz" nyelvek objektum orientáltak. Nem tudom van-e "ász"ságod mögött személyes tapasztalat, de nagyobb projekteket procedurálisan C-ben összehozni nem kis tehetség.

    Persze lehet, hogy éppen erre utaltál ászság által, de ez nem ászság, hanem marhaság. Lehet pusztán kőbaltával is házat építeni, én nem tagadom, és ha ugyanolyan szép lesz, mint aki minden más eszközt használ hozzá, hát teljes elismerésem, de megérte-e a fáradságot és befektetett munkát?

    Lehet, hogy a felfogásod 15 éve még helyénvaló lenne, de aki manapság ANSI C-ben egérkezelést (meg alacsony szintű programokat) ír, megérdemli hogy ilyesmivel bünteti magát.

    De amúgy is, miért állsz meg olyan magasan mint a C? Törjél egyből ASM nyelvekre, az ám a "tudás"!
  • Laci73
    #44
    Szia Haxor!

    " Egyébként nem lenézésből írtam, magam is megálltam a C szintjénél, bár nem is nagyon akartam "magasabbra törni" (Java, stb.). "

    Hová is törnél? A Java,a C#, a C++ builderek ügyes munkák, de "csak" eszközök, amelyek a programozó munkáját könnyítik, az igazi tudás mindig a programozóban van. Ha pl. képes vagy egy egérkezelést megvalósítani saját függvényekkel ANSI C-ben, vagy lemenni mélyprogramozási (low level) szintig, akkor onnét már nincs mit megtanulnod, ász vagy.
  • h4x0r
    #43
    Smiley, Pheel, smiley... Es igen, egyetertek.
  • Pheel
    #42
    "4BSD-bol nyulta mindenki"
    Állapodjunk meg abban, hogy átvették. Ha nem lenne közös, nem létezhetne kommunikáció a platformok között.
  • h4x0r
    #41
    Nem kell a POSIX-et lenezni. A UNIX alapu rendszerek ugyanis ismerik ezt. Van benne mindenfele fuggveny, pl. process-kezeles, stb.

    A socketing API pedig meg Windows alatt is ua., ezzel gyakorlatilag halozati progikat lehet kesziteni. Majdnem minden rendszeren megvan ez, 4BSD-bol nyulta mindenki :-)
  • Pheel
    #40
    Hát nem. Se rádiós, se gazda :)
  • Omegared
    #39
    Pheel csak nem te is rádiós rendszergarázda vagy? :D
  • ReTeK
    #38
    szóljon valaki a kölöknek, hogy ne hintázzon a széken mert ha hanyattesik csúnyán megütiheti magát aztán elejti azt a gyönyörűséget amit a kezében (hasán?) tart [szép kép]
  • husika
    #37
    azért az sem ártana, ha a fizetőképes kereslethez igazitanák az áraikat. Akkor talán reklámra sem lenne szükség. :Ö
  • dez
    #36
    Hm, ezeket nem ismerem. De feltételezem, a legtöbb programot nem ezekben írják. Vagy ezek olyan libek formájában testesülnek meg, amik bármely - pl. jobban optimizáló - fordítóhoz használhatóak? De akkor sem igaz a "bármely platform", mert csak néhány platformra portolják a cuccot, nem?
    Egyébként nem lenézésből írtam, magam is megálltam a C szintjénél, bár nem is nagyon akartam "magasabbra törni" (Java, stb.).
  • h4x0r
    #35
    Azert nem csak ANSI C van. Pl. POSIX C is (marmint a szabvany), ami cygwin-nel Win alatt is futtathato, es abban vannak mar olyan dolgok boven, amikkel kicsit komolyabb dolgok is irhatoak. Esetleg a socketing API, ami aztan a legtobb rendszer alatt szinte teljesen azonos.

    Szoval nem kell a C-t lenezni :-)
  • Equ
    #34
    "az eladott PC-k talán 1-2%-án van legális Win!"

    Forrás?

    Egyébként azt szeretnéd, ha mégnagyobb bevétele lenne a ms-nak? kedves vagy.
  • neonlight
    #33
    szerintem neved simán csak DOS XP-nek :D

    (ugye tényleg vicceltél? :)
  • fanatic
    #32
    Nem a reklámon hanem az áron kéne inkább elgondolkodni , mert az eladott PC-k talán 1-2%-án van legális Win! Ha 10$ lenne, mindenki megvenné!
  • dez
    #31
    "A C -nek pont az a lényege, hogy platformfüggetlen. Ugyan úgy lefordítható x86-ra, PPC-re, m86k-ra, stb-re az adott C kód. (lásd PPCs linux)"

    Azért ez így nem egészen igaz. Lehet olyan kódot írni, ami bárhol lefordítható, de azok igen egyszerű programocskák. Azért egyszerűek, mert nem használnak semmit az adott OS-ből (annak specifikus API-ján keresztül), mert akkor máris csak az adott OS-sel kompatibilis csak a kód. A proci már lehet más (bár az endianess-sel gyakran van gond pl. x86 és PPC között).
  • SoDI---
    #30
    cikkhez: hát igen, marketinggel bármilyen szart el lehet adni :)
  • Pheel
    #29
    "A stabilitás hiánya is oka annak a helyzetnek hogy a Windows-al mint elsősorban kliens-alkalmazással találkozunk"
    A rövidlátás lehet az oka inkább. Ahol dolgozom, 7/24-ben használunk adáslebonyolító szervereket Win2k Adv Serverrel és csodák csodája, de elmegy az akár fél évig is, akkor is csak azért kezdi előlről a számlálást, mert update-elünk rajta. (tudod, a Linuxot is újra kell indítani, ha új kernelt akarsz) A céges NAT, DHCP, DNS, SMTP, Domain Controller szerver is Windowst használ, mégsincs vele sohasem baj. Biztosan mi rontottunk el valamit...
  • Felfedező
    #28
    gondolom ez vicc akart lenni... bár annak is túl gyenge
  • irkab1rka
    #27
    Mondja már meg valaki, hogy a Longhorn az most hányas DOS is pontosan? Egy ideje elfáradtam a számlálással (dos7, dos8=win3.1, dos9...) plíííz
  • Laci73
    #26
    Kis javítás az ANSI C-hez: WinXP (SP2)alatt nem futó C forráskód, ami DOS alatt vígan szaladt. Erről ennyit...

    LaPalma: ne félj, először mindig a mammutok halnak ki.
  • FTeR
    #25
    szó szerint ezt akartam írni, kár h megelőztél :)
  • Laci73
    #24
    Szia Pheel!

    Gondolom Caro a kiszolgáló szerverekre gondolt és a Unixra (is) :) Feldobtam egy szót, amit senki sem csapott le: stabilitás. A stabilitás hiánya is oka annak a helyzetnek hogy a Windows-al mint elsősorban kliens-alkalmazással találkozunk, nem pusztán a költség (bár az MS szerint mindig a Win az olcsóbb)

    Neonlight: bizonyára az ANSI C-re gondolsz, mint platformfüggetlen nyelvre: én ennek ellenére találkoztam csak 16bites DOS módban (nem emuláció, rendesen boot-olt DOS) futó ANSI C forráskóddal...

    Microcosmos: mert kedvenc játékaid csak Win alatt futnak :)
  • LaPalma
    #23
    még egy hülyeség...
    az archicad-et (mint közismert) először mac-re fejlesztetteék és csak a 4.5-től lett belőle pc-s verzió. a kernelt manapság is előbb megirják mac alá és csak azután pc-re
    (rossznyelvek szerint miután elkészült a pc-s verzió, addig lassítják a mac-est, hogy kb egyformán fusson. de ez urban legend)
  • LaPalma
    #22
    mi a túróról beszéltek? az apple-nak a legfőbb bevétele a hardverből van, ahhoz írja a szoftvert. nagyjából leszarja, ha nem veszed meg a legújabb X-et. amint kiadná az oprendszerét x86 alá, senki nem venné a pmac-et meg imac-et.
  • Pheel
    #21
    "Nézzétek meg: minden router linuxot használ. Ezt a windowssal soha nem lehetne megcsinálni. Ettől függetlenül ugyanúgy megy PC-n is, univerzális megoldás."
    Jééézusom mekkora naivitás! Gyógyszert szedsz vagy csak beütötted a fejed? :) Hallottál már Embedded Windowsról? Esetleg Windows CE-ről? A routerek egy elenyészően kis része használ linuxot, a nagy többségben IOS fut, az otthoni gagyi cuccok pedig valami noname utánzattal vannak szerelve. Természetesen egy Windows is képes routerként üzemelni, de mivel pénzbe kerül a használata, költséghatékonysági szempontok miatt nem kerül szinte soha ilyen helyzetbe.
  • Mr Manson
    #20
    jaja
    én is várom... meg az árát... 40ropi japcsiknál
  • NEXUS6
    #19
    Na igen, egyrészt!

    Másrészt az x86 egy végeláthatatlan élettér!
    Ha az Apple ebből az élettérből kiszakítnana magának csak egy akkora szeletet, mint a mostani PPC-s, akkor már megérné a Graphisoftnak is rá fejleszteni.

    De asszem abban egyetértünk, hogy ezt a dolgot az Apple vezetése soha nem fogja meglépni.