Jaký jazyk bych se měl učit?

Re:Jaký jazyk bych se měl učit?
« Odpověď #75 kdy: 30. 05. 2022, 19:37:02 »
Pro zacatek bych doporucoval JavaScript, ma i objektove rozsireni, da se i na serveru, dobre pracuje s daty strukturovanymi v tzv. JSON. Na klientu staci webovy browser a nejaky editor, treba Visual Studio Code.
Na webu se da klidne zacit i s PHP, na serveru umi to stejne. Chcete tvorit pro web? Nebo snad pro android? Tam je lepsi java nebo kotlin.
Pro lokalni aplikace bude mozna dobre zacit v pythonu.
Vlastne vsechny ty jazyky umi dost podobne veci, jenom se lisi cilova platforma/prostredi. Zajimave to bude az budete mit nejakej napad, co chcete zrealizovat. Pak uz se vic vyjasni, v cem to delat...


Re:Jaký jazyk bych se měl učit?
« Odpověď #76 kdy: 30. 05. 2022, 21:31:52 »
Pro zacatek bych doporucoval JavaScript, ma i objektove rozsireni

co to znamena? Javascript je od zacatku plne objektovy, tzn. vse je objekt. Narozdil napriklad od Javy nebo C++, kde jsou vedle objektu i primitivni typy.

Don.J

Re:Jaký jazyk bych se měl učit?
« Odpověď #77 kdy: 30. 05. 2022, 22:04:40 »
Rád bych jenom přidal mou zkušenost, že co se týče C# je to úplně to samé. Přecházel jsem z Nette do WebForm aplikace, a připadal jsem si jako když jsem v minulém století.

Tak to WebForm by dost vysvětlovalo... Ale tuším, že to bude hodně stará zkušenost, protože to už je opravdu zastaralá technologie. Posledních plácnu 10 let se v MS tlačí MVC, případně MVVC apod. což je o hodně lepší.

Ale pobavme se (zábava): https://www.youtube.com/watch?v=FcOYHNWMJ6A prostě každý jazyk má své :)

BoneFlute

  • *****
  • 1 987
    • Zobrazit profil
Re:Jaký jazyk bych se měl učit?
« Odpověď #78 kdy: 31. 05. 2022, 00:04:37 »
Mě trochu rozčarovalo, že to rozbíjení je všude. V Pythonu, Javascriptu, Rustu, Haskellu. Otázka je, co se s tím dá.

Rust jako takový rozbíjí zpětnou kompatibilitu jen napříč edicemi, a vždy je možné zůstat u starší edice jazyka. Navíc je možné kombinovat edice, takže používat 2021 edition knihovnu v 2018 edition kódu není problém.

Co se týče knihoven, na semver crimes tak často nenarážím, ale občas se stane, že někdo omylem rozbije interface v minor verzi - zrovna minulý týden jsme „donutili“ jednu knihovnu ke stažení nové verze, omylem rozbili api. S ohledem na přísnou typovost jazyka je to zpravidla opravdu lehké odhalit, aniž by se rozbil kód v produkci.
Jazyk jako takovej to s těmi edicemi má moc fikaně vymyšlený. O tom se vůbec nebavím. (A ty stesky na to jak PHP rozbíjí kompatabilitu je taky jen takové plácání - to nemám zájem rozvíjet.)

Bavíme se o knihovnách. Jsem se třeba hodinu trefoval do správné verze combine a vůbec to nebylo zábavné.

BoneFlute

  • *****
  • 1 987
    • Zobrazit profil
Re:Jaký jazyk bych se měl učit?
« Odpověď #79 kdy: 31. 05. 2022, 00:13:02 »
Mě trochu rozčarovalo, že to rozbíjení je všude. V Pythonu, Javascriptu, Rustu, Haskellu. Otázka je, co se s tím dá.

Tak ok, ja to chapu - proste vydaji novou verzi jazyka/knihovny/featury, ktera neco dela lepe/opravuje/etc... za predpokladu, ze se vytvori nejaky BC break. To je proste evoluce. Ale aby v jedny verzi neco pridali, v druhy to predelali a ve treti to zas odstranili, to jsem uz taky zazil (ne u jazyka, ale treba u knihovny)
Je to tak. Otázka je co se s tím dá dělat?

Mě trochu rozčarovalo, že to rozbíjení je všude. V Pythonu, Javascriptu, Rustu, Haskellu. Otázka je, co se s tím dá.

Prinejmensim semanticky verzovat. A vydavat seznamy doporucenych/kvalitnich knihoven pro dany jazyk. Myslim, ze oboje se do jiste miry deje.
Určitě.

