Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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í.
Avatar
matesax
Tvůrce
Avatar
matesax:17.9.2012 21:05

Dobrý den,
již delší dobu se hrabu v F#. Nyní jsem se dočetl, že je o něj zájem, tak by mě zajímaly nějaké podobné informace - používanost, žádanost... A zároveň přemýšlím, jestli sem něco nepříspět...

 
Odpovědět
17.9.2012 21:05
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:18.9.2012 12:11

Trochu mi to připadá jako nepovedený kříženec Pythonu a Lispu. Z příkladů, které jsem viděl, jsem nebyl zrovna nadšen. Připadly mi zbytečně komplikované.

Možná mám jen averzi k produktům Microsoftu, tak to neber moc vážně.

Nahoru Odpovědět
18.9.2012 12:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
matesax:18.9.2012 14:47

Mě se naopak líbí hodně a alespoň pro mě je přehlednější, jedoduší... Zatím jsem tedy s tímto jazykem spokojen - ovšem studuji jej teprve něco přes měsíc. Hlavně se mi líbí syntaxe (Připadá mi, že má malou ukecanost.) a vůbec mi nevadí přísnost zápisu. Ale je to jako se vším - v něčem má výhody, v něčem nevýhody... (Něco je v něm složitější, něco jednoduší...)

Editováno 18.9.2012 14:47
 
Nahoru Odpovědět
18.9.2012 14:47
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:18.9.2012 14:58

F# je takový experiment, návrhem se oddaluje objektovému paradigmatu, jedná se o jazyk funkcinální. Více funkcionální, něž třeba JavaScript. Ještě jsem se k němu nedostal, ale určitě to jednou přijde.

Nahoru Odpovědět
18.9.2012 14:58
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:18.9.2012 16:02

Pokud hledáš co nejméně ukecaný jazyk, zkus Python. Výhodou je u něho, že pojede skoro na všem a najdeš k němu hromadu návodů a hotových skriptů, což ce o F# říct nedá.

Nahoru Odpovědět
18.9.2012 16:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:18.9.2012 16:15

Spíš jsem narazil na J# - nemám možnost si jej vyzkoušet - ale pracuji na jeho zprovoznění ve VS - každopádně ten by měl být jako Java multisystémový, syntaxe podobná C# - tedy prostě velice se mi zalíbil...

cs.wikipedia.or­g/wiki/J_Sharp

http://ithil.ujep.cz/…e/fsharp.pdf

Editováno 18.9.2012 16:16
 
Nahoru Odpovědět
18.9.2012 16:15
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:18.9.2012 16:18

Našel jsem v několika zdrojích, že F# umí pracovat s "dot pairs", což je asi nejdokonalejší datová struktura, použitelná na cokoliv. Jenže jsem k tomu už nenašel příslušné funkce CAR a CDR, jak je znám z Lispu. Předpokládám, že tam jsou, protože bez nich by to bylo k ničemu.

Nahoru Odpovědět
18.9.2012 16:18
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 matesax
Kit:18.9.2012 18:02

Nemůžu si pomoct, ale C#, F#, J# a možná i další ?# považuji spíš za pokus Microsoftu o vlastní řešení již zavedených jazyků Java, Python, Javascript, Lisp a kdoví čeho ještě. Zdá se, že nejúspěšnější z nich bude C# a po ostatních se časem slehne zem.

Ten návod na F# jsem si přečetl, ale podle mne obsahuje příliš mnoho syntaktických elementů a málo vlastností. Nebyla v něm ani zmínka o výjimkách, bez kterých si moderní jazyk nedokážu představit. Určitě tam jsou.

Nahoru Odpovědět
18.9.2012 18:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:18.9.2012 18:20

Nesouhlasím s tím, že nejsou návody - google - první odkaz:

http://techiethings.blogspot.cz/…eptions.html

 
Nahoru Odpovědět
18.9.2012 18:20
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:18.9.2012 20:12

No tak tohle je fakt úlet. Místo běžného try ... catch udělali try ... with, přitom se slovo with v jiných jazycích používá k jiným účelům. Takové hnusné chování k programátorům je pro mne jasným znamením, že se od takového jazyka mám držet co nejdál. Proč ten Microsoft nemůže dodržovat nějaký standard?

