Newsgroup: it.lavoro.informatica
Titolo: Cosa fareste voi, dovendo scegliere una tecnologia?

Ciao a tutti! :)
Mi piacerebbe conoscere il vostro parere in merito alla seguente
questione:
supponiamo che vi troviate a dover scegliere una tecnologia da
utilizzare per il seguente scopo: sviluppo software di controllo per
sistema automatizzato (controllo motori passo passo, strumenti di
misura, power meter, eccetera), e dobbiate scegliere una tecnologia
sulla quale avete la possibilità di rafforzare considerevolmente il
vostro skill. Quale scegliereste come ambiente di sviluppo e perché?
1. Visual Studio 2010
2. Java
3. Python
Premessa:
a. in Java e Visual Studio (C#) ho già realizzato cose analoghe, ma
non fino al livello di complessità che si presenta ora, con questo
progetto; sarebbe quindi l'occasione di approfondire una delle
precedenti tecnologie in modo considerevole
b. l'opzione LabView è stata messa da parte, per una questione di
costi (si hanno le licenze VisualStudio, Java sapete com'è per le
licenze;
c. Smanettando le offerte di lavoro in Europa, Java Developer e C#
Developer competono quasi sullo stesso piano (parliamo di developer in
generale e non legato principalmente al web)
Insomma, cari che-come-lottate-in-questo-perfido-mondo :) voi cosa
fareste?
Luca

 fareste?
ci rivolgeremmo a qualcuno piu' intelligente (di te) ?


C'è sempre qualcuno più intelligente di te ;)
Luca

 fareste?
Svilupperei in una delle tre più diffuse piattaforme per...  controllo
motori passo passo, strumenti di
misura, power meter, eccetera.

 passo, strumenti di misura, power meter, eccetera),
QNX Momentics (Eclipse)
-- 
DES

 DES
Grazie "Digito ergo sum" :) per il preziosissimo consiglio. Ignoravo
completamente l'esistenza di questa cosa. Grazie di cuore :)
Luca


Ciao Equinozio, mi dispiace questa tua risposta "criptica", visto che
l'ultima volta che avevo postato mi avevi risposto in modo preciso e
utile. :|
Voglio precisare che non ho nessuna intenzione di violare le
netiquette, semplicemente chiedo qui perché in passato, è proprio qui
che ho letto i punti di vista più interessanti e competenti, a
differenza di quanto accade su alcuni ng "tecnici".
Luca

 utile. :|
Che criptica ?
Allora decripto : dovendo entrare in un ambito specifico e
particolare, dove l'interfaccia hardware ha una grande importanza,
sceglierei le piattaforme (piattaforme non linguaggio) più diffuse per
quel particolare lavoro. Non credo che java e c# siano i linguaggi più
adatti per muovere un passo passo, ma non lo so, potrei sbagliarmi.


Ah ok, Grazie! Avevo preso in considerazione questa possibilità, ma
ero rimasto su quei linguaggi perchè, i nuovi motori, strumenti,
eccetera, hanno tutti un'uscita usb o, meglio ancora, un'uscita di
rete, (pilotabile con cavo di rete, insomma) e relativo driver con cui
connetterli al Pc.
Diciamo che volevo rafforzarmi o in c# WPF o in Java (Swing AWT),
visto che, a livello di comandi e collegamenti, oggi gli strumenti
sono più "versatili" rispetto, ad esempio a 8 anni fa. Grazie
comunque!
:)
Luca

 3. Python
Nessuna di queste.
Come mai questa lista e non qualcosa di realmente adatto al lavoro da
fare ?
C'ya
  STeve


Ciao Steve,
perché "la cosa" più adatta sarebbe labview, ma si vorrebbe
analizzare, prima, la possibilità di sfruttare quello che si ha
(inteso come licenze e conoscenze).
Le conoscenze su labview ci sono, si vuole vedere se si può evitare,
per ora, di comprarlo.
Ciao!
Luca

 wrote:

Dimenticavo Stefano... un tuo parere sarebbe moooooolto ma moooooolto
gradito
;)
Ciao!
Luca

 ;)
