NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Rozdíly mezi C# a PHP

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Alesseon
Jan Vargovský:7.1.2014 22:20

C# a PHP jsou hlavně úplně rozdílné jazyky a každý je k nečemu jinému.

 
Odpovědět
7.1.2014 22:20
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:7.1.2014 22:22

U jazyků C# a PHP naopak vidím velkou podobnost. Ty dva jazyky se zas tak moc neliší.

Nahoru Odpovědět
-3
7.1.2014 22:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Kit
Jan Vargovský:7.1.2014 22:24

Já to myslím z pohledu výsledných věcí k čemu ty jazyky jsou. Jestli porovnáváš C# jako ASP a PHP, tak je to pak něco jiného.

 
Nahoru Odpovědět
7.1.2014 22:24
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:7.1.2014 22:31

"U jazyků C# a PHP naopak vidím velkou podobnost. Ty dva jazyky se zas tak moc neliší."

Uh, to bylo myšleno vážně?

Nahoru Odpovědět
+2
7.1.2014 22:31
https://www.facebook.com/peasantsandcastles/
Avatar
Alesseon
Člen
Avatar
Odpovídá na Jan Vargovský
Alesseon:7.1.2014 22:33

Takhle, co mi nabídne víc? Co je používanější? A hlavně v jakých oblastech? Co je rychlejší? Co se dá lépe rozšířit o další dodatky (myslím něco jako moduly, v php)? Nebo jestli je toho tam tolik že to asi není potřeba, nevím..
O podpoře se asi ani bavit nemusíme, to vím jak na tom je v česku C#, bídně, tedy povětšinou co vidím na hostinzích..

Nahoru Odpovědět
7.1.2014 22:33
This is a bad day to be human...
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Alesseon
Jan Vargovský:7.1.2014 22:41

PHP ti nabídne PHP a C# ti nabídne C#. Je tu o obou jazycích napsáno nejméně stovka článků a dalších 3oo threadů se stejným podnětem.

Jak můžeš říct, že je na tom C# bídně, když vlastně ani nevíš k čemu ten jazyk je a neumíš napsat ani hello world ?

 
Nahoru Odpovědět
+1
7.1.2014 22:41
Avatar
Milan Gallas
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Milan Gallas:7.1.2014 22:46

On myslel podporu ASP na free webhostinzích pokud jsem to pochopil správně.

 
Nahoru Odpovědět
7.1.2014 22:46
Avatar
Alesseon
Člen
Avatar
Odpovídá na Jan Vargovský
Alesseon:7.1.2014 23:06
  1. Náhodou hello world umím, a některé věci jsou podobné s C, a ty některé podfunkce v těch proměnných, myslím ty jakoby i.tostring, a podobně, ty taky zvládám... Mě zajímá názor i někoho jiného, jeden popisuje že je php skvělý jazyk a druhý popisuje že C# je skvělý jazyk, tak jak se mám dozvědět který je nezávisle na programátorovi výhodnější? Napadlo mě jen tohle, zeptat se ostatních, co si o tom myslí, a nejlépe těch kteří znají jak tenhle tak ten druhý, omlouvám se že jsem tě tou otázkou obtěžoval, ale číst si to nemusel..

A ano, opravdu jsem myslel podporu na hostinzích, ne samotný jazyk, nevím jak to s ním je, ale vím že běží jen pod windows...
A s těmi hostingy, nevím nevím, moc jsem to nezkoumal, ale stále o tom pořád někde čtu jak si někdo stěžuje že s podporou C# na webhostinzích jsme na tom v česku celkem bídně, tak je dobré to vědět od někoho dalšího..

Nahoru Odpovědět
7.1.2014 23:06
This is a bad day to be human...
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Alesseon
Jan Vargovský:7.1.2014 23:17

Mě zarazilo to, že porovnáváš C# a PHP. Každý jazyk má nějaké tostring, proměnné, objekty... prostě nějaké paradigma, podle kterého se v tom jazyku programuje.