Navíc jsem F# na svých instalačkách nenašel, takže to stejně nemusím řešit. Raději zůstanu u Pythonu. Ten má sice zase pro změnu try ... except, ale na to si zvyknu snáze. Python mi připadá přehlednější, než F#.

Nahoru Odpovědět
18.9.2012 20:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:18.9.2012 21:04

Já myslel, že bych se do toho pustil já - mám již pár projektů - a velice rád bych napsal vlastní články - minimálně syntaxe, základní informace atd...

 
Nahoru Odpovědět
18.9.2012 21:04
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:18.9.2012 21:45

Myslím si, že nikomu nebude vadit, pokud se do toho pustíš. Začni psát.

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

Však - psal bych - ale kam? Pokud tu je sekce ostatní jazyky, či tak, tak se omlouvám - jdu to zkouknout...

Editováno 18.9.2012 21:50
 
Nahoru Odpovědět
18.9.2012 21:49
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:18.9.2012 21:55

Na to se schválně podívám, try... with zní opravdu divně :) Na druhou stranu, nevím, jak je to na tom Python, ale Ruby z něj vlastně vychází a prostě jsem to nezkousl. Metody se deklarují jako def, for cyklus je times, a výpis, pozor, je puts. To si opravdu museli říkat, že tam dají něco, co ještě nikde není. Tam nemohli dát write nebo print nebo tak něco 8| Potom se tam nedeklarovaly atributy tříd, ale používal se tzv. attr_reader a attr_writer, kde se vypsaly za sebe. Bylo to hrozně ufounské. V polích byly v indexech ASCII hodnoty místo charů, muselo se to převádět, to bylo velké WTF, naštěstí to potom změnili. Jasně, že se na to dá zvyknout, ale otázka je proč. A největší vtip byl v tom, že ten jazyk byl vlastně na houby, protože v tom nešly formy, nešlo to distribuovat, nic. Jen s ROR to mělo smysl na webu. Python zde často referuješ, zajímal by mě.

K těm jazykům od MS bych nebyl tak kritický, mají neskutečnou výhodu ve standardizaci a návrhu, C# je prostě vzorově navržený jazyk a .NET je dokonalý balík kvalitních knihoven na vše potřebné. To se u opensource jazyků prostě nevidí, např. Java a PHP jsou průměrné jazyky s velmi nekvalitními knihovnami. Asi proto C# Javu tolik válcuje, Javu chtějí firmy (protože nic nestojí), programátoři chtějí C#.

Nahoru Odpovědět
18.9.2012 21:55
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:18.9.2012 21:57

Jakmile budeš mít několik článků, David Hartinger ti pro ně založí vhodnou sekci a články přesune.

Nahoru Odpovědět
18.9.2012 21:57
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na David Hartinger
David Hartinger:18.9.2012 21:59

Ve stringách v indexeru byly ASCII hodnoty, ne v polích :)

Nahoru Odpovědět
18.9.2012 21:59
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:18.9.2012 22:09

Pythonu se budu věnovat víc. Nejen mě zaujal, ale také jsem dostal za úkol v něm něco zpracovat. Tak sem také občas něco pustím.

Jsem proti MS produktům zaujatý, to veřejně přiznávám. Berte mě v tom s rezervou.

O (ne)kvalitě Javy a PHP bychom spolu mohli polemizovat. Podle mne značně záleží na programátorovi, co z toho jazyka dokáže vyždímat. Tyto jazyky hlavně válcuje to, že v nich programuje hodně neprogramátorů, kteří to prostě neumí a nikdy umět nebudou.

Nahoru Odpovědět
18.9.2012 22:09
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 David Hartinger
Kit:18.9.2012 22:27

Znám hodně programovacích jazyků. Nejvíc mě asi rozhodí, když jedno klíčové slovo se v různých jazycích používá k různým účelům. To bývá zdrojem mnoha chyb. Na druhé straně chápu, že autoři jazyka mají jisté právo na jejich výběr.

