Má Python budoucnost?

Re:Má Python budoucnost?
« Odpověď #270 kdy: 13. 05. 2016, 08:08:58 »
onCreate :: JNIEnv -> JObject -> JObject -> IO ()
onCreate env activity _bundle = runJNISafe () env $ do
  msg <- liftIO $ do
    getNumProcessors >>= setNumCapabilities
    caps <- getNumCapabilities
    return $ "Hello World!\nRunning on " `append` pack (show caps) `append` " CPUs!"
No jo, jenže ta nečitelnost pro lidi, kteří Haskell neznají, je daná jeho odlišnými vlastnostmi od jazyků, které jsou obecně známé.

Jinak osobně taky moc nemusím třeba používání $, protože mě to nutí skákat očima několikrát zleva do prava. Za čitelnější považuju |> kde můžu číst zleva doprava (nebo shora dolů) a nemusím se vracet. Ale haskelleři to prostě mají ve zvyku a pro nás ostatní je to jenom nezvyk.


noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #271 kdy: 13. 05. 2016, 08:41:46 »
Haskell je prakticky asi jak pro koho - osobne si myslim, ze je to pouze o zpusobu vzdelavani, kde se na zacatek silne preferuji imperativni jazyky (Java, Python, Pascal). Napr. na FITu jsme si funkcionalni pristup osahali az v magisterskem, ktere bylo povazovano nekterymi prednasejicimi za nadstandard a do praxe muze student v pohode i jen s bakalarem.

Osobne si nemyslim, ze kvalita jakkoliv souvisi s popularitou. Kvalitni jazyk se totiz podle me nesnazi pretrhnout kvuli zacatecnikum a znehodnotit tak sve dalsi casti nebo cely svuj pristup. A kdyz jsme u toho, tak pokud chcete objektivne merit kvalitu/pouzitelnost a vztahnete ji i k popularite, jak presne objektivne merite popularitu? :D Podle radek kodu v produkci? Celkoveho vydelku vyvojaru pouzivaci ten jazyk? Nejake nahodne zvolene kriterium jako pocet commitu GitHubu a pocet dotazu na StackOverflow?

Prakticka pouzitelnost jazyka zase nema s popularitou IMO nic spolecneho. I uplny odpad, jako PHP, ktery je obtizne pouzitelny (poskytl jsem dost prikladu, nekolik jich dodal i Kit a ten v tom dokonce i vyviji trochu vice) a stejne se stal popularnim. Stejne tak to nerika nic o pouzitelnosti a kvalite jeho knihoven a celkove ekosystemu. (Ktery ho v pripade PHP drzi nad vodou.) To stejne mohu vztahnout na NodeJS - to ze je JavaScript nejpopularnejsi jazyk na planete z neho nedela nejlepsi jazyk a ani nejpouzitelnejsi, rozhodne ne nejak univerzalne. S chladnou jistotou bych vzdy doporucil Javu, Scalu nebo klidne i ten Haskell na back-end pro jakykoliv projekt, ktery neni "fire-and-forget" - tj. ze se ocekava dlouha doba udrzby. Proste dynamicke jazyky, stejne jako treba ty "pokrocile magie", tam podle me nepatri. Dynamicke jazyky typu Ruby se skvele hodi pro stratup, to nepopiram, projektiky jsou obecne mensi, potrebuji to mit rychle udelane a pokud to uspejeje a budou problemy (u tech uspesnych casto ctu, ze jsou), tak to proste prepisou do neceho vice se hodiciho na dany ukol (vetsinou ta Java ci C#, videl jsem uz ale i treba NodeJS, k cemuz jsem byl trosku skepticky).

S tou pajpou jsem myslel Python. V JavaScriptu je vyhoda, ze je prave ten kratky zapis closure, takze staci pribrat treba ten Lodash a muzete vesele retezit. Bohuzel v Pythonu je lambda silene dlouha na zapis, jako kdyby autor nechtel, aby se to moc pouzivalo. Coz ostatne sedi k jeho postoji o FP. To jsme ale trochu odbocili, protoze ani o JS jsem nepsal, ze je nejake skvele na FP, rozhodne ne out-of-the-box (chybi mi spousta funkci pro manipulaci s poli). Puvodne jsem to srovnaval se Scalou a tam jsou i veci, ktere umoznuji opravdu jednoduchy kod (ktery me prijde hezky, ale to je opravdu silne subjektivni), treba placeholder _.
Kód: [Vybrat]
(1 to 10).filter(_ % 2 == 0).map(_ * 10)

Re:Má Python budoucnost?
« Odpověď #272 kdy: 13. 05. 2016, 08:56:06 »
Bohuzel v Pythonu je lambda silene dlouha na zapis, jako kdyby autor nechtel, aby se to moc pouzivalo.
Co, dlouhá na zápis, to by se ještě dalo přežít. Ona ale hlavně nedělá to, co má dělat (anonymní fce). V Pythonu je to speciální konstrukce se speciálními omezeními. Čili stejná hloupost jako print. Jak mám Python docela rád, tak tyhle spešl konstrukce jsou velká vada na kráse. Aspoň ten print v 3ce už umravnili. Jak je to s lambdou nevím.

v

Re:Má Python budoucnost?
« Odpověď #273 kdy: 13. 05. 2016, 09:25:58 »
onCreate :: JNIEnv -> JObject -> JObject -> IO ()
onCreate env activity _bundle = runJNISafe () env $ do
  msg <- liftIO $ do
    getNumProcessors >>= setNumCapabilities
    caps <- getNumCapabilities
    return $ "Hello World!\nRunning on " `append` pack (show caps) `append` " CPUs!"
No jo, jenže ta nečitelnost pro lidi, kteří Haskell neznají, je daná jeho odlišnými vlastnostmi od jazyků, které jsou obecně známé.

Jinak osobně taky moc nemusím třeba používání $, protože mě to nutí skákat očima několikrát zleva do prava. Za čitelnější považuju |> kde můžu číst zleva doprava (nebo shora dolů) a nemusím se vracet. Ale haskelleři to prostě mají ve zvyku a pro nás ostatní je to jenom nezvyk.
oceňuju pokus o analýzu, ale máte to trochu blbě
($) je víceméně náhrada závorek, takže return $ 1+1 je jako return (1+1), můžete si vytvořit ten váš pipe (|>) = flip ($) a pak psát 1 |> return místo return 1, ale to teda zrovna zvyklé není (snad v žádném jazyce)

Re:Má Python budoucnost?
« Odpověď #274 kdy: 13. 05. 2016, 09:29:22 »
oceňuju pokus o analýzu, ale máte to trochu blbě
($) je víceméně náhrada závorek, takže return $ 1+1 je jako return (1+1), můžete si vytvořit ten váš pipe (|>) = flip ($) a pak psát 1 |> return místo return 1, ale to teda zrovna zvyklé není (snad v žádném jazyce)
Nevidím, co bych tam měl mít blbě. Místo

Kód: [Vybrat]
return $ "Hello World!\nRunning on " `append` pack (show caps) `append` " CPUs!"

je mi prostě subjektivně příjemnější

Kód: [Vybrat]
"Hello World!\nRunning on "
  `append` pack (show caps)
  `append` " CPUs!"
  |> return


eee

Re:Má Python budoucnost?
« Odpověď #275 kdy: 13. 05. 2016, 09:34:52 »
a) Osobne si nemyslim, ze kvalita jakkoliv souvisi s popularitou.

