Jakým programovacím jazykem začít ?

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
Sender
Level 3.5
Level 3.5
Příspěvky: 700
Registrován: leden 07
Bydliště: Vysočina
Pohlaví: Muž
Stav:
Offline

Re: Jakým programovacím jazykem začít ?

Příspěvekod Sender » 17 lis 2016 14:56

faraon> můžeš prosím napsat jaký kompilátor chápe ten zápis co jsi napsal jinak než jedno statické pole (int pole[10]) a t5i proměnné (int a,b,c;) ? Nechce se mi věřit že by zápis pole[10]=12345; přiřadil číselnou hodnotu něčemu jinému než poli.
Fakt je,že s těmi poli je docela peklo. Builder C++ pokud nezavolám o jednu vyšší tak to přiřazení číselný hodnoty nechce chápat (možná bude něco v nastavení kompilátoru.nejsem cečkař a s C++ Builder se seznamuju ),ale pokud pole nadefinuju takto int pole1[]={10,20,30}; ,funguje to správně.

Jinak k tomu Lazarusu : za poslední dobu se hodně zlepšil.

Reklama
Uživatelský avatar
Eldan
Level 3.5
Level 3.5
Příspěvky: 691
Registrován: leden 16
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Jakým programovacím jazykem začít ?

Příspěvekod Eldan » 17 lis 2016 16:30

Jde o to jak kompilátor adresuje paměť. Při určitém nastavení bude platit, že se alokuje 10*sizeof(int) pro pole a přímo za tím a, b, c. a jelikož pole[10] bude ukazovat na první položku za polem, bude ukazovat na a.

Já osobně bych Pascal nedoporučoval nikomu, pokud to není nezbytně nutné. Ten jazyk je... meh.

Uživatelský avatar
Sender
Level 3.5
Level 3.5
Příspěvky: 700
Registrován: leden 07
Bydliště: Vysočina
Pohlaví: Muž
Stav:
Offline

Re: Jakým programovacím jazykem začít ?

Příspěvekod Sender » 17 lis 2016 17:22

Aha,tak to je potom jasný.Díky za vysvětlení.
V Pascalu se to stát nemůže.Kompilátor to nepřeloží.
Výše zmiňovaný zápis by vypadal v Pascalu takto:

Kód: Vybrat vše

var
 pole:array[0..9] of integer;
 a,b,c:integer;

To,čím začít je záležitost tazatele.Každýmu líp vyhovuje něco jinýho.Se znalostí jednoho jazyka nenaprogramuje všechno.

Uživatelský avatar
satik
Level 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Jakým programovacím jazykem začít ?

Příspěvekod satik » 17 lis 2016 17:44

faraon píše:C je skvělý jazyk, ale velmi primitivní. Má jen deset příkazů a všechno, úplně všechno, si v něm člověk musí udělat a ohlídat sám. Jenže začátečník nemá tušení co všechno to má být a hlavně kdy to musí udělat, a sesype se mu to na hlavu. C jako první jazyk rozhodně ne, jako druhý pro ty schopné už možná, po pár rocích studia. Na rozdíl od Pascalu tam není problém udělat tohle:

Kód: Vybrat vše

int pole[10], a, b, c;
pole[10]=12345;

Právě jsem zapsal číslo 12345 do proměnné a! Nebo také ne a je někde úplně jinde, záleží na kompilátoru.

Že pole[10] přistupuje tady na a se dá celkem čekat, všechny ty proměnný i to pole se vytvořej na stacku za sebou, takže vyplňujou souvislej kus paměti.
Pokud daný jazyk nehlídá rozsahy polí, tak se to stát může - výhoda je, že při intenzivních operacích s ukládáním do polí je to rychlejší, nevýhoda nižší bezpečnost :)
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7359
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Jakým programovacím jazykem začít ?

Příspěvekod faraon » 17 lis 2016 20:35

Sender: Všechny kompilátory to chápou přesně tak jak píšeš, jenže C nekontroluje samo o sobě vůbec nic, takže do pole[10] s rozsahem indexů [0][9] můžeš klidně zapisovat do buňky 10, 11, 12, 13... A v tu chvíli si přepíšeš návratovou adresu na zásobníku, kde je to pole i následující proměnné umístěné, protože jsou lokální! Což je mimochodem nejčastější bezpečnostní díra nejen ve Windows. Nekontrolování mezí polí tam kde se to musí.

Ale je to také důvod, jak píše satik, že je to rychlejší. Céčko umožňuje nekontrolovat to co není zrovna potřeba, a je na programátorovi aby věděl co se zkontrolovat musí a kde jinde to zase zbytečně zpomaluje. Napadlo tě někdy že musíš VŽDY kontrolovat návratovou hodnotu funkce scanf()?