Nejde říct který je výhodnější. Každý jazyk má něco jiného, hlavně porovnávat tyto 2 je naprostá hloupost. PHP běží někde na serveru a nejčastěji se v něm dělají dynamické weby. C# běží pod nějakým frameworkem a můžeš v něm dělat prakticky cokoliv. V PHP nedělám, ale běží na straně serveru, zatím co k C# ti stačí .NET framework a to je vše, co potřebuješ. V C# si můžeš udělat třeba dektopovou aplikaci, velký informační systém, web, službu nebo taky aplikaci na mobil nebo tablet.

Vezmi si, jak je ASP mohutný nástroj, samotné weby od MS na něm běží a ty to srovnáváš s PHP, které umí kde kdo. (Myslím i ty, kteří říkají, jak něco umí a přitom neumí nic. Ale snaží se o to, takže to má nějakou větší komunitu)

K tomu taky patří hostingy, ASP není zas tolik tolik rozšířené. Nejčastěji se dělají malé weby a když ho máš dělat dynamicky, tak ho uděláš v PHP nebo nějakém frameworku založený na PHP. A teď si srovnej kolik máš malých webů v PHP a kolik v ASP. Někteří s PHP začínají jako první jazyk, začít s ASP jako první programovací jazyk by byla sebevražda :)

Btw, to, proč je ASP hostingů málo je možná i proto, že to běží jen pod windowsáckými servery (podívej se na Linux vs Win Server v %) (Ano, je tu Mono, ale to nepodporuje full ASP.NET)

Editováno 7.1.2014 23:20
 
Nahoru Odpovědět
+1
7.1.2014 23:17
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:8.1.2014 1:20

Ano, myslel jsem to vážně. Syntaxe C# a PHP je skoro stejná, oba původem vychází z C a jsou to objektové jazyky. Metody ToString a __toString dělají to samé.

Rozhodně jsou si ty dva jazyky podobnější, než např. Lisp vs. Prolog vs. XSLT.

Nahoru Odpovědět
+2
8.1.2014 1:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:8.1.2014 2:13

PHP běžně používám pro vytváření aplikací na desktopu. Kde jsi přišel na to, že se k tomuto účelu nedá použít?

Nahoru Odpovědět
8.1.2014 2:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Zdeněk Pavlátka:8.1.2014 6:46

A z diskuze o historii se opět staly dohady o jazycích... Ale souhlasím, že PHP a C# jsou si podobné.

Nahoru Odpovědět
+3
8.1.2014 6:46
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:8.1.2014 10:41

Podobná si je Java a C#, ale podobnost C# a PHP končí někde v tom, že jejich syntaxe vychází z C a jsou oba imperativní.

Spousta syntaxe se dost liší a každý z nich funguje úplně jinak pod pokličkou, takže říct, že jsou podobné může jen někdo, kdo je viděl jen z rychlíku.

Nahoru Odpovědět
8.1.2014 10:41
https://www.facebook.com/peasantsandcastles/
Avatar
Alesseon
Člen
Avatar
Alesseon:8.1.2014 15:52

Super, díky přesně to jsem chtěl vědět, co tím získám navíc oproti PHP...

Nahoru Odpovědět
8.1.2014 15:52
This is a bad day to be human...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:8.1.2014 17:59

Tohle může napsat jen ten, kdo viděl ostatní programovací jazyky jen z rychlíku :)

Například Fortran se od C syntakticky liší na první pohled dost výrazně, uvnitř je prakticky stejný jako jazyk C. Dokonce mají společný kompilátor.

Editováno 8.1.2014 18:02
Nahoru Odpovědět
8.1.2014 17:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:8.1.2014 20:04

Že některé jiné jazyky jsou ještě rozdílnější neznamená, že C# a PHP jsou jazyky podobné.

Nahoru Odpovědět
-1
8.1.2014 20:04
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Alesseon
Luboš Běhounek Satik:8.1.2014 20:12

