Ehm, díky za screenshoty, "puso". Zdá se, že hoši udělali pěkný kus cesty kupředu od doby, kdy jsem viděl tento OS v akci naposledy. Stejně mi ale přijde docela gay programovat operační systém (nebo skoro cokoliv jiného) v asembleru a docela pochybuju, že z tohoto OS bude někdy něco jiného než zajímavá hříčka.
V zadnem pripade nejsem gay a MILUJI assembler.
Ted v nem ale uz delam pouze na mikrokontrolerech (Atmel, Microchip).
Vsem, kteri nedokazi docenit assembler bych pral, aby se dokazali zamyslet, zda je dnesni podoba softwaru opravdu nezbytne nutna. Mnohde neni nutna prenositelnost a presto se to prasi v C++ anasledne se resi, proc je to velike a pomale...
Koneckoncu - z vlastni zkusenosti s nekterymi lidmi, mohu rici, ze mluvi o assembleru jako o cemsi z praveku pouze a jedine proto, ze pocitacum ve skutecnosti nerozumi (ackoliv jinak pisi v C++ ci v Jave). Lidi, kteri pocitacum rozumi je stale mene :-(. Ale i presto se i dnes najdou taci, kteri si dokonce doma postavi vlastni procesor: http://www.homebrewcpu.com/
Budiz jim cest a slava. Vedle tech dnesnich lepicu pusobi jako giganti.
O produktivite prace vzdy hovori ti, kteri v assembleru nikdy nic nenapsali.
Samozrejme zalezi na ukolu, ktery resite (jsou samozrejme zalezitosti, ktere delat v assembleru je blbost), ale mate - li k dispozici kvalitni knihovny a mate - li cit pro to, jak pocitace opravdu funguji, neni produktivita prace o moc horsi nez treba v C. Vysledek za to vetsinou opravdu stoji - ale jak rikam, zalezi na tom, co resite.
Jenomže když máš kvalitní knihovny, tak je přece víceméně jedno, jestli je používáš z assembleru, C nebo třeba Lua. Nehádám se o programování Atmelů, ale pro mainstream je assembler nevhodný pro tu nepřenositelnost, nižší produktivitu a horší udržovatelnost kódu.
Já můžu mít respekt k autorovi tak skvělého produktu, jako byl Volkov Commander, nicméně doba, kdy jsme měli 360 KB diskety, 64KB segmenty paměti a .com programy je pryč a kdokoliv by se dneska snažil něco podobného psát, by měl cenu spíš jako exponát do muzea.
V assembleru jsem napsal pár jednoduchých rezidentů v DOSu a nějaké školní úlohy (včetně RISC simulace), ale, ačkoliv mi jakožto hračičkovi tenhle svět taky docela učaroval, v reálu se snažím vyhýbat čemukoliv nižšímu, než je Java. Pokud je zbytí. Nedávno jsem si taky střihnul client/server prográmek v céčku a vrněl blahem nad hrátkama s preprocesorem apod. To ale na mém výše uvedeném názoru naprosto nic nemění.
Prominte, ale cpat vsude Javu, to teda pekne dekuju. Jako servlety to neni uplne spatne, ale kuprikladu jakakoliv desktopova aplikace napsana v Jave je tragedie - to snad vidite sam. Netvrdim, ze je nejlepsi psat desktopove aplikace v assembleru (to zduraznuji jen proto, aby mne to demagogove nevlozili do ust). A psat v Jave cokoliv systemoveho je temer nemozne.
Trvam na tom, ze lidi, kteri pocitacum opravdu rozumeji je cim dal mene - a to i mezi programatory - u javistu je podil lidi bez technickeho citu znacny (netvrdim, ze je to zrovna vas pripad, ale u vetsiny mladych ze skol to tak bohuzel je). Software pak podle toho vypada. Nebyt brutalni sily hw, byla by spousta softwaru, ktery dnes vznika, zcela nepouzitelna. Pritom mnohdy takovy software resi problemy tak jednoduche, ze darmo mluvit.
Já nejsem javista, preferuju Python. A GUI aplikace napsané třeba v PyQt se dají co se týče rychlosti apod. směle porovnat s aplikacemi psanými v C++. Ale třeba SWT aplikace mohou být docela slušně použitelné (vnímaná rychlost Eclipse je srovnatelná třeba s Firefoxem apod.), nevidím až takový problém s Javou na desktopu. A takový MagicDraw (na Swingu, který je výrazně pomalejší než SWT) byl také dost použitelný desktopový program.
Co se týče jednoduchých problémů, tak právě u nich mi přijde logické nasadit vyšší jazyk.
Co se týče "rozumění počítačům", tak máte možná pravdu. Ale možná jde jenom o posunuté priority - výpočetní prostředky počítače (pokud jde o problémy složitosti O(n.log(n)) apod., je dnes relativně dost laciný, čas člověka je pořád neskutečně drahý. Pokud mám problém, chci vyřešit problém, vyřešit jej co nejrychleji a s minimem vynaložených prostředků. Nežiju proto, abych se přizpůsoboval počítači, ale počítač by měl pomáhat mně. Mít technický cit podle mě znamená třeba i vyhýbat se předčasným optimalizacím a optimalizacím na místech, kde se to zkrátka ztratí.
Promiňte, ale mám pocit, že jste hodně mimo mísu. Zkuste si programovat např. informační systém (pro něco většího než bufet na nádraží) v assembleru. Něco, kde je potřeba spolupracovat s více lidmi v týmu, kde první verze je teprve začátek a je nutné permanentně přidávat a měnit části tohoto systému (dle požadavků zázkazníka, dle změn v legislativě atp.). Kde je nutné během pevně stanoveného (nepříliš dlouhého intervalu) dokázat přečíst a pochopit část, kterou dělal kolega (který už např. ve firmě nepracuje) před pěti lety a kde je třeba hlášena chyba atp. Já se taky bavil jako student s assemblerem, ale pro většinu věcí je IMHO prakticky nepoužitelný.
Pisu zde na jinem miste, ze pri reseni nekterych problemu je pouziti assembleru blbost. Mozna by neskodilo pozorne cist.
Programovani a pocitace, to nejsou jen informacni systemy, faktury, ucetnictvi a podobne administrativni zalezitosti. Ale chapu, ze se to tezko vysvetluje lidem, kteri nic jineho nedelali.
V tymu se da samozrejme spolupracovat na cemkoliv, k tomu, aby nekdo dokazal precist a pochopit cast, kterou delal kolega, potrebuje znat prave ten assembler (stejne jako vy vas vyssi programovaci jazyk), udrzet prehlednou strukturu projektu lze samozrejme i v assembleru, to jen vam predsudky, tlak okoli a neznalost brani to vzit na vedomi.
Ale inak je celkom samovrazda pokusat sa o nieco v asm pod x86 arch. Ked som s tym zacinal, bol som nadseny, ze mam full kontrolu v tomto vybornom jazyku. Ako som ale siel do hlbky, zacal som x86 asm coraz viac nenavidiet (podobne ako dnes PHP). Ako balzam na dusu na mna posobia az nove AVR jadra a ich asm.
Mate vpodstate pravdu. Z pohledu asm programatora je prace s Intelskymi procesory pomerne nepohodlna a neprijemna (ale ne zas tak, aby to byla nejaka zasadni prekazka). Architektura Intelu neoplyva zadnou krasou a vnitrni eleganci. Typicky marketingove protlaceny produkt. Pravda je, ze programovani v assembleru nema na dnesnich PC tak velky vyznam jako mivalo drive.
Velice dobre se programovalo na Motorolach (dodnes nechapu, ze tato architektura prohrala boj s Intelem) a pak samozrejme na AVR od Atmelu - to je radost pracovat. Kod vam vznika pod rukama snad sam od sebe :-))
preco to nasilu hadzete do uctovnictva a administrativnych zalezitosti ? len aby ste zhodili cloveka ze on sa venuje tym nudnym veciam a vy ste ten jediny ktory vie ze o tom programovanie nie je. podla mojho nazoru je programovanie o modelovani systemov(na ktorejkolvek urovni) a abstrakcii. co myslite co bude idealnejsi jazyk na modelovanie. niektory z vysokourovnovych(lisp, python, ruby, java ...), alebo Vas assembler. V kolkych pripadoch vas zaujima co najefektivnesie narabanie s pamatou a v kolkych ide o to co vlastne modelujete. O citatelnosti kodu(napriklad konstrukciu v pythone: for line in File.lines pochopi vacsina ludi bez toho aby mali vobec kontakt s programovanim, resp. pocitacmi vobec nieco spolocne) ani nehovoriac, Ste si isty ze assembler je ten najlepsi jazyk na vyjadrovanie myslienok ? ...
Programovani neni o tom, kdo ma nejlepsi model, ale kdo ma nejlepsi program. Je pravda, ze assembler je extrem, kde je efektivita uz silne na ukor citelnosti, ale ty vase super hyper jazyky jsou to, co zpusobuje ze kazda dalsi verze programu potrebuje rychlejsi procesor.
Osobne si myslim, ze nejlepsi kompromis je C. Ne snad, ze by to byl jazyk bez chyb, ale okolo nej je nejake takove vakuum. Proto taky kdyz nejde o nejlepsi jazyk, ale o nejlepsi cestu k reseni, tak bych doporucil kombinaci: spojit casti v assembleru (kvuli prenositelnosti co nejmene), v C a v nejakem vyssim jazyku (treba C++, sla by i Java kdyby se umela s C rozumne propojovat) dohromady s tim, ze cim rychleji musi dany kus bezet, tim nizsim jazykem bude napsany.
Samozrejme, pro mensi projekty to nemusite delat sami, casto vam staci zustat u vyssich jazyku a ty C a asm casti vzit z knihoven nebo je za vas doplni optimalizator kodu (java JIT). Kdyz je ovsem projekt prilis velky, jako treba Firefox ...
... nebo samozrejme jako to, s cim to zacalo: operacni system. Operacni system se na vetsine procesoru dokonce bez casti v assembleru neobejde. A psat ho ve vyssim jazyce nez C ? Nesmysl. Takove casti proste nemaji v jadre co delat. Pokud jste nasli cast, ktera by sla napsat ve vyssim jazyce, bud se mylite nebo jste nasli cast ktera by se mela vysunout do aplikace.
Ono je to slozite. Kdyz dneska chce 15 lety kluk programovat tak ho posadi pred Visualni IDE. Kde se potom ma naucit do hloubky "what the hell it is?". Kdyz pak udela neco jako winscp v pascalu (ciste ilustracni priklad), tak to prece neznamena ze nerozumi pocitacum protoze nepise v asambleru!
Kazdy prece rozumi (alespon castecne) tomu v cem dela. Ja docela plavu v hardwaru, presto se me spousta lidi pta z ceho si maj slozit/ jaky koupit pocitac. Asi si vylosuju znacku a zacnu odpovidat Sony, pripadne Dell (omlouvam se dalsim :) ).
Asambler jsem videl naposledy na ZX Spectrum a Amize a to jen hodne zbezne. Znamena to ze pocitacum rozumim nebo nerozumim?
To prece neznamena vubec nic. Delaji se vetsi a rozsahlejsi projekty. Konkurence je velka, takze je potreba pomoc kde to jen jde a nevim o zadnem silnem IDE pro assambler.
Chlapi, je to hříčka, nic závažného v tom nehledejte. Pokud to "gay" v mém příspěvku něco znamená, pak nejspíš "úsměvný, zábavný". Je tam i ta radost, minoritnost apod., ale ta špička je jinde.