A tím se dostáváme k pointě: to nesouvisí od jazyka 1). Kašlat na zpětnou kompatabilitu můžou tam i tam. Flákat knihovny můžou tam i tam. Jediné, co by jazyk IMHO mohl nějak ovlivnit je jaké druhy programátorů přitahuje 2).

1/ Znám jedinou výjimku - Elm
2/ Samozřejmě pak ještě jazyk může ovlivnit druh chyb, který pustí. V Javascriptu můžete vytvořit totálně zbořenou knihovnu, v C# to není o mnoho lepší. V Rustu, Haskellu to bude spíš něco s tou nekompatabilitou - ale stejně můžete usera naštvat.


BoneFlute

  • *****
  • 1 987
    • Zobrazit profil
Re:Jaký jazyk bych se měl učit?
« Odpověď #80 kdy: 31. 05. 2022, 00:29:02 »
Rád bych jenom přidal mou zkušenost, že co se týče C# je to úplně to samé. Přecházel jsem z Nette do WebForm aplikace, a připadal jsem si jako když jsem v minulém století.

Tak to WebForm by dost vysvětlovalo... Ale tuším, že to bude hodně stará zkušenost, protože to už je opravdu zastaralá technologie. Posledních plácnu 10 let se v MS tlačí MVC, případně MVVC apod. což je o hodně lepší.
To jsem si trochu naběhl. Ten kód je to možná starej, ale zkušenost je to aktuální. Když pominu skutečnost, že koukám kolegům v C# na ruce a sleduju jejich skill, tak zajímavé je hlavně to, že spravuju dva projekty zároveň - jeden v Nette a jeden v nějakém tom MS vynálezu. Nette je sice taky starej koncept, ale postupně se aktualizuje a vylepšuje, jsme na nějaké verzi 2.4. (latest je 3.0) To, jak se chovají kolegové k těm svejm projektům v C#, ... v tom je ta pointa. Když jsem se přihlásil na tuto pozici, tak jsem chtěl hlavně zkušenost s moderními technologiemi. Jsme na net48, což je nějaký C# 7 (latest je C#10). Čekal jsem prostě víc, vzhledem k tomu, jak se C#pisti prsatí...

Aktuální dojem který mám z aktuálního C# je daleko horší, než můj dojem a vytržení z Haskellu před deseti lety. Kde je teda zatraceně ten vývoj?

Don.J

Re:Jaký jazyk bych se měl učit?
« Odpověď #81 kdy: 31. 05. 2022, 07:52:12 »
To jsem si trochu naběhl. Ten kód je to možná starej, ale zkušenost je to aktuální. Když pominu skutečnost, že koukám kolegům v C# na ruce a sleduju jejich skill, tak zajímavé je hlavně to, že spravuju dva projekty zároveň - jeden v Nette a jeden v nějakém tom MS vynálezu. Nette je sice taky starej koncept, ale postupně se aktualizuje a vylepšuje, jsme na nějaké verzi 2.4. (latest je 3.0) To, jak se chovají kolegové k těm svejm projektům v C#, ... v tom je ta pointa. Když jsem se přihlásil na tuto pozici, tak jsem chtěl hlavně zkušenost s moderními technologiemi. Jsme na net48, což je nějaký C# 7 (latest je C#10). Čekal jsem prostě víc, vzhledem k tomu, jak se C#pisti prsatí...

Aktuální dojem který mám z aktuálního C# je daleko horší, než můj dojem a vytržení z Haskellu před deseti lety. Kde je teda zatraceně ten vývoj?
Tak tohle už chápu. .NET 4.8 byl vydán 18.4.2019, to už MS začínal tlačit multiplatformní .NET Core a "plnotučný" NET frame začal tlumit.
Aktuálně je .NET (Core) 6 s podporou C#10. Pro konverzi větších projektů ze 4.8 na Core 6 je potřeba čas a koule, některé věci jsou tam prostě jinak. Z pohledu managementu, který tomu nerozumí, jsou to jen náklady navíc bez přínosu (vždyť to na té 4.8 funguje, že?).

 Ale na druhou stranu, je to aspoň .NET4.8. mohl to být taky 3.5 :)

Re:Jaký jazyk bych se měl učit?
« Odpověď #82 kdy: 31. 05. 2022, 11:34:11 »
Pro zacatek bych doporucoval JavaScript, ma i objektove rozsireni

co to znamena? Javascript je od zacatku plne objektovy, tzn. vse je objekt. Narozdil napriklad od Javy nebo C++, kde jsou vedle objektu i primitivni typy.

jo omlouvam se za zmateni, mel jsem na mysli tridy klasicky pomoci class ve verzi ES6

BoneFlute

  • *****
  • 1 987
    • Zobrazit profil
