TCH írta/wrote:
A LIMIT hiánya csak egy volt a sok közül, pl. autoincrement sincs benne, úgy mint mysql-ben, vagy serial/bigserial mint pgsql-ben. Helyette vannak külső serialok és triggerrel lehet hozzákötni, vagy table_serial.nextval a primary key helyére insertkor. Nagy élmény volt PHP-ből basztatni.
Az auto_incrementet felejtsd el, az egy MySQL-es ökörség. Az SQL standard a SEQUENCE-ket írja elő, ezt a MySQL-en kívül MINDEN normális RDBMS implementálja. (Ok, az SQLite is valami autoincrement gányolmányt használ). A mysql_insert_id() szintén egy MySQL sajátosság. Mellesleg a SEQUNECE-kkel (Pg-ben) semmi gáz nincs, nextval() megadja a következőt (gondolom nem kell mondani: nem sorfolytonos, tranzakció rollback esetén nem fogja visszaállítani, számlaszámhoz értelem szerűen ne használd), currval() meg lekérdezi az aktuális értéket. Mondjuk Pg alatt ott a RETURNS záradék, ami nem egy hülye találmány.
Mondjuk MySQL-hez hozzátartozik, hogy default value gyakorlatilag csak primitív típus lehet, tárolt eljárásokról meg sokáig nem is hallott (mikor utoljára néztem, akkor is csak függvény szintjén, resultsetet pl. nem tud visszaadni, pedig a Pg-ben tök szép és egyszerű).
TCH írta/wrote:
dolgozni és hiába mondtam el hússzor, hogy ott a Delphi meg a C++, azokban dettó ugyanolyan gyorsan lehet fejleszteni és huszadakkora lesz a végeredmény, meg hússzor gyorsabb, mint ha dzsuvában vagy cisztában tolnád.
Na, te se dolgoztál még C++-ban eleget. Ott általában azzal kezdődik egy nagyobb projekt, hogy kiválasztják azt a függvénykönyvtárat, amely kb. egy fél .NET FW vagy Java Class Library. Aztán a memóriát még mindig kezelheted kézzel vagy bepattintasz vmi memóriamenedzsmentet. (Nagy projektnél nem ritka). Aztán mivel könnyű memóriaszemétre futni még mindig, valamint sokáig tart fordítani (az megvan, hogy a C++ a leglassabban fordítható nyelv manapság?) Nincs Java hotswaphoz hasonló megoldás (isteni kényelmes, hogy írom a kódot és menet közben cseréli az újra, midnenféle restart és hasonló nélkül. Persze új adattagot vagy metódusdefiníciót hozzáadni, módosítani nem lehet, de még így is nagy segítség), de még VS-ben is csak nagyon alapszintű edit&continue támogatás van (hisz annak megvalósítása nagyon nem triviális. Meg még egy csomó dolog van, ami C#-ban pl. nyelvi elem, C++-ban vagy megírod vagy külön lib. Továbbá reflection és RTTI sincs. Ugyan ezek kiválthatóak, csak nem a kód szépségét, egyszerűségét növeli. Na meg refactoringgal szopsz, mint a torkosborz, hiszen a makrók, mindenféle headerek és egyebek miatt csőszopás automatizálni (de inkább kb. lehetetlen). Jahhogy ezek nagy része ugyanaz, mint a C-nél? Tippelj, miért. (Segítek: C++-t nem biztos, hogy a C-re kellett volna 100%-ban ráépíteni.) Apropo C meg headerek. Ki a tököm gondolta a C tervezésekor, hogy ez így jó?
Mondjuk azért, hogy védjem picit: A C++11 most ilyen szempontból nagy előrelépés, szerintem legalább 10-15 évvel modernebbé tették a nyelvet :)
Delphi meg... attól eltekintve, hogy ez is statikus nyelv (-> dinamikus optimalizációk kuka) és a Delphi fordító se optimalizál annyira jól (ami azt illeti, néhol kifejezetten szarul), továbbá a VCL egy elég vastag réteg a WinAPI felett (és időnként így is le kell nyúlni oda). De mindegy, ettől még eltekinthetünk.
Viszont van a WPF-nek (binding, még ha egyelőre nyakatekert néhol, WPF grid, temazas, DX gyorsítás, stb.), vagy a C#-nak (pl. LinQ, async az 5.0-tól, nyitott compiler infrastruktúra, mint a Java-nál az 5.0-tól) néhány csomó hasznos dolga, amely miatt azt kell, hogy mondjam, a Delphi 5-10 éves elmaradással kullogott 2009 környékén. Most Wikit megnézegetve, mintha begyorsították volna a fejlesztést, de fene tudja hogy áll.
És félreértés ne essék: szeretem a C++-t (mert ha kell le lehet túrni nyakig - ne gondold, hogy .NET-hez nem szoktam időnként natív kódot biggyeszteni) és a Delphit (mert annak idején megmutatta, hogy hogyan kell RAD toolt készíteni - áldásos hatása szerencsére nagyon jól érződik a .NET-en), de ha most kell valami desktop app fejlesztésére, arra a C#-ot találom a legjobbnak. (Persze, feladat váltogathatja).
Aminek viszont nem látom létjogosultságát, az a VB.NET. Maga a nyelv ugyanúgy CLI-re fordul, gyakorlatilag oda-vissza csereszabatos a C#-al, csupán a szintaxis más. Értem én, hogy a sok VB kódert át kellett szoktatni .NET-re (külföldön meglepően népszerű volt), de hogy ennyi év után is ilyen aktívan fejlesszék... Volt még J# is (Java kódereknek átszoktató), de annál szerintem hamar rájöttek, hogy felesleges, mert egy Java kóder úgy is hamar átszokik C#-ra.)
Mellesleg a C++/Delphi, Java/C#/VB.NET/Delphi.NET és PHP (leszámítva, hogy az előzőek statikus nyelvek, míg utóbbiak menedzselt nyelvek, illetve scriptnyelv) igazából ugyanaz a problémakör. Mind imperatív (néhol apróbb funkcionális beütésekkel - closure, LinQ, stb.), objektum-orientált (bár tisztán csak a Java, meg a .NET) többé-kevésbé magas szintű programozási nyelv.
Ezt leszámítva annyi sok szép programnyelv van és volt a világon. ;)
TCH írta/wrote:
Értem és persze ismét, mivel a C-ben ilyen nincs
C-ben hogy ne lenne már dinamikus memóriafoglalás? A malloc az mi? Ezért mondom, fix fogalmak nélkül nem lehet beszélni valamiről.
Prometheus írta/wrote:
Hogy sikerült föltelepíteni a Mass Effect 3-at?
Beraktam a DVD-t a meghajtóba, feltelepítette az Origin-t, az felmásolta a játék cuccait és lehúzott még egy DLC-t is, mivel CE-t vettem meg. Works for me :) |