PHP je jazyk určený víceméně jen pro tvorbu webů, C# se hodí i pro desktopové aplikace, desktopové hry.

Řekl bych, že PHP je o něco jednodušší pro začátečníky - v proměnné můžeš mít cokoliv, (v C# to sice jde v podstatě taky, ale není to běžný postup, ale zase je v PHP větší šance zanesení chyby), nemusíš používat OOP (V C# nenacpeš funkční kód mimo třídu, v PHP nemusíš pro základy OOP znát vůbec, protože tam spousta staršího kódu zbyla z dob, kdy PHP třídy neumělo).

PHP je pomalejší, je to interpretovaný jazyk, i když už existují i kompilátory pro PHP, ale na nativní kód (C#) to pořád nemá.

Nahoru Odpovědět
-2
8.1.2014 20:12
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:8.1.2014 20:39

V PHP se dají vytvářet nejen HTML, ale i DOC, XLS, PDF, JPG, PNG a spoustu dalších souborů. Rychlost jejich generování si nezadá s C#. Zřejmě s PHP neumíš dělat.

V C# také nemusíš používat OOP. Běžně vídám imperativně napsané programy v C#, které s OOP nemají nic společného.

Nahoru Odpovědět
-1
8.1.2014 20:39
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:8.1.2014 21:09

Ano, běžně používám pro tvorbu tebou vyjmenovaných dokumentů program napsaný v PHP :)

Samozřejmě, že to umí, ale většinou to využiješ jen pro tvorby reportů na nějakém webu apod.

Rychlost PHP si nezadá s C#? Možná když využíváš nějaké knihovny napsané v jiných jazycích, ale pokud máš nějaký výkonný kód v PHP, tak bude na C# ztrácet.

OOP nemusíš používat skoro v žádném jazyce, když nechceš, ale v PHP je to mnohem jednodušší než v C#, protože i v běžném PHP je spousta často používaných funkcí, které k žádnému objektu nepatří.
V C# skoro každá funkce má svoji odpovídající třídu, takže musíš aspoň umět tu třídu vytvořit apod.

Nahoru Odpovědět
8.1.2014 21:09
https://www.facebook.com/peasantsandcastles/
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Kit
Jan Vargovský:8.1.2014 21:20

HTML můžeš vygenerovat snad ve všem, vždyť je to jen text. Nevím proč pokaždé musíš argumentovat totálně nesmyslně.

Editováno 8.1.2014 21:21
 
Nahoru Odpovědět
+3
8.1.2014 21:20
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:8.1.2014 21:53

V PHP se toho výkonného kódu moc nepíše a když se zbavíš podmíněných větví a cyklů, tak je PHP i rychlé. Chce to jen nedělat ty zbytečné cykly a větvení.

V C# nemusíš umět třídu vytvořit. Stačí jen vědět, že zdroják musí začínat slovy "class Program". Zbytek může být procedurál. Nikdo tě v C# k OOP vůbec nenutí, můžeš používat běžné procedury a funkce a vystačíš si. Samozřejmě jak na co.

Nahoru Odpovědět
-1
8.1.2014 21:53
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:8.1.2014 21:55

Všimni si: "... nejen HTML,..."

Nahoru Odpovědět
8.1.2014 21:55
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Kit
Jan Vargovský:8.1.2014 22:00

Dobře, ale pořád to je jak kdybys porovnával PowerShell a Batch. Ty dva, se alespoň na jednom schodnou. Zatím co C# a PHP ne. To co říkáš bys mohl říct o každém jazyku. Java tě snad nutí k tomu co říkáš ?

Když se zbavíš cyklů a podmínek, co ti pak zbyde ? Rovnou to už můžu napsat přímo a nemusím chtít po PHP, aby mi vytvořilo soubor a napsalo do něj string, co jsem dal do PHP a pak zavolal f-ci, na uložení do souboru.

 
Nahoru Odpovědět
+1
8.1.2014 22:00
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:8.1.2014 22:12

Když se zbavím cyklů a podmínek, zbyde mi krásný PHP kód bez cyklů a větvení. V PHP totiž na rozdíl od C# z velké části nejsou potřebné. Používají je hlavně programátoři zvyklí na jazyky odvozené z C, protože to neumí udělat jinak.

Jistěže jsou mezi PHP a C# rozdíly, ale programy jsou většinou poměrně snadno převoditelné. Jen je C# o něco ukecanější.

Nahoru Odpovědět
-3
8.1.2014 22:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Kit
Jan Vargovský:8.1.2014 22:15

Takže nikdo vlastně neumí programovat, protože využívá podmínky a cykly.

 
Nahoru Odpovědět
+1
8.1.2014 22:15
Avatar
Milan Gallas
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Milan Gallas:8.1.2014 22:18

Bez těch cyklů, by to při větší námaze ještě šlo. Ale programovat bez podmínek, to už člověk musí být jinde, aby to zvládal.

 
Nahoru Odpovědět
+1
8.1.2014 22:18
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:8.1.2014 22:18

Kite, zkus někdy naprogramovat něco složitějšího, než čtení hodnot z DB a jejich vypsání na obrazovku, třeba zjistíš, že se bez cyklů a podmínek při programování čehokoliv složitějšího neobejdeš a nebudeš psát takovéhle hovadiny... :)

