Vlákno názorů k článku Textový editor na 350 řádků v Gtkmm od Stanislav Hoferek - neviem totálne nič o programovaní, no zaujímalo by...

  • Článek je starý, nové názory již nelze přidávat.
  • 12. 4. 2011 7:45

    Stanislav Hoferek

    neviem totálne nič o programovaní, no zaujímalo by ma - dá sa tam nejako pridať možnosť spočítať znaky? výsledkom by bola tabuľka (napríklad ako nové okno), ktorá by sa vyvolala napríklad stlačením niektorého tlačidla alebo cez klávesovou skratkou.

    Výsledok by mohol byť nejaký takýto:

    18 000 znakov vrátane medzier
    14 300 znakov bez medzier
    10,0 normostrán

  • 12. 4. 2011 8:53

    bez přezdívky

    "neviem totálne nič o programovaní" ... to je docela škoda, ne? :-) Ale C++ jako první jazyk je nevhodný. Spíš se podívej po jazycích jako je Scala (http://www.scala-lang.org/) nebo Python (http://www.python.org/) - Python je skriptovací jazyk, ve kterém lze napsat opravdu vše (i když u větších aplikací už kód ztratí na přehlednosti a výkonnost půjde také do kýblu ... ale na malé věci (vč. grafických rozhraní) je dostatečně dobrý) ... a asi Ti ho tady doporučí nejvíce lidí, přestože já jejich nadšení nesdílím (ps: studuji informatiku a informatika mne také živí ... a rozhodně tím nemyslím v PHPčku nabastlené "webovky").

    "dá sa tam nejako pridať možnosť spočítať znaky" ... samozřejmě. Znaky si musíš spočítat sám. Pochybuji, že C++kový std::string bude mít něco jako .countAllNonspa­ceChars . Jak výsledek zobrazíš, se dočteš tady v tom tutoriálu (nebo v kterémkoliv jiném). Ale napsat ten program tak, aby se Ti znaky spočetly "na pozadí" a uživatel byl informován o tom, v jaké fázi výpočtu právě je a aby ho mohl kdykoliv ukončit, to už v C++ bude netriviální challenge. (V pythonu jsem to nezkoušel (id est: teoreticky vím, že to jde a vím jak, ale nikdy jsem v něm nepsal nic, v čem bych to potřeboval), ve Scale nebo F# je to easy, C# nebo Java taky v pohodě).

    Pokud se chceš učit programovat, směle do toho :) . Dnes může (doma) programovat každý, není na to potřeba drahé vybavení ani 15let vysoké školy ani tuna předražené literatury v knihovně. Ale mají-li Tvé programy za něco stát, čeká Tě dlouhá a namáhavá cesta, než pochopíš alespoň základní koncepty - podobně jako s hrou na hudební nástroj. A tvorba GUI je také záležitost, o které musíš vědět hodně, abys jej navrhl tak, aby se uživatelům dobře používalo (přečtení 10 stránkového tutoríálu o Gtk-- nestačí (!!!) ). A také - ruce pryč od C++. Ve srovnání s ručními zbraněmi je to Desert Eagle ráže .50AE. Půlpalcové dělo, se kterým budeš absolutní král pistolových střelnic, ale jakmile neumíš střílet, zlomí Ti ruku a praští do hlavy (http://www.youtube.com/watch?v=dFJjaj7pXsA). Začínající střelec si vezme do ruky malorážku (Python) a dosáhne s ní lepších výsledků. Nebo, chce-li střílet z obou ruk najednou, proč nezvolit policejní čezetu, do každé ruky jednu? (Scala nebo F#).

    PS: jo a ... kromě počítačového jazyka je v programování důležitý i jeden člověkoidní - angličtina. Většinu věcí máš anglicky a komentáře do kódu, názvy proměnných a funkcí atp se také většinou píší anglicky (a to nejen v komerční sféře, ale také v opensource světě). Stejně tak je nejlepším zvykem vytvořit program v angličtině a těsně před vydáním finální verze ji přeložit do slovenštiny (postupně můžeš přidat polštinu, němčinu, ruštinu, čínštinu ... ;-) ). Angličtina na takové úrovni, abys byl schopen přečíst manuál, se dá zvládnout během pár měsíců.

  • 12. 4. 2011 10:01

    Stanislav Hoferek

    áno, samozrejme je to zaujímavé. O programovaní neviem nič a rád sa k nemu niekedy dostanem a niečo si do hlavy natlačím. Článok o vytvorení textového editoru je fajn, pretože sám by som vlastný privítal. No a funkcia spočítať strany by sa hodila, aj keď to urobí akákoľvek webová služba.

    Zaujímalo ma, či je nejaká možnosť (viem, teraz to bude znieť veľmi hlúpo) pridať 30 riadkov kódu, ktorá by vniesla túto funkciu do toho jednoduchého textového editoru :)

  • 12. 4. 2011 11:14

    bez přezdívky

    Můj názor je ten, že 30 řádků kódu by Ti na to v C++ nestačilo. Tento článek je spíš ukázkou práce s grafickou knihovnou a onen textový editor je takový "vedlejší produkt".

    Chceš-li textový editor, který umí počítat slova ... používáš-li linux, tak zkus gedit nebo kate. Také to umí JEdit, který je multiplatformní a poběží i pod Windows. Co se týče normostran ... počet znaků vyděl číslovkou 1800. (Nomostrana = 30 řádků * 60 znaků vč. mezer). Je blbost psát vlastní textový editor jenom kvůli tomu - textových editorů je na světě hodně moc a určitě nějaký najdeš.

    Máš-li několik textových dokumentů (hladký text, tedy *.txt; ne doc, docx, odt ...) a cheš-li spočítat slova, řeší se to tak, že si na to napíšeš krátký skript v pythonu nebo perlu (můžu Ti jeden napsat, jestli chceš - je to záležitost na půl hodiny i s googlením co že to má být ta normostrana).

    Pokud opravdu chceš _vlastní_ textový editor s touto funkčností, tak by se dal udělat v Javě / C# poměrně rychle, ale připrav se na to, že kvůli němu budeš muset instalovat Java runtime environment (20MB instalační balík, 150MB na disku) nebo .Net framework (50MB instalační balík, 850MB-2GB na disku).

    Psát to v C++ se Ti časově nevyplatí.

  • 12. 4. 2011 23:11

    Kayzor (neregistrovaný)

    C++ sa na zaciatok nehodi nie pre to, ze je zlozite, ale preto, ze je az moc jednoduche a povoluje hnusne prasaciny (co uz asi dneska vacsina jazykov a kompilatorov). Ja som oldschool zastanca asm/C na zaciatok, prave aby sa clovek naucil vyvarovat sa chybam. Je az nehorazne kolko smetia sa nazbiera (najma vo velkych aplikaciach ktore vyraba viac ludi, hoci obcas clovek ma chut zvracat aj pri pohlade na oss).

  • 12. 4. 2011 10:27

    A.S.Pergill (neregistrovaný)

    Ona je otázka, co si představuješ pod pojmem "programování" a k čemu to hodláš využívat.
    Pokud chceš skutečně zahájit kariéru někoho, kdo se programováním více-méně živí, tak postupuj podle rady od eMko. Pokud máš představu tu a tam nějakého skriptu, který ti ušetří práci ve zcela jiném oboru, třeba spočítá různé typy znaků v textu a napočítá z toho normostrany, nějak přeupraví data v databázi (něco jako "v souboru .csv dej kolem písmenkových znaků uvozovky, smaž je kolem číselných znaků a vymaž středníky na konci řádků") a podobně, tak bych doporučoval Perl. Oni sice teoretikové programování tvrdí (a nejsem s nimi v tom ve sporu), že nepodporuje dobré programátorské návyky, nicméně na příležitostný bastl tohle stejně nepotřebuješ.
    Moje osobní "programovací anamnéza": různé verze BASICu, potom přechod na Perl (který je tomu BASICu asi pojetím nejbližší), něco málo Pythonu (v podstatě jen GUI pro vkládání dat) a Javy (vykašlal jsem se na ni v době, kdy se nedala rozumně, tj. z balíčků a aby to správně nastavilo všechny potřebné systémové proměnné, nainstalovat do linuxu), makrojazyk (La)TeXu (na dokumenty) a Metapostu (na grafiku). Ve svých 50+ jsem rezignoval na představu, že bych třeba programoval jádro OS.

  • 12. 4. 2011 12:22

    bez přezdívky

    OT: Já se vývojem (tedy nejen programováním) živím a to, co dělám jak v práci tak na diplomku, má hodně blízko k simulacím. Můj věk je téměř přesná polovina mezi 20-30, tedy "zlatý věk" informatika. A taky jsem již dávno rezignoval na to, že bych programoval jádro operačního systému. Bylo tomu již v prváku na vysoké, kdy nám přednášející popisoval princip funkce operačního systému na zdrojových kódech linuxu a BSDčka. Řekl jsem si, že tohle raději nechám jiným :-D .