:-) Dati insufficienti per una risposta.
Da alcuni post sembra che tu voglia usare "moduli" che fanno il
lavoro, es. controllare un motore passo passo.
Con queste premesse, anche un Visual Studio potrebbe forse fare il
lavoro, forse.
Se devi fare gestione basso livello nessuna delle piattaforme nella
lista IMHO vanno bene, labview non lo conosco ma presumo si basi
sempre su moduli indipendenti come attuazione/acquisizione.
Se proprio dovessi scegliere tra le piattaforme nella tua lista,
sceglierei Java turandomi il naso :)
Tra tutte e' "forse" quella che piu' permette di gare certi lavori,
anche se appunto io non la userei comunque.
Per fare una scelta e' necessario sapere nel dettaglio cosa si vuole
fare, quanto budget si ha a disposizione, quanto tempo si ha ed
eventuali limiti.
Di sicuro non si deve partire con una lista ristretta di opzioni.
C'ya
  STeve


Grazie Stefano per la risposta precisa e articolata.
L'idea è quella dei moduli. come hai detto tu; per il resto (e per
quello che deve fare:
scatti angolari di 45 gradi!) anche il motore passo passo si pensa di
gestirlo in questo modo.
Sono strumenti di misura più che altro (misurano campi elettrici) ai
quali si inviano i comandi per misurare e si leggono le misure fatte.
Strumenti che si connettono con porte usb, o porte TCP/IP e per i
quali esistono dei software che girano sotto windows e che
negestiscono queste caratteristiche (quindi qualcuno l'ha fatto :))
L'unica cosa che mi spaventa sono i generatori di segnale con porte
IEEE 488 (mai sentita e il cui cavo mette un po' soggezione :)).
Senza voler carpire i tuoi segreti e il tuo know-how. Un nome (anche
vago) di una cosa che useresti tu? Ho letto alcune cose che hai
scritto riguardo il campo dell'automazione e so che sei
particolarmente ferrato.
Ciao comunque :)
Luca

 sono più "versatili" rispetto, ad esempio a 8 anni fa. Grazie
Puoi dare un'occhiata qui
http://www.microsoft.com/robotics/

 particolarmente ferrato.
Non e' questione di segreti o know-how, io di solito opero piu' a
livello di moduli che di gestione degli stessi, per quello quando
sento parlare di "gestire qualcosa" e ci vedo associate cose come
"Visual Studio" scuoto sconsolato la testa.
La scelta della piattaforma da usare in genere (per l'area in cui
opero) dipende piu' dall'hardware che si sceglie piuttosto che un
particolare linguaggio.
In genere vado di C o C++ quando va di lusso.
In soldoni, se mi dicessero di fare un accrocchio per gestire I/O,
motori, acquisizione dati, partirei su una scheda embedded con Linux.
Il tipo della scheda dipende da quanto vogliono spendere.
In genere con la scheda puoi gia' fare controlli e acquisizioni
dirette.
Quindi metterei in piedi un bel sistemino  con vari processi che fanno
il lavoro, es. un processo di controllo motori, un processo di
acquisizione, ecc.
Per operazioni critiche affiancherei dei moduli ad hoc alla scheda, ma
con quello che trovi sul mercato le "operazioni critiche" devono
proprio essere particolari (es. gestire contemporaneamente 30 flussi
primari in tdm con hdlc).
Da quanto mi dici una qualsiasi schedina embedded standard con ARM
basta e avanza.
Il tutto lo farei in C o C++, magari con Gtk o Qt se serve feedback
grafico.
C'ya
  STeve

 
http://www.microsoft.com/robotics/
ROTFL ! :-)


Grazie Steve, non so come ringraziarti: sei stato preciso e
completissimo (tra l'altro mi hai riportato alla memoria una lezione
di Controllo Digitale in cui un assistente diceva proprio quello che
hai detto tu (insegni? :)). Fa sempre piacere incontrare connazionali
così preparati e qui ce ne sono! :)
Tra l'altro ho provato a cliccare su ubn tuo vecchio blog e non
funziona più, forse lo hai abbandonato. Da quello che ho capito non
lavori qui in Italia, del resto tutti i miei colleghi più bravi sono
emigrati purtroppo: Stati Uniti, Regno Unito, Germania.
Vabbè... non mi dilungo per non andare fuori tema. Comunque grazie
ancora per le preziosissime indicazioni! :)
Luca

STeve wrote:

concordo. 

 fare ?