Nahoru Odpovědět
8.1.2014 22:18
https://www.facebook.com/peasantsandcastles/
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Milan Gallas
Jan Vargovský:8.1.2014 22:19

Když to vezmu fakt zhurta, tak v cyklu máš taky podmínku :)

EDIT: Jo tys to psal naopak, tak pak beru z5 :)

Editováno 8.1.2014 22:21
 
Nahoru Odpovědět
8.1.2014 22:19
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Kit
Petr Nymsa:8.1.2014 22:22

Čistě ze zvědavosti by mě zajímalo jak se dají následující úlohy dělat bez podmínek a cyklů

  1. Bubble sort
  2. například Algoritmus vlny

3)Update všech objektů (Člověk) v určité kolekci a podle toho zda má property Pohlaví(typu enum) nastavenou na Muž tak vypsat "Jsem muž" a když Žena vypsat "Jsem žena"

Nechci vyvolávat hádky, spory ani nijak provokovat, čistě ze zvědavosti :)

Nahoru Odpovědět
+2
8.1.2014 22:22
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Milan Gallas
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Milan Gallas:8.1.2014 22:24

měl jsem namysli funkce array_map, array_reduce(a další). Pak v mnoha případech nepotřebuješ použít klasické cykly a máš přehledný kód.

 
Nahoru Odpovědět
+1
8.1.2014 22:24
Avatar
Milan Gallas
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Milan Gallas:8.1.2014 22:29

Dále jsou zajímavé metody: array_filter() a str_repeat(). Prostě v tomto směru to má php dobře udělaný :D

Editováno 8.1.2014 22:29
 
Nahoru Odpovědět
+1
8.1.2014 22:29
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Milan Gallas
Jan Vargovský:8.1.2014 22:30

V PHP nedělám, takže mi to nic neříká :) ale stejně, pořád se to interně chová asi jako cyklus, ne ?

V C# Taky můžeš napsat IList.ForEach( Action<T>) a další věci, co sice nevypadaj jak cyklus, ale cyklus to je.

Editováno 8.1.2014 22:31
 
Nahoru Odpovědět
+1
8.1.2014 22:30
Avatar
Milan Gallas
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Milan Gallas:8.1.2014 22:38

Ale tak to nejspíš kit myslel. Prostě odstraníš z kódu svoje cykly a budeš používat výše zmíněné věci. Kód je poté takový hezčí a zápisy jsou kratší.

 
Nahoru Odpovědět
8.1.2014 22:38
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Petr Nymsa
Kit:8.1.2014 22:41

1.

asort($data);