O Ruby jsem četl pár nepěkných mínění, ale sám jsem v něm napsal jen pár řádek, takže moc soudit nemohu. Mám ho stále nainstalováno, ale nepoužívám. Nejvíc mě asi děsí globálnost objektů, která může být (podobně jako v Perlu) u větších projektů smrtící. Python má tuto záležitost vyřešenu velmi elegantně: Povolí čtení globální proměnné, ale při prvním pokusu o její modifikaci se tvrdě postaví na odpor.

Nahoru Odpovědět
18.9.2012 22:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar

Tvůrce
Avatar
:19.9.2012 10:17

Mě F-ko docela zaujalo, vypadá to dobře...

 
Nahoru Odpovědět
19.9.2012 10:17
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:19.9.2012 12:46

Funkcionální jazyky vypadají dobře. Jen ta syntaxe F# mi připadá dost složitá.

Nahoru Odpovědět
19.9.2012 12:46
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 David Hartinger
Kit:19.9.2012 14:38

Názvy klíčových slov se často odvozují od některých starších jazyků. Klíčové slovo def je zřejmě částečně odvozeno od Lispu (defun, defvar, defmacro, defclass, defconstant, ...) a zkráceno. times možná při deklaraci vypadá divně, ale při použití už vypadá lépe. Ovšem také moc nechápu, proč udělali puts místo běžnějšího print, resp. println s novým řádkem. print můžeš použít také, ale neodřádkuje.

Moc se mi nelíbí end na konci bloku, Python ho nepotřebuje.

Nahoru Odpovědět
19.9.2012 14:38
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:19.9.2012 16:30

Ale tady také není třeba.

 
Nahoru Odpovědět
19.9.2012 16:30
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:19.9.2012 16:40

Jasně, protože F# používá také syntaxi YAML podobně jako Python. Psal jsem o jazyku Ruby a asi to nebylo z kontextu patrné.

Nahoru Odpovědět
19.9.2012 16:40
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:21.9.2012 5:49

Tak to s tím Pythonem zkouším. Nejlepší pro mě je, že nemusím opuštět VS - díky IronPythonu. Mám ale problém s češtinou - encoding (ve stringu...). Kde bych to měl nastavit? Děkuji.

Editováno 21.9.2012 5:50
 
Nahoru Odpovědět
21.9.2012 5:49
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:21.9.2012 7:10

Co?? - Zkoušel jsem datový potenciál - faktoriál - a bez problému mi to spočítalo faktoriál 2000 - sice nepřesně (zaokrouhlení - avšak na prvních cca 120 míst), ale to se mi v C# vůbec nedařilo - docházelo ke zkreslení již velice brzy.

Editováno 21.9.2012 7:11
 
Nahoru Odpovědět
21.9.2012 7:10
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:21.9.2012 7:18

Takové menší číslo... :)

 
Nahoru Odpovědět
21.9.2012 7:18
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:21.9.2012 8:03

Tomu říkáš nepřesné číslo? Tak v něm najdi chybu.

Zkus na začátek souboru napsat speciální řádek

# -*- coding: utf-8 -*-

Také se před český string píše "u".

string=u'Příšerně žluťoučký kůň'
Nahoru Odpovědět
21.9.2012 8:03
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:21.9.2012 13:38

No přišlo mi, že je zaokrouhlené. Ale to jsem přeci neřešil - naopak udivilo mě, jak velké číslo si je schopen uchovat. C# mi již po 50tce začne blbnout - navíc zkracuje - X E +/- Y...

Problém je, že vím, jak to udělat, ale VS to prostě nebere - program se nespustí - s chybou to nejde. A definoce encodingu nic neřeší...

Editováno 21.9.2012 13:41
 
Nahoru Odpovědět
21.9.2012 13:38
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:21.9.2012 13:45

Není zaokrouhlené. Nuly na konci jsou v pořádku. Zkusil jsem i 2**1000000 a tu hromadu číslic to normálně vypsalo.

Python zvládá i komplexní čísla.

Nahoru Odpovědět
21.9.2012 13:45
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 29 zpráv z 29.