Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Petti 02. 11. 2012, 12:21:23

Název: Vybíráme programovací jazyk
Přispěvatel: Petti 02. 11. 2012, 12:21:23
V jakém programovacím jazyku by bylo podle Vás vhodné vytvořit následující zadání ?
Aktuálně prosím neberte v potaz znalost programovacích jazyků.

Vytvořte řídící aplikaci, která bude schopná číst/posílat příkazy zařízením na sériovém portu.
Přijatá data bude program ukládat do databáze MYSQL.
Veškeré informace budou dostupné prostřednictvím okenní aplikace, která poběží ve "full screen" režimu na řídícím počítači (dotykový monitor), která také umožní ovládání připojených zařízení.
Webový prohlížeč může být použit pouze pro jednoduchou dálkovou zprávu a nesmí tvořit hlavní uživatelský interface.
Vestavěná webová kamera počítače by měla sloužit jako bezpečností kamera a program by měl zvládat průběžné "snapshooty".
Program musí být plně kompatibilní pod operačním systémem CentOS.
 
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Karel Bezděda 02. 11. 2012, 12:23:44
C++
Název: Re:Vybíráme programovací jazyk
Přispěvatel: DK 02. 11. 2012, 12:25:11
C++
Python
Java
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Honza 02. 11. 2012, 14:52:00
Smalltalk!
ať je sranda :-)
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Rax 02. 11. 2012, 15:38:05
Program musí být plně kompatibilní pod operačním systémem CentOS.

C++ a hlavně to šetřílkům s CentOS a MySQL pořádně osol, protože na tom strávíš mnoho času oproti běžným podmínkám.
Název: Re:Vybíráme programovací jazyk
Přispěvatel: tadeas 02. 11. 2012, 15:52:03
Cokoliv :-) .
Název: Re:Vybíráme programovací jazyk
Přispěvatel: hugo 02. 11. 2012, 15:56:41
Osobne by som isiel do Python + niektore nizsie veci v C/C++. Python pretoze je silnejsi a dobre vie pouzivat C/C++ kod.
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Vladimír Drgoňa 02. 11. 2012, 16:07:22
Program musí být plně kompatibilní pod operačním systémem CentOS.

C++ a hlavně to šetřílkům s CentOS a MySQL pořádně osol, protože na tom strávíš mnoho času oproti běžným podmínkám.
Nechápem, aké sú pre teba bežné podmienky. Osobne by som radšej Gentoo alebo FreeBSD a postgresql, ale Java, prípadne QT alebo Gtk funguje všade rovnako a pokiaľ to nie je celé o ukladaní dát, na databáze až tak nezáleží. Určite lepšia voľba ako sa trápiť s windoze a M$ SQL.
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Rax 02. 11. 2012, 16:18:45
Nejde o to co kde funguje, ale kolik se stráví času na to aby to fungovalo, protože čas jsou peníze. Víc to rozvádět není třeba.
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Franta 03. 11. 2012, 18:01:18
Na komunikaci se sériovým portem C nebo C++. Na GUI část Javu nebo C++ a Qt případně Valu + GTK.
Název: Re:Vybíráme programovací jazyk
Přispěvatel: craftext 03. 11. 2012, 18:34:43
na komunikace c a na gui c++  ;)
Název: Re:Vybíráme programovací jazyk
Přispěvatel: vbl 03. 11. 2012, 18:44:30
na komunikace c a na gui c++  ;)

Na komunikaci bych použil taky C++, a to Boost.Asio. Psát to lowlevel je zbytečná ztráta času  :).
Název: Re:Vybíráme programovací jazyk
Přispěvatel: janci 04. 11. 2012, 08:59:45
Riesil som nieco podobne (i ked uz davnejsie), a s uspechom som pouzil C + Java (prepojene cez JNI).
Název: Re:Vybíráme programovací jazyk
Přispěvatel: eMko 04. 11. 2012, 13:09:01
Spíš se zkus podívat na JNA než na JNI. Používá se mnohem lépe. Viz http://en.wikipedia.org/wiki/Java_Native_Access
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Honza 04. 11. 2012, 14:12:24
Spíš se zkus podívat na JNA než na JNI. Používá se mnohem lépe. Viz http://en.wikipedia.org/wiki/Java_Native_Access
a jak zavolám z C, Javu přes to JNA? Aha?
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Mites 04. 11. 2012, 16:53:30
Myslím, že jedním z kritérií pro rozhodování by mělo být i to, na jaké jazyky a jaká prostředí jsi zvyklý. Mnohdy použití suboptimálního jazyka či frameworku nemusí vadit tolik, jako neznalost daného prostředí a jeho zvyků.
Název: Re:Vybíráme programovací jazyk
Přispěvatel: eMko 04. 11. 2012, 20:56:51
Spíš se zkus podívat na JNA než na JNI. Používá se mnohem lépe. Viz http://en.wikipedia.org/wiki/Java_Native_Access
a jak zavolám z C, Javu přes to JNA? Aha?

Callback
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Honza 04. 11. 2012, 21:36:24
Spíš se zkus podívat na JNA než na JNI. Používá se mnohem lépe. Viz http://en.wikipedia.org/wiki/Java_Native_Access
a jak zavolám z C, Javu přes to JNA? Aha?

Callback
Ano, ale musím si každý ten Callback napsat v Javě předem, libovolnou funkci si zavolat bohužel nemůžu...
Název: Re:Vybíráme programovací jazyk
Přispěvatel: eMko 04. 11. 2012, 21:48:50
Bohužel to je normální (a myslím, že zcela správně).

(Téměř) libovonou funkci si můžeš volat v kombinacích jako Java/Scala, Java/Clojure, C#/F#... prostě tam, kde na snadnou integraci bylo při vývoji daných platforem myšleno. Ale ani třeba u C#/F# se člověk občas nevyhne "boiler-plate" kódu nebo nějakým omezením, protože v F# chce člověk spíš pracovat s neměnnými daty a v C# s "živými" měnitelnými objekty, z čehož v praxi plyne celkem dost starostí.
Název: Re:Vybíráme programovací jazyk
Přispěvatel: D.A. Tiger 04. 11. 2012, 22:27:50
C++
Název: Re:Vybíráme programovací jazyk
Přispěvatel: craftext 05. 11. 2012, 10:15:38
Na komunikaci se sériovým portem C, na GUI C++  ;)
Název: Re:Vybíráme programovací jazyk
Přispěvatel: OMG 05. 11. 2012, 11:12:13
1. Nic z těch požadavků není věc, kterou by nezvládl prakticky kterýkoliv běžně používaný programovací jazyk. Takže odpověď bych formuloval tak, že nejvhodnější programovací jazyk je ten, který vaši programátoři dobře umí.

2. Osobně bych doporučoval použít nějaký vysokoúrovňový jazyk. Protože tohle je typická aplikace, kdy se při použití nízkoúrovňového jazyka projeví hlavně nevýhody (delší doba práce a ladění) a výhody (nižší náročnost na systémové prostředky) jsou fakticky irelevantní.

3. Z bodu 2 plyne otázka, proč tady tedy tolik lidí doporučuje C nebo C++? Zadání vypadá jako aplikace z reálného světa a nikoliv studentská hra typu "koukejte, co všechno jsem naprogramoval bez použití cizí knihovny".
Název: Re:Vybíráme programovací jazyk
Přispěvatel: MP 05. 11. 2012, 12:43:50
3. Z bodu 2 plyne otázka, proč tady tedy tolik lidí doporučuje C nebo C++? Zadání vypadá jako aplikace z reálného světa a nikoliv studentská hra typu "koukejte, co všechno jsem naprogramoval bez použití cizí knihovny".

Prorože tohle je root, doupě céčkařů, a Java je tady sprosté slovo :D
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Sten 05. 11. 2012, 13:30:05
3. Z bodu 2 plyne otázka, proč tady tedy tolik lidí doporučuje C nebo C++? Zadání vypadá jako aplikace z reálného světa a nikoliv studentská hra typu "koukejte, co všechno jsem naprogramoval bez použití cizí knihovny".

Právě protože zadání není studentská hra, ale aplikace z reálného světa ;-)
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Kojot 05. 11. 2012, 14:01:01
Můžu jen doporučit to v čem dělám. Pro toto zadání kombinace C/C++/Qt/QML.
Čtení z portu asi podle dané platformy v C/C++.
Propojení s databází pomocí Qt. Zobrazení a editace lze pohodlně pomocí jejich MVC.
Qt podporuje dotykové ovládání a gesta, ale nikdy jsem to nezkoušel. Buď QML nebo vlastní Widgety.
Pro webcam by se dala využít podpora Phonon v Qt. Ovšem i ta kamera by to musela Phonon podporovat.
Název: Re:Vybíráme programovací jazyk
Přispěvatel: marwyn 05. 11. 2012, 14:17:48
Prorože tohle je root, doupě céčkařů, a Java je tady sprosté slovo :D

Zkraťme to na "java je sprosté slovo" a bude to přesné.
Název: Re:Vybíráme programovací jazyk
Přispěvatel: PetrK 05. 11. 2012, 20:02:25
Ja kdybych dostal takovehle zadani psal bych to v scala/java, akorat bych tezko nesl zakaz ovladani pres prohlizec. Zajimalo by me, jestli ma tahle podminka opodstatneny duvod?

