Avatar
matesax
Redaktor
Avatar
matesax:

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
Redaktor
Avatar
Odpovídá na matesax
Kit:

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
Redaktor
Avatar
matesax:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

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
Redaktor
Avatar
Odpovídá na Kit
matesax:

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
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

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
Redaktor
Avatar
Odpovídá na matesax
Kit:

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
Redaktor
Avatar
Odpovídá na Kit
matesax:

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
Redaktor
Avatar
Odpovídá na matesax
Kit:

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
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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
Redaktor
Avatar
Odpovídá na matesax
Kit:

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
Redaktor
Avatar
Odpovídá na Kit
matesax:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Jakmile budeš mít několik článků, David Čápka 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 Čápka
Tým ITnetwork
Avatar
Odpovídá na David Čápka
David Čápka:

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

Nahoru Odpovědět 18.9.2012 21:59
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

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
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

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
Darkmagic
Redaktor
Avatar
Darkmagic:

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

Nahoru Odpovědět 19.9.2012 10:17
Nejhorší je, když myslíš, že víš
Avatar
Kit
Redaktor
Avatar
Odpovídá na Darkmagic
Kit:

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
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

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
Redaktor
Avatar
Odpovídá na Kit
matesax:

Ale tady také není třeba.

 
Nahoru Odpovědět 19.9.2012 16:30
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

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
Redaktor
Avatar
Odpovídá na Kit
matesax:

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
Redaktor
Avatar
Odpovídá na Kit
matesax:

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
Redaktor
Avatar
Odpovídá na Kit
matesax:

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

 
Nahoru Odpovědět 21.9.2012 7:18
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

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
Redaktor
Avatar
Odpovídá na Kit
matesax:

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
Redaktor
Avatar
Odpovídá na matesax
Kit:

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.