V Pascalu se takováhle blbost udělat nedá, ten si všechno hlídá při překladu i za běhu, takže ať budeš pole indexovat konstantou nebo proměnnou, tak se ten program při sáhnutí mimo pole prostě ukončí a ještě zařve co se stalo, na rozdíl od C, kde ten program běží dál jakobysenechumelilo a rozsévá digitální zkázu na všechny strany... Proto je Pascal bezpečnější, ale také pomalejší. Kontroluje všechno co se dá, i to co vůbec nemusí.

Pascal je Mercedes s koženými sedačkami, klimatizací, airbagy, ABS a spoustou kontrolek, C je parní lokomotiva. Máš tam jednu páku, jednu kliku, jeden ventil, a jednu lopatu na uhlí, nic víc! Jen vítr co ti fouká kolem uší a cuchá vlasy :lol:
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
Sender
Level 3.5
Level 3.5
Příspěvky: 700
Registrován: leden 07
Bydliště: Vysočina
Pohlaví: Muž
Stav:
Offline

Re: Jakým programovacím jazykem začít ?

Příspěvekod Sender » 17 lis 2016 22:11

faraon> OK.Je to tak jak píšeš.Po příspěvku co psal Eldan jsem si s tím hrál a odzkoušel.Mám v tom jasno.Nejsem cečkař ,ale budu ho možná potřebovat pro programování MCU.V současnu si i pro MCU vystačím s Pascalem (PMP Micro Pascal).Pro desktop aplikace (os Windows,Linux) mi Pascal nabízí možnosti,který jsou vysoce nad rámec mých potřeb(mám komerční vývojové prostředí).
Pascal vs C : Je zajímavý,že Dev CPP a DevPascal vytváří se stejným funkčním kódem stejně velký exe soubor.Testoval jsem to dříve na některý starší verzi (DevCPP 4 a něco ,DevPascal 1.9.2).DevCPP se stále vyvíjí,kdežto DevPascal je mrtvý.

V některém vlákně před několika dny jsem u jednoho tazatele narazil na aplikaci napsanou v Javě.Opravdu výborná práce.Jen se mi u toho na první pohled nezamlouvalo milión souborů kolem (je to asi na zvyku).

Uživatelský avatar
satik
Level 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Jakým programovacím jazykem začít ?

Příspěvekod satik » 18 lis 2016 08:17

faraon píše:
satik píše:A C# (celý .NET) byl už od začátku koncipovaný jako multiplatformní, netuším, kde jsi přišel na opak.

Teda, nechtěj abych o tobě ztratil dobré mínění, první věta na Wikipedii :evil:
.NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows.

Ještě se vrátím aspoň k tomuhle - že je to od MS a běží primárně na MS Win neznamená, že to není multiplatformní, MS si už před nějakou dobou uvědomil, že nemůže spoléhat jen na svůj OS.

C# se kompiluje do CIL (MSIL), který je multiplatformní ( https://en.wikipedia.org/wiki/Common_In ... e_Language ) a až na cílové platformě se to kompiluje do nativního kódu. Implementace pak jsou třeba .NET portable nebo to Mono.

faraon píše:O tom že C# je jenom zprzněná záměrně nekompatibilní M$ Java, kterou po prohraném soudu a zaplaceném tučném odškodnění musel M$ přejmenovat, snad víš. Nekompatibilní ve smyslu že ostatní javovské programy na Windows 9x běžely problémově, a to mělo donutit všechny přejít právě na ten korporátní šmejd od redmondských vyděračů, tak jak se jim to povedlo u řady jiných technologií.

To si pleteš, MS sice původně vyvíjel jakousi MS Javu, která měla nějaké nekompatibilní věci, ale C# je už úplně nový jazyk, který se jen hojně inspiroval pozitivy Javy a poučil se z jejích negativ.

Na rozdíl od Javy jde vývoj C# neustále rychle kupředu, takže momentální stav je takový, že Java je pozadu a kopíruje od C# (např. ten LINQ - lambda výrazy), navíc Oracle přesouval nějaké lidi pracující na Javě jinam ( http://arstechnica.com/information-tech ... kill-java/ ), takže nad Javou se tak trochu stahují šedé mraky.
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index

Uživatelský avatar
beather
Herní spec. / Tvůrce článků
Master Level 7
Master Level 7
Příspěvky: 4480
Registrován: únor 13
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline

Re: Jakým programovacím jazykem začít ?

Příspěvekod beather » 18 lis 2016 08:54

satik píše:navíc Oracle přesouval nějaké lidi pracující na Javě jinam ( http://arstechnica.com/information-tech ... kill-java/ ), takže nad Javou se tak trochu stahují šedé mraky.


java v životě neumře ani se neomezí... :-)
Návod na HijackThisNávod na BSODZákladní diagnostika počítačePříspěvek fóru