Jinak, taky me celkem zaskocilo jak moc lidi by se patlalo s C, tvorbu celeho projektu v C by tezko nekdo se zdravym rozumem zaplatil, zvlast kdyz tym tazatele nebudou nejaci letiti C guru ... ti by se na to asi neptali.
Název: Re:Vybíráme programovací jazyk
Přispěvatel: tuxmartin 05. 11. 2012, 21:10:43
Ja kdybych dostal takovehle zadani psal bych to v scala/java, akorat bych tezko nesl zakaz ovladani pres prohlizec. Zajimalo by me, jestli ma tahle podminka opodstatneny duvod?

Taky bych si vybral Javu.

Ovladani pres prohlizec by se teoreticky dalo obejit java appletem ;-)
Jen nevim, proc je dnes moderni blokovat java plugin v prohlizecich. Pritom flash a ruzne media player pluginy nikomu nevadi...
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Sten 05. 11. 2012, 21:53:36
Jen nevim, proc je dnes moderni blokovat java plugin v prohlizecich. Pritom flash a ruzne media player pluginy nikomu nevadi...

Třeba proto, že je to by design bezpečnostní díra jak prase?
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Franta <xkucf03/> 05. 11. 2012, 22:21:47
Třeba proto, že je to by design bezpečnostní díra jak prase?

A od Flashe se to v principu liší jak?

(na Java pluginu je aspoň sympatické, že Java je otevřená)
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Franta <xkucf03/> 05. 11. 2012, 22:23:18
akorat bych tezko nesl zakaz ovladani pres prohlizec. Zajimalo by me, jestli ma tahle podminka opodstatneny duvod?

Přiznám se, že když jsem tohle v zadání četl, napadlo mne, jestli to právě není školní úloha a jestli učitel nechce, aby se studenti naučili něco nového a zajímavého (než lepení webů, které už asi zkoušeli).
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Franta <xkucf03/> 05. 11. 2012, 22:35:34
Taky bych si vybral Javu.

Já asi taky, jako javista. Ale problém nevidím ani v tom Qt/C++ nebo GTK/Vala. Nepřijde mi to zbytečně nízkoúrovňové.

Tady to chce mít nějakou strategii a vizi, na čem chce firma stavět a držet to aspoň trochu jednotné – ať není každý projekt na jiné platformě, to se špatně udržuje a špatně se alokují lidi (je těžké najít supermany, kteří zvládají všechno, takže někteří nebudou mít co dělat a jiní nebudou stíhat).

Ovladani pres prohlizec by se teoreticky dalo obejit java appletem ;-)

Nechápu, proč to takhle „obcházet“. Applet přece běží v prohlížeči – případně ho můžeš pustit mimo, ale pak nemá smysl dělat applet a můžeš udělat normální swingovou aplikaci.

Jen nevim, proc je dnes moderni blokovat java plugin v prohlizecich. Pritom flash a ruzne media player pluginy nikomu nevadi...

Protože javovské applety obvykle neblikají, nevydávají šílené zvuky a nezobrazují reklamu a pitomé hry přes celou obrazovku. Je to smutné ale je to tak – technologie pro seriózní práci je teď ve stínu pouťové atrakce. Na druhou stranu to člověka nemusí až tak trápit – tenhle poměr se týká prohlížečů běžných konzumentů – když chceš psát interní software pro svojí firmu nebo pro zákazníky/dodavatele, tak se tam Java applet prostě nainstaluje/povolí.
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Sten 05. 11. 2012, 22:50:55
A od Flashe se to v principu liší jak?

(na Java pluginu je aspoň sympatické, že Java je otevřená)

Flash toho moc neumí, tak je limitovaný i tím, co může takový aplet napadnout a provést. Navíc třeba Flash nemá přístup do souborového systému, na rozdíl od Java apletů s JNLP.
Název: Re:Vybíráme programovací jazyk
Přispěvatel: jura 05. 11. 2012, 23:11:44
Jen nevim, proc je dnes moderni blokovat java plugin v prohlizecich. Pritom flash a ruzne media player pluginy nikomu nevadi...

Třeba proto, že je to by design bezpečnostní díra jak prase?
Můžeš to vysvětlit? Java má security manager, který umožňuje zakázat prakticky všechno. Že si to lidi nedokážou nastavit nebo povolují nesmyslná práva pro aplety rozhodně není "by design".
Název: Re:Vybíráme programovací jazyk
Přispěvatel: tany 06. 11. 2012, 06:12:12
A kolik procent uživatelů o možnosti nastavení ví, a kolik z nich to umí i nastavit ? ....
Název: Re:Vybíráme programovací jazyk
Přispěvatel: Franta <xkucf03/> 06. 11. 2012, 07:51:41
A kolik procent uživatelů o možnosti nastavení ví, a kolik z nich to umí i nastavit ? ....
Vtip je v tom, že ve výchozím nastavení je zakázané všechno* (co může být nebezpečné) a před spuštěním se to uživatele ptá, zda a co aplikaci povolí a ukazuje to, kým je aplikace elektronicky podepsána.

*) pokud tam není nějaká aktuální bezpečnostní chyba – ale ta se může objevit v každém softwaru.