Sziasztok!
Szeretnék megtanulni C-ben programozni, ehhez kellene segítség. Elsőnek felvázolnám a céljaim, mert lehet, hogy más nyelv jobban feküdne a terveimhez.
Közepes/hosszú távú célom, hogy olyan alkalmazást tudjak írni, ami kapcsolódni tud webes rendszerekhez. PHP-val elboldogulok, de bizonyos körülmények esetén kellene lokálisan futó program, ezért szeretném, ha képes lennék összefaragni egy-két dolgot.
Kérdéseim illetve várakozásaim:
- több platformra fordítható kód (elsődlegesen windows és linux) ezért gondoltam C-re. No de melyik? C++ vagy C# vagy egyéb/más nyelv?
- compiler ami free?
- lehetőleg ingyenes IDE (Netbeans-t már hallottam, de hátha van más is, amit kipróbálhatok) A legjobb az lenne, ha segítene a parancsok, szintaxisok megírásában (mint pl. PHP-nál a Zend)
- felhasználói felülettel rendelkező és háttérben futó alkalmazásra
- könnyű adatbáziskapcsolati réteg (mysql, mssql, postgre)
- ajánlott tananyag kezdőknek?
- használható online segítség for dummies? :)
Szóval egy olyan segítségcsomag lenne jó, amivel az első lépéseket is csalódás nélkül átvészelem, ugyanakkor ha kicsit belelendülök, akkor is elegendő a funkcionalítása.
Előre is köszönöm a válaszaitokat!
Üdv:
Throo
- 10455 megtekintés
Hozzászólások
Ilyen elvárásokkal nekem eszembe nem jutna valami C* nyelvet választani. Scriptnyelvek, Python elsősorban.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
+1
--
Soli Deo Gloria
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
"Közepes/hosszú távú célom, hogy olyan alkalmazást tudjak írni, ami kapcsolódni tud webes rendszerekhez. PHP-val elboldogulok, de bizonyos körülmények esetén kellene lokálisan futó program, ezért szeretném, ha képes lennék összefaragni egy-két dolgot."
Ilyen alkalmazásra inkább c++ a javaslatom.
"több platformra fordítható kód (elsődlegesen windows és linux) ezért gondoltam C-re. No de melyik? C++ vagy C# vagy egyéb/más nyelv?"
c != c++, a c# meg főleg nem c.
"compiler ami free?"
ha c++, akkor g++ (esetleg intel c++ compiler)
"lehetőleg ingyenes IDE (Netbeans-t már hallottam, de hátha van más is, amit kipróbálhatok) A legjobb az lenne, ha segítene a parancsok, szintaxisok megírásában (mint pl. PHP-nál a Zend)"
A zend eclipse alapu, így hát ha már ismered, akkor az eclipse-t ajánlanám.
"felhasználói felülettel rendelkező és háttérben futó alkalmazásra"
Nem teljesen értem a dolgot, ez csak azon múlik hogy milyen kódot írsz.
"könnyű adatbáziskapcsolati réteg (mysql, mssql, postgre)"
Keresel rá egy neked megfelelő lib-et, de ez már szintén csak rajtad múlik hogy melyiket választod. Van pár:)
"ajánlott tananyag kezdőknek?"
Hát, erre nehéz válaszolni. Előbb válaszd ki azt a nyelvet, amit használni szeretnél.
- A hozzászóláshoz be kell jelentkezni
> - több platformra fordítható kód (elsődlegesen windows és linux) ezért gondoltam C-re. No de melyik? C++ vagy C# vagy egyéb/más nyelv?
Felejtsd el a C-t, valamely dinamikus nyelv jobban megfelel erre a celra: python, ruby, perl, ami tetszik. C*-vel portabilitast elerni elegge remalom.
> - compiler ami free?
gcc & clang, ha C/C++. C# eseten mono vagy mifene.
> - könnyű adatbáziskapcsolati réteg (mysql, mssql, postgre)
Na, itt a C/C++-t aztan tenyleg felejtsd el. Lehet, hogy C# eseten mar jobb a helyzet, de C/C++ kornyeken borzalom van csak es szenvedes.
--
|8]
- A hozzászóláshoz be kell jelentkezni
> C*-vel portabilitast elerni elegge remalom.
> Na, itt a C/C++-t aztan tenyleg felejtsd el. Lehet, hogy C# eseten mar jobb a helyzet, de C/C++ kornyeken borzalom van csak es szenvedes.
A kulcsszó a Qt.
- A hozzászóláshoz be kell jelentkezni
Qt -s programok Macen kimondottan ocsmányak, és nem viselkednek intuitívan.
Java/SWT -sek is. Java/Swing viszonylag elfogadható, de nem tökéletes.
Qt úgy tudom nem lesz windows metrora.
Akkor most mobil platformokról nem is beszéltem.
A portabilitásnak hatalmas ára van, sokan nem látják. Nem biztos, hogy érdemes megfizetni, és megfizettetni a felhasználókkal. Sokszor jobb inkább megírni a kérdéses alkalmazást tisztességesen az egyes támogatni kivánt platformokra, és más platformokat meg egyszerűen nem támogatni (vagy akár erőforrás híján csak egyetlenegy választott platformot támogatni).
- A hozzászóláshoz be kell jelentkezni
Nem. A QT lehet segitseg ebben, de QT-tol nem lesz varazsutesre semmi portabilis.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Na a QT-tol aztan vegkepp nem. Esetleg a Qt-tol. De igen, azt is esszel kell hasznalni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Köszönöm mindenkinek! :)
Többek multiplatform ellenzésére alapulva lehet pihentetem a C-t és varjációit... Lehet először körbenézek Algernon által javasolt nyelvek között...
Köszönöm mindenkinek az eddigi hozzászólásokat :)
- A hozzászóláshoz be kell jelentkezni
Ha esetleg ruby-t valasztanal, eleg sokmindenben tudok segiteni. Illetve ha erdekel, van alapozo konyvem is, papir.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
A python-hoz: az udacity.com ingyenesen elérhető a CS101-es kurzus, ami szerintem kezdetnek jó is lenne. Ezután még ajánlott a CS253
- A hozzászóláshoz be kell jelentkezni
Én bizony fordítva ülnék a lóra: az igényekből adnék le, igenis belenyalva a C-be, aztán amikor kialakult ezáltal egy kép arról, hogy mi folyik a memóriában, lépnék oldalra más nyelvekre, nagyobb célokkal.
Persze valószínűleg azért mondom, hogy így tennék, mert pont így tettem hajdan.
- A hozzászóláshoz be kell jelentkezni
Szia!
Természetesen én sem úgy terveztem, hogy a "Hello World" helyett egyből egy böngészőt vagy könyvelőprogramot, esetleg médiaplayert írok. :) De mindenesetre köszönöm a jótanácsot!
- A hozzászóláshoz be kell jelentkezni
Egyelore lasson a PHP-hoz kepest ertelmes kornyezetet, aztan lehet tovabblepni a C fele. Pont eleg lesz neki kinoni a PHP-s beidegzodeseket most elso korben.
En egyebkent nem ajanlom a C-t masodik nyelvnek, mert nem egyszeru tanulni, eleg sok a rejtelyes hibalehetoseg benne, ami csak futaskor derul ki, es hat a hibakezeles nem a legjobb benne.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Egyrészt 100%-ig igazat adok abban, hogy a php-ből nehéz lesz kilépni (nem is biztos, hogy kell). Másrészt ha az ember tudni szeretné, hogy mi folyik a háttérben, a C mellett sok egyéb alternatíva nem is marad: egyik full memóriamenedzselt (szkrip)nyelvből a másikba átlépni _ebben a tekintetben_ sok eredményt nem hoz. Hajdan a C-beli lyukra futásaimból messze többet tanultam, mint amikor a Pascal úgy-ahogy megvédett magamtól. Meglehet, hogy ha e kettő (no meg az asm) kimaradt volna, ma volna egy olyan tévképzetem, hogy a változó csak úgy beleszületik a memóriába gond és keserv nélkül.
Nem tudom, hogy ez most mennyire rossz vagy már jónak tekintendő, de ott tart a világ, hogy Websphere AS programozó tanfolyam (azaz valószínűleg ott már nem nullkilométeres hallgatók jelennek meg) oktatóját készek a résztvevők teljes akarategységben megkövezni, ha kiejti a száján, hogy "pointer", mert "hiszen ebben a nyelvben nincs is ilyen".
- A hozzászóláshoz be kell jelentkezni
"ha az ember tudni szeretné, hogy mi folyik a háttérben"
De vajon szeretne? Foleg ezen a szinten?
Nekem is csak sokadik nyelv volt a C. Mert nem erdekelt, hogy mi hajtja, ha megnyomtam a kis piros gombot, akkor mukodott, ha a nagy zoldet, akkor is.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Ja, tényleg az az igazi kérdés, hogy "csak" csinálni akarja-e, vagy tudatosan csinálni.
Most belegondolva azért volt egy hatalmas előnye a C-vel szórakozásnak annak ellenére, hogy aktívan vagy 10 éve nem használom: ha valaminek ELMÉLETILEG biztosan mennie kellene, egy strace/ltrace/truss futtatásával általában be sikerül lőni, hogy GYAKORLATILAG miért nem megy.
... és az egy előnyből a második persze a tökéletlenül/elővigyázatlanul portolt, de szimpatikus jutilitik fordításakor érhető tetten.
- A hozzászóláshoz be kell jelentkezni
Egy virtuális gépen futó programhoz aztán nagyon nem nyújt segítséget a C tudás. Az absztrakciós szinteknek van értelme, és nem kell mindenkinek OS/hardver szinten tudnia. Ettől nem lesz kevesebb.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
"Egy virtuális gépen futó programhoz aztán nagyon nem nyújt segítséget a C tudás."
... amíg azt nem kezded el látni a logban - a vm utolsó életjeleként -, hogy "malloc failed to allocate...", amikor is ha tényleg semmi, de semmi gőzöd nincs arról, hogy mi és miért folyik a háttérben, Neumanntól a M$-on/Linuson át a Sunig bezárólag mindenki hülye lesz, hogy valamiért odatette azt a micsoda mallocot, ami neked nem is kell, és bénázik, és szívat.
Persze nem azt mondom, hogy a tájékozott vm-alapú programozóval fordulhat elő ilyesmi, viszont a jelek szerint már a gyarkolat se jelent feltétlenül tájékozottságot.
- A hozzászóláshoz be kell jelentkezni
Tudod, ha ilyen elofordul, akkor altalaban ugyis a VM program gyartoja volt hulye, es en, mint a VM felhasznaloja nem tehetek semmit - akkor se, ha kb. ertem, hogy mi a rak baja van. De egyebkent meg Google eleg sokmindennek az ertelmezeseben segit. 99% hogy nem en szaladok bele ilyen hubaba eloszor.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
"en, mint a VM felhasznaloja nem tehetek semmit"
Húha...
Természetesen én is mindig tökéletes kódot írok, tökéletes adatstruktúrával, csak akad úgy, hogy a tökéletesből muszáj még tökéletesebbet csinálnom.
- A hozzászóláshoz be kell jelentkezni
hehe :)
--
Gábriel Ákos
http://i-logic.hu
- A hozzászóláshoz be kell jelentkezni
Felreertetted.
Az esetek mondjuk 90-97%-aban ha a VM elszall, az nem kozvetlenul azert van, mert a kod szar. Mondjuk ez elsosorban Javara es Rubyra igaz (mert ezeket ismerem), es implicite kizarom a C nyelvu betetek targyalasat a temabol, mert ez nem a VM resze, viszont ha az szar, akkor az tenyleg magaval rantja a VM-et. De itt nem errol van szo.
Szoval, ha a VM dob valami malloc/free problemat, az az esetek donto tobbsegeben nem a VM-ben futo kod josaga/rosszasaga miatt van, hanem azert, mert a VM bugos. Mivel nagyjabol nincs olyan VM, ahol ne lenne implicite automata GC, vagy valami mas automatta memoriamenedzsment, igy kodbol nincs is ertelme - sokszor lehetoseg sincs - valami olyasmit kozvetlenul lefuttatni, aminek a vege malloc/free lesz. Tehat, mittomen, letrehozok egy objektumot, oke, de baromira nem biztos, hogy az a VM-ben egy malloc-ot fog implikalni, mert akar elore is lefoglalhatott memoriat, amibe meg epp beleferek. Ugyanigy egy objektum megsemmisulese meg nem implikal kozvetlen free-t, hanem a memoriaterulet visszakerul a szabadok koze a VM-en belul, es ennyi.
Tehat az esetek tobbsegeben ha a VM dob egy hibat, akkor abban a VM-en belul futo kod vagy csak borzaszto kozvetetten, vagy egyaltalan nem felelos. A hibas VM-mel meg ugyse nagyon tudsz mit csinalni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Az esetek 97%-ban az van, hogy a terheléshez képest tényleg kicsire van véve a VM által használható memória (és akkor az egyidejű szükségesen meglevő objektumok miatt betelik) vagy szar a kód. Némi tapasztalat birtokában az elsőre elég hamar rá lehet jönni, a második megtalálásában pedig sokat segít a heap dump (delta).
Leak-elő vm-el az elmúlt 12 évben talán ha kétszer futottam össze.
Egyszer volt még 1.5.x egyszer meg 1.6.0.18 után.
--
Gábriel Ákos
http://i-logic.hu
- A hozzászóláshoz be kell jelentkezni
ruby +1
- A hozzászóláshoz be kell jelentkezni
A C sok teruleten nagyon hasznos, erdemes belekezdeni legalabb minimalis szinten, erre a K&R konyvet ajanlom.
Viszont amit irtal, arra a PHP miert is nem jo? Azt irtad, azzal elboldogulsz, es erre a feladatra - scriptnyelvkent - tokeletesen alkalmas. A legtobb ilyen feladatot PHP-ban szoktam megoldani.
Annyi, hogy a gepre felteszed a PHP-cli-t (van Winre, Linuxra, meg ami epp kell, nyilvan ingyenes), es futtatod vele a PHP scriptedet. A libcurl-on keresztul le tudsz kerni weboldalt (van ra tamogatas, csak fel kell tenni telepiteskor), tud (x)html-t parse-olni (szoval DOM objektumonkent is elerheted meg stringkent is/regexppel), ill. van beepitett webservice tamogatas is.
Adatbazis kezelest csinalhatod ugy, ahogy eddig, PDO/mysqli/pg/ami tetszik.
Ja, es ha akarod, felteheted a vegen a webserverre is. Egyebkent van hozza GTK, meg ki tudja meg mi.
Online segitseg: php.net
--
My gold plated butt-plug business is being sued by Apple.
Apparently they have a patent for overpriced crap for arseholes.
- A hozzászóláshoz be kell jelentkezni
A php-val köszönöm jól vagyok, de pont egy olyan rendszer kellene, amihez nem kell php-t futtatni, ugyanakkor nem csak cli-ből érem el. Illetve ha egy későbbi programot ki szeretnék adni a kezemből, akkor ne adjam oda a fél kódkészletet vele együtt... Tudom, hogy vannak titkosítóprogramok, mint az IonCube, vagy Zend Guard, de ezek néha összekuszálják a kódot és nem futnak emiatt le úgy, ahogyan annak kellene. Ezért lenne jó valami olyan alkalmazás, ami elvégzi amit kell. Ugyanakkor jó ha webről bárhonnan eléri az ember az adatokat, ezért kell majd a DB kezelés...
Phyton-t és a Ruby-t is nézegettem, bár csak felszínesen egyenlőre. Pythonnál láttam valami verzió miatti lehetséges nehézségeket a futtatással... (2.7.x vs 3.x... ) A ruby nyelvezetével még nem találkoztam, de remélhetőleg nincs köze a ruby on rails-hez, csak a nevében... :)
- A hozzászóláshoz be kell jelentkezni
Hat ha fontos, hogy amit kiadsz a kezedbol, azt nehezen lehessen atalakitani/visszafejteni, akkor a scriptnyelvek egy resze kiesik (ahogy egy csomo mas is, pl. Javahoz es C#-hoz is vannak egeszen jo eszkozok).
"A ruby nyelvezetével még nem találkoztam, de remélhetőleg nincs köze a ruby on rails-hez, csak a nevében... :)"
doki: Asszonyom, van egy nagyon jo hirem!
no: Kisasszony.
doki: Ez esetben van egy rossz hirem..
--
My gold plated butt-plug business is being sued by Apple.
Apparently they have a patent for overpriced crap for arseholes.
- A hozzászóláshoz be kell jelentkezni
Mi a baj a Ruby on Rails-sel? Egyebkent pedig van koze, a Rails keretrendszer Ruby nyelvet hasznal.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
+1 a Kernighan and Ritchie könyvre. Már olvasmánynak is élvezetes. Meg még hasznos is.
- A hozzászóláshoz be kell jelentkezni
Először inkább azt a kérdést tenném fel, hogy úgy egyáltalán _programozni_ szeretnél megtanulni (és akkor fölösleges a platformfüggetlenség meg az adatbáziskapcsolat)?
Ez esetben: linux, gcc, make, vim.
"Ellophatatlan" program nincs, manapság a VM-ek korában pláne nincs.
Amúgy meg Java + Eclipse
--
Gábriel Ákos
http://i-logic.hu
- A hozzászóláshoz be kell jelentkezni
-1 az Eclipse -re (helyette pl. NetBeans)
- A hozzászóláshoz be kell jelentkezni
Megindokolnád?
-----------
"640GB sokmindenre elég"
- A hozzászóláshoz be kell jelentkezni
ó ne, még egy flamewar...
--
Gábriel Ákos
http://i-logic.hu
- A hozzászóláshoz be kell jelentkezni
Nekem nagyon sok szenvedést okozott, amíg használni kényszerűltem.
A jelek szerint nem vagyok egyedül: http://www.ihateeclipse.com
- A hozzászóláshoz be kell jelentkezni
azért olvasd el az első kommentet is, meg az azt követő párat:P
- A hozzászóláshoz be kell jelentkezni
?
- A hozzászóláshoz be kell jelentkezni