Windows-ra is visszatér a klasszikus Visual Basic
2017-09-14T09:48:40+02:00
2017-10-05T13:18:36+02:00
2022-07-21T10:31:40+02:00
  • En azoktol a kodoktol undorodom amik minden uj sorba kapcsos zarojel... pfuuuj
    Mutasd a teljes hozzászólást!
  • működés szempontjából okés, csak nem tudtam, hogy valaki használ ilyen stílust, még nem találkoztam vele.
    Mutasd a teljes hozzászólást!
  • Dolgoztam már sok multikultis projecten is az elmúlt 20 évben, de az első kettőn kívűl a többivel nem találkoztam. 
    Talán még a Pico-val, kevert a K&R-el. Ezek szerint én Allman hívő vagyok  
    Hozzá lehetne még tenni az indiai stylet, ahol valami miatt minden sor után tesznek még egy entert , vagy kettőt, vagy ötöt, kedvfüggő 
    Mutasd a teljes hozzászólást!
  • Igazabol ugy irod ahogy akarod...
    Mutasd a teljes hozzászólást!
  • Ismerd az ellenséget! Indentation style - Wikipedia

    (Belekattintva az is kiderült, hogy hol láttam már ilyet: hát a csodás Windows könyvekben, esetleg MSDN-en)
    Mutasd a teljes hozzászólást!
  • 5 forintos kérdés, nem lehet hogy ő is elírta?
    sohase láttam még ilyet, van ilyen coding convention?
    Mutasd a teljes hozzászólást!
  • minden C-s példádban hibásan írod a {} jeleket azok előtt nincs TAB (space), egy szinten van a for / if szócskával, különben logikátlan lenne az egész.

    Nem tudom mire gondolsz, szerintem jól van az leírva.
    Az if blokkot pedig az LCoder-től vettem át egy az egybe, lehet, hogy neki kéne címezned.

    és ezt leírhatod így is, mivel minden blokkban csak 1 parancs van

    Részemről nem szeretem a blokk utasítások helyett az egy utasításos single-inline formát, mert hibalehetőségeket hordoz magában. Előny szinte semmi, probléma annál több.
    Mutasd a teljes hozzászólást!
  • minden C-s példádban hibásan írod a {} jeleket
    azok előtt nincs TAB (space), egy szinten van a for / if szócskával, különben logikátlan lenne az egész.

    (Szerintem ezt LCoder kedvéért csinálja, mert elsősorban vele kezdett vitatkozni, és ő pont ezt a rémet kedveli. Illetve így magasabbak a karakterszámok is)
    Mutasd a teljes hozzászólást!
  • Csak addig használsz foreach-et for helyett, míg le nem méred a sebességét :)
    na jó, persze ez függ attól is, mennyire sebességérzékeny a dolog.
    Mutasd a teljes hozzászólást!
  • if (valami) { fuggveny(); fuggveny(); }

    ez nekem már sok, ilyet ha jól emlékszem be se tudsz állítani, mint kódstyle  
    míg, hogy hol van a kapcsos / engedélyezze az 1 sorost, azt simán engedi.
    Mutasd a teljes hozzászólást!
  • minden C-s példádban hibásan írod a {} jeleket
    azok előtt nincs TAB (space), egy szinten van a for / if szócskával, különben logikátlan lenne az egész.

    feladom.. a fórummotor mondjon le :(  minden line-t TRIM-el megjelenítéskor, pedig szerkeztés közben jól néz ki


    if (...) { for (...) { if (...) { foo(); } } }


    és ezt leírhatod így is, mivel minden blokkban csak 1 parancs van:

    if (...) for (...) if (...) foo();
    Mutasd a teljes hozzászólást!
  • És ebben mi a jó ?

    Praktikusan: egy sort spórol.
    Kenetteljesen: nem választja el feleslegesen a vezérelt utasításblokkot a vezérlő szerkezettől.

    Ha van három if egymásba ágyazva, esetleg egy ciklusban, esetleg egy try...catch, és a büdös életben nem fogod látni hogy ki kivel van, egészen addig, amíg rá nem állsz a kurzorral az adott kapcsos zárójelre.

    Nem látom, hogy az általad propagált változat miben tudna itt mást, pláne többet...
    Ne felejtsük el, hogy a lényeg - maguk az utasítások - pont ugyanúgy van behúzva mindhárom esetben, csak a kapcsoszárójelek helyéről beszélgetünk.
    Mutasd a teljes hozzászólást!
  • Aztán a Then hova lett ?

    OK, ez jogos, bár így is rövidebb VB-ben az if blokk, mint a te formázásoddal C-ben.

    if (...) { foo(); bar(); } // 38 karakter 5 sorban

    VB-ben ugyanez:

    if ... then foo() foo() end if ' 35 karakter 4 sorban

    Aztán léptess kettesével, és nálam ez máris csak annyi, hogy az i++ helyére i+=2 kerül, te pedig írhatod be hogy step 2.

    A step kulcsszóval is jóval rövidebb a VB for ciklus, mint a te formázásoddal C-ben, amúgy meg ritkán lépdelünk NEM egyesével.

    for (i = 1; i < 100; i+=2) { foo(); } // 46 karakter 4 sorban

    VB-ben ugyanez:

    for i = 1 to 99 step 2 foo() next ' 28 karakter 3 sorban

    ... a legtöbb ciklus amit használok foreach ...

    Nagy különbség nincs, bár a te formázásoddal a VB itt is rövidebb.

    foreach (int i in numbers) { foo(); } // 46 karakter 4 sorban for each i as int in numbers foo() next ' 41 karakater 3 sorban

    De tetszik az ElseIf, OrElse, vagy épp az IsNot Nothing dolog is.

    Az AndAlso, OrElse-t aláírom az nekem se tetszik, többek közt itt b**szta el a MS, bár sok választása nem volt más kitalálni.
    A többi, amiket felsorolsz, nem nagy különbség, van amiben a C# rövidebb, van amiben a VB.net.
    pl. deklarációnál, ami eléggé gyakori:

    myclass myobj = new myclass();
    vs.

    dim myobj = new myclass()
    Mutasd a teljes hozzászólást!
  • valamit itt nagyon nagyon nagyon elszámoltál :)
    38 hogy jött ki?

    TAB helyett 4 db space-szel mindkét nyelvben.
    Mutasd a teljes hozzászólást!
  • // 38 karakter 5 sorban

    Csak a formázásos karaktereket nem én írom be, hanem az IDE. 

    if ... foo() foo() end if

    Aztán a Then hova lett ? És akkor már tegyünk bele egy AndAlso vs && és egy OrElse vs || - is...

    Megint a te kedvenc formázásod szerint egy for ciklus C-ben...

    Aztán léptess kettesével, és nálam ez máris csak annyi, hogy az i++ helyére i+=2 kerül, te pedig írhatod be hogy step 2.

    Amúgy pedig ezer éve hogy utoljára for-t írtam be, a legtöbb ciklus amit használok foreach vagy while. A for anno leginkább a tömbökön való végigiterálásra kellett, arra pedig már régen nem használjuk.

    Sorolj már fel még egy párat légyszi.

    Pl. a function, ami lambdák esetén tud igen gyönyörű lenni:

    C#: x=items.Where(w=>w.Value>10); VB: x=items.Where(Function(x) x.Value>10)
    És ez aztán csak fokozódik. De tetszik az ElseIf, OrElse, vagy épp az IsNot Nothing dolog is.
    De a dim-es deklaráció is szép, valóban:

    Dim myVar As Boolean vs bool myVar;
    Aztán a generics is tiszta gyönyör:

    Dim lst As New List(Of string) vs var lst = new List<string>();
    Szóval, szerintem ebből elég nehéz vb oldalon jól kijönni. 
    Mutasd a teljes hozzászólást!
  • Hali!

    … egészen addig, amíg rá nem állsz a kurzorral az adott kapcsos zárójelre.

    Vagy csak szimplán bent vagy valamelyik blokkban. Csak fejlesztőeszköz kérdése (ha a szemed nem áll rá 1-2 óra alatt).

    Mutasd a teljes hozzászólást!
  • Ez szerintem is így van, én is jobban szeretem az 

    if (valamit) fuggveny(); 

    vagy az

    if (valami) { fuggveny(); fuggveny(); }

    megoldásokat rövidebb függvénytörzsek esetén. Nálunk mondjuk céges policy hogy mindig ki kell tenni a kapcsos zárójeleket és külön sorba tenni mindent, de ebben annyira nem értek egyet vele. Néha valóban olvashatóbb az egy soros megoldás.

    De őszintén szólva, az sem zavar, ha így látom leírva:

    if (valami) fuggveny();
    De ezt a kapcsos zárójelet az if után, a zárót pedig a blokk után dolgot amit néhányan erőltetnek, soha nem értettem miért jó.
    Mutasd a teljes hozzászólást!
  • Ma meg így:

    if(...){ ... }

    És ebben mi a jó ? Ha van három if egymásba ágyazva, esetleg egy ciklusban, esetleg egy try...catch, és a büdös életben nem fogod látni hogy ki kivel van, egészen addig, amíg rá nem állsz a kurzorral az adott kapcsos zárójelre.
    Mutasd a teljes hozzászólást!
  • valamit itt nagyon nagyon nagyon elszámoltál :)
    38 hogy jött ki?

    8 if (...)
    1 {
    5 (TAB)foo();
    5 (TAB)bar();
    1}

    ez itt bizony 20.  5 sorban, vagy 4 sorban 21, embere válogatja.
    Mutasd a teljes hozzászólást!
  • hát ez inkább céges irányelv kérdése(IDE-ben választható is)

    töröltem innen szöveget, kiderűlt, hogy a fórum motor rontja el :)


    ami engem idegesíteni szokott az ez:

    if (...) { foo(); }
    ez meg túl sokat foglal nekem, erre mondták nekem mindig azt, hogy könnyebb utána bővíteni, bár szerintem az 1 soros sokkal olvashatóbb kódot csinál:

    if (...) foo();
    Mutasd a teljes hozzászólást!
  • ... meglehetősen szerencsétlen egy programnyelv: terjengős ...

    Terjengős?
    Bár erről is többször szó volt, de úgy látszik könnyen felejtesz.
    Pont az előbb hoztad fel, hogy te hogyan szereted az if blokkot formázni:

    if (...) { foo(); bar(); } // 38 karakter 5 sorban
    VB-ben ugyanez:

    if ... foo() foo() end if ' 30 karakter 4 sorban
    Most akkor melyik terjengős?
    A VB visszintesen és függőlegesen is rövidebb.


    Előtte szó volt a for ciklusról, hogy next-tel kell lezárni:
    Megint a te kedvenc formázásod szerint egy for ciklus C-ben:

    for (i = 1; i < 100; i++) { foo(); } // 45 karakter 4 sorban
    VB-ben ugyanez:

    for i = 1 to 99 foo() next ' 28 karakter 3 sorban
    Most akkor melyik terjengős?
    A VB visszintesen és függőlegesen is rövidebb itt is.

    Javaslom, ha terjengősség a problémád, akkor térj át erre a formázásra:

    if (...) { foo(); bar(); } // 31 karakter 4 sorban
    Bár így sem fogod a VB-t beérni, de azért megközelíted :)

    meglehetősen ötletszerűen kitalált kulcsszavak


    Csak nem a dim-re gondoltál?
    Sorolj már fel még egy párat légyszi.

    ... jelek a sorok tördelésénél - ami aztán az újabb verziókban néha elhagyható ...

    Ez is ellett már magyarázva egy párszor neked.
    Tudsz mutatni olyan gyakran használt esetet, ahol az implicit line continuation nem használható?

    A C szintaxisával a világon semmi baj ...

    Azért volna ott bőven mit újra gondolni.
    Erről is többször volt már szó, de téged szerintem csak a programozás érdekel a szintaxis nem igazán és hiába mutatnám meg neked újból ezeket, megint elfelejtenéd.
    Mutasd a teljes hozzászólást!
  • Azt tippelném, hogy a többség valahogyan indentál magától is (már csak a használt fejlesztőeszközök miatt is), de annak azért van értelme, ha nem áll rögtön fejre a kód csak azért, mert nem elég szépséges a formázása...
    Amúgy meg elég szubjektív a téma, nekem pont az általad hozott példa nem tetszik.
    Régen így indentáltam, részben pont a Pascal nyomán:

    if(...) { ... }
    Ma meg így:

    if(...){ ... }
    Mutasd a teljes hozzászólást!
  • Mondjuk a pythonban az identálgatás pont jó dolog. C-s kódban is letörném a kezét annak, aki nem teszi, illetve azért is aki az

     if (.....) {
    foo();
    bar();
    }

    kódolási konvenciót kitalálta. Ezt ráadásul a Go-ban a szintaktikába is emelték. Na, ezért nem használok én Go-t. Ha van normális identálás, akkor azonnal látod hogy mi hol kezdődik. De ehhez ezt valahogy így kell csinálni:

    if (...) { foo(); bar(); }
    Itt pontosan látod, hogy mi van a vezérlési szerkezed belsejében. A pythonban ez a szintaktika része, és bizony ez nagyon-nagyon jó dolog.
    Mutasd a teljes hozzászólást!
  • A C szintaxisával a világon semmi baj, ha már egyszer megtanultad. Viszont egy-két kevésbé szépségdíjas dologtól eltekintve (Pl. a C-s case nekem sem annyira tetszik) többé-kevésbé koherens, és ha egyszer megtanultad, akkor egy rakás más nyelvben is visszaköszön, ergo nem kell mindenhol külön megtanulni, hogy épp itt hogy is írják az if-et és a for-t.

    Az amit a MS visual basic-nek hív, béziket már csak nyomokban tartalmaz - ugyanakkor meglehetősen szerencsétlen egy programnyelv: terjengős, meglehetősen ötletszerűen kitalált kulcsszavak, blokk alapú helyett soralapú szerkezet annak minden bájos következményével, Pl. _ jelek a sorok  tördelésénél - ami aztán az újabb verziókban néha elhagyható: úgy látszik, nem csak én utáltam...
    Mutasd a teljes hozzászólást!
  • Bármelyik szintaxisvonallal (C, Python, Pascal, Basic, stb.) lehetne/lehetett volna pointeres nyelvet vagy webes nyelvet kifejleszteni.
    Sajnos az egyik legrosszabb szintaxisvonal lett elterjedve.

    Jaja, mennyivel jobb már begin-end-et gépelgetni (Pascal), valami ad-hoc dolgot gépelgetni (BASIC: néha end valami, néha meg elég egy kulcsszó - pl. next ill. hátultesztelt ciklusok), meg persze indentálgatni (Python).

    1. Python

    if __name__ == "__main__":
    Ennél tényleg képtelenség jobbat kitalálni, jogos az első hely. Plusz a kötelező indentálgatás, persze.
    Mutasd a teljes hozzászólást!
  • ... 1 év alatt belerázódsz

    1 év alatt bármelyik szintaxisba bele lehet rázódni, akár még a brainfuck-ba is.

    Bár úgy is a feladat határozza meg a nyelvet és a környezetet, mert végülis C++-ból is lehetne weblapot generálni, de elég perverz dolog, ahogy basic-ben mikrokontrollert programozni. :)

    Te szemantikáról írsz, én meg szintaxisról.
    Bármelyik szintaxisvonallal (C, Python, Pascal, Basic, stb.) lehetne/lehetett volna pointeres nyelvet vagy webes nyelvet kifejleszteni.
    Sajnos az egyik legrosszabb szintaxisvonal lett elterjedve.

    Ami még gond, ha össze kell dolgoznod valakivel, a programozók 90%-a nem fog basic-ben dolgozni.

    Nem a Basic (pl.) a gond, hanem a C szintaxis, hogy ehhez szoktak/szoktatták hozzá a fejlesztőket még egyetemi szinten is (na ez a ciki).
    Mutasd a teljes hozzászólást!
  • A nép már választott, bár fura a C szintaktika egy basic után, 1 év alatt belerázódsz.
    Bár úgy is a feladat határozza meg a nyelvet és a környezetet, mert végülis C++-ból is lehetne weblapot generálni, de elég perverz dolog, ahogy basic-ben mikrokontrollert programozni. :)
    Ami még gond, ha össze kell dolgoznod valakivel, a programozók 90%-a nem fog basic-ben dolgozni.
    Engem nem a basic, hanem az objectiv C akasztott ki, az számomra zagyvaság a köbön, és látszik benne a szándékosság, hogy szivassák a fejlesztőt.
    Mutasd a teljes hozzászólást!
  • A Basic-cel nem a múltja a baj, szép volt, jó volt, elmúlt, béke poraira. Az viszont, amikor pár lelkes nekromanta nekiáll zombit csinálni belőle, a VB6-tól a VB.NET-ig bizony hullagyalázás.

    ezen hangosan felröhögtem.. király  
    Mutasd a teljes hozzászólást!
  • A Basic-cel nem a múltja a baj, szép volt, jó volt, elmúlt, béke poraira. Az viszont, amikor pár lelkes nekromanta nekiáll zombit csinálni belőle, a VB6-tól a VB.NET-ig bizony hullagyalázás.

    A C-vel nem a múltja a baj, hanem a szintaxisa. Az viszont, amikor pár lelkes nekromanta nekiáll zombit csinálni belőle, a C-ből, C++, Java, C#, JavaScript-ig bizony hullagyalázás.

    Egy-egy.
    Akarod még folytatni ezen magas röptű óvodai szinten?

    Az én véleményem az, hogy a C nyelvek szintaxisa nem ergonómikus, nem átgondolt, teli van amatőrizmussal.
    Bár az tény, hogy ezeket a nyelveket meglehet szokni és jól együtt lehet élni velük.
    Részemről 3 szintaxis irányt tartok profinak, átgondoltnak, ergonómikusnak és modernnek:
    1. Python
    2. Ruby
    3. VB/VB.net

    A Pascal vonal még elmegy, de a begin-end blokképzés miatt szerintem felejtős.

    Egyébként a baj a Java-nál kezdődött el.
    A C++ a C után még logikus és jó lépés volt.
    De amikor Java kijött, akkor már ott volt a Python.
    Ott lehetet volna megállítani ezt a C szintaxisú "rákos burjánzást".
    Mutasd a teljes hozzászólást!
  • A magyar nyelv bizony valóban nem kis szívás: azt a sok-sok órát amit az ember unalmas nyelvtanulással tölt, bizony sokkal szívesebben fordítaná akár valami más, hasznos dolog tanulására, akár pihenésre, szórakozásra. És ezért rohadtul nem kárpótol, hogy cserébe anyanyelveden tudod olvasni a Kőszívű ember fiait.

    A Basic-cel nem a múltja a baj, szép volt, jó volt, elmúlt, béke poraira. Az viszont, amikor pár lelkes nekromanta nekiáll zombit csinálni belőle, a VB6-tól a VB.NET-ig bizony hullagyalázás.

    Én amúgy szeretem a C-s szintaktikát, ahogy a Pascal-osat is, sőt a Pythonossal is elvagyok. Anno ledolgoztam úgy 1.5-2 évet még a Visual Basic 3-mal, de kéjes örömmel váltottam le a Delphivel. Aztán a sors úgy hozta, hogy úgy 4 évet VB.NET-tel töltsek, de az is kimondottan élmény volt, amikor végre a minket foglalkoztató multi is átlátta, hogy a VB nem igazán szerencsés dolog, és végre elérte a jól kiérdemelt deprecated kategóriát: új projektet már nem szabad benne elkezdeni.
    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