b) A kdyz jsme u toho, tak pokud chcete objektivne merit kvalitu/pouzitelnost a vztahnete ji i k popularite, jak presne objektivne merite popularitu? :D

c) Prakticka pouzitelnost jazyka zase nema s popularitou IMO nic spolecneho. I uplny odpad, jako PHP, ktery je obtizne pouzitelny

d) Proste dynamicke jazyky, stejne jako treba ty "pokrocile magie", tam podle me nepatri.

a) Osobně si to myslet můžeš, to je přesně to o čem píšu, je to subjektivní záležitost,kterou nelze vydávat za objektivní, jakse tu někteří snaží.

b) Stále ve stejné vyjeté koleji chybného uvažovaní. Kvalita se objektivně neměří, kvalita se subjektivně posuzuje. Měřené vlastnosti nejsou kvalitativní, ale kvantitativní.

c) Naopak, kvalitní PHP je ve své oblasti velmi dobře použitelné, což jednoznačně dokazuje jeho vysoká míra používání navzdory nedostatkům v jeho návrhu. Z toho je vidět, že ač si z čistoty návrhu někdo dělá modlu, tak v praxi to není důležité. Žádný z úspěšných jazyků nemá čistý a bezchybný návrh. Čím to asi bude?

d) Už jsme opět v oblasti subjektivních dojmů a předsudků. Dynamická povaha jazyka sama o sobě není diskvalifikující, je to vlastnost, nikoliv chyba. A že se pár lidem tato vlastnost nelíbí, co na tom. Jiným zase naopak vyhovuje. Jen mi není jasné, proč v diskusi pod dotazem, zda má Python budoucnost, se někdo snaží propagovat svůj oblíbený jazyk. Je to offtopic.

Python je výborný, kvalitní a široce uplatnitelný jazyk, jeho obliba roste, je velmi zajímavý i komerčně a myslím že neexistuje jediný důvod, proč by se někdo měl domnívat, nebo dokonce s jistotou tvrdit, že nemá budoucnost, byť někdo může mít jiné preference.

v

Re:Má Python budoucnost?
« Odpověď #276 kdy: 13. 05. 2016, 09:39:44 »
Nevidím, co bych tam měl mít blbě.

No jo, jenže ta nečitelnost pro lidi, kteří Haskell neznají, je daná jeho odlišnými vlastnostmi od jazyků, které jsou obecně známé.
Jinak osobně taky moc nemusím třeba používání $ ... Ale haskelleři to prostě mají ve zvyku a pro nás ostatní je to jenom nezvyk.

