Náhrada C# něčím multiplatformním

Zelenac

Re:Náhrada C# něčím multiplatformním
« Odpověď #30 kdy: 27. 05. 2016, 00:41:37 »
Coz mi prIpomina ze by bylo fajn mit pRo c++ nejaky easy to use framework pro tvrobu gui na bazi webovych technologii, protoze ruzne graficke veci typu grafy je v c++ bolest protoze na to nejsou knihovny, ale pro javascript jsou jich dve zadeke, takze jadro aplikace by bezelo hezky v c++ idelane v qt a gui by byl web browser. Nadhera.


čumil

Re:Náhrada C# něčím multiplatformním
« Odpověď #31 kdy: 27. 05. 2016, 01:11:03 »
Vtipné, nakonec budu hájit Javu.

Vite proč Javu a ne C#? Protože C# je rozšířený pouze na widlích, nikde jinde, mono je dosti problematický šmejd, takže na něj bych nespoléhal.

Co se týče rychlosti, Java je super drak. Zhruba 3x pomalejší než C/C++, a to je fakt dost dobrý na jazyk pod VM s GC.

čumil

Re:Náhrada C# něčím multiplatformním
« Odpověď #32 kdy: 27. 05. 2016, 01:16:10 »
Citace
S .NET je zbytecne ztracet cas. Proc delat s zamerne nekompatibilnim klonem, kdyz muzu delat primo s originalem.

haha, vdycky se dobre bavim jak Java evangelisti pisou zamerne nesmysly o vsech ostatnich jazycich/platformach.
Java je do ted pomaly a zastaraly jazyk. Ani neumi vytvorit typovy seznam, jen na oko do jazyka zavedla generiku a na pozadi je to kolekce objektu. Kdyby neprisel Android tak je Java uz davno mrtva. I tak zpusobuje na Androidu velke vykonnostni a pametove problemy na mobilech. Chtel bych opravdu vedet, kdo ma rad Javu. Mac lidi, kde odsuzujou uplne Garbage collectory? Tezko, Windows lidi, kde Java aplikace jsou pomale obludy s hnusnym UI? Tezko, Linux lidi? Podobne jako Mac lidi by se ji nejradeji zbavili a pouzili neco kompilovaneho do nativniho kodu.

Java je dobra akorat tak na pomale business sracky, kterych je vsude plno.
V dnesni dobe vyhrava JavaScript. V budoucnosti to bude uplne jiny jazyk.
Je pravda že někteří nekriticky vyzdvihujou Javu, to samé se ale děje u každého jazyka, s tím nic nenaděláš.

JS je podle mne v dnešní době nejvíc OOP jazyk dneška. Dědí přímo od jazyka Self (bratříček smalltalku s prototypama místo tříd).

Budoucnost možná přivane renesanci FP jazyků. Možná.

pr

Re:Náhrada C# něčím multiplatformním
« Odpověď #33 kdy: 27. 05. 2016, 09:05:30 »
A co třeba mono + QtSharp?

Daniel Kozak

Re:Náhrada C# něčím multiplatformním
« Odpověď #34 kdy: 27. 05. 2016, 10:49:29 »
Zdravím.

Zdědil jsem určitou aplikaci, kde běží několik win strojů, které komunikují s hlavním win strojem.
Všechny aplikace jsou napsány v C# - jsou to vícevlánkové aplikace (Běží hlavní server, k tomu se občas spouštějí některá další vlákna. Šlo by to však napsat i jinak, řídit to pouze nějakými eventy v jednom vlákně...), které používají TCPClient, SerialPort, timery, atd. Na hlavním stroji pak běží nějaká SQL databáze, to však není podmínkou.

Aplikace se 99% času flákají, po přijetí SerialPort dat proběhne nějaká TCP komunikace s hlavním PC, který posílá dotazy do DB a vrací odpovědi tazateli. Tazatel pak posílá data po SerialPort a tak pořád dokola. Takže je poněkud zbytečné stavět pro takovouto ptákovinu kompletní PC, platit licenci Win a tak dále...

Šel by tedy C# nahradit něčím, co by se dalo rozběhat jak na PC s Win, tak s Linuxem, tak například na RPi? Napadá mě Python. Ale nevím, jestli je použití výše zmíněných komponent tak jednoduché, jako v .NET.

Díky

Jak psali ostatni dobra volba je urcite Java. Ja osobne bych to nejspis napsal v jazyce D + vibe-d.


čumil

