Vykon jsem s troskou sebezapreni ochoten uverit, ale bezpecnost C/C++ je legendarni. Neco tak spatne navrzeneho z hlediska bezpecnosti aby clovek pohledal.
Google představil programovací jazyk Go
Společnost Google přišla s novým programovacím jazykem nazvaným jednoduše Go. Podle dostupných informací se jedná o jazyk kombinující rychlý a pohodlný vývoj jaký známe z dynamických jazyků a zároveň výkon a bezpečnost známou z C a C++. Podle Google trvá kompilace velkých projektů jen několik sekund a výsledek běží rychlostí srovnatelnou s binárním kódem.
Bohužel pro Google se velmi rychle ozval vývojář jiného jazyka, který se jmenuje Go! Ten už prý existuje přes deset let a existuje o něm dokonce kniha. Požaduje po Google, aby název dodatečně změnil. Zatím probíhá diskuse, zda Go a Go! jsou dva různé názvy nebo ne.
Dále čtěte…
- Zahrajte si klasický Breakout přímo ve vyhledávači Google Dnes 12:54
- Google Apps přichází s novou administrátorskou konzolí Dnes 7:01
- Jaké bylo zahájení Google I/O 2013 16. 5. 2013 15:14
- Google uvedl nové Google+ a herní centrum pro Android 16. 5. 2013 0:00
- Google nabízí třem stovkám českých učitelů vzdělávací granty 15. 5. 2013 10:41
Re: výkon a bezpečnost známou z C a C++
celé vláknoOdkdy jsou vubec vykon a bezpecnost zalezitosti jazyka?
Re: výkon a bezpečnost známou z C a C++
celé vláknoOdjakživa? :-)
Re: výkon a bezpečnost známou z C a C++
celé vláknoJe to tak – výkon záleží na kompilátoru a bezpečnost na programátorovi…
Re: výkon a bezpečnost známou z C a C++
celé vláknoChceš říct: Bohužel záleží na programátorovi…
Re: vykon a bezpecnost znamou z C a C++
celé vláknoCili vykon nezalezi na programatorovi? Cili kdyz programator jednou pouzije spojove seznamy nebo bubblesort a podruhe haldu nebo quicksort, vykon bude stejny a zalezet jen na kompilatoru?
To mas nejakej lepsi kompilator, ne? Umi resit taky halting problem?
Re: vykon a bezpecnost znamou z C a C++
celé vlákno:DD Takovej kompilator bych taky bral :DD
Re: výkon a bezpečnost známou z C a C++
celé vláknoEhm, napište mi například v Javě aplikaci, která bude trpět problémem Buffer Overflow. Naopak v C ji napíšete velice snadno (a často aniž byste si to uvědomil).
Re: výkon a bezpečnost známou z C a C++
celé vláknoTakle (v konkrétních příkladech) to samozřejmě platí, ale obecně se velmi málokdy dá říct, že jazyk A je bezpečnější (výkonnější) než jazyk B. Krom toho, ten příklad nedokazuje, že Java je bezpečnější než C, ale spíš to, že v C je těžší napsat program, který je v tomto ohledu (buffer overflow) bezpečný. Nebo ještě jinak – těžko lze tvrdit: „je to v jazyce XY, tak je to výkonné a bezpečné.“ Tyhle věci záleží mnohem víc na programátorovi, nasazení, úloze, knihovnách, administrátorovi.
Re: výkon a bezpečnost známou z C a C++
celé vlákno>Krom toho, ten příklad nedokazuje, že Java je bezpečnější než C, ale spíš to, že v C je těžší napsat program, který je v tomto ohledu (buffer overflow) bezpečný.
V podstatě jinými slovy říkáš, že je java bezpečnější:)
V javě samozřejmě jde napsat útok typu buffer overflow, protože nakonec běží na stejném hardwaru jako program v C, ale je to prakticky nemožné(je třeba najít chybu v jvm a potom nějakým způsobem využít v javovském programu).
Re: výkon a bezpečnost známou z C a C++
celé vlákno> V podstatě jinými slovy říkáš, že je java bezpečnější:)
Neříkám, připouštím, že v jednom konkrétním případě, je program méně ohrožen chybou programátora.
Re: vykon a bezpecnost znamou z C a C++
celé vláknoKolik kilowattu ma teda to C vykon?
A v cem se vubec meri ta bezpecnost? V energii strely ktera to prostreli?
Re: výkon a bezpečnost známou z C a C++
celé vláknonemylsi tou bezpecnosti ze to dokaze upravit program tak aby to nepadalo?:D a nehmatalo do pameti kam nema..oproti jinejm ktery vam to dovoluji..
Re: výkon a bezpečnost známou z C a C++
celé vláknoto ja naopak neverim moc tomu vykonu. O bezpecnost C++ bych se nebal, nikdy jsem nemel zadny vaznejsi problem, vlastne uprimne, mne osobne se bezpecna aplikace v C++ dela lip nez v PHP. Podle mne s bezpecnosti C/C++ maji problemy jen lide co jsou a) patlalove b) pouzivaji nevhodnou metodiku vyvoje a nastroje pro vyvoj
Re: výkon a bezpečnost známou z C a C++
celé vláknoKdo tohle pripustil v C, je zlocinec, ktery by mel byt exemplarne popraven tim nejnechutnejsim znamym zpusobem. Slova bezpecnost a C/C++ by se nemely objevovat v jedne spolecne vete. A to jsem jen u jednoho operatoru. Treba o ukazatelich by se daly psat eseje.
Jiste, genialni programator napise kod vzdy bezpecne, ale genialni programator neexistuje, a proto by jazyk mel byt od pocatku navrzen s tim, ze jej budou pouzivat omylni lide.
Re: výkon a bezpečnost známou z C a C++
celé vláknoVite ze Assembler je take programovaci jazyk? To je asi velmi spatne navrzeny, protoze v nem jdou delat chyby.
Svet neni CB, vse ma sva uskali, chce to pouze programatora, co si je uvedomuje. Uznavam, ze treba u open source to je trochu castejsi problem, protoze kdektery jouda se do projektu zapoji, pokud chce.
Re: výkon a bezpečnost známou z C a C++
celé vláknoAssembler se bezpecnosti snad vubec nezabyva, navic to neni vyssi programovaci jazyk, takze ten argument moc nechapu.
Asi se shodnem, ze JAVA nebo Python je bezpecnejsi jazyk nez C, protoze nektere zhovadilosti tam udelat proste nejdou. Neznamena to ale, ze se v tech jazycich pisou programy bez chyby :-)
Re: výkon a bezpečnost známou z C a C++
celé vláknoif ( a = b ) je docela sikovna moznost, prave pokud mate spravne nastroje a metodiky.
Takhle jak jste to napsal bez dalsi zavorky gcc hodi warning pri kompilaci, a pak jeste existuji veci jako splint a valgrind. To k tem nastrojum.
A pokud programujete s UnitTesty, tak vam nefunguji testy i kdyby to proslo skrz nastroje, takze to je ta cast s metodikou.
Na druhou stranu kdyz nactete ze vstupu od uzivatele 4096B, tak vite ze mate 4kB binarnich dat.. v PHP kdyz parsujete treba POST request a nedate si bacha na kodovani a validaci, tak vam treba nekdo podstrci nevalidni UTF-8 string ktery treba zpusobi ze vase dalsi kontroly neprokousaji pres cely obsah vstupu a nasledne vam premaze celou databazi. Porad myslite ze Buffer Overflow v C je nejvetsi zlo sveta? Ja myslim ze bezpecny jazyk neexistuje. Jsou jen aplikace ktere maji tak malo chyb, ze na ne nikdo neprijde a ty vypadaji bezpecne. Bez ohledu na programovaci jazyk.
Samozrejme kdyz upatlate 100 radkove C++ bez navrhu, testovani a dodrzovani urcite metodiky, tak nejspis budete mit v prumeru aspon jednu chybu na 10 radku, z toho 20% bude zpusobovat padani aplikace. U javy je jediny vetsi rozdil v tom ze to tolik nepada, mnozstvi chyb bude jen malinko nizsi, jenom se projevi mirneji. Co je nekdy jeste horsi, protoze si je pak nemusite vsimnout. Je pravda ze stejna aplikace ma obvykle v Jave kratsi zdrojovy kod, takze tam prijde dalsi snizeni absolutniho poctu chyb.
Ale rikat ze C/C++ je nebezpecne a Java je fajn je jako rikat ze F1 je nebezpecna a cestovni BMW je fajn … ale zkuste v 150km/h napalit do svodidel s F1 a pak s BMW (a hlavne to nezkousejte v opacnem poradi).
Re: výkon a bezpečnost známou z C a C++
celé vlákno>U javy je jediny vetsi rozdil v tom ze to tolik nepada, mnozstvi chyb bude jen malinko nizsi, jenom se projevi mirneji. Co je nekdy jeste horsi, protoze si je pak nemusite vsimnout.
Já bych řekl, že to je přesně naopak. Java hodí výjimku, pokud se děje něco nekalého, ale v C/C++ se může stát, že program běží dál se špatnými daty a chyba se projeví jenom občas(např. překročení mezí polí, čtení neinicializovaného ukazatele). V podstatě jediná věc co mě napadá, která by mohla skrýt místo chyby je prázdný blok catch a to lze napsat v obou jazycích.
Video
Tak jsem si prosel to video na youtube a ten jazyk mi na prvni pohled prijde stejne ohyzdny jako zbytecny. Myslel jsem, ze doba programovacich jazyku, v nichz 5 neintuitivnich znaku v rade za sebou udela temer zazrak, je uz pryc, ale zrejme neni. Zlaty brainfuck!
Re: Google představil programovací jazyk Go
celé vláknoCo se výkonu týče, tak na tom C/C++ je velmi dobře.
Ale tvrdit, že C je bezpečné může jen někdo kdo nikdy neprogramoval v C, nebo naopak programoval jen v C. Sice souhlasím, že Unit testy, valgrind a správný návrh udělají hodně… ale při použití správných nástrojů by se dal označit každý jazyk za bezpečný. Jenomže valgrind a testy odchytávají až chyby, které jazyk dovolil. C/C++ Vám bez okolků dovolí číst a zapisovat nealokovanou paměť. Pointery jsou sice silná věc, ale o bezpečnosti opět nemůže být řeč.
A jestli tou bezpečností má být silná typová kontrola, tak to pardon…ale to je opět dvojsečná zbraň.
Re: Google představil programovací jazyk Go
celé vláknoA mimochodem na stránkách projektu je srovnávána s C/C++ pouze rychlost. Bezpečnost tam je rozepsána jako type safe a memomry safe (což to druhé pro C rozhodně neplatí).
Také mě celkem zaujalo, že Go má pointery, ale ne pointerouvou aritmetiku.
Re: Google představil programovací jazyk Go
celé vláknoC je systemovy jazyk – v nem proste musite mit moznost cist z libovolneho mista v pameti. Zkuste si treba v jave pracovat s registrem mapovanym do pameti a porovnejte o kolik je to komplikovanejsi nez Cckovske volatile uint32_t *reg = ADDR…
Windows
celé vláknoJen mi tam chybi podpora pro Windows…
Chapu, ze na tomto serveru se na me asi budete tvarit zle, ale snad je dobry, kdyz se da aplikace napsat multiplatforme…
Re: Windows
celé vláknocože, cože, co cože? A jak byste si, prosím, na úrovni programovacího jazyka, předastavoval podporu pro Windows? Má snad jazyk C podporu pro Windows? Nebo Java? Nebo snad v googlu zakáží někomu napsat kompilátor pro Windows?
Re: Windows
celé vláknoJednoduse… pokud je to interpretovany jazyk, tak interpret pro windows… pokud je kompilovany, tak kompiler pro windows… a idealne prave primo od Googlu.
Bezpecnost C/C++
celé vláknoTo jste tomu, vy mudrlanti v redakci, dali. Zminit se o bezpecnosti C/C++ – diskuze je pohrbena v nesmyslnych hadkach na nerozhodnutelnym tematem…
--
Jinac jazyk je to zajimavy, goroutines okouzlujici, myslenka vyhnout se OO taky celkem ok, co se mi nelibi je znovuobjeveni kola co se tyce syntaxu na nekterych mistech.
Ze for bere 1 nebo 3 parametry prez carku se mi libi, ale ze se NESMI davat kulata zavorka kolem celyho vyrazu pro for kdyz nasleduje blok kodu uvedenej slozenou zavorkou, to mi prijde trochu necitelny a krkolomny (neco jako povinny slozeny zavorky za ifem v perlu).
Taky bych mozna trochu vyjadril obavu nad pouzitelnosti myslenky ortogonality interfacu a jejich implementaci – to v tech jmenech metod bude IMHO za chvili peknej bordel.
Taky by me zajimalo, pravda neshlidnul jsem jeste to uvodni video, jak budou resit platformni nezavislost. Zatim to vypada na potencialne stejnej prusvih jako s paltforme zavislou delkou intu v C, no aspon se zda ze maji zabudovany i typy s pevnou bitovou delkou.
Re: Bezpecnost C/C++
celé vláknoJeste bych vypichnul schizofrenii ohledne pretezovani operatoru, trpi to stejnym problemem jako Java – pro stringy je to zabudovane jako vyjimka, pro vlastni implementaci typu ale pretizit operatory clovek nemuze. IMHO to odporuje prohlasenim o cistote jazyka.
google+jazyk go+operacni system plan9
ach ta podoba s kompilaci a linkovanim.
a ta podoba mezi weby.
borci z plan9 nam nejak odesli do google!!!
http://golang.org/…utorial.html
http://plan9.bell-labs.com/…oc/comp.html
http://www.plan9.bell-labs.com/…plan_9_wiki/
a po tomhle videu (http://www.youtube.com/watch?…)
je vsecko jasne, je to russ cox co delal na plan9.