obecně známý python: return 1
obecně známé c a c++: return 1;


Fanny Chmelar

Re:Má Python budoucnost?
« Odpověď #277 kdy: 13. 05. 2016, 09:49:01 »
Citace
Žádný z úspěšných jazyků nemá čistý a bezchybný návrh. Čím to asi bude?

Jde taky o to, jak moc dojebaný ten návrh je, jestli je to ještě aspoň "good enough". Třeba v případě toho PHP už je to tak moc za hranou, že nám "fajnovkám" se z toho prostě zvedá kufr a nebudeme v tom ochotní dělat, ani kdyby to mělo dvakrát takovou popularitu jako teď.

Re:Má Python budoucnost?
« Odpověď #278 kdy: 13. 05. 2016, 09:49:54 »
obecně známý python: return 1
obecně známé c a c++: return 1;
To ale byly dvě různé věci napsané ve dvou různých odstavcích:

1. Ta nečitelnost toho ukázkového kódu je daná tím, že se tam musí operovat s monádami, což je důsledek toho, že je Haskell lazy. Kdyby nebyl (jako třeba Elixir), tak by se prostě psaly příkazy pod sebe jako v céčku a žádné složité šipky jednoduché dvojité doleva doprava by se nekonaly. Takže těžko srovnávat čitelnost zápisu, který dělá daleko víc ("programovatelný středník") s kódem, který dělá míň ("neprogramovatelný středník" v ne-lazy jazycích).

2. Mně osobně navíc není sympatické $

Re:Má Python budoucnost?
« Odpověď #279 kdy: 13. 05. 2016, 09:52:59 »
důsledek toho, že je Haskell lazy
Teda respektive ne jenom lazy, ale taky referenčně transparentní, když už jsme u toho chytání za slovíčka :)

eee

Re:Má Python budoucnost?
« Odpověď #280 kdy: 13. 05. 2016, 09:59:12 »
Citace
Žádný z úspěšných jazyků nemá čistý a bezchybný návrh. Čím to asi bude?

Jde taky o to, jak moc dojebaný ten návrh je, jestli je to ještě aspoň "good enough". Třeba v případě toho PHP už je to tak moc za hranou, že nám "fajnovkám" se z toho prostě zvedá kufr a nebudeme v tom ochotní dělat, ani kdyby to mělo dvakrát takovou popularitu jako teď.

O tom, jestli je něco dostatečně dobré, efektivně a poměrně objektivně rozhoduje "trh" a ten v případě PHP pravil, že ano. A komu se to nelíbí, ať si ...

Re:Má Python budoucnost?
« Odpověď #281 kdy: 13. 05. 2016, 10:02:23 »
...
obecně známý python: return 1
obecně známé c a c++: return 1;

To je snad jen o tom, že v (nejen) c je středník (povinný) oddělovač příkazů; nebo ne?

Fanny Chmelar

Re:Má Python budoucnost?
« Odpověď #282 kdy: 13. 05. 2016, 10:03:56 »
Citace
O tom, jestli je něco dostatečně dobré, efektivně a poměrně objektivně rozhoduje "trh" a ten v případě PHP pravil, že ano. A komu se to nelíbí, ať si ...

Voliči pravili, že Zeman je vhodným kandidátem na prezidenta. Diváci Šlágr TV rozhodli, že dechovky hrané na synťáky z tržnice jsou ta nejlepší hudba pod sluncem. Diváci pravidelně rozhodují, že Ordinace v růžové ulici je to nejlepší, co můžete vidět na obrazovce. Váš svět je sice strašně jednoduchý, nemusíte se namáhat s přemýšlením, ale zároveň je to svět dost omezený.

Re:Má Python budoucnost?
« Odpověď #283 kdy: 13. 05. 2016, 10:04:46 »
To je snad jen o tom, že v (nejen) c je středník (povinný) oddělovač příkazů; nebo ne?
Nejen. V Haskellu máš ještě curryfikaci, která to komplikuje. V jiných jazycích musíš explicitně použít lambdu, takže je jasné, že to je jeden parametr a ne dva. V Haskellu to nepoznáš, takže musíš závorkovat. A protože závorkování je opruz, zavedl se $ jako "definitivní závorka" ;)

Re:Má Python budoucnost?
« Odpověď #284 kdy: 13. 05. 2016, 10:09:15 »
To je snad jen o tom, že v (nejen) c je středník (povinný) oddělovač příkazů; nebo ne?
Nejen. V Haskellu máš ještě curryfikaci, která to komplikuje. V jiných jazycích musíš explicitně použít lambdu, takže je jasné, že to je jeden parametr a ne dva. V Haskellu to nepoznáš, takže musíš závorkovat. A protože závorkování je opruz, zavedl se $ jako "definitivní závorka" ;)

Tebou popisované věci znám jen z rychlíku a o proto o tom ani nepolemizuju, v tom nejsme vepři.
Já jen nějak nepochytil, co tím (těma returnama) chtěl autor říci.