Re:Jaký jazyk bych se měl učit?
« Odpověď #83 kdy: 31. 05. 2022, 13:08:41 »
To jsem si trochu naběhl. Ten kód je to možná starej, ale zkušenost je to aktuální. Když pominu skutečnost, že koukám kolegům v C# na ruce a sleduju jejich skill, tak zajímavé je hlavně to, že spravuju dva projekty zároveň - jeden v Nette a jeden v nějakém tom MS vynálezu. Nette je sice taky starej koncept, ale postupně se aktualizuje a vylepšuje, jsme na nějaké verzi 2.4. (latest je 3.0) To, jak se chovají kolegové k těm svejm projektům v C#, ... v tom je ta pointa. Když jsem se přihlásil na tuto pozici, tak jsem chtěl hlavně zkušenost s moderními technologiemi. Jsme na net48, což je nějaký C# 7 (latest je C#10). Čekal jsem prostě víc, vzhledem k tomu, jak se C#pisti prsatí...

Aktuální dojem který mám z aktuálního C# je daleko horší, než můj dojem a vytržení z Haskellu před deseti lety. Kde je teda zatraceně ten vývoj?
Tak tohle už chápu. .NET 4.8 byl vydán 18.4.2019, to už MS začínal tlačit multiplatformní .NET Core a "plnotučný" NET frame začal tlumit.
Aktuálně je .NET (Core) 6 s podporou C#10. Pro konverzi větších projektů ze 4.8 na Core 6 je potřeba čas a koule, některé věci jsou tam prostě jinak. Z pohledu managementu, který tomu nerozumí, jsou to jen náklady navíc bez přínosu (vždyť to na té 4.8 funguje, že?).

 Ale na druhou stranu, je to aspoň .NET4.8. mohl to být taky 3.5 :)

Tak sem tlač info o tom co je v C#10 super. Mě bohužel při pročítání What's new in C# 10 vůbec nic nezaujalo. Při prohlížení projektů napsaných v posledním NetCore taky nic moc. Jako neříkám, že je to neschopnej jazyk. Pár věcí je na něm hezkejch. Jen to není žádný zázrak.

Ale taky to může být jen můj problém. Hoď sem nějaký nadšení :-)

To třeba F# nebo TypeScript, tam architekti z MS opravdu zafrajeřili IMHO.

Don.J

Re:Jaký jazyk bych se měl učit?
« Odpověď #84 kdy: 31. 05. 2022, 21:32:37 »
Tak sem tlač info o tom co je v C#10 super. Mě bohužel při pročítání What's new in C# 10 vůbec nic nezaujalo. Při prohlížení projektů napsaných v posledním NetCore taky nic moc. Jako neříkám, že je to neschopnej jazyk. Pár věcí je na něm hezkejch. Jen to není žádný zázrak.

Ale taky to může být jen můj problém. Hoď sem nějaký nadšení :-)

To třeba F# nebo TypeScript, tam architekti z MS opravdu zafrajeřili IMHO.

Tak když koukám na F# tak cítím silnej zápach Visual Basicu :) nemůžu si pomoct :D
TypeScript jako jo... dobrej způsob jak udělat trochu typovej pořádek v JavaScriptovym netypovym fujtajblu, leč na mé projekty je to overkill.

V C#10 se některých věcech inspirovali u Kotlinu viz. třeba https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/switch-expression ale je fakt, že většinu toho, co používám navíc oproti C#7 přidali v 8 a 9, jako třeba
Kód: [Vybrat]
List<string> x = new();
což se mi osobně líp čte.

Nicméně nevím, kam chceš, aby jazyk zašel... Cool program DelejCoChci(); na jeden řádek prostě furt ještě není úplně na pořadu dne... Ikdyž nějaké pokusy o AI, které na nakódí co chceš už jsou...

BoneFlute

  • *****
  • 1 987
    • Zobrazit profil
Re:Jaký jazyk bych se měl učit?
« Odpověď #85 kdy: 31. 05. 2022, 22:27:52 »
Tak sem tlač info o tom co je v C#10 super. Mě bohužel při pročítání What's new in C# 10 vůbec nic nezaujalo. Při prohlížení projektů napsaných v posledním NetCore taky nic moc. Jako neříkám, že je to neschopnej jazyk. Pár věcí je na něm hezkejch. Jen to není žádný zázrak.

Ale taky to může být jen můj problém. Hoď sem nějaký nadšení :-)

To třeba F# nebo TypeScript, tam architekti z MS opravdu zafrajeřili IMHO.

Tak když koukám na F# tak cítím silnej zápach Visual Basicu :) nemůžu si pomoct :D
TypeScript jako jo... dobrej způsob jak udělat trochu typovej pořádek v JavaScriptovym netypovym fujtajblu, leč na mé projekty je to overkill.

V C#10 se některých věcech inspirovali u Kotlinu viz. třeba https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/switch-expression ale je fakt, že většinu toho, co používám navíc oproti C#7 přidali v 8 a 9, jako třeba
Kód: [Vybrat]
List<string> x = new();
což se mi osobně líp čte.

To já to píšu naopak. IMHO to dává větší smysl.
Kód: [Vybrat]
var xs = new List<string>();

Každopádně to je nic. To není vůbec zajímavé.

Nicméně nevím, kam chceš, aby jazyk zašel... Cool program DelejCoChci(); na jeden řádek prostě furt ještě není úplně na pořadu dne... Ikdyž nějaké pokusy o AI, které na nakódí co chceš už jsou...
To zní, jako kdyby C# byl vrchol toho, co jde z jazyka vytřískat. Což jako fakt ne. Když to porovnám se Scalou, Rustem, nebo i tím starým Haskellem, tak je C# takovej ubožáček konzervativní.

Re:Jaký jazyk bych se měl učit?
« Odpověď #86 kdy: 31. 05. 2022, 23:21:35 »
V cem je typescript tak skvely? Nejaka konkretni featura, ktera jinde neni?

Re:Jaký jazyk bych se měl učit?
« Odpověď #87 kdy: 01. 06. 2022, 10:18:04 »
... Kdyby jejich integrační testy používaly danou část rozhraní, rozbily by se, ale bohužel, to nebyl ten případ.

Otázka je, či by si uvedomil, že sa testy rozbili kvôli tomu, že zmenil verejné rozhranie alebo či by tie testy upravil, aby úspešne prebehlo zostavenie.

Možno by to skôr chcelo jasný proces pri kontrole potvrdzovania zmien v súboroch, ktoré sú súčasťou verejného rozhrania vrátane nejakého varovania.

L..

  • ****
  • 310
    • Zobrazit profil
    • E-mail
Re:Jaký jazyk bych se měl učit?
« Odpověď #88 kdy: 01. 06. 2022, 10:26:22 »
V cem je typescript tak skvely? Nejaka konkretni featura, ktera jinde neni?

Pokud bych měl vypíchnout jednu featuru, tak by to byl duck typing a s tím související typová aritmetika.

Ale hlavní důvod, proč TS mám tak rád je v jeho elegantním a vyváženém designu. Věci dávají smysl, dělá to co má, není to overbloated...

jano6

Re:Jaký jazyk bych se měl učit?
« Odpověď #89 kdy: 01. 06. 2022, 22:40:30 »
Citace
Tak když koukám na F# tak cítím silnej zápach Visual Basicu :) nemůžu si pomoct :D

Visual Basic a F#? Nič iné ich nespája, len že sú .NET jazyky.

Citace
Když to porovnám se Scalou, Rustem, nebo i tím starým Haskellem, tak je C# takovej ubožáček konzervativní.

Problém je, keď porovnávame športové auto s rodinným autom. Úlohou rodinného auta je mať priestor, kam sa všetky decká zmestia, aby bolo bezpečné a odolné. Nie aby jazdilo rýchlo a bolo elegantné.
C# je podľa mňa výborný business jazyk. A porovnávať ho treba s podobnými business jazykmi, do ktorých by som osobne zahrnul Javu, C++ a asi aj Kotlin. Ja napríkad veľmi kvitujem v posledných verziách C# automatické importy, koniec nutnosti odsadzovania pri menných priestoroch, rekordy (ktoré aj fungujú) a hlavne top-level statements, teda možnosť tvoriť kód bez nutnosti public classs/static void Main. Každým rokom prídu nejaké vychytávky, chlapci sa fakt snažia.

Citace
Kód: [Vybrat]
var xs = new List<string>();

Ja to takto tiež preferujem.

Kód: [Vybrat]
Revenue[] revenues =
{
    new (1, "Q1", 2340),
    new (2, "Q1", 1200),
    new (3, "Q1", 980),
    new (4, "Q2", 340),
    new (5, "Q2", 780),
    new (6, "Q3", 2010),
    new (7, "Q3", 3370),
    new (8, "Q4", 540),
};

var res = from revenue in revenues
          group revenue by revenue.Quarter
          into g
          where g.Count() == 2
          select new { Quarter = g.Key, Total = g.Sum(c => c.Amount) };


foreach (var line in res)
{
    Console.WriteLine(line);
}

record Revenue(int Id, string Quarter, int Amount);

To new má pekné uplatnenie pri tvorbe objektov v kolekciách, tak ušetrí dosť zbytočného opakovania.
Spolu s LINQ a rekordami je moderný C# fakt príjemný.