Nebudu implementovat něco, co už je součástí jazyka. Bubble sort se dá udělat rekurzí, ale moc užitečné by to asi nebylo.
2. rekurzí
3.

<?php
$kolekce = array(
    'Adam' => "Muž",
    'Božena' => "Žena",
    'Cyril' => "Muž",
    );
echo implode("\n", array_map(function($osoba, $pohlavi) {
    return "$osoba je " . ($pohlavi=="Muž" ? "muž" : "žena");
}, array_keys($kolekce), array_values($kolekce)));

Podmínka zde samozřejmě je, ale není zde větvení ani cykly.

Editováno 8.1.2014 22:43
Nahoru Odpovědět
+1
8.1.2014 22:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Milan Gallas
Jan Vargovský:8.1.2014 22:42

Nevím jestli je annonymní metoda přehlednější než pár podmínek, které v tom stejně budeš muset použít. Ofc můžeš použít klauzuli where ... Wait. To nemá cenu, tohle neobkecá.

 
Nahoru Odpovědět
+1
8.1.2014 22:42
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Kit
Jan Vargovský:8.1.2014 22:44

Nevím jak by Call Stack vypadal, když bys měl kolekci o třeba 1000 prvcích. Dostal bys vyjímku a můžeš zkoušet dál.

 
Nahoru Odpovědět
8.1.2014 22:44
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Kit
Petr Nymsa:8.1.2014 22:44

Ok díky :) Jasně řazení si také nebudu psát když je součástí jazyka. Ale je to odvážné tvrzení že lze psát bez cyklů a podmínek, při větších aplikacích, kde je hodně algoritmů (zejména hry) se cyklům a podmínkám jen tak vyhnout nedá (netvrdím že to možné není)

Editováno 8.1.2014 22:45
Nahoru Odpovědět
8.1.2014 22:44
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Luboš Běhounek Satik:8.1.2014 22:55

Mě by zajímalo, jak Kit píše algoritmy, na které v jazyku nejsou už hotové funkce.

Nejspíš nijak, protože to ještě nikdy nedělal.

Nahoru Odpovědět
+2
8.1.2014 22:55
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:8.1.2014 22:55

Naprosto v pohodě. Nacpal jsem do toho 5 M lidí a zvládlo to.

Nahoru Odpovědět
8.1.2014 22:55
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:8.1.2014 22:58

Základním pravidlem, které jistě znáš, je nevynalézat kolo. Takže místo šíření FUD by sis raději měl otevřít manuál.

Nahoru Odpovědět
8.1.2014 22:58
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Alesseon
Člen
Avatar
Alesseon:8.1.2014 23:06

Úplně bez větvení a cyklů to určitě taky nepůjde, některé věci to prostě vyžadují, ale spousta kódu by se určitě dala sepsat kratší a přehlednější cestou, o tom nepochybuji...

Kit: Jen by mě tedy zajímalo jak bych mohl pomocí PHP jednodušší cestou vypsat hodnoty z databáze, když jich je třeba větší množství (dejme tomu 10), tak abych je přiřadil postupně do pole bez cyklu? Zatím jsem buď nenarazil na funkci která by to uměla nebo mě nenapadá jednodušší cesta.

Nahoru Odpovědět
8.1.2014 23:06
This is a bad day to be human...
Avatar
Alesseon
Člen
Avatar
Odpovídá na Luboš Běhounek Satik
Alesseon:8.1.2014 23:07

Tím lépe ne? Potom ty funkce budou implementované v interpreteru, a budou tudíž rychlejší, protože jsou kompilované pokud se nemýlím ne?

//EDIT: Myšleno tak jako že našel a dokázal využít již hotové funkce interpreteru, a zatím nepotřeboval nikdy napsat vlastní protože vždy nějakou cestu našel

Editováno 8.1.2014 23:08
Nahoru Odpovědět
+1
8.1.2014 23:07
This is a bad day to be human...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:8.1.2014 23:07