„Inteligentní lidé se snaží problémy řešit, geniální se je snaží nedělat!“ - Albert Einstein :punish:
[b]Rozcestník mých článků

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7359
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Jakým programovacím jazykem začít ?

Příspěvekod faraon » 18 lis 2016 09:09

satik píše:MS si už před nějakou dobou uvědomil, že nemůže spoléhat jen na svůj OS.

Jo, proto se stal platinovým členem Linux Foundation, vedle IBM, Google, Oracle... Vlastně Google je jen zlatý, koukni kdo za Linuxem stojí: https://www.linuxfoundation.org/members/corporate Tomu sami s Widlemi nemůžou konkurovat, vlastně je ty klikoňské omalovánky už ani neživí, je to jenom takový historický odpad. Ano, už před nějakým časem si M$ uvědomil že vydírání výrobců používajících Android se vyplatí mnohem víc než prodej vlastního nedodělaného bugware.

To že je C# částečně multiplatformní není ani v nejmenším zásluha M$, ale linuxáků, konkrétně firmy Novell vyvíjející Mono. Nedávné uvolnění malé části .NET jako Open Source také není zrovna dobrá ukázka otevřenosti, je to zkriplený pahýl se značně omezenou funkčností. Asi jako ty W10IoT pro Raspberry, dá se tím akorát tak rozblikat dioda. Na to stačí tranzistor a dva kondenzátory.

Pokud žiješ v iluzi že Lambda výrazy jsou objev C#, měl by sis v Redmondu vypůjčit stroj času, vrátit se do padesátých let kdy vznikl Lisp, a pokračovat do třicátých, ze kterých nepochází zdaleka jen Turingův stroj! C# je nový název pro jazyk odvozený z Javy, určený pro defektní MSJVM, kterého se týkal ten soud. A jestli Java díky Oracle chcípne, nebude to škoda. Ani trochu.






A protože to je zase zbytečná hádka o věcech netýkajících se původního dotazu, tak ještě jednou a jasně.


Pro úplného začátečníka k pochopení struktur:
Scratch, Karel, Logo, Petr.

Pro učedníka k pochopení co jsou data:
Pascal, Python.

Pro mírně pokročilého, který už tuší kam chce pokračovat:
C, Perl, PHP, JavaScript.

Pak už bude vědět sám, jestli C++, Javu, C#, nebo třeba Go, Rust...

Tohle je můj názor, poraď jak umíš.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
satik
Level 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Jakým programovacím jazykem začít ?

Příspěvekod satik » 18 lis 2016 09:44

Popravdě moc nechápu, proč se občas zdáš jako celkem rozumný člověk a občas jako naprostý blb, jako třeba tady a teď.

faraon píše:Pokud žiješ v iluzi že Lambda výrazy jsou objev C#, měl by sis v Redmondu vypůjčit stroj času, vrátit se do padesátých let kdy vznikl Lisp, a pokračovat do třicátých, ze kterých nepochází zdaleka jen Turingův stroj!

Proč bych si takovýho něco myslel? :shock:
Ta výhoda v C# je to, že můžeš v jednom jazyce v jednom kousku kódu jednoduše a celkem elegantně používat normálně imperativní přístup a zároveň lambdu, to jsem předtím v těch rozšířenějších jazycích nikde moc neviděl.

faraon píše:Pro úplného začátečníka k pochopení struktur:
Scratch, Karel, Logo, Petr.

Pro učedníka k pochopení co jsou data:
Pascal, Python.

Pro mírně pokročilého, který už tuší kam chce pokračovat:
C, Perl, PHP, JavaScript.

Pak už bude vědět sám, jestli C++, Javu, C#, nebo třeba Go, Rust...

Tohle je můj názor, poraď jak umíš.

Super, takže pokud se chce naučit programovat, má se naučit postupně 4 jazyky? :thumbup:
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7359
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Jakým programovacím jazykem začít ?

Příspěvekod faraon » 18 lis 2016 09:49

Deset. Kolik jich umíš ty?
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
beather
Herní spec. / Tvůrce článků
Master Level 7
Master Level 7
Příspěvky: 4480
Registrován: únor 13
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline

Re: Jakým programovacím jazykem začít ?

Příspěvekod beather » 18 lis 2016 10:01

už se začínáte dost vzdalovat tématu.. uklidníme to ano? Pokud máte nějaké osobní neshody, vyřešte si je přes SZ :offtopic:
Návod na HijackThisNávod na BSODZákladní diagnostika počítačePříspěvek fóru

„Inteligentní lidé se snaží problémy řešit, geniální se je snaží nedělat!“ - Albert Einstein :punish:
[b]Rozcestník mých článků


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Kde zacit jako technik-samouk?
    od lukesky » 02 srp 2023 08:47 » v Vše ostatní (hw)
    3
    984
    od petr22 Zobrazit poslední příspěvek
    02 srp 2023 09:22

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host