Diskuze: F#

Tvůrce

Zobrazeno 29 zpráv z 29.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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ě.
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ší...)
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.
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á.
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.org/wiki/J_Sharp
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.
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.
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#.
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...
Myslím si, že nikomu nebude vadit, pokud se do toho pustíš. Začni psát.
Však - psal bych - ale kam? Pokud tu je sekce ostatní jazyky, či tak, tak se omlouvám - jdu to zkouknout...
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
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#.
Jakmile budeš mít několik článků, David Hartinger ti pro ně založí vhodnou sekci a články přesune.
Ve stringách v indexeru byly ASCII hodnoty, ne v polích
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.
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.
Funkcionální jazyky vypadají dobře. Jen ta syntaxe F# mi připadá dost složitá.
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.
Jasně, protože F# používá také syntaxi YAML podobně jako Python. Psal jsem o jazyku Ruby a asi to nebylo z kontextu patrné.
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.
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.
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ůň'
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ší...
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.
Zobrazeno 29 zpráv z 29.