Interně to samozřejmě cykly jsou, ale běží už na úrovni strojového kódu, tedy podstatně rychleji. V C# jsou rychlé i ty cykly, takže u něj už k nějakému výraznému zlepšení nedojde, ale pro PHP to představuje významné přiblížení k rychlosti kompilovaných jazyků.

Nahoru Odpovědět
8.1.2014 23:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Alesseon
Kit:8.1.2014 23:10

Nedávno jsem to sem posílal:
http://www.itnetwork.cz/dev-lighter/275

Nahoru Odpovědět
8.1.2014 23:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:8.1.2014 23:11

Znovuvynalézám kolo?

Jasně, můžu všechny algoritmy jen postahovat a slepit dohromady a možná nebudu muset žádný cyklus ani použít, jako to děláš ty.
U jednoduchých aplikací, které lepíš ty, ti to stačí, protože hotové řešení už vždy najdeš, ale až budeš psát něco méně obvyklého, narazíš na problém, protože google nepomůže a bez cyklů a podmínek to napsat nepůjde.

Mimochodem, algoritmus vlny rekurzí - ano, rekurze se na tomhle algoritmu někdy ukazuje, ale jsou i efektivnější způsoby, než tohle plácání výkonem...

Nahoru Odpovědět
+2
8.1.2014 23:11
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Alesseon
Luboš Běhounek Satik:8.1.2014 23:12

Ono toho ty jazyky umějí spoustu, ale stejně při psaní něčeho složitějšího občas narazíš na něco, co ještě ten jazyk nebo jeho knihovny nijak jednoduše neumí.

Nahoru Odpovědět
8.1.2014 23:12
https://www.facebook.com/peasantsandcastles/
Avatar
Alesseon
Člen
Avatar
Odpovídá na Luboš Běhounek Satik
Alesseon:8.1.2014 23:20

S tím počítám, že jsem ještě neobjevil plné možnosti, jsem zvyklý na styl C, nebo Assembleru, co nemáš napiš si, a co nemáš? Prakticky všechno...
Nic není neomezené, vždy jednou dojdou možnosti, každopádně pokud se tak stane tak se tomu vyhnout moc nedá... Leda si napsat modul pro PHP a tam to implementovat, a vyhnul by jsi se použitím toho, ale nevím do jaké míry je dobré používat moduly v php.

Nahoru Odpovědět
8.1.2014 23:20
This is a bad day to be human...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:8.1.2014 23:21

Raději využiji arzenál, který už je součástí knihoven jazyka, než abych stahoval nějaké frameworky.

Pokud budu chtít vygenerovat tabulku ASCII, tak se nejspíš bez cyklu neobejdu (i když...), ale na zpracování seznamů a tabulek cykly opravdu nejsou potřebné.

Mentální bloky skutečně bývají značné. Velmi často vidím

mysql_connect(...) or die(...)

ale ještě nikdy jsem neviděl

mysql_connect(...) or throw new Exception(...)

Proč?

Nahoru Odpovědět
8.1.2014 23:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Alesseon
Kit:8.1.2014 23:26

Zapomněl jsem dodat, že PDO mi celý SELECT dodá jako dvourozměrné pole, seznam slovníků nebo seznam objektů dle mého přání. Stačí místo metody fetch() použít metodu fetchAll().

Nahoru Odpovědět
8.1.2014 23:26
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:8.1.2014 23:31

Jasně, já taky ten arzenál využívám, ale jak třeba bez cyklu proiteruješ všechny pixely bitmapy (třeba když chceš spočítat počty výskytů barev), aby ti zůstal rozumný výkon?

To možná vyřešíš foreachem, pokud se ti podaří z bitmapy nějak vytřískat IEnumerable, ale když budeš řešit něco, kde do těch pixelů budeš chtít i zapisovat?

S tím PHP kódem netuším, s PHP jsem skončil někde před 4 roky a moc jsem ho neovládal.

Nahoru Odpovědět
8.1.2014 23:31
https://www.facebook.com/peasantsandcastles/
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 50 zpráv z 93.