Re:Náhrada C# něčím multiplatformním
« Odpověď #35 kdy: 27. 05. 2016, 11:22:10 »
Zdravím.

Zdědil jsem určitou aplikaci, kde běží několik win strojů, které komunikují s hlavním win strojem.
Všechny aplikace jsou napsány v C# - jsou to vícevlánkové aplikace (Běží hlavní server, k tomu se občas spouštějí některá další vlákna. Šlo by to však napsat i jinak, řídit to pouze nějakými eventy v jednom vlákně...), které používají TCPClient, SerialPort, timery, atd. Na hlavním stroji pak běží nějaká SQL databáze, to však není podmínkou.

Aplikace se 99% času flákají, po přijetí SerialPort dat proběhne nějaká TCP komunikace s hlavním PC, který posílá dotazy do DB a vrací odpovědi tazateli. Tazatel pak posílá data po SerialPort a tak pořád dokola. Takže je poněkud zbytečné stavět pro takovouto ptákovinu kompletní PC, platit licenci Win a tak dále...

Šel by tedy C# nahradit něčím, co by se dalo rozběhat jak na PC s Win, tak s Linuxem, tak například na RPi? Napadá mě Python. Ale nevím, jestli je použití výše zmíněných komponent tak jednoduché, jako v .NET.

Díky

Jak psali ostatni dobra volba je urcite Java. Ja osobne bych to nejspis napsal v jazyce D + vibe-d.
Proč konkrétně v D ?

Daniel Kozak

Re:Náhrada C# něčím multiplatformním
« Odpověď #36 kdy: 27. 05. 2016, 11:47:10 »
Zdravím.

Zdědil jsem určitou aplikaci, kde běží několik win strojů, které komunikují s hlavním win strojem.
Všechny aplikace jsou napsány v C# - jsou to vícevlánkové aplikace (Běží hlavní server, k tomu se občas spouštějí některá další vlákna. Šlo by to však napsat i jinak, řídit to pouze nějakými eventy v jednom vlákně...), které používají TCPClient, SerialPort, timery, atd. Na hlavním stroji pak běží nějaká SQL databáze, to však není podmínkou.

Aplikace se 99% času flákají, po přijetí SerialPort dat proběhne nějaká TCP komunikace s hlavním PC, který posílá dotazy do DB a vrací odpovědi tazateli. Tazatel pak posílá data po SerialPort a tak pořád dokola. Takže je poněkud zbytečné stavět pro takovouto ptákovinu kompletní PC, platit licenci Win a tak dále...

Šel by tedy C# nahradit něčím, co by se dalo rozběhat jak na PC s Win, tak s Linuxem, tak například na RPi? Napadá mě Python. Ale nevím, jestli je použití výše zmíněných komponent tak jednoduché, jako v .NET.

Díky

Jak psali ostatni dobra volba je urcite Java. Ja osobne bych to nejspis napsal v jazyce D + vibe-d.
Proč konkrétně v D ?

Tak protoze ho znam asi nejlepe s jazyku, ktere mi na to prijdou vhodne a splnuji pozadavky. A zejmena prace s vibe-d se mi velice zalibila. Takze jsou to zejmena osobni preference, nic extra technickeho. Proste se mi ten jazyk libi vic nez napriklad java.

Zelenac

Re:Náhrada C# něčím multiplatformním
« Odpověď #37 kdy: 27. 05. 2016, 11:47:43 »

Jak psali ostatni dobra volba je urcite Java. Ja osobne bych to nejspis napsal v jazyce D + vibe-d.
Proč konkrétně v D ?

Protože má rád když ho kolegové posílají do * s nějakým D.

Realista

Re:Náhrada C# něčím multiplatformním
« Odpověď #38 kdy: 27. 05. 2016, 12:12:34 »
Zelenáč je sice vůl, ale v tomhle s ním souhlasím. Napsat zakázku v jazyce, který používá dvacet lidí v naší sluneční soustavě je na přesdržku, i kdyby to byl ten nejvychytanější jazyk na světě.

Daniel Kozak

Re:Náhrada C# něčím multiplatformním
« Odpověď #39 kdy: 27. 05. 2016, 12:47:50 »
Zelenáč je sice vůl, ale v tomhle s ním souhlasím. Napsat zakázku v jazyce, který používá dvacet lidí v naší sluneční soustavě je na přesdržku, i kdyby to byl ten nejvychytanější jazyk na světě.

Tak samozrejme v praci, kde se bude ocekavat ze to potom nekdo prebere, tak tam je samozrejme vhodne zvolit rozsirenejsi jazyk, jak jsem psal treba tu javu. Ja to myslel tak ze pokud bych neco takoveho delal pro sve potreby tak pouziji D. Jelikoz je to fajn jazyk a na hobby projekty je super.

Na druhou stranu nesouhlasim s tim ze by se jazyk D pouzival tak malo. Ano neni to nejrozsirenejsi jazyk, ale to nebylo ani go a stejne v nem zacali lide psat. To same plati pro rust. Kazdy jazyk byl v postaveni kdy nebyl nejrozsirenejsi. Samozrejme je treba vzit v uvahu ze na to jak dlouho tu jazyk D je tak se nerozsiril nejak zavratne. Takze se ani neda ocekavat nejaky zazracny boom.

Dalsiho vyhodou jazyka D je to ze i kdyz ho nepouziva tolik lidi, tak i clovek s prumernou znalosti javy, C#, C/C++ nema problem dany kod pochopit a pripadne jej upravit dle potreb.

Daniel Kozak

Re:Náhrada C# něčím multiplatformním
« Odpověď #40 kdy: 27. 05. 2016, 12:49:28 »

Jak psali ostatni dobra volba je urcite Java. Ja osobne bych to nejspis napsal v jazyce D + vibe-d.
Proč konkrétně v D ?

Protože má rád když ho kolegové posílají do * s nějakým D.

Nikdo me s nim nikam neposila, ba prave naopak vsichni kolegove co meli tu cest si jazyk D vyzkouset, pak byli nestastni kdyz museli zpet psat v kod v PHP ;).

davkol

Re:Náhrada C# něčím multiplatformním
« Odpověď #41 kdy: 27. 05. 2016, 12:56:48 »
Zelenáč je sice vůl, ale v tomhle s ním souhlasím. Napsat zakázku v jazyce, který používá dvacet lidí v naší sluneční soustavě je na přesdržku, i kdyby to byl ten nejvychytanější jazyk na světě.
Paul Graham nesouhlasí.

Realista

Re:Náhrada C# něčím multiplatformním
« Odpověď #42 kdy: 27. 05. 2016, 13:26:00 »
Daniel Kozak: Ok, to beru.

davkol: To pak vysvětluj zákazníkovi, že sice nejspíš nikoho na úpravu tvojeho deset let starého kódu v nějakém obskurním jazyce nesežene, ale když už, tak to bude Pan programátor...  8)

bejza

Re:Náhrada C# něčím multiplatformním
« Odpověď #43 kdy: 27. 05. 2016, 14:10:30 »
Ta komunikace po "sériovém portu" nejspíš znamená RS232 (+-12V). Tudíž gadgety jako raspi nebo esp8266 potřebují převodník úrovní (a teď je otázka jaké signály ta komunikace používá jestli jenom RX,TX nebo i další). Navíc ten konektor od externího zařízení má nějaký tvar (zpravidla 9pin canon) a ten je potřeba někam zastrčit (takže protikus). Celé by to mělo být asi nemělo vypadat jako chuchvalec drátů, takže krabička. Jinak jak tady padlo - esp8266 může v závislosti na výrobci a použitém FW tuhnout, totéž raspi při delším hoblování sd karty.

Pokud stávající aplikace A.exe nemá GUI, tak na linuxu tatáž aplikace spuštěná jako mono A.exe poběží bez problemů(sériový port a TCP komunikace z .NET frameworku je portovaná), stačí upravit název sériového portu v konfiguraci/jako parameter při spuštění nebo jak je to řešené - pokud to tedy není naprasáka přímo v kódu.

Jo a pokud je zákazník při výpadku služeb a) potěšen že může dopřát dodavateli hraní si s novou technologií b) nespokojen c) nasr..... d) posílá fakturu na xxx tisíc za způsobenou škodu tak od varianty b) včetně bych na to nesahal. Cena HW+OS je nic proti zbytku.

PetrM

Re:Náhrada C# něčím multiplatformním
« Odpověď #44 kdy: 27. 05. 2016, 14:12:40 »
Tak se na to podíváme:
- Má to být multiplatformní? C# nehrozí.
- Má to mít možnost jet na jednočipu? Diskvalifikace Javy. Na aktuálním projektu jsem o ní uvažoval do chvíle, než jsem se dozvěděl licenční poplatek a požadavky na CPU/FLASH.

Pokud to má být na embedded zařízení, tak jasně Cčko pro embedded non-ui část. Zbytek v Qt, C jede všude a i UI se tam dá polepit.