azzardo un "perche' non ha la piu' pallida idea di quello che sta
facendo?" :)
Qualcuno lo fermi prima che faccia danni seri...

 Qualcuno lo fermi prima che faccia danni seri...
Senza andare sul personale, che lascia il tempo che trova, direi
invece che il thread potrebbe essere un ottimo spunto per capire
perche' si diffonde sempre piu' l'idea che per fare qualcosa vada bene
uno strumento nato per fare altre cose, anziche' usare qualcosa di
piu' classico come approccio ma sicuro e collaudato.
Oddio, un motivo che mi viene in mente e' perche' c'e' sempre piu'
gente che conosce un determinato strumento piuttosto che quello che
serve per fare un lavoro.
Poi sicuramente c'e' l'idea che con alcuni strumenti "si fa prima",
approccio che pero' IMHO ci sta portando sempre di piu' ad avere
prodotti di bassa qualita', ingombranti, lenti, bacati e che
necessitano di sempre piu' potenza.
E ovviamente, fare le cose BENE richiede piu' tempo e costa di piu'.
Checche' ne dica il marketing e i commerciali, le cose che vanno bene
richiedono tempo per essere fatte, tempo per essere collaudate e
applicate.
Se la cosa puo' andare bene nel mercato PC e mobile, nell'embedded
classico io lo vedo come un'eresia.
Sicuramente e' perche' sono vecchio ormai, ma onestamente mi sentirei
MOLTO a disagio a sapere (ad esempio) che controllori in ambienti
critici sono gestiti in Java (ad esempio) piuttosto che qualcosa in
visual quaicos !!!
Ad esempio, Luca ha menzionato l'IEEE 488. Quello e' un protocollo
nato e pensato per gestire strumenti di misura. Ha richiesto un bel
po' di tempo per la sua stesura e purtroppo solo pochi strumenti
l'hanno effettivamente usato (HP in primis).
Ma sistemi basati su quello sono delle rocce. L'IEEE 488 non e' nato
per fare il caffe', o gestire un network TCP/IP. E' nato per gestire
strumenti di misura e catturare dati. Ha richiesto un bel po' di tempo
di messa a punto ma appunto, e' una roccia.  Se qualcuno lo volesse
gestire in visual studio onestamente avrei seri problemi a restare
serio :)
Molto piu' seriamente, mi preoccupa il trend sempre piu' marcato del
"tutto subito in modo piu' facile da fare" perche' abbassa sempre di
piu' le nostre aspettative di qualita'.
Mi e' capitato di giochicchiare con qualche tablet (no, non iPad
purtroppo) e sono belli, con Android, Java, ecc., bello, ma ogni tanto
ci sono vistosi rallentamenti, a volte un'applicazione si inchioda ...
poco male, la si riavvia ... ma questa "qualita'" in campo embedded e'
quanto meno disastrosa e IMHO inacettabile.
Strumenti pensati per ambienti non critici e non a rischio sono quanto
meno deleteri se applicati altrove.
Sicuramente sono io che ho concezioni "antiquate" su come deve essere
fatto un software in ambiente embedded, pero' non mi piace l'andazzo
del "tutto subito e piu' facile".
C'ya
  STeve

 del "tutto subito e piu' facile".
Figurati che tale andazzo e' uno dei motivi che mi ha spinto a cercare di
non fare piu' il programmatore (non l'unico e forse nemmeno il piu'
importante, ma sicuramente un motivo che ha comunque un suo peso)
Ciao,
Marco.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 classico io lo vedo come un'eresia.
esatto. Quindi qualcuno lo fermi prima che facci danni seri...

 non fare piu' il programmatore (non l'unico e forse nemmeno il piu'
A me invece e' proprio il contrario.
Finche posso continuo a lavorare con i miei principi e non con quelli
del mercato.
Ciao
  STeve


E' probabile, altrimenti non avrei chiesto qui. "Che non abbia la più
pallida idea" mi sembra un po' azzardato visto che, prima di postare,
ho visto che un laboratiorio analogo è stato tirato su proprio con
strumenti microsoft, senza l'ombra del C/C++ da nessuna parte, e visto
che, questo laboratorio, è l'unico in Italia che faccia "questa cosa",
ci lavora e ci "campa" da 20 anni. Ora questo laboratorio deve essere
"duplicato" da un'altra parte, e siccome ho visto che qui sopra c'è
gente con le palle, mi sono permesso di chiedere. Tutto qui.
Avendo avuto dubbi, soprattutto legati al fatto che, quando
frequentavo i corsi di controllo digitale di tutto si parlava
(embedded, C/C++), mi sono messo umilmente a chiedere, e speravo in
una risposta di Steve perchè ho sempre letto cose interessanti scritte
da lui, come in passato, molte persone (tra cui rootkit ad esempio) mi
hanno permesso di acquisire conoscenze (orientandomi) per realizzare
applicazioni con JavaEE/Struts.
Spero di non fare danni comunque :)
Luca

 wrote:

Infatti carissimo Steve, grazie a contributi come il tuo, sto andando
a rispolverare C/C++ che (usavo in passato) e sto studiando
l'architettura ARM, e grazie a quello che mi hai detto, senza
vomitarmi addosso :) (un po' ne avevo il timore). Ho capito che il mio
approccio era totalmente sbagliato. Poi una cosa tira l'altra, e ho
visto che forse, è anche il caso di rispolverare (aggiornato alle
tecniche odierne) qualcosa di Controllo Digitale che rimase lì, come
una cosa studiata all'Università.
Insomma: mi hai fatto venire dei dubbi e poi mi hai aperto un mondo,
se avessi colleghi come te, o se mi fossero capitati colleghi come te,
nella vita, sarei di sicuro una persona più felice! :)
Ciao!
Luca

 Quando fai sul serio, lasciamo stare.
Infatti, hai pienamente ragione, e ho anche trovato la risposta al
perché, alcuni software di utility, siano realizzati con Visual Studio
o Java, semplicemente perchè, scaricare dati da uno strumento di
misura, per farsi il fogliettino excel, non è ovviamente
un'applicazione critica, se si parla di "processi automatici" che
coinvolgono strumenti più o meno eterogenei, allora sì, siamo nel
campo delle applicazioni critiche: "è un altro campo di gioco" (Pulp
Fiction cit. :))
Sei stato chiarissimo, credimi, e se in futuro potrò ricambiare in
qualche modo, sarò ben lieto di farlo.
Ciao!
Luca


Ho capito ho capito! :) dammela una possibilità, comunque, ti assicuro
che quando mi metto ad affrontare un problema, qualcosa di buono ne
esce fuori. Ho capito di aver detto una grande fesseria solo nell'aver
proposto quel tipo di alternative, però diamine, non essere così
severo! Rivedrò tutta la questione in base ai consigli che mi sono
stati dati, rafforzati anche da risposte sdegnate come la tua,
comunque.
:)
Ti assicuro che non programmo col "drag and drop" :)
Ciao!
Luca

 comunque.
non e' questione di essere severi, buoni o cattivi. Il punto e' che e'
un conto e' mettersi a fare il dilettante allo sbaraglio sull'ennesima
applicazione web j2ee, un altro e' pensare di poterlo fare nel settore
del controllo...Non ti sto dicendo che non ci puoi lavorare, ma
sicuramente non ci puoi lavorare "rispolverando c++ e i ricordi di
universita'".. e nemmeno chiedendo qualche consiglio sui ng. Hai
bisogno di essere affiancato a qualche sviluppatore serio che ci
lavora da tempo. Senno' rischi di fare danni seri.
Infine, ma questa e' una questione totalmente personale, sono sicuro
che tu sia un ottima persona ma trovo che per qualche motivo tu abbia
un atteggiamento sorridente/umile/ottimista/sereno/positivo cosi'
esagerato che finisce per risultare untuoso piu' che naturale e
simpatico.

 simpatico.
Ti spiego, secondo me, l'interazione tramite ng ed email in genere è
sempre abbastanza freddo e si finisce per essere fraintesi, e leggendo
i vari interventi sul questo ng in particolare (anche i tuoi), sono
sicuro che, di persona, il tuo intervento sarebbe apparso più
colloquiale. Tutto qui.
Certamente le cose che ho letto mi sono comunque state di aiuto, e se,
qualche giorno addietro ero partito con un'idea, adesso la penso in
modo diametralmente opposto, compresa la necessità di essere
affiancato a qualcuno che ci si è smazzato un po'.
Ciao
Luca

 nella vita, sarei di sicuro una persona più felice! :)
Dubito fortemente, non hai idea di che rompicoglioni io sia :-)